ホーム › System.Search › ICondition
ICondition
COMメソッド 7
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 8 HRESULT GetConditionType(CONDITION_TYPE* pNodeType)
| pNodeType | CONDITION_TYPE* | out | この条件ノードの種類(AND、OR、NOT、リーフなど)を表す CONDITION_TYPE を受け取る。 |
vtbl 9 HRESULT GetSubConditions(GUID* riid, void** ppv)
| riid | GUID* | in | 取得するサブ条件コレクションのインターフェイスを識別する GUID を指定する。 |
| ppv | void** | out | riid で要求したインターフェイスへのポインタを受け取る。 |
vtbl 10 HRESULT GetComparisonInfo(LPWSTR* ppszPropertyName, CONDITION_OPERATION* pcop, PROPVARIANT* ppropvar)
| ppszPropertyName | LPWSTR* | outoptional | 比較対象となるプロパティ名を表す文字列へのポインタを受け取る。 |
| pcop | CONDITION_OPERATION* | outoptional | 比較に用いられる演算子(等価、より大きい、含むなど)を表す CONDITION_OPERATION を受け取る。 |
| ppropvar | PROPVARIANT* | outoptional | 比較対象の値を保持する PROPVARIANT を受け取る。 |
| ppszValueTypeName | LPWSTR* | out | 条件の値の意味的な型を表す文字列へのポインタを受け取る。 |
| ppszNormalization | LPWSTR* | out | 条件の値を正規化した表現を表す文字列へのポインタを受け取る。 |
vtbl 13 HRESULT GetInputTerms(IRichChunk** ppPropertyTerm, IRichChunk** ppOperationTerm, IRichChunk** ppValueTerm)
| ppPropertyTerm | IRichChunk** | outoptional | 元の入力文字列中でプロパティを表す部分に対応するリッチチャンク(IRichChunk)へのポインタを受け取る。 |
| ppOperationTerm | IRichChunk** | outoptional | 元の入力文字列中で演算子を表す部分に対応するリッチチャンク(IRichChunk)へのポインタを受け取る。 |
| ppValueTerm | IRichChunk** | outoptional | 元の入力文字列中で値を表す部分に対応するリッチチャンク(IRichChunk)へのポインタを受け取る。 |
vtbl 14 HRESULT Clone(ICondition** ppc)
| ppc | ICondition** | 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 指定が可能。#define global IID_ICondition "{0FC988D4-C935-4B97-A973-46282EA175C8}" #usecom global ICondition IID_ICondition "{}" #comfunc global ICondition_GetConditionType 8 sptr #comfunc global ICondition_GetSubConditions 9 sptr,sptr #comfunc global ICondition_GetComparisonInfo 10 sptr,sptr,sptr #comfunc global ICondition_GetValueType 11 sptr #comfunc global ICondition_GetValueNormalization 12 sptr #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が無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。