ホーム › System.Search › IConditionFactory
IConditionFactory
COMメソッド 4
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT MakeNot(ICondition* pcSub, BOOL fSimplify, ICondition** ppcResult)
| pcSub | ICondition* | in | 否定の対象となる部分条件を表す ICondition へのポインタである。 |
| fSimplify | BOOL | in | 生成した条件を簡約する場合は TRUE を指定する。 |
| ppcResult | ICondition** | out | 生成された NOT 条件を表す ICondition を受け取る出力ポインタである。 |
vtbl 4 HRESULT MakeAndOr(CONDITION_TYPE ct, IEnumUnknown* peuSubs, BOOL fSimplify, ICondition** ppcResult)
| ct | CONDITION_TYPE | in | 生成する複合条件の種別(AND または OR)を示す CONDITION_TYPE 値を指定する。 |
| peuSubs | IEnumUnknown* | in | 複合条件を構成する部分条件群を列挙する IEnumUnknown へのポインタである。 |
| fSimplify | BOOL | in | 生成した条件を簡約する場合は TRUE を指定する。 |
| ppcResult | ICondition** | out | 生成された複合条件を表す ICondition を受け取る出力ポインタである。 |
vtbl 5 HRESULT MakeLeaf(LPWSTR pszPropertyName, CONDITION_OPERATION cop, LPWSTR pszValueType, PROPVARIANT* ppropvar, IRichChunk* pPropertyNameTerm, IRichChunk* pOperationTerm, IRichChunk* pValueTerm, BOOL fExpand, ICondition** ppcResult)
| pszPropertyName | LPWSTR | in | リーフ条件の対象となるプロパティ名を指定する。 |
| cop | CONDITION_OPERATION | in | プロパティと値を比較する演算子を示す CONDITION_OPERATION 値を指定する。 |
| pszValueType | LPWSTR | in | 比較値の型(意味型)を示す文字列を指定する。 |
| ppropvar | PROPVARIANT* | in | 比較する値を格納した PROPVARIANT へのポインタである。 |
| pPropertyNameTerm | IRichChunk* | in | プロパティ名に対応する入力文字列中の語句を表す IRichChunk へのポインタである。 |
| pOperationTerm | IRichChunk* | in | 演算子に対応する入力文字列中の語句を表す IRichChunk へのポインタである。 |
| pValueTerm | IRichChunk* | in | 値に対応する入力文字列中の語句を表す IRichChunk へのポインタである。 |
| fExpand | BOOL | in | 条件を展開して生成する場合は TRUE を指定する。 |
| ppcResult | ICondition** | out | 生成されたリーフ条件を表す ICondition を受け取る出力ポインタである。 |
vtbl 6 HRESULT Resolve(ICondition* pc, STRUCTURED_QUERY_RESOLVE_OPTION sqro, SYSTEMTIME* pstReferenceTime, ICondition** ppcResolved)
| pc | ICondition* | in | 解決対象となる条件ツリーを表す ICondition へのポインタである。 |
| sqro | STRUCTURED_QUERY_RESOLVE_OPTION | in | 条件の解決方法を制御する STRUCTURED_QUERY_RESOLVE_OPTION 値を指定する。 |
| pstReferenceTime | SYSTEMTIME* | inoptional | 相対的な日時表現を解決する際の基準時刻を示す SYSTEMTIME へのポインタである。 |
| ppcResolved | ICondition** | out | 解決後の条件ツリーを表す ICondition を受け取る出力ポインタである。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IConditionFactory "{A5EFE073-B16F-474F-9F3E-9F8B497A3E08}" #usecom global IConditionFactory IID_IConditionFactory "{E03E85B0-7BE3-4000-BA98-6C13DE9FA486}" #comfunc global IConditionFactory_MakeNot 3 sptr,int,sptr #comfunc global IConditionFactory_MakeAndOr 4 int,sptr,int,sptr #comfunc global IConditionFactory_MakeLeaf 5 wstr,int,wstr,var,sptr,sptr,sptr,int,sptr #comfunc global IConditionFactory_Resolve 6 sptr,int,var,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IConditionFactory "{A5EFE073-B16F-474F-9F3E-9F8B497A3E08}" #usecom global IConditionFactory IID_IConditionFactory "{E03E85B0-7BE3-4000-BA98-6C13DE9FA486}" #comfunc global IConditionFactory_MakeNot 3 sptr,int,sptr #comfunc global IConditionFactory_MakeAndOr 4 int,sptr,int,sptr #comfunc global IConditionFactory_MakeLeaf 5 wstr,int,wstr,sptr,sptr,sptr,sptr,int,sptr #comfunc global IConditionFactory_Resolve 6 sptr,int,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。