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

ICommandCost

COM
IID0c733a4e-2a1c-11ce-ade5-00aa0044773d継承元IUnknown自前メソッド開始 vtbl3

メソッド 6

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

vtbl 3 HRESULT GetAccumulatedCost(LPWSTR pwszRowsetName, DWORD* pcCostLimits, DBCOST** prgCostLimits)
pwszRowsetNameLPWSTRin対象の行セット名を指定する。コマンド全体を対象とする場合は NULL を指定する。
pcCostLimitsDWORD*inout返されるコスト項目の個数を受け取るポインタである。
prgCostLimitsDBCOST**out累積コストを記述する DBCOST 構造体配列を受け取るポインタである。
vtbl 4 HRESULT GetCostEstimate(LPWSTR pwszRowsetName, DWORD* pcCostEstimates, DBCOST* prgCostEstimates)
pwszRowsetNameLPWSTRin対象の行セット名を指定する。コマンド全体を対象とする場合は NULL を指定する。
pcCostEstimatesDWORD*out返されるコスト見積もり項目の個数を受け取るポインタである。
prgCostEstimatesDBCOST*outコスト見積もりを記述する DBCOST 構造体配列へのポインタである。
vtbl 5 HRESULT GetCostGoals(LPWSTR pwszRowsetName, DWORD* pcCostGoals, DBCOST* prgCostGoals)
pwszRowsetNameLPWSTRin対象の行セット名を指定する。コマンド全体を対象とする場合は NULL を指定する。
pcCostGoalsDWORD*out返されるコスト目標項目の個数を受け取るポインタである。
prgCostGoalsDBCOST*out設定されているコスト目標を記述する DBCOST 構造体配列へのポインタである。
vtbl 6 HRESULT GetCostLimits(LPWSTR pwszRowsetName, DWORD* pcCostLimits, DBCOST* prgCostLimits)
pwszRowsetNameLPWSTRin対象の行セット名を指定する。コマンド全体を対象とする場合は NULL を指定する。
pcCostLimitsDWORD*out返されるコスト上限項目の個数を受け取るポインタである。
prgCostLimitsDBCOST*out設定されているコスト上限を記述する DBCOST 構造体配列へのポインタである。
vtbl 7 HRESULT SetCostGoals(LPWSTR pwszRowsetName, DWORD cCostGoals, DBCOST* rgCostGoals)
pwszRowsetNameLPWSTRin対象の行セット名を指定する。コマンド全体を対象とする場合は NULL を指定する。
cCostGoalsDWORDinrgCostGoals に含まれるコスト目標項目の個数を指定する。
rgCostGoalsDBCOST*in設定するコスト目標を記述する DBCOST 構造体配列へのポインタである。
vtbl 8 HRESULT SetCostLimits(LPWSTR pwszRowsetName, DWORD cCostLimits, DBCOST* prgCostLimits, DWORD dwExecutionFlags)
pwszRowsetNameLPWSTRin対象の行セット名を指定する。コマンド全体を対象とする場合は NULL を指定する。
cCostLimitsDWORDinprgCostLimits に含まれるコスト上限項目の個数を指定する。
prgCostLimitsDBCOST*in設定するコスト上限を記述する DBCOST 構造体配列へのポインタである。
dwExecutionFlagsDWORDinコスト上限の適用方法など実行時の動作を制御するフラグを指定する。

HSP用 COM定義

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

出力引数:
#define global IID_ICommandCost "{0C733A4E-2A1C-11CE-ADE5-00AA0044773D}"
#usecom global ICommandCost IID_ICommandCost "{}"
#comfunc global ICommandCost_GetAccumulatedCost  3 wstr,var,var
#comfunc global ICommandCost_GetCostEstimate     4 wstr,var,var
#comfunc global ICommandCost_GetCostGoals        5 wstr,var,var
#comfunc global ICommandCost_GetCostLimits       6 wstr,var,var
#comfunc global ICommandCost_SetCostGoals        7 wstr,int,var
#comfunc global ICommandCost_SetCostLimits       8 wstr,int,var,int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。