|
|
在MS提供的acpimof.mof文件里定义了两个class,分别如下:0 n3 d! D( I9 E1 x4 T' Z% ~2 @/ t, e
, `; t5 v* v+ Pclass Package
1 `8 M3 D& T; Z6 M; I* O{1 d9 T" X5 R6 s3 `$ Z8 F3 e9 D( Y3 W
[WmiDataId(1),* U* Z0 s" q$ K2 _
read, write,
) I( t9 V8 k0 ^9 Q" j9 V1 d4 j Description("16 bytes of data")) X% i/ U, Q2 J# d1 J n
] uint8 Bytes[16];/ @; P. _+ @1 g3 `: k
};
0 n5 ]) D) L% _; ]) @8 i; r) S5 t! |- K7 X
[WMI,! L" t7 U$ V" ^. r' w! E* X
Dynamic,; n4 p( l; H" S* a4 T! ^) n
Provider("WmiProv"),+ f, A0 A; y5 T* d; p
Locale("MS\\0x409"),* D0 w$ h9 S; |- E
Description("Class to test Query/Set a package"),
8 `( B5 H( k8 u2 N. s: p' j- {1 B guid("{ABBC0F6a-8EA1-11d1-00A0-C90629100000}")
5 }8 A0 z3 V$ @5 q, G6 F- j9 y]
% t2 S+ s: C7 o2 c& s9 r# }class AcpiTest_QSPackage' j- [: }7 q0 ^. k. j
{- j6 M0 E3 \: I3 c. Z1 m. V+ x& G
[key, read]
0 S# S5 v Q, }8 O Y string InstanceName;
% q. l6 [/ U/ C" T, m% M$ |* Z" ? [read] boolean Active;
8 h& K: {7 h, Z3 f/ H
) c: q# U2 D+ O [WmiDataId(1),
9 p) ^2 L6 T7 n4 q6 `5 [ read, write,
1 w/ F t, i2 J Description("description")
' z6 `3 U G$ C' P3 S9 Q ] Package Data;- @. {" L4 m* N; Z( W2 Q9 ?
: f. q Y5 X, ^! ~0 J/ g$ ~" D L
};
' n( _1 ?- u; t: l+ n
* D% d( T; E W7 j请教各位大侠,如果我想得到 packge 类型的Data 是不是用:* W3 v2 A2 y% n0 x' D
: M0 ?( Y4 t7 M) Z+ h$ ghres = pSvc->ExecQuery(0 m$ p3 n" n2 a- R
bstr_t("WQL"),
4 f' f! m, @1 i+ O$ _) x bstr_t("SELECT * FROM AcpiTest_QSPackage"),* k" [4 p; q5 t& @1 Z5 ^ n
WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY,
( S$ I7 q) M% p& a/ C NULL,
! _ U3 D5 [$ X# [9 n. k' A% b v+ v &pEnumerator);+ o7 |) V" `8 l
8 a0 S. C" e: e
HRESULT hr = pEnumerator->Next(WBEM_INFINITE, 1,
I* M' N0 } h% Y _! m &pclsObj, &uReturn);
5 X! Z# k5 ?' f2 B
6 Z4 ~6 N: F: _# B- ]$ Bhr = pclsObj->Get(L"Data", 0, &vtProp, 0, 0);
9 v5 p* i! n0 s$ ?4 y$ ` X; E如果是的话,我下一步要怎么操作vtProp?* C& _/ B: @+ o% T% w
单个的数或者字符串能得到,就是不知道怎么得到这种package类型的数,这个问题困扰了好几天了,望知道的大侠能指点小弟。谢谢了! |
|