Win32 API 日本語リファレンス
ホームSystem.Wmi › IWbemObjectAccess

IWbemObjectAccess

COM
IID49353c9a-516b-11d1-aea6-00c04fb68820継承元IWbemClassObject自前メソッド開始 vtbl27

メソッド 10

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 27 HRESULT GetPropertyHandle(LPWSTR wszPropertyName, INT* pType, INT* plHandle)
wszPropertyNameLPWSTRinハンドルを取得する対象のプロパティ名を表す文字列である。
pTypeINT*out当該プロパティの CIM 型を受け取る出力先である。
plHandleINT*out高速アクセスに用いるプロパティハンドルを受け取る出力先である。
vtbl 28 HRESULT WritePropertyValue(INT lHandle, INT lNumBytes, BYTE* aData)
lHandleINTin書き込み対象のプロパティハンドルを指定する。
lNumBytesINTinaData から書き込むバイト数を指定する。
aDataBYTE*inプロパティに書き込むデータを格納したバッファへのポインタである。
vtbl 29 HRESULT ReadPropertyValue(INT lHandle, INT lBufferSize, INT* plNumBytes, BYTE* aData)
lHandleINTin読み取り対象のプロパティハンドルを指定する。
lBufferSizeINTinaData バッファのサイズをバイト単位で指定する。
plNumBytesINT*out実際に読み取られたバイト数を受け取る出力先である。
aDataBYTE*out読み取ったプロパティ値を格納するバッファへのポインタである。
vtbl 30 HRESULT ReadDWORD(INT lHandle, DWORD* pdw)
lHandleINTin読み取り対象のプロパティハンドルを指定する。
pdwDWORD*out読み取った DWORD 値を受け取る出力先である。
vtbl 31 HRESULT WriteDWORD(INT lHandle, DWORD dw)
lHandleINTin書き込み対象のプロパティハンドルを指定する。
dwDWORDinプロパティに書き込む DWORD 値を指定する。
vtbl 32 HRESULT ReadQWORD(INT lHandle, ULONGLONG* pqw)
lHandleINTin読み取り対象のプロパティハンドルを指定する。
pqwULONGLONG*out読み取った QWORD (64 ビット) 値を受け取る出力先である。
vtbl 33 HRESULT WriteQWORD(INT lHandle, ULONGLONG pw)
lHandleINTin書き込み対象のプロパティハンドルを指定する。
pwULONGLONGinプロパティに書き込む QWORD (64 ビット) 値を指定する。
vtbl 34 HRESULT GetPropertyInfoByHandle(INT lHandle, LPWSTR* pstrName, INT* pType)
lHandleINTin情報を取得する対象のプロパティハンドルを指定する。
pstrNameLPWSTR*out当該プロパティの名前を受け取る出力先である。
pTypeINT*out当該プロパティの CIM 型を受け取る出力先である。
vtbl 35 HRESULT Lock(INT lFlags)
lFlagsINTinロック動作を制御するフラグを指定する。
vtbl 36 HRESULT Unlock(INT lFlags)
lFlagsINTinアンロック動作を制御するフラグを指定する。

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IWbemObjectAccess "{49353C9A-516B-11D1-AEA6-00C04FB68820}"
#usecom global IWbemObjectAccess IID_IWbemObjectAccess "{}"
#comfunc global IWbemObjectAccess_GetPropertyHandle        27 wstr,var,var
#comfunc global IWbemObjectAccess_WritePropertyValue       28 int,int,var
#comfunc global IWbemObjectAccess_ReadPropertyValue        29 int,int,var,var
#comfunc global IWbemObjectAccess_ReadDWORD                30 int,var
#comfunc global IWbemObjectAccess_WriteDWORD               31 int,int
#comfunc global IWbemObjectAccess_ReadQWORD                32 int,var
#comfunc global IWbemObjectAccess_WriteQWORD               33 int,int64
#comfunc global IWbemObjectAccess_GetPropertyInfoByHandle  34 int,var,var
#comfunc global IWbemObjectAccess_Lock                     35 int
#comfunc global IWbemObjectAccess_Unlock                   36 int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。