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

ISimilarityFileIdTable

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

公式ドキュメント

類似性ファイル ID 情報を格納および取得するためのメソッドを定義します。

メソッド 7

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

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

類似性ファイル ID テーブルを作成または開きます。

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

戻り値

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

解説(Remarks)

既存のテーブルを開く場合、テーブルは有効でなければならず、recordSize パラメーターの値は既存テーブルのレコードサイズと一致しなければなりません。そうでない場合、truncate パラメーターに FALSE を指定していても、既存テーブルは上書きされます。

vtbl 4 HRESULT CreateTableIndirect(IRdcFileWriter* fileIdFile, BOOL truncate, DWORD recordSize, RdcCreatedTables* isNew)

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

fileIdFileIRdcFileWriter*inファイル ID テーブルをファイルに書き込むように初期化された IRdcFileWriter インターフェースポインター。
truncateBOOLin新しい類似性ファイル ID テーブルを常に作成または切り詰める場合は TRUEFALSE を指定した場合、テーブルが存在して有効であれば使用されることがあります。それ以外の場合、テーブルが有効でないか存在しないときは、既存のテーブルが上書きされます。
recordSizeDWORDin類似性ファイル ID テーブルに格納されるファイル ID のサイズ (バイト単位)。すべてのファイル ID は同じサイズでなければなりません。有効な範囲は SimilarityFileIdMinSize から SimilarityFileIdMaxSize までです。既存の類似性ファイル ID テーブルを開く場合、このパラメーターの値は既存テーブルのファイル ID サイズと一致しなければなりません。一致しない場合、既存テーブルは有効でないと見なされ、上書きされます。
isNewRdcCreatedTables*out類似性ファイル ID テーブルの状態を表す RdcCreatedTables 列挙値を受け取る変数へのポインター。新しいテーブルが作成された場合、この変数は RDCTABLE_New を受け取ります。既存のテーブルが使用された場合、この変数は RDCTABLE_Existing を受け取ります。このメソッドが失敗した場合、この変数は RDCTABLE_InvalidOrUnknown を受け取ります。

戻り値

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

解説(Remarks)

既存のテーブルを開く場合、テーブルは有効でなければならず、recordSize パラメーターの値は既存テーブルのレコードサイズと一致しなければなりません。そうでない場合、truncate パラメーターに FALSE を指定していても、既存テーブルは上書きされます。

vtbl 5 HRESULT CloseTable(BOOL isValid)

類似性ファイル ID テーブルを閉じます。

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

戻り値

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

解説(Remarks)

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

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

vtbl 6 HRESULT Append(SimilarityFileId* similarityFileId, DWORD* similarityFileIndex)

ファイル ID を類似性ファイル ID テーブルに追加します。

similarityFileIdSimilarityFileId*in類似性ファイル ID テーブルに追加するファイル ID。
similarityFileIndexDWORD*out類似性ファイル ID テーブル内のファイル ID のエントリのファイルインデックスを受け取る変数へのポインター。

戻り値

成功した場合は S_OK を、失敗した場合はエラーを示す HRESULT を返します。

このメソッドは、次のエラーコードを返すこともあります。

解説(Remarks)

Append メソッドが失敗した場合、類似性ファイル ID テーブルは破損としてマークされ、再構築する必要があります。

vtbl 7 HRESULT Lookup(DWORD similarityFileIndex, SimilarityFileId* similarityFileId)

類似性ファイル ID テーブル内の指定されたファイルインデックスに対応するファイル ID を取得します。

similarityFileIndexDWORDinISimilarityFileIdTable::Append メソッドによってファイル ID に対して以前に返されたファイルインデックス。
similarityFileIdSimilarityFileId*outファイル ID を受け取る変数へのポインター。ファイルが無効としてマークされている場合、ファイル ID にはゼロが格納されます。

戻り値

成功した場合は S_OK を、失敗した場合はエラーを示す HRESULT を返します。

このメソッドは、次のエラーコードを返すこともあります。

vtbl 8 HRESULT Invalidate(DWORD similarityFileIndex)

類似性ファイル ID テーブル内のファイル ID を無効としてマークします。

similarityFileIndexDWORDin類似性ファイル ID テーブル内のファイル ID のエントリのインデックス。

戻り値

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

解説(Remarks)

ファイル ID は、対応する SimilarityFileId 構造体の内容をすべてゼロに設定することで、無効としてマークされます。無効としてマークされたファイル ID は、ISimilarity::FindSimilarFileId メソッドによって返される結果には含まれません。

vtbl 9 HRESULT GetRecordCount(DWORD* recordCount)

類似性ファイル ID テーブルに格納されているレコードの数を取得します。

recordCountDWORD*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_ISimilarityFileIdTable "{96236A7F-9DBC-11DA-9E3F-0011114AE311}"
#usecom global ISimilarityFileIdTable IID_ISimilarityFileIdTable "{}"
#comfunc global ISimilarityFileIdTable_CreateTable          3 wstr,int,var,int,var
#comfunc global ISimilarityFileIdTable_CreateTableIndirect  4 sptr,int,int,var
#comfunc global ISimilarityFileIdTable_CloseTable           5 int
#comfunc global ISimilarityFileIdTable_Append               6 var,var
#comfunc global ISimilarityFileIdTable_Lookup               7 int,var
#comfunc global ISimilarityFileIdTable_Invalidate           8 int
#comfunc global ISimilarityFileIdTable_GetRecordCount       9 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。