IFileSyncProvider::Initialize
同期するフォルダーとその他の設定に基づく IFileSyncProvider の新しいインスタンスを初期化します。
構文
HRESULT Initialize(
REFGUID guidReplicaId,
LPCWSTR pcszReplicaRootPath,
LPCWSTR pcszMetadataFilePath,
LPCWSTR pcszTempDirectoryPath,
DWORD dwSyncFlags,
IFileSyncScopeFilter *pScopeFilter,
IFileSyncProviderCallback *pCallback,LPCWSTR pcszPathToSaveConflictLoserFiles);
パラメーター
guidReplicaId
[in] レプリカの ID です。pcszReplicaRootPath
[in, string] このプロバイダーのローカル ファイル ストアへの絶対パスです。同期するファイルとサブフォルダーが含まれているフォルダーです。pcszMetadataFilePath
[in, string] メタデータ ストレージ ファイルの絶対パスおよびファイル名です。このコンストラクターが呼び出される前に、ディレクトリを作成する必要があります。情報公開を防ぐには、アプリケーションで適切なレベルのセキュリティ権限を使用してこのディレクトリを保護する必要があります。pcszTempDirectoryPath
[in, unique, string] 一時ファイルが格納される場所の絶対パスです。このコンストラクターが呼び出される前に、ディレクトリを作成する必要があります。情報公開を防ぐには、アプリケーションで適切なレベルのセキュリティ権限を使用してこのディレクトリを保護する必要があります。pcszTempDirectoryPath が NULL または空の文字列の場合、一時ファイルは pcszReplicaRootPath で指定された場所に格納されます。dwSyncFlags
[in] 同期時のプロバイダーの動作を決定するフラグです。この値は、FILESYNC_INIT_FLAGS 列挙からの値の組み合わせである必要があります。pScopeFilter
[in, unique] ローカル ファイル ストアのどのファイルまたはディレクトリをスコープに含めるかを指定する静的なスコープ フィルターです。NULL も指定できます。pCallback
[in, unique] プロバイダーから進行状況と状態の通知を受信するコールバック インターフェイスです。NULL も指定できます。pcszPathToSaveConflictLoserFiles
[in, string] 競合で優先されなかったファイルが格納される場所の絶対パスです。このコンストラクターを呼び出す前に、ディレクトリを作成する必要があります。情報公開を防ぐには、アプリケーションで適切なレベルのセキュリティ権限を使用してこのディレクトリを保護する必要があります。NULL も指定できます。
戻り値
S_OK
SYNC_E_FSP_INVALIDOPERATION (Initialize が既に呼び出されている場合)
E_INVALIDARG (指定したパスが相対パスであるか、存在しない場合、またはメタデータのパスにメタデータのファイル名が含まれていない場合)
SYNC_E_METADATA_REPLICA_IN_USE (guidReplicaId によって指定されたレプリカ ID を表す IReplicaMetadata のインスタンスおよび pcszMetadataFilePath によって指定されたメタデータ ストアが別のプロセスに既に存在する場合)
説明
コンストラクターに渡される情報は初期化に使用され、プロバイダーのインスタンスが終了するまで設定は維持されます。つまり、これらの設定値を変更する場合は、新しいプロバイダー インスタンスを作成する必要があります。たとえば、同期に使用されているスコープ フィルターを変更するには、新しいファイル同期プロバイダーを作成し、新しいフィルターで初期化する必要があります。
ファイル同期プロバイダーは、Metadata Storage Service を使用して、すべての同期メタデータを簡易データベースに格納します。メタデータ データベースは 1 つのファイルです。このファイルは、同期するファイルおよびフォルダーと共に格納したり、Initialize で指定される別の場所に格納したりすることができます。
セキュリティを強化するため、適切なレベルのセキュリティ権限を使用して temp ディレクトリなどのディレクトリを保護し、情報公開を防ぐ必要があります。