成功CoCreateInstanceEx后,QueryInterface返回E_ACCESSDANIED一般访问被拒绝错误

时间:2016-12-26 17:22:17

标签: c++ com dcom

我正在创建一个简单的客户端,通过虚拟机上的DCOM连接到OPC服务器。 我在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 个答案:

没有答案