Re[2]: ATL DCOM Server - всегда E_NOINTREFACE
От: The Lex Украина  
Дата: 05.08.02 09:33
Оценка:
Здравствуйте Tom, Вы писали:

Tom>Здравствуйте The Lex, Вы писали:


TL>>Что бы это могло значить? Сам я ничего не нашел — это мой первый DCOM-сервер на ATL.


TL>>Сервер скомпонован как сервис. Если нужна будет дополнительная информация — отвечу...


Tom>Значит это, что скорее всего, что ты не правильно используешь фабрику класса. Скорее всего ты делаешь:

Tom> 1. CoCreateInstanceEx...
Tom> 2. QueryInterface "Твой интерфейс"
Tom>а надо
Tom> 1. CoCreateInstanceEx(...IID_IClassFactory...)
Tom> 2. CF->CreateInstance(NULL,"Твой интерфейс",...)

    COSERVERINFO ServerInfo;

    ServerInfo.dwReserved1 = 0;
    ServerInfo.dwReserved2 = 0;
    ServerInfo.pAuthInfo = NULL;

    ServerInfo.pwszName = L"SERVER_NAME";

    MULTI_QI mq[1];
    mq[0].hr = S_OK;
    mq[0].pIID = &IID_IPOSCfgSomeShit;
    mq[0].pItf = NULL;

    hr = ::CoCreateInstanceEx(
        CLSID_POSCfgServer,
        NULL,
        CLSCTX_ALL,
        &ServerInfo,
        1,
        mq);
Голь на выдумку хитра, однако...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.