IWMPQuery
COMIDispatch (デュアル)comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
IWMPQuery インターフェイスは複合クエリを表します。
メソッド 2
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
addCondition メソッドは、AND 論理を使用して複合クエリに条件を追加します。
| bstrAttribute | LPWSTR | in | 属性名を格納する文字列。 |
| bstrOperator | LPWSTR | in | 演算子を格納する文字列。サポートされる値については「解説」を参照してください。 |
| bstrValue | LPWSTR | in | 属性値を格納する文字列。 |
戻り値
このメソッドは HRESULT を返します。指定できる値には次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
複合クエリに含まれる条件は、条件グループに編成されます。1 つの条件グループ内の複数の条件は、常に AND 論理を使用して連結されます。条件グループどうしは、常に OR 論理を使用して連結されます。新しい条件グループを開始するには、IWMPQuery::beginNextGroup を呼び出します。
IWMPQuery を使用する複合クエリでは、大文字と小文字は区別されません。
bstrAttribute パラメーターに指定できる値の一覧は、Alphabetical Attribute Reference セクションで確認できます。
次の表は、bstrOperator でサポートされる値を示します。
| 文字列 | 適用対象 |
|---|---|
| BeginsWith | 文字列 |
| Contains | 文字列 |
| Equals | すべての型 |
| GreaterThan | 数値、日付 |
| GreaterThanOrEquals | 数値、日付 |
| LessThan | 数値、日付 |
| LessThanOrEquals | 数値、日付 |
| NotBeginsWith | 文字列 |
| NotContains | 文字列 |
| NotEquals | すべての型 |
Windows Media Player 10 Mobile: このメソッドはサポートされていません。
beginNextGroup メソッドは、新しい条件グループを開始します。
戻り値
このメソッドは HRESULT を返します。指定できる値には次の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
新しい条件グループを開始することは、現在の条件グループを完了したことを意味します。新しい条件グループは、常に OR 論理を使用して前の条件グループに連結されます。
Windows Media Player 10 Mobile: このメソッドはサポートされていません。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IWMPQuery "{A00918F3-A6B0-4BFB-9189-FD834C7BC5A5}"
#usecom global IWMPQuery IID_IWMPQuery "{}"
#comfunc global IWMPQuery_addCondition 7 wstr,wstr,wstr
#comfunc global IWMPQuery_beginNextGroup 8
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。