Re[4]: Получение CLSID по ProgId для удаленного сервера
От: Sevig Россия  
Дата: 21.08.02 12:23
Оценка:
Здравствуйте Vi2, Вы писали:

Vi2>Здравствуйте Sevig, Вы писали:


S>>Я пытаюсь подключиться к удаленному OPC серверу. На локальном компе он не зарегистрирован.


Vi2>И ты думаешь его достать? И если пытаешься, то через какие функции?


S>>CLSIDа в реестре нет. Есть только имя ProdId и NodeName удаленного компа.


Vi2>И даже если продерёшься, что ты с ним будешь таким делать?



Не понимаю, а в чем проблема то ?

MULTI_QI mqi;
COSERVERINFO sin, *sinptr;
DWORD clsctx;


// set up server info
//
if(szNodeName)
{
sinptr = &sin;
sin.dwReserved1 = 0;
sin.dwReserved2 = 0;
sin.pwszName = szNodeName;
sin.pAuthInfo = 0;
clsctx = CLSCTX_REMOTE_SERVER;
}
else
{
// Локальный
sinptr = 0; // pointer should be NULL if local
clsctx = CLSCTX_LOCAL_SERVER;
}

// set up mqi
//
mqi.pIID = &IID_IOPCServer; //&IID_IUnknown;
mqi.hr = 0;
mqi.pItf = 0;

// Note you must define _WIN32_DCOM in 'Settings'
hResult = CoCreateInstanceEx(CLSID_OPCServer, NULL,
clsctx, sinptr, 1, &mqi);
...

pIOPCServer=(IOPCServer*)mqi.pItf;

Получили указатель на интерфейсик и вперед

Но где взять CLSID_OPCServer ?
Если его взять с локального, все работает, проверял.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.