|
|
在MS提供的acpimof.mof文件里定义了两个class,分别如下:
* i0 r, N/ ]3 j5 }5 q$ {6 S+ Z3 C" u% u! [
class Package* Z. V) B1 E, L3 m9 a+ T- X; v
{* s0 F, B D4 e# y, Y- g7 t
[WmiDataId(1),
( L# z+ Z) ?" ^" k2 }% m& z/ I read, write,
- u/ H' U+ ~- m' K7 {$ x; B& v Description("16 bytes of data")
* s$ Y9 d$ E8 _. T# s4 P& B5 \2 X m! @ ] uint8 Bytes[16];. T4 A( e$ e" ]. E% `
};
: E( w; J1 T8 Q3 N: F7 \" m! A' f) q( T! V; t( ~
[WMI,8 p" }) _/ s: \4 K4 g7 U' m
Dynamic,
# K% ^* X. i+ x5 z8 |# D! I Provider("WmiProv"),
( s# e; f, \& X) O: U2 C Locale("MS\\0x409"),% {, X8 x) w3 Z/ t' y) @: ]
Description("Class to test Query/Set a package"),, |6 S8 X8 ?1 O" D
guid("{ABBC0F6a-8EA1-11d1-00A0-C90629100000}"), f3 x" Q1 E' P' Y9 u' i, d
]
" A0 z2 l. O0 n& [) n, hclass AcpiTest_QSPackage
2 [! I( h# _" l" q) c! U! I0 K2 P{3 m0 y/ p9 f, c9 J( |/ h9 s- W
[key, read] P% j* t$ R0 O+ i3 Y5 N
string InstanceName;
2 c! O+ B$ T9 i; R [read] boolean Active;# E( S, c& P2 c# V, s
& X. E$ j$ T" M! c! L8 Z8 D3 f
[WmiDataId(1),2 b' \3 J8 V" g$ S2 P
read, write,3 F4 j; o) G: ]5 f5 g8 r+ `( B
Description("description")7 S+ _ T7 v7 ?% a) S8 Q
] Package Data;
6 k! q! D; o% v5 J: E. Y0 H
% ~- [. v T, e. J# t/ V: A+ S0 W( }};7 M @0 ^$ V7 Z) ]( i7 _. L
& G) \( A9 F+ ]3 R" s: d; T) O
请教各位大侠,如果我想得到 packge 类型的Data 是不是用:
& i7 m1 O0 S3 q' }3 f- Z: r+ q8 m: R& G. O8 A/ K
hres = pSvc->ExecQuery(
0 s9 j' Q% s) a bstr_t("WQL"), . R$ Z3 u% Z4 @( X
bstr_t("SELECT * FROM AcpiTest_QSPackage"),
: N2 m) F5 r, l WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY,
8 C) |& f' F1 J3 X6 | NULL,
- H9 T) } y/ x0 G+ Z" K' _ &pEnumerator);, ]* U! ~5 P. C0 U5 W) v
+ ~. g6 v! ^0 dHRESULT hr = pEnumerator->Next(WBEM_INFINITE, 1, 8 `- t8 V6 O/ k1 c+ k& k
&pclsObj, &uReturn);
% e9 L. y. b& j+ n& J. H1 _& T- G; e* @. k/ _+ v% ]1 N
hr = pclsObj->Get(L"Data", 0, &vtProp, 0, 0);! L3 N/ O2 [- t! x. g! a1 u( O- N
如果是的话,我下一步要怎么操作vtProp?& x6 ~2 a6 j" f |) f5 g
单个的数或者字符串能得到,就是不知道怎么得到这种package类型的数,这个问题困扰了好几天了,望知道的大侠能指点小弟。谢谢了! |
|