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

ICondition

COM
IID0fc988d4-c935-4b97-a973-46282ea175c8継承元IPersistStream自前メソッド開始 vtbl8

メソッド 7

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

vtbl 8 HRESULT GetConditionType(CONDITION_TYPE* pNodeType)
pNodeTypeCONDITION_TYPE*outこの条件ノードの種類(AND、OR、NOT、リーフなど)を表す CONDITION_TYPE を受け取る。
vtbl 9 HRESULT GetSubConditions(GUID* riid, void** ppv)
riidGUID*in取得するサブ条件コレクションのインターフェイスを識別する GUID を指定する。
ppvvoid**outriid で要求したインターフェイスへのポインタを受け取る。
vtbl 10 HRESULT GetComparisonInfo(LPWSTR* ppszPropertyName, CONDITION_OPERATION* pcop, PROPVARIANT* ppropvar)
ppszPropertyNameLPWSTR*outoptional比較対象となるプロパティ名を表す文字列へのポインタを受け取る。
pcopCONDITION_OPERATION*outoptional比較に用いられる演算子(等価、より大きい、含むなど)を表す CONDITION_OPERATION を受け取る。
ppropvarPROPVARIANT*outoptional比較対象の値を保持する PROPVARIANT を受け取る。
vtbl 11 HRESULT GetValueType(LPWSTR* ppszValueTypeName)
ppszValueTypeNameLPWSTR*out条件の値の意味的な型を表す文字列へのポインタを受け取る。
vtbl 12 HRESULT GetValueNormalization(LPWSTR* ppszNormalization)
ppszNormalizationLPWSTR*out条件の値を正規化した表現を表す文字列へのポインタを受け取る。
vtbl 13 HRESULT GetInputTerms(IRichChunk** ppPropertyTerm, IRichChunk** ppOperationTerm, IRichChunk** ppValueTerm)
ppPropertyTermIRichChunk**outoptional元の入力文字列中でプロパティを表す部分に対応するリッチチャンク(IRichChunk)へのポインタを受け取る。
ppOperationTermIRichChunk**outoptional元の入力文字列中で演算子を表す部分に対応するリッチチャンク(IRichChunk)へのポインタを受け取る。
ppValueTermIRichChunk**outoptional元の入力文字列中で値を表す部分に対応するリッチチャンク(IRichChunk)へのポインタを受け取る。
vtbl 14 HRESULT Clone(ICondition** ppc)
ppcICondition**outこの条件ツリーの複製(ディープコピー)である条件オブジェクト(ICondition)へのポインタを受け取る。

HSP用 COM定義

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

出力引数:
#define global IID_ICondition "{0FC988D4-C935-4B97-A973-46282EA175C8}"
#usecom global ICondition IID_ICondition "{}"
#comfunc global ICondition_GetConditionType       8 var
#comfunc global ICondition_GetSubConditions       9 var,sptr
#comfunc global ICondition_GetComparisonInfo      10 var,var,var
#comfunc global ICondition_GetValueType           11 var
#comfunc global ICondition_GetValueNormalization  12 var
#comfunc global ICondition_GetInputTerms          13 sptr,sptr,sptr
#comfunc global ICondition_Clone                  14 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。