如何获取数据IWbemClassObject **

时间:2013-05-01 10:29:34

标签: c++ c wmi

你好如何从这个数组中获取数据?或者如何获取我可以提取的所有名称?

hres = pSvc->ExecNotificationQueryAsync( _bstr_t("WQL"), _bstr_t("SELECT * " 
            "FROM __InstanceCreationEvent WITHIN 1 WHERE TargetInstance ISA 'Win32_Process'"), 
        WBEM_FLAG_SEND_STATUS,  NULL, pStubSink);
for (int i = 0; i < lObjectCount; i++)
{
    VARIANT varName;
    hres = apObjArray[i]->Get(_bstr_t(L"__CLASS"),
        0, &varName, 0, 0);

    if (FAILED(hres))
    {
        cout << "Failed to get the data from the query"
            << " Error code = 0x"
            << hex << hres << endl;
        return WBEM_E_FAILED;       // Program has failed.
    }

    printf("Name: %ls\n", V_BSTR(&varName));
}

1 个答案:

答案 0 :(得分:1)

您的代码无效,因为必须使用ExecNotificationQueryAsync对象处理IWbemObjectSink方法的结果。试试这个MSDN示例Receiving Event Notifications Through WMI您还可以使用像WMI Delphi Code Creator这样的工具生成C ++代码来访问WMI。