|
在MS提供的acpimof.mof文件里定义了两个class,分别如下:* u: h" z& \0 v+ w8 L' h' v# O
: O" j) V" _. S* @# A
class Package
% Y6 |3 i4 C9 l% _" H{
" s/ x, Y0 m9 {. o [WmiDataId(1),
/ z- r! E$ j: g% \. `: _ read, write,5 W! W7 Q8 t9 D4 N6 ~1 ^3 ]! N9 |" C
Description("16 bytes of data")5 e2 R# Y1 i5 P) o
] uint8 Bytes[16];7 _- i' i! {( K7 e: l
};4 p7 z" x( J; r/ K7 Q
* x1 A% W. D ?8 S1 z/ v7 G" {0 H
[WMI,
+ Y2 x6 }9 n' [) G# x: J+ @7 k4 @ Dynamic," e( _8 m+ i( w6 W) s1 O
Provider("WmiProv"),; @! Z! R8 @6 L, v+ B [1 l
Locale("MS\\0x409"),
3 x) w; g- d0 s- H Description("Class to test Query/Set a package"),
, m1 U1 J) n; h$ W0 S guid("{ABBC0F6a-8EA1-11d1-00A0-C90629100000}")
* [& e3 Y1 {& G. r8 A/ s9 E- y2 A]
7 i, E8 C# C$ i! f5 Hclass AcpiTest_QSPackage
& E& L0 S; Y7 w, e: Y% O{
, \# p, |, }! N [key, read]5 H# [/ `: m) K) E. S+ g3 J
string InstanceName;$ }' f- x1 B0 K
[read] boolean Active;
) w& J* z. @" X2 Y! ?
3 O# s6 N( c1 A( w P L) | [WmiDataId(1),
5 e6 B/ x; A9 t; U, q. F read, write,0 ?* @/ ~7 q4 z1 A3 z
Description("description")
6 K, A( q/ H8 N- ^0 S3 q ] Package Data;
0 H5 s* [/ i0 Y7 s/ H9 p
9 S" Y' \* P! I9 g6 V};( ~1 e' W7 d, F/ E8 ~4 V2 I
% S, g+ B7 i& a* }
请教各位大侠,如果我想得到 packge 类型的Data 是不是用:/ n! Q' y& ]0 j
: g: ~8 M1 Z7 {& ~. ^) V
hres = pSvc->ExecQuery(
& l, t6 w0 r: j7 H8 g- [. d# s bstr_t("WQL"), + @. }) e% S U/ G
bstr_t("SELECT * FROM AcpiTest_QSPackage"),5 @4 z# i) I! ]5 y% Y0 h$ M& x
WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY,
h' |5 V. R& @ NULL,
. l5 x7 ^' E& y% x9 {$ r7 _4 C &pEnumerator);) z& A; c3 B2 o6 c8 V. D. j. O
3 e* c+ D: {. b1 c1 A
HRESULT hr = pEnumerator->Next(WBEM_INFINITE, 1,
$ q2 W! q% ?- I6 ~ &pclsObj, &uReturn);8 t5 _$ N# H2 p
: I( f4 v W+ ?+ S& |' ghr = pclsObj->Get(L"Data", 0, &vtProp, 0, 0);
" {0 ~' e7 q4 a4 B$ c% o) |/ H如果是的话,我下一步要怎么操作vtProp?0 {- o4 }# O+ `
单个的数或者字符串能得到,就是不知道怎么得到这种package类型的数,这个问题困扰了好几天了,望知道的大侠能指点小弟。谢谢了! |
|