QueryInterface возвращает E_ACCESSDANIED общую ошибку отказа в доступе после успешного завершения CoCreateInstanceEx

Я делаю простой клиент для подключения к OPC-серверу через DCOM на виртуальной машине.
Я тестировал тот же код на компьютере с Windows 7, и он работал правильно, но после перемещения кода на Windows 10 он перестал работать (виртуальная машина, содержащая сервер DCOM, остается той же).
Дело в том, что я могу создать экземпляр COM-объекта, но не могу вызвать ни один из его методов, потому что получаю результат E_ACCESSDENIED.
Вот эти шаги:

tagMULTI_QI res;
res.pIID = &__uuidof(IOPCServer);
res.pItf = NULL;

hr = CoCreateInstanceEx(
clsid,
NULL,
CLSCTX_INPROC_SERVER,
&sin,
1,
&res);

Это возвращает hr = S_OK, и res.hr также имеет значение S_OK.
Но после этого любой вызов получает результат E_ACCESSDENIED.
Это:

hr = server->GetStatus(&status);

IOPCItemProperties* ItemProperties;

hr = server->QueryInterface(
__uuidof(IOPCItemProperties),
(void**)&ItemProperties);

Есть идеи, что может быть причиной проблемы? Может быть что-то связано с ОС Windows 10?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector