hres = pSvc->ExecQuery(
bstr_t("WQL"), 
bstr_t("SELECT Caption, Manufacturer  FROM Win32_Processor"),
WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY, 
NULL,
&pEnumerator);// Get the value of the Name property
hres = pclsObj->Get(L"Name", 0, &vtProp, 0, 0);怎么样得到Caption的值和Manufacturer 的值

解决方案 »

  1.   

    vtProp 
    是一个变体,可能上long bstr 或long 数组或bstr 数组
    所以要分析 vt 返回类型
    先比检查vt中是否含有 VT_ARRAY 标记说明返回的是一个组数那么,再继续检查 VT_BSTR VT_R8 VT_UINT.....等标记,记住返回的可能是任何类型,所以你不能简单处理一个类型,除非你明确据返回数据类型.
    如果查返回的是一个数组
    可通过返回元素数,vtProp->parray->rgsabound->cElements
    vtProp->parray->pvData  指向第一个元素的地址
    知道类型后再用c函数将字串,数值转成乐要的类理就可了上面都是VARIANT 的基础,你可以从MSD上了找到更详细的资料
      

  2.   

    // Get the value of the Name property 
    hres = pclsObj->Get(L"Caption", 0, &vtProp, 0, 0); hres = pclsObj->Get(L"Manufacturer", 0, &vtProp, 0, 0); 
    就是取两信息了