|
|
在MS提供的acpimof.mof文件里定义了两个class,分别如下:% B V% V+ I T+ L/ N: J
* ~ s5 n9 q3 X2 O3 _1 N8 ]' rclass Package" D) Y5 v1 c/ f: o
{8 C9 @3 E F+ K1 e( A+ v, T. F6 y
[WmiDataId(1)," i% H% J1 S! @/ v, a! n
read, write,- K6 r1 \; T9 G& `/ ]
Description("16 bytes of data")1 B$ R# [, [ v/ a
] uint8 Bytes[16];
; }( `$ u4 v3 G; }3 ~};
, C+ I: v) {4 u/ P% w& h! v: ?6 u4 I) c% s' D3 o0 J$ o
[WMI,2 ^9 u9 M) P) w4 e7 E+ t
Dynamic,
+ v6 w7 q, r$ Q: A Provider("WmiProv"),
2 k# @( I3 b; P# f Locale("MS\\0x409"),- Z* ], n! {4 C0 U2 F2 P
Description("Class to test Query/Set a package"),
- ~! m+ e: x5 `" V0 E guid("{ABBC0F6a-8EA1-11d1-00A0-C90629100000}")( g# T& `: u% g; y+ d
]6 \4 k4 a# n& k: V3 r
class AcpiTest_QSPackage3 v7 B0 B4 Y! t8 i
{/ o H! j' I1 k6 A- t
[key, read]7 K7 h% a B% P( q0 _- @3 `" ~
string InstanceName;
y* c5 ]# U+ c2 ]) e2 K+ ]/ K( N [read] boolean Active;/ q$ q- E! |; b) t; ?9 `. k, I) z
% _2 n0 y( ^ e' W; D/ ^2 R
[WmiDataId(1),
' y" B8 E) E, p+ h# M1 a S7 i read, write,
( U1 k0 ~% v* }) J+ R Description("description")
; G; G) d' k4 |: o8 ? ] Package Data;
0 p% N T" f8 D$ H; x5 _! Q- O% ^2 w
};8 e/ g' z1 i9 L* R* S
; G, Y, D- y2 Q+ L7 L7 O请教各位大侠,如果我想得到 packge 类型的Data 是不是用:
3 K A% ?5 Y! l+ p( r7 g. r3 u$ ]' \( w$ j/ H; z9 A1 U
hres = pSvc->ExecQuery(
1 E8 N9 }7 U/ K. q bstr_t("WQL"), ( B% |4 h3 W3 @' G
bstr_t("SELECT * FROM AcpiTest_QSPackage"),# _' Q3 x; Z# U& M# l1 y
WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY,
$ G; ~8 |4 A, C: c- E' v NULL,+ `: z6 D1 ~4 }( T5 v
&pEnumerator);$ ?" ~0 c Z1 \5 ^4 n" k
4 f; X8 T% Q8 C! z+ IHRESULT hr = pEnumerator->Next(WBEM_INFINITE, 1, 8 w& c7 S# E3 F: L. f7 v
&pclsObj, &uReturn);0 q* I2 E+ ~' { c6 z) F n
9 g3 U; Z- |5 Y C& u" I. Thr = pclsObj->Get(L"Data", 0, &vtProp, 0, 0);) A }3 s4 d! ^; K y
如果是的话,我下一步要怎么操作vtProp?% k) J8 g6 U6 k2 R h* x
单个的数或者字符串能得到,就是不知道怎么得到这种package类型的数,这个问题困扰了好几天了,望知道的大侠能指点小弟。谢谢了! |
|