0
我正在创建一个需要与第三方工具(COM)互操作的wpf应用程序。该工具将首先启动,我将在该工具中提供一些输入。然后他将启动我的wpf应用程序,在那里再次输入一些信息。我的wpf应用程序需要与正在运行的工具实例进行互操作,并在工具中执行一些方法并将结果提供给我的应用程序。我尝试使用RCW。但RCW只是一个代理。我需要一个正在运行的工具实例来进行交互。任何人都可以帮助我吗????????????.Net COM Interop运行COM实例并将其分配给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);
}
查看运行对象表(ROT)。如果该工具没有在ROT上注册,那么你运气不好。 – Ben 2012-03-28 00:09:28
嗨本,谢谢你的回复。当我尝试使用Marshal.getactiveobject(programid)时,它会抛出错误,而不是查看ROT中程序的活动对象并将其返回。那么这是否意味着这个对象在ROT中不存在?或者它可能是其他原因? – kannan 2012-03-28 15:49:40
另外我试图枚举通过所有运行的对象,我无法得到所需的对象 – kannan 2012-03-28 16:04:56