.Net COM Interop запускает экземпляр COM и назначает его RCW - PullRequest
0 голосов
/ 28 марта 2012

Я создаю приложение wpf, которое должно взаимодействовать со сторонним инструментом (COM).инструмент будет запущен первым, и я дам некоторую информацию об этом инструменте.затем он запустит мое приложение wpf, где снова будет дан некоторый ввод. моему приложению wpf необходимо взаимодействовать с работающим экземпляром инструмента, выполнить некоторые методы в инструменте и получить результат для моего приложения. Я попытался использовать 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 голосов
/ 02 апреля 2012

Type.GetType(prog.id),Activator.CreateInstance(type) фактически получит запущенный экземпляр программы com, который необходим для этой проблемы.

...