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?