Automation 如何定义异构体(组件对象模型)

Automation 如何定义异构体(组件对象模型),automation,com,components,invoke,idispatch,Automation,Com,Components,Invoke,Idispatch,我想用invoke调用一个方法。我的对象输入是一个字符串,它是我计算机中文件的地址,输出类型是IDispatch。如何将异类定义为invoke的输入。我的代码是: ::CLSIDFromProgID(OLESTR("SGNSAutomation.SGNSApplication"), &clsid); IID iid; HRESULT hr = CoCreateInstance(clsid, NULL, CLSCTX_ALL, IID_IDispatch, (LPVOID*)&

我想用invoke调用一个方法。我的对象输入是一个字符串,它是我计算机中文件的地址,输出类型是IDispatch。如何将异类定义为invoke的输入。我的代码是:

::CLSIDFromProgID(OLESTR("SGNSAutomation.SGNSApplication"), &clsid);
IID iid;

  HRESULT hr = CoCreateInstance(clsid, NULL, CLSCTX_ALL, 
  IID_IDispatch, (LPVOID*)&pWMPDispatch);
  IDispatch * pdisp = (IDispatch *)NULL;
  DISPID dispid;
  DISPPARAMS  params= {NULL,NULL,0,0};
  OLECHAR * Name = OLESTR("importCase");
//my problem is here
params.rgvarg[1].pdispVal
params.rgvarg[0].bstrVal="E:\\new library\\university\\final project 
documentation\\GPNS project\\net1.gpns";
params.rgvarg[1].scode = DISP_E_PARAMNOTFOUND;
params.cArgs = 2;
 params.cNamedArgs = 0;
//

   pWMPDispatch->GetIDsOfNames(IID_NULL, 
   &Name,1,LOCALE_SYSTEM_DEFAULT,&dispid);
   HRESULT hresult =pWMPDispatch->Invoke(dispid, IID_NULL, 
  LOCALE_USER_DEFAULT, DISPATCH_METHOD, &params, NULL, NULL,
                          NULL);  

请帮助我正确定义异类。

调用的函数“importcase”是如何定义的?嘿,@mahdi Lotfi:我注意到你最近问了很多COM问题,但没有接受给你的答案。如果您按预期的方式使用StackOverflow,您可能会得到更多的响应。对不起,我是stack overflow的新手,我不太了解这个网站,也不太了解接受答案和其他选项。我用这种方式调用此函数IDispatch out=importcase(我计算机中的文件路径),我可以回答这个问题,但是我们需要看到IDL或C++来定义你要使用的接口。请使用此信息更新问题。