WMIで何かをしたい(イベント通知を受信する)ので、MSDNWebサイトの簡単な例から始めます。
このプログラムは、WMIを介してイベント通知(プロセスの作成)を受信し、イベントの受信時に関数EventSink::Indicateを呼び出します。
上記のリンク(コピー/過去)で同じコードを使用しましたが、1つ変更しました:クラスEventSinkで、関数
HRESULT EventSink::Indicate(long lObjectCount, IWbemClassObject **apObjArray)
オブジェクトのプロパティを取得するために数行を追加しました(オブジェクトはapObjArrayに返されます)。
for (int i = 0; i < lObjectCount; i++)
{
VARIANT varName;
hres = apObjArray[i]->Get(_bstr_t(L"Name"),
0, &varName, 0, 0);
//...
}
これで、Get(...)関数は、何を探してもWBEM_E_NOT_FOUND(指定されたプロパティが見つかりません)を返します(ドキュメントから、プロパティが存在することを確認してください...)
何を逃したのか教えてください!どんな助けでも大歓迎です。