Здравствуйте 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 ?
Если его взять с локального, все работает, проверял.