IWbemQuery
COM公式ドキュメント
WMI クエリ言語 (WQL) のクエリを解析するためのエントリポイントを提供します。
メソッド 7
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
IWbemQuery::Empty メソッドは、パーサーが保持しているメモリを解放します。
戻り値
このメソッドは、メソッド呼び出しの状態を示す HRESULT を返します。
| uFlags | DWORD | in | 言語機能設定の動作を制御するフラグを指定する。 |
| uArraySize | DWORD | in | puFeatures 配列の要素数を指定する。 |
| puFeatures | DWORD* | in | 設定する言語機能識別子の配列へのポインタである。 |
| uFlags | DWORD | in | 言語機能テストの動作を制御するフラグを指定する。 |
| uArraySize | DWORD* | inout | puFeatures 配列の容量を渡し、実際にサポートされている機能の個数を受け取る入出力である。 |
| puFeatures | DWORD* | out | サポートされている言語機能識別子を受け取る配列へのポインタである。 |
クエリ文字列を解析します。
| pszLang | LPWSTR | in | クエリの言語。"WQL" または "SQL" のいずれか (大文字と小文字を区別) である必要があります。それ以外の値を指定すると、メソッドは失敗し、WBEM_E_INVALID_PARAMETER が返されます。 |
| pszQuery | LPWSTR | in | 有効な WQL または SQL の WMI クエリ。 |
| uFlags | DWORD | in | 将来の使用のために予約されています。0 (ゼロ) である必要があります。 |
戻り値
このメソッドは、メソッド呼び出しの状態を示す HRESULT を返します。
クエリの解析が成功した結果を取得します。
| uAnalysisType | DWORD | in | 取得する解析の種類。 WMIQ_ANALYSIS_RPN_SEQUENCE (1)クエリに SELECT 句がある場合に使用します。この種類の解析を使用すると、pAnalysis は SWbemRpnEncodedQuery 構造体を指します。 WMIQ_ANALYSIS_ASSOC_QUERY (2)関連付け (association) 型のクエリに関する情報を返すために使用します。この種類の解析を使用すると、pAnalysis は SWbemAssocQueryInf 構造体を指します。 WMIQ_ANALYSIS_PROP_ANALYSIS_MATRIX (3)未使用です。将来の使用のために予約されています。 WMIQ_ANALYSIS_QUERY_TEXT (4)元のクエリテキストを含むテキスト文字列を返すために使用します。この種類の解析を使用すると、pAnalysis は元のクエリテキストを含むテキスト文字列を指します。 このパラメーターは、パーサーオブジェクトを別のメソッドに渡す場合に使用できます。 |
| uFlags | DWORD | in | 将来の使用のために予約されています。 |
| pAnalysis | void** | out | IWbemQuery::GetAnalysis の呼び出しによって生成された解析結果へのポインター。 IWbemQuery::FreeMemory を呼び出して、このメモリを解放することが重要です。 |
戻り値
このメソッドは、メソッド呼び出しの状態を示す HRESULT を返します。
IWbemQuery::FreeMemory メソッドは、直前の GetAnalysis の呼び出しでパーサーが呼び出し元に返したメモリを解放します。
| pMem | void* | in | 解放するメモリへのポインター。 |
戻り値
このメソッドは、メソッド呼び出しの状態を示す HRESULT を返します。
| uAnalysisType | DWORD | in | 対象とする解析の種類を指定する。 |
| uInfoId | DWORD | in | 取得する情報項目の識別子を指定する。 |
| uBufSize | DWORD | in | pDestBuf バッファのサイズをバイト単位で指定する。 |
| pDestBuf | void* | out | 取得した情報を格納する出力バッファへのポインタである。 |
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
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 指定が可能。