Win32 API 日本語リファレンス
ホームMedia.DirectShow.Tv › IBDAComparable

IBDAComparable

COM
IIDb34505e0-2f0e-497b-80bc-d43f3b24ed7f継承元IUnknown自前メソッド開始 vtbl3

メソッド 6

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

vtbl 3 HRESULT CompareExact(IDispatch* CompareTo, INT* Result)
CompareToIDispatch*in比較対象オブジェクトのIDispatchポインタ。
ResultINT*out比較結果を受け取るINT出力。負/0/正で大小関係を示す。
vtbl 4 HRESULT CompareEquivalent(IDispatch* CompareTo, DWORD dwFlags, INT* Result)
CompareToIDispatch*in等価性を比較する対象オブジェクトのIDispatchポインタ。
dwFlagsDWORDin比較方法を制御するフラグ。等価判定の条件を指定する。
ResultINT*out等価比較結果を受け取るINT出力。負/0/正で大小関係を示す。
vtbl 5 HRESULT HashExact(LONGLONG* Result)
ResultLONGLONG*out厳密一致用に算出したハッシュ値を受け取るLONGLONG出力。
vtbl 6 HRESULT HashExactIncremental(LONGLONG PartialResult, LONGLONG* Result)
PartialResultLONGLONGinこれまでに算出した部分ハッシュ値。連鎖計算の入力LONGLONG。
ResultLONGLONG*out部分値に本オブジェクトを加味した累積ハッシュを受け取るLONGLONG出力。
vtbl 7 HRESULT HashEquivalent(DWORD dwFlags, LONGLONG* Result)
dwFlagsDWORDin等価ハッシュの算出方法を制御するフラグ。
ResultLONGLONG*out等価判定用ハッシュ値を受け取るLONGLONG出力。
vtbl 8 HRESULT HashEquivalentIncremental(LONGLONG PartialResult, DWORD dwFlags, LONGLONG* Result)
PartialResultLONGLONGinこれまでの部分等価ハッシュ値。連鎖計算の入力LONGLONG。
dwFlagsDWORDin等価ハッシュの算出方法を制御するフラグ。
ResultLONGLONG*out累積した等価ハッシュ値を受け取るLONGLONG出力。

HSP用 COM定義

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

出力引数:
#define global IID_IBDAComparable "{B34505E0-2F0E-497B-80BC-D43F3B24ED7F}"
#usecom global IBDAComparable IID_IBDAComparable "{}"
#comfunc global IBDAComparable_CompareExact               3 sptr,var
#comfunc global IBDAComparable_CompareEquivalent          4 sptr,int,var
#comfunc global IBDAComparable_HashExact                  5 var
#comfunc global IBDAComparable_HashExactIncremental       6 int64,var
#comfunc global IBDAComparable_HashEquivalent             7 int,var
#comfunc global IBDAComparable_HashEquivalentIncremental  8 int64,int,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。