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

IConditionFactory

COM
IIDa5efe073-b16f-474f-9f3e-9f8b497a3e08継承元IUnknown自前メソッド開始 vtbl3

メソッド 4

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

vtbl 3 HRESULT MakeNot(ICondition* pcSub, BOOL fSimplify, ICondition** ppcResult)
pcSubICondition*in否定の対象となる部分条件を表す ICondition へのポインタである。
fSimplifyBOOLin生成した条件を簡約する場合は TRUE を指定する。
ppcResultICondition**out生成された NOT 条件を表す ICondition を受け取る出力ポインタである。
vtbl 4 HRESULT MakeAndOr(CONDITION_TYPE ct, IEnumUnknown* peuSubs, BOOL fSimplify, ICondition** ppcResult)
ctCONDITION_TYPEin生成する複合条件の種別(AND または OR)を示す CONDITION_TYPE 値を指定する。
peuSubsIEnumUnknown*in複合条件を構成する部分条件群を列挙する IEnumUnknown へのポインタである。
fSimplifyBOOLin生成した条件を簡約する場合は TRUE を指定する。
ppcResultICondition**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)
pszPropertyNameLPWSTRinリーフ条件の対象となるプロパティ名を指定する。
copCONDITION_OPERATIONinプロパティと値を比較する演算子を示す CONDITION_OPERATION 値を指定する。
pszValueTypeLPWSTRin比較値の型(意味型)を示す文字列を指定する。
ppropvarPROPVARIANT*in比較する値を格納した PROPVARIANT へのポインタである。
pPropertyNameTermIRichChunk*inプロパティ名に対応する入力文字列中の語句を表す IRichChunk へのポインタである。
pOperationTermIRichChunk*in演算子に対応する入力文字列中の語句を表す IRichChunk へのポインタである。
pValueTermIRichChunk*in値に対応する入力文字列中の語句を表す IRichChunk へのポインタである。
fExpandBOOLin条件を展開して生成する場合は TRUE を指定する。
ppcResultICondition**out生成されたリーフ条件を表す ICondition を受け取る出力ポインタである。
vtbl 6 HRESULT Resolve(ICondition* pc, STRUCTURED_QUERY_RESOLVE_OPTION sqro, SYSTEMTIME* pstReferenceTime, ICondition** ppcResolved)
pcICondition*in解決対象となる条件ツリーを表す ICondition へのポインタである。
sqroSTRUCTURED_QUERY_RESOLVE_OPTIONin条件の解決方法を制御する STRUCTURED_QUERY_RESOLVE_OPTION 値を指定する。
pstReferenceTimeSYSTEMTIME*inoptional相対的な日時表現を解決する際の基準時刻を示す SYSTEMTIME へのポインタである。
ppcResolvedICondition**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 指定が可能。