Win32 API 日本語リファレンス
ホームNetworking.RemoteDifferentialCompression › ISimilarityTraitsTable

ISimilarityTraitsTable

COM
IID96236a7e-9dbc-11da-9e3f-0011114ae311継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

ファイルごとの類似性データを格納し、類似性の検索を実行するためのメソッドを定義します。

メソッド 7

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

vtbl 3 HRESULT CreateTable(LPWSTR path, BOOL truncate, BYTE* securityDescriptor, RdcCreatedTables* isNew)

類似性トレイトテーブルを作成または開きます。

pathLPWSTRin類似性トレイトテーブルを格納するファイルの名前を指定する、null で終わる文字列へのポインター。代替ストリーム名 ":Traits" がこのファイル名の末尾に付加されます。詳細については、Naming a File を参照してください。
truncateBOOLin新しい類似性トレイトテーブルを常に作成または切り詰める場合は TRUEFALSE を指定し、テーブルが存在して有効な場合は、それが使用されることがあります。それ以外の場合、テーブルが有効でないか存在しないときは、既存のテーブルが上書きされます。
securityDescriptorBYTE*inファイルを開くときに使用するセキュリティ記述子へのポインター。このパラメーターが NULL の場合、ファイルには既定のセキュリティ記述子が割り当てられます。ファイルの既定のセキュリティ記述子内のアクセス制御リスト (ACL) は、ファイルの親ディレクトリから継承されます。詳細については、CreateFile 関数の lpSecurityAttributes パラメーターを参照してください。
isNewRdcCreatedTables*out類似性トレイトテーブルの状態を示す RdcCreatedTables 列挙値を受け取る変数へのポインター。新しいテーブルが作成された場合、この変数は RDCTABLE_New を受け取ります。既存のテーブルが使用された場合、この変数は RDCTABLE_Existing を受け取ります。このメソッドが失敗した場合、この変数は RDCTABLE_InvalidOrUnknown を受け取ります。

戻り値

このメソッドが成功した場合、S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

既存の類似性トレイトテーブルを開く場合、テーブルは有効でなければなりません。そうでない場合、truncate パラメーターに FALSE を指定していても、既存のテーブルは上書きされます。

vtbl 4 HRESULT CreateTableIndirect(ISimilarityTraitsMapping* mapping, BOOL truncate, RdcCreatedTables* isNew)

RDC アプリケーションによる ISimilarityTraitsMapping インターフェイスの実装を使用して、類似性トレイトテーブルを作成または開きます。

mappingISimilarityTraitsMapping*in類似性トレイトテーブルをファイルに書き込むために初期化された ISimilarityTraitsMapping インターフェイスポインター。
truncateBOOLin新しい類似性トレイトテーブルを常に作成または切り詰める場合は TRUEFALSE を指定し、テーブルが存在して有効な場合は、それが使用されることがあります。それ以外の場合、テーブルが有効でないか存在しないときは、既存のテーブルが上書きされます。
isNewRdcCreatedTables*out類似性トレイトテーブルの状態を示す RdcCreatedTables 列挙値を受け取る変数へのポインター。新しいテーブルが作成された場合、この変数は RDCTABLE_New を受け取ります。既存のテーブルが使用された場合、この変数は RDCTABLE_Existing を受け取ります。このメソッドが失敗した場合、この変数は RDCTABLE_InvalidOrUnknown を受け取ります。

戻り値

このメソッドが成功した場合、S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

既存の類似性トレイトテーブルを開く場合、テーブルは有効でなければなりません。そうでない場合、truncate パラメーターに FALSE を指定していても、既存のテーブルは上書きされます。

vtbl 5 HRESULT CloseTable(BOOL isValid)

類似性トレイトテーブルを閉じます。

isValidBOOLin類似性トレイトテーブルを閉じるときに削除する場合は FALSE。それ以外の場合は TRUE

戻り値

このメソッドが成功した場合、S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

isValid パラメーターに FALSE を指定した場合、削除されるのはテーブルのみで、類似性ファイルは削除されません。類似性ファイルの削除は呼び出し元の責任です。

CloseTable メソッドが戻るとき、このメソッドがエラーコードを返す場合でも、テーブルは常に閉じられます。

vtbl 6 HRESULT Append(SimilarityData* data, DWORD fileIndex)

SimilarityData 構造体を類似性トレイトテーブルに追加します。

dataSimilarityData*in類似性トレイトテーブルに追加する SimilarityData 構造体。
fileIndexDWORDinSimilarityData 構造体を挿入する、類似性トレイトテーブル内のインデックス。

戻り値

このメソッドが成功した場合、S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

アプリケーションは、ゼロより大きく、常に増加する fileIndex 値を指定する必要があります。そうでない場合、このメソッドは E_INVALIDARG エラーコードを返します。

vtbl 7 HRESULT FindSimilarFileIndex(SimilarityData* similarityData, WORD numberOfMatchesRequired, FindSimilarFileIndexResults* findSimilarFileIndexResults, DWORD resultsSize, DWORD* resultsUsed)

指定したファイルに類似するファイルの一覧を返します。一覧内の結果は、最も類似するファイルを先頭として、類似性の順に並べ替えられます。

similarityDataSimilarityData*inファイルの類似性情報を格納する SimilarityData 構造体へのポインター。
numberOfMatchesRequiredWORDin未定。
findSimilarFileIndexResultsFindSimilarFileIndexResults*out要求された情報を格納する FindSimilarFileIndexResults 構造体の配列を受け取るバッファーへのポインター。
resultsSizeDWORDinfindSimilarFileIndexResults パラメーターが指すバッファーに格納できる FindSimilarFileIndexResults 構造体の数。
resultsUsedDWORD*outfindSimilarFileIndexResults パラメーターが指すバッファーに返された FindSimilarFileIndexResults 構造体の数。

戻り値

このメソッドが成功した場合、S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

findSimilarFileIndexResults パラメーターで返されるファイルの一覧には、削除済みのファイルが含まれることがあります。

vtbl 8 HRESULT BeginDump(ISimilarityTableDumpState** similarityTableDumpState)

類似性トレイトテーブルから類似性データを取得します。

similarityTableDumpStateISimilarityTableDumpState**out返される ISimilarityTableDumpState インターフェイスポインターを受け取る場所への省略可能なポインター。呼び出し元は、このインターフェイスが不要になったら解放する必要があります。

戻り値

このメソッドが成功した場合、S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

BeginDump メソッドは、デバッグとガベージコレクションに使用されます。これは、アプリケーションが類似性トレイトテーブル内のすべてのエントリを効率的にダンプできるようにするイテレーターオブジェクトへのインターフェイスポインターを返します。

vtbl 9 HRESULT GetLastIndex(DWORD* fileIndex)

類似性トレイトテーブルに格納された最後のエントリのインデックスを取得します。

fileIndexDWORD*out最後のエントリのインデックスを受け取る変数へのポインター。

戻り値

このメソッドが成功した場合、S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

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

出力引数:
#define global IID_ISimilarityTraitsTable "{96236A7E-9DBC-11DA-9E3F-0011114AE311}"
#usecom global ISimilarityTraitsTable IID_ISimilarityTraitsTable "{}"
#comfunc global ISimilarityTraitsTable_CreateTable           3 wstr,int,var,var
#comfunc global ISimilarityTraitsTable_CreateTableIndirect   4 sptr,int,var
#comfunc global ISimilarityTraitsTable_CloseTable            5 int
#comfunc global ISimilarityTraitsTable_Append                6 var,int
#comfunc global ISimilarityTraitsTable_FindSimilarFileIndex  7 var,int,var,int,var
#comfunc global ISimilarityTraitsTable_BeginDump             8 sptr
#comfunc global ISimilarityTraitsTable_GetLastIndex          9 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。