Владимир » 09 июн 2005, 20:03
Привет всем. Помогите решить проблему, суть которой в следующем: есть клиент(dll) и сервер(exe), который запускается на удаленной машине. В клиенте при активации сервера CoCreateInstanceEx(CLSID_COMdev,NULL,CLSCTX_REMOTE_SERVER,&csi,1,qi) я получаю нужный интерфейс
m_iCOMdev = (ICOMdev*)qi[0].pItf, а затем вызываю метод сервера, через параметры которого хочу передать ссылку на интерфейс клиента m_iCOMdev->OpenConnection(GetUnknown()).
Когда на сервере пытаюсь получить конкретный интерфейс клиента
STDMETHODIMP CCOMdev::OpenConnection(IUnknown *pLink)
......
IPropertyLink *piLink = NULL;
hr = pLink->QueryInterface(IID_IPropertyLink,(void**)&piLink);
.......
метод возвращает E_FAIL.
Для пересылки интерфейсов использую универсальный маршалинг.
Что делать?
Привет всем. Помогите решить проблему, суть которой в следующем: есть клиент(dll) и сервер(exe), который запускается на удаленной машине. В клиенте при активации сервера CoCreateInstanceEx(CLSID_COMdev,NULL,CLSCTX_REMOTE_SERVER,&csi,1,qi) я получаю нужный интерфейс
m_iCOMdev = (ICOMdev*)qi[0].pItf, а затем вызываю метод сервера, через параметры которого хочу передать ссылку на интерфейс клиента m_iCOMdev->OpenConnection(GetUnknown()).
Когда на сервере пытаюсь получить конкретный интерфейс клиента
STDMETHODIMP CCOMdev::OpenConnection(IUnknown *pLink)
......
IPropertyLink *piLink = NULL;
hr = pLink->QueryInterface(IID_IPropertyLink,(void**)&piLink);
.......
метод возвращает E_FAIL.
Для пересылки интерфейсов использую универсальный маршалинг.
Что делать?