.Net COM Interop运行COM实例并将其分配给RCW

时间:2012-03-27 21:09:30

标签: com interop

我正在创建一个需要与第三方工具(COM)互操作的wpf应用程序。该工具将首先启动,我将在该工具中给出一些输入。然后他将启动我的wpf应用程序,再次给出一些输入。我的wpf app需要与工具的运行实例互操作并在工具中执行一些方法并将结果发送到我的app.I尝试使用RCW。但RCW只是一个代理人。我需要一个正在运行的工具实例来进行交互。谁能帮帮我?????????????

编辑:现有的C ++代码可以执行此操作,那么如何将其转换为C#?

bool DisDriver::Create(CLSID clsid, DWORD ClsContext, LPCTSTR ServerName) 
{ 
    hRet = ::CoCreateInstanceEx(clsid,NULL,dwClsContext,strServerName==NULL?NULL:(&svrinfo),1,&multiqi); 

    if(hRet!=S_OK) { 
#ifdef XYDISPDRIVER_DEBUG
         _tprintf(_T("CoCreateInstance failed:"),hRet); 
#endif 
        return false; 
    } 
    pDisp = (IDispatch*)(multiqi.pItf); 

}   

1 个答案:

答案 0 :(得分:0)

Type.GetType(prog.id),Activator.CreateInstance(type)实际上会得到一个com程序的运行实例,这是此问题所必需的。