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

IWbemQuery

COM
IID81166f58-dd98-11d3-a120-00105a1f515a継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

WMI クエリ言語 (WQL) のクエリを解析するためのエントリポイントを提供します。

メソッド 7

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

vtbl 3 HRESULT Empty()

IWbemQuery::Empty メソッドは、パーサーが保持しているメモリを解放します。

戻り値

このメソッドは、メソッド呼び出しの状態を示す HRESULT を返します。

vtbl 4 HRESULT SetLanguageFeatures(DWORD uFlags, DWORD uArraySize, DWORD* puFeatures)
uFlagsDWORDin言語機能設定の動作を制御するフラグを指定する。
uArraySizeDWORDinpuFeatures 配列の要素数を指定する。
puFeaturesDWORD*in設定する言語機能識別子の配列へのポインタである。
vtbl 5 HRESULT TestLanguageFeatures(DWORD uFlags, DWORD* uArraySize, DWORD* puFeatures)
uFlagsDWORDin言語機能テストの動作を制御するフラグを指定する。
uArraySizeDWORD*inoutpuFeatures 配列の容量を渡し、実際にサポートされている機能の個数を受け取る入出力である。
puFeaturesDWORD*outサポートされている言語機能識別子を受け取る配列へのポインタである。
vtbl 6 HRESULT Parse(LPWSTR pszLang, LPWSTR pszQuery, DWORD uFlags)

クエリ文字列を解析します。

pszLangLPWSTRinクエリの言語。"WQL" または "SQL" のいずれか (大文字と小文字を区別) である必要があります。それ以外の値を指定すると、メソッドは失敗し、WBEM_E_INVALID_PARAMETER が返されます。
pszQueryLPWSTRin有効な WQL または SQL の WMI クエリ。
uFlagsDWORDin将来の使用のために予約されています。0 (ゼロ) である必要があります。

戻り値

このメソッドは、メソッド呼び出しの状態を示す HRESULT を返します。

vtbl 7 HRESULT GetAnalysis(DWORD uAnalysisType, DWORD uFlags, void** pAnalysis)

クエリの解析が成功した結果を取得します。

uAnalysisTypeDWORDin

取得する解析の種類。

WMIQ_ANALYSIS_RPN_SEQUENCE (1)

クエリに SELECT 句がある場合に使用します。この種類の解析を使用すると、pAnalysisSWbemRpnEncodedQuery 構造体を指します。

WMIQ_ANALYSIS_ASSOC_QUERY (2)

関連付け (association) 型のクエリに関する情報を返すために使用します。この種類の解析を使用すると、pAnalysisSWbemAssocQueryInf 構造体を指します。

WMIQ_ANALYSIS_PROP_ANALYSIS_MATRIX (3)

未使用です。将来の使用のために予約されています。

WMIQ_ANALYSIS_QUERY_TEXT (4)

元のクエリテキストを含むテキスト文字列を返すために使用します。この種類の解析を使用すると、pAnalysis は元のクエリテキストを含むテキスト文字列を指します。

このパラメーターは、パーサーオブジェクトを別のメソッドに渡す場合に使用できます。

uFlagsDWORDin将来の使用のために予約されています。
pAnalysisvoid**outIWbemQuery::GetAnalysis の呼び出しによって生成された解析結果へのポインター。 IWbemQuery::FreeMemory を呼び出して、このメモリを解放することが重要です。

戻り値

このメソッドは、メソッド呼び出しの状態を示す HRESULT を返します。

vtbl 8 HRESULT FreeMemory(void* pMem)

IWbemQuery::FreeMemory メソッドは、直前の GetAnalysis の呼び出しでパーサーが呼び出し元に返したメモリを解放します。

pMemvoid*in解放するメモリへのポインター。

戻り値

このメソッドは、メソッド呼び出しの状態を示す HRESULT を返します。

vtbl 9 HRESULT GetQueryInfo(DWORD uAnalysisType, DWORD uInfoId, DWORD uBufSize, void* pDestBuf)
uAnalysisTypeDWORDin対象とする解析の種類を指定する。
uInfoIdDWORDin取得する情報項目の識別子を指定する。
uBufSizeDWORDinpDestBuf バッファのサイズをバイト単位で指定する。
pDestBufvoid*out取得した情報を格納する出力バッファへのポインタである。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
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 指定が可能。