|
|
在MS提供的acpimof.mof文件里定义了两个class,分别如下:
4 C6 p6 a# ^( i, c7 u$ y2 O* }" }, \! u! M2 {
class Package( \+ s4 ~- s3 Z1 N5 i1 R/ ?4 L
{. ^; @- R6 [. e+ e" u+ A
[WmiDataId(1),7 a& N6 y+ b5 w9 B8 H3 e0 s
read, write,
3 ^' e4 h+ d- W Description("16 bytes of data")
, C: J8 O5 o& L# O+ x* y ] uint8 Bytes[16];5 n$ g4 M D4 j8 o, x; h1 W
};
" ]( _0 u+ Y0 x, b- k
& a! A$ O2 D8 f2 e) ^# M; \5 l[WMI,
! e3 ^% U) H4 ^' b: H Dynamic,
7 o7 }3 L h# j: [& N% L Provider("WmiProv"),0 V" e# d( i \, g
Locale("MS\\0x409")," M j2 a7 A1 w6 [
Description("Class to test Query/Set a package"),
7 q g& Q- ]: [, g$ d& [ P guid("{ABBC0F6a-8EA1-11d1-00A0-C90629100000}")
$ D* f$ N7 n% K. o) W! F]
7 g+ H P! k6 }: _- ~2 mclass AcpiTest_QSPackage
# O2 p2 Z: B5 Q{( M6 R6 e/ x6 E/ K1 o; @6 e5 l w
[key, read]4 E' f2 \, z- p
string InstanceName;
5 d6 R+ s3 N ` _/ a [read] boolean Active;% _6 U4 C u$ j
3 u8 P* y( ?' l/ r) E8 i
[WmiDataId(1),: |" C" M; N' x6 }+ ^! A
read, write,0 s+ j0 U* W, ?* Q
Description("description")3 K0 d1 ^% A; ^& ^) ~7 V. k9 ^2 r
] Package Data;6 w. O Z5 F$ E$ s
+ A7 y! H S9 c% c& [};. d. X+ Z5 ~/ T% K8 {1 u9 b0 b/ t n
7 S2 [* I5 L$ [( o3 l请教各位大侠,如果我想得到 packge 类型的Data 是不是用:7 }+ ~, _ z) b# X" o# w
# u* n. k8 L) |1 p8 n3 jhres = pSvc->ExecQuery(
- F/ `1 v( B2 V bstr_t("WQL"),
, F9 |1 ^4 `$ { bstr_t("SELECT * FROM AcpiTest_QSPackage"),1 y7 L& Z. Y2 ?2 Y( k% x
WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY, 9 v. |( k1 `6 C! Q
NULL,) z5 j1 l" E( z6 A P6 D8 i5 M, C
&pEnumerator);
6 h: b( P7 c+ A* x; J) ~3 {6 C
4 }* _7 _6 x& F5 \, b- J! D- RHRESULT hr = pEnumerator->Next(WBEM_INFINITE, 1,
8 S+ v j2 {/ c. R. R6 W &pclsObj, &uReturn);
9 M: `2 E, O1 F
) G' H6 J7 _5 {8 ghr = pclsObj->Get(L"Data", 0, &vtProp, 0, 0);
6 m1 G- R; {4 x1 `! v' }4 ]如果是的话,我下一步要怎么操作vtProp?* Y/ ?- l" f# J+ @, P' y3 w. l% O
单个的数或者字符串能得到,就是不知道怎么得到这种package类型的数,这个问题困扰了好几天了,望知道的大侠能指点小弟。谢谢了! |
|