什么是 C++ 相当于 JavaScript 和 VBScript 中的 GetObject?
C++ 相当于 JavaScript 和 GetObject ="http://en.wikipedia.org/wiki/VBScript" rel="nofollow noreferrer">VBScript?
我发现与我的问题最接近的匹配是:
http://codewiz51.blogspot.com/2008/06/vb-script-getobject-c-api-cogetobject.html
但是该示例使用不存在的接口并要求 IUnknown
返回空值。 有人有一个有效的例子吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我想通了这个问题。 我想要访问的对象是
winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv
我错误地将 \\ 视为擒纵机构。 在 C++ 中,正确的查询是:
::CoGetObject(L"winmgmts:{impersonationLevel=impersonate}!\\\\.\\root\\default:StdRegProv", NULL, IID_IUnknown, (void**)&pUnk);
谢谢
:)
I figured out the issue. The object I wanted to access was
winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv
I mistakenly took \\ for an escapement. In C++ the correct query is :
::CoGetObject(L"winmgmts:{impersonationLevel=impersonate}!\\\\.\\root\\default:StdRegProv", NULL, IID_IUnknown, (void**)&pUnk);
Thank you :)
您链接到的文章是正确的。 您提供的接口 ID 可能错误,或者显示名称可能错误。 您应该检查 CoGetObject 调用的返回值。
The article you linked to is correct. You may be providing the wrong interface ID, or the display name could be wrong. You should check the return value from the
CoGetObject
call.如果请求 IUnknown 返回 NULL,则不存在该名称的对象。 每个 COM 对象都实现 IUnknown。
If asking for IUnknown returns NULL, there is no object by that name. Each COM object implements IUnknown.
在进行任何 COM 调用之前是否已初始化 COM?
查找CoInitializeEx。
Have you initialized COM before making any COM calls?
Look up CoInitializeEx.