Что такое C ++, эквивалентный GetObject в JavaScript и VBScript? - PullRequest
0 голосов
/ 04 декабря 2008

Что такое C ++, эквивалентный GetObject в JavaScript и VBScript ?

Самое близкое совпадение с моим вопросом:

http://codewiz51.blogspot.com/2008/06/vb-script-getobject-c-api-cogetobject.html

Однако в примере используется несуществующий интерфейс, и запрос IUnknown возвращает ноль. У кого-нибудь был пример, который работает?

Ответы [ 4 ]

2 голосов
/ 04 декабря 2008

Я разобрался в проблеме. Объект, к которому я хотел получить доступ, был

winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv

Я по ошибке принял \\ за спуск. В C ++ правильный запрос:

::CoGetObject(L"winmgmts:{impersonationLevel=impersonate}!\\\\.\\root\\default:StdRegProv", NULL, IID_IUnknown, (void**)&pUnk);

Спасибо:)

1 голос
/ 04 декабря 2008

Статья, на которую вы ссылаетесь, верна. Возможно, вы указали неправильный идентификатор интерфейса или отображаемое имя могло быть неправильным. Вы должны проверить возвращаемое значение из CoGetObject вызова.

0 голосов
/ 04 декабря 2008

Вы инициализировали COM перед выполнением каких-либо вызовов COM?

Посмотрите на CoInitializeEx.

0 голосов
/ 04 декабря 2008

Если запрос IUnknown возвращает NULL, объект с таким именем отсутствует. Каждый COM-объект реализует IUnknown.

...