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。
如果已调用 Initialize,则返回值为 SYNC_E_FSP_INVALIDOPERATION。
如果任何指定路径为相对路径或不存在,或者元数据路径不包括元数据文件名,则返回值为 E_INVALIDARG。
如果表示 guidReplicaId 指定的副本 ID 和 pcszMetadataFilePath 指定的元数据存储区的 IReplicaMetadata 的实例已存在于其他进程中,则返回值为 SYNC_E_METADATA_REPLICA_IN_USE。
备注
传递给构造函数的信息用于初始化,并且该信息是针对提供程序实例的生命周期而设置的。这意味着,对这些设置进行任何变更后,必须创建一个新的提供程序实例。例如,若要变更正用于同步的作用域筛选器,则必须创建一个新文件同步提供程序,并使用新筛选器对其进行初始化。
文件同步提供程序使用元数据存储服务在轻型数据库中存储所有同步元数据。元数据数据库是一个文件。此文件可与要同步的文件和文件夹存储在一起,也可存储在 Initialize 中指定的其他位置。
若要确保适当的安全性,则必须通过相应的权限级别为目录(如临时目录)提供安全保障以防止信息泄露。