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