ホーム › System.Wmi › IWbemQuery
IWbemQuery
COMメソッド 7
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT Empty()
| uFlags | DWORD | in | 言語機能設定の動作を制御するフラグを指定する。 |
| uArraySize | DWORD | in | puFeatures 配列の要素数を指定する。 |
| puFeatures | DWORD* | in | 設定する言語機能識別子の配列へのポインタである。 |
| uFlags | DWORD | in | 言語機能テストの動作を制御するフラグを指定する。 |
| uArraySize | DWORD* | inout | puFeatures 配列の容量を渡し、実際にサポートされている機能の個数を受け取る入出力である。 |
| puFeatures | DWORD* | out | サポートされている言語機能識別子を受け取る配列へのポインタである。 |
| pszLang | LPWSTR | in | クエリ言語の名前 (WQL など) を表す文字列である。 |
| pszQuery | LPWSTR | in | 解析対象のクエリ文字列である。 |
| uFlags | DWORD | in | 解析動作を制御するフラグを指定する。 |
| uAnalysisType | DWORD | in | 取得する解析結果の種類を指定する。 |
| uFlags | DWORD | in | 解析取得の動作を制御するフラグを指定する。 |
| pAnalysis | void** | out | 要求した解析結果オブジェクトへのポインタを受け取る出力先である。 |
vtbl 8 HRESULT FreeMemory(void* pMem)
| pMem | void* | in | GetAnalysis などで取得した解析結果のメモリを解放するため、そのポインタを指定する。 |
| uAnalysisType | DWORD | in | 対象とする解析の種類を指定する。 |
| uInfoId | DWORD | in | 取得する情報項目の識別子を指定する。 |
| uBufSize | DWORD | in | pDestBuf バッファのサイズをバイト単位で指定する。 |
| pDestBuf | void* | out | 取得した情報を格納する出力バッファへのポインタである。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IWbemQuery "{81166F58-DD98-11D3-A120-00105A1F515A}" #usecom global IWbemQuery IID_IWbemQuery "{EAC8A024-21E2-4523-AD73-A71A0AA2F56A}" #comfunc global IWbemQuery_Empty 3 #comfunc global IWbemQuery_SetLanguageFeatures 4 int,int,var #comfunc global IWbemQuery_TestLanguageFeatures 5 int,var,var #comfunc global IWbemQuery_Parse 6 wstr,wstr,int #comfunc global IWbemQuery_GetAnalysis 7 int,int,sptr #comfunc global IWbemQuery_FreeMemory 8 sptr #comfunc global IWbemQuery_GetQueryInfo 9 int,int,int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IWbemQuery "{81166F58-DD98-11D3-A120-00105A1F515A}" #usecom global IWbemQuery IID_IWbemQuery "{EAC8A024-21E2-4523-AD73-A71A0AA2F56A}" #comfunc global IWbemQuery_Empty 3 #comfunc global IWbemQuery_SetLanguageFeatures 4 int,int,sptr #comfunc global IWbemQuery_TestLanguageFeatures 5 int,sptr,sptr #comfunc global IWbemQuery_Parse 6 wstr,wstr,int #comfunc global IWbemQuery_GetAnalysis 7 int,int,sptr #comfunc global IWbemQuery_FreeMemory 8 sptr #comfunc global IWbemQuery_GetQueryInfo 9 int,int,int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。