Немогу получить список COM-серверов на удалённой машине?
От: Vladimir81  
Дата: 25.06.07 04:49
Оценка:
Здравствуйте!

Есть код:



CoInitialize(NULL);

ICatInformation* pcr = NULL ;

COSERVERINFO csi={0};
MULTI_QI qi[1]={0};

// Set the name of the remote server.
csi.pwszName = (L"Proliant1"); 

// Here are the interfaces I want.
qi[0].pIID = &IID_ICatInformation;

hr = CoCreateInstanceEx(CLSID_StdComponentCategoriesMgr, NULL, CLSCTX_REMOTE_SERVER, &csi, 1, qi);
pcr=(ICatInformation*) qi[0].pItf;
 
IEnumCLSID* pEnumCLSID;

// "OPC Data Access Servers Version 1.0"
CLSID catid = CATID_OPCDAServer10;
pcr->EnumClassesOfCategories(1, &catid, 1, &catid, &pEnumCLSID);

и т.д


В качестве результата, всегда получаю список СОМ-серверов зарегистрированных на локальной машине.
Подскажите пожалуйста, что здесь не так?
Re: Немогу получить список COM-серверов на удалённой машине?
От: Splin Беларусь  
Дата: 25.06.07 10:37
Оценка:
Здравствуйте, Vladimir81, Вы писали:

V>IEnumCLSID* pEnumCLSID;


V>В качестве результата, всегда получаю список СОМ-серверов зарегистрированных на локальной машине.

V>Подскажите пожалуйста, что здесь не так?

Для этих целей есть спец. сервис — OPCEnum (устанавливается при установке компонентов OPC).
Пример создания:

    COSERVERINFO ServerInfo = { 0 };
    ServerInfo.pwszName = szMachineName;
    ServerInfo.pAuthInfo = NULL;
    
    MULTI_QI MultiQI[2] = { 0 };
    
    MultiQI[0].pIID    = &_ATL_IIDOF(IOPCServerList);
    MultiQI[0].pItf    = NULL;
    MultiQI[0].hr        = S_OK;

    MultiQI[1].pIID    = &_ATL_IIDOF(IOPCServerList2);
    MultiQI[1].pItf    = NULL;
    MultiQI[1].hr        = S_OK;

    HRESULT hr = ::CoCreateInstanceEx(CLSID_OpcServerList, NULL, CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER, &ServerInfo, 2, MultiQI);
    if (SUCCEEDED(hr))
    {
        m_spServerList.Attach((IOPCServerList*)multi_qi[0].pItf);
        m_spServerList2.Attach((IOPCServerList2*)multi_qi[1].pItf);
        // IOPCServerList is required!
        if (m_spServerList == NULL)
        {
            m_spServerList.Release();
            m_spServerList2.Release();
            hr = multi_qi[0].hr;
        }
    }
... << RSDN@Home 1.2.0 alpha rev. 679>>
Re[2]: Немогу получить список COM-серверов на удалённой маши
От: Vladimir81  
Дата: 26.06.07 05:55
Оценка:
Здравствуйте, Splin, Вы писали:


S>Для этих целей есть спец. сервис — OPCEnum (устанавливается при установке компонентов OPC).


Спасибо большое, заработало
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.