JavaScriptおよびVBScriptのGetObjectに相当するC ++とは何ですか?
質問
JavaScript および
質問に最も近いものは次のとおりです:
http://codewiz51.blogspot .com / 2008/06 / vb-script-getobject-c-api-cogetobject.html
ただし、サンプルでは存在しないインターフェイスを使用し、IUnknown
を要求するとnullが返されます。誰かが動作する例がありましたか?
解決
問題を見つけました。アクセスしたいオブジェクトは
でした
winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv
私は誤って\\を脱進機として使用しました。 C ++では、正しいクエリは次のとおりです。
::CoGetObject(L"winmgmts:{impersonationLevel=impersonate}!\\\\.\\root\\default:StdRegProv", NULL, IID_IUnknown, (void**)&pUnk);
ありがとう:)
他のヒント
リンクした記事は正しいです。間違ったインターフェイスIDを指定したか、表示名が間違っている可能性があります。 CoGetObject
呼び出しからの戻り値を確認する必要があります。
IUnknownを要求するとNULLが返される場合、その名前のオブジェクトはありません。各COMオブジェクトはIUnknownを実装します。
COMを呼び出す前にCOMを初期化しましたか?
CoInitializeExを調べます。