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