了解如何使用 CSISyncClient 控制 Office 文档缓存 (ODC) 。
CSISyncClient 是一个程序外 COM 服务器 (CsiSyncClient.exe) ,它允许 Microsoft OneDrive 控制 Office 文档缓存 (ODC) 的行为。 例如,OneDrive 可能会通过 CSISyncClient 在 ODC 上调用,以向启用 MS-FSSHTTP 的终结点上传和下载文件。 这可实现 Office 中高级服务支持的功能,例如共同创作以及从脱机到联机的无缝转换。
CsiSyncClient 在 Office 桌面 (x86 和 x64) 中可用。 注意:虽然较新版本的 Office 可能随 CsiSyncClient 一起提供,但此过程仅用于向后兼容性。 将来的 Office 版本中,CsiSyncClient 接口和控制 ODC 的方法将发生变化。
类 ID 当前设置为仅响应 OneDrive。
COM 对象可作为工作外 COM 服务器使用,并在 CsiSyncClient.exe 中运行。 由于 ODC 使用) 的访问 (的限制,它附带了 Office 的位类型,因此 x64 Office 表示 x64 COM 对象,x86 Office 表示 x86 COM 对象。 若要绕过此限制,将 CLSCTX_LOCAL_SERVER 指定为 CoCreateInstance 的一部分,会将 COM 对象托管为工作外 COM 服务器,从而允许跨位兼容性。
接口
CSISyncClient 使用以下接口。
接口 ILSCLocalSyncClient
这是用于在 Office 中同步文件的主要界面。
- ProgID:Office.LocalSyncClient
- CLSID: {14286318-B6CF-49a1-81FC-D74AD94902F9}
- TypeLib:{66CDD37F-D313-4e81-8C31-4198F3E42C3C}
公开的 COM 对象用作工作外服务器。 将CLSCTX_LOCAL_SERVER指定为 CoCreateInstance 的一部分允许在 64 位和 32 位进程之间兼容。
共同创建 COM 对象后,必须先调用 ILSCLocalSyncClient::Initialize 。 ILSCLocalSyncClient::Initialize 成功完成后,可以按任意顺序按任意频率调用任何 API。 还可以对已初始化的对象调用 ILSCLocalSyncClient::Initialize ,但这不起作用。
上一段的例外情况是 ILSCLocalSyncClient::ResetCache 和 ILSCLocalSyncClient::Uninitialize。 在 COM 对象上调用 ILSCLocalSyncClient::Uninitialize 后,必须销毁该对象并创建一个新对象。 ILSCLocalSyncClient::ResetCache 将删除子缓存,删除缓存中的所有关联文件信息,但将文档保留在磁盘上。 它还使状态保持不变,以便与缓存通信。 这允许再次调用 ILSCLocalSyncClient::Initialize 以创建新缓存,而无需销毁和重新创建 COM 对象。
公共成员函数
ILSCLocalSyncClient::D eleteFile
DeleteFile 用于从缓存中删除文件信息。 但是,此方法会将关联的文件保留在磁盘和服务器上。
HRESULT ILSCLocalSyncClient::DeleteFile ([in] BSTR bstrResourceID)
参数
bstrResourceID
标识文件的 ResourceID 的字符串。 此值必须为非空,最多 128 个字符。
返回值
值 | 说明 |
---|---|
E_FAIL |
调用失败。 |
E_INVALIDARG |
一个或多个参数无效。 |
E_FAIL |
调用失败。 |
E_LSC_FILENOTFOUND |
给定的 ResourceID 不在缓存中。 |
E_LSC_NOTINITIALIZED |
过去未成功调用 Initialize。 |
E_LSC_PENDINGCHANGESINCACHE |
该文件当前正在同步或打开,无法删除。 |
S_OK |
调用成功。 |
ILSCLocalSyncClient::GetChanges
GetChanges 返回 ILSCEvent 对象的枚举器,并返回一个令牌,该令牌提供给对 GetChanges 的下一次调用,假设使用者已处理前面的事件集。 指定的 nPreviousChangesToken 之前的事件将被删除且不可用。 如果没有要处理的事件, pnCurrentChangesToken 的值应与 nPreviousChangesToken 相同,但仍会设置 ppiEvents 。
HRESULT ILSCLocalSyncClient::GetChanges ([in] LONG nPreviousChangesToken, [out] LONG * pnCurrentChangesToken, [out] IEnumLSCEvent ** ppiEvents)
参数
nPreviousChangesToken
标识使用者上次处理的事件。
pnCurrentChangesToken
标识要交给使用者的最新事件。 不得为 null。
ppiEvents
传递给使用者的事件的枚举器。 不得为 null。
返回值
值 | 说明 |
---|---|
E_FAIL |
调用失败。 |
E_INVALIDARG |
一个或多个参数无效。 |
E_LSC_NOTINITIALIZED |
过去未成功调用 ILSCLocalSyncClient::Initialize。 |
S_OK |
调用成功。 |
ILSCLocalSyncClient::GetClientNetworkSyncPermission
GetClientNetworkSyncPermission 用于查询是否覆盖了针对网络成本和电源使用情况的 Office 同步试探。 当使用 3G 或其他高成本网络时,或者当使用电池而不是插入电源时,Office 可能会选择阻止网络流量,直到更合适的时间。
HRESULT ILSCLocalSyncClient::GetClientNetworkSyncPermission ([in] LSCNetworkSyncPermissionType nspType, [out] VARIANT_BOOL * pfSyncEnabled)
参数
nspType
一个标志,用于定义要查询的成本启发式。 请参阅 Enum LSCNetworkSyncPermissionType。
pfSyncEnabled
指定请求的成本启发式当前是否被重写。 不得为 null。
返回值
值 | 说明 |
---|---|
E_FAIL |
调用失败。 |
E_INVALIDARG |
一个或多个参数无效。 |
E_LSC_NOTINITIALIZED |
过去未成功调用 ILSCLocalSyncClient::Initialize。 |
S_OK |
调用成功。 |
ILSCLocalSyncClient::GetFileStatus
GetFileStatus 用于收集特定文件的信息:它是否存在于缓存中、是否与服务器副本挂起通信,以及 Office 2013 是否具有来自本地副本的最新数据。 它需要 Enum LSCStatusFlag 值的按位标志来确定 CsiSyncClient COM 对象要查询的信息。
HRESULT ILSCLocalSyncClient::GetFileStatus ([in] BSTR bstrResourceID, [in] LSCStatusFlag sfRequestedStatus, [out] BSTR * pbstrFileSystemPath, [out] BSTR * pbstrETag, [out] LSCStatusFlag * psfFileStatus)
参数
bstrResourceID
标识客户端上的文件的字符串。 此值必须为非空,最多 128 个字符。
sfRequestedStatus
定义要返回的信息的标志。 请参阅 Enum LSCStatusFlag。
pbstrFileSystemPath
标识 bstrResourceID 在客户端上标识的文件位置的字符串。 不得为 null。
pbstrETag
一个字符串,它将包含 bstrResourceID 标识的文件的 eTag。 不得为 null。
psfFileStatus
一个标志,其中包含通过 sfRequestedStatus 为 bstrResourceID 标识的文件请求的状态。 不得为 null。 请参阅 Enum LSCStatusFlag。
返回值
值 | 说明 |
---|---|
E_FAIL |
调用失败。 |
E_INVALIDARG |
一个或多个参数无效。 |
E_LSC_FILENOTFOUND |
缓存中不存在 bstrResourceID 指定的文件信息。 |
E_LSC_LOCALFILEUNAVAILABLE |
LSCStatusFlag_LocalFileUnchanged请求或 bstrResourceID 指定的文件已锁定或丢失。 |
E_LSC_NOTINITIALIZED |
过去未成功调用 ILSCLocalSyncClient::Initialize。 |
S_OK |
调用成功。 |
ILSCLocalSyncClient::GetSupportedFileExtensions
GetSupportedFileExtensions 返回 CsiSyncClient COM 对象当前支持的以管道分隔的文件扩展名的列表。 请注意,此列表可能会更改,并且使用者将通过 ILSCLocalSyncClient::Initialize 上提供的 IPartnerActivityCallback 对象收到更改通知 (请参阅 EventOccured) 。
返回的字符串示例如下:“|docx|docm|pptx|”
HRESULT ILSCLocalSyncClient::GetSupportedFileExtensions ([out] BSTR * pbstrSupportedFileExtensions)
参数
pbstrSupportedFileExtensions
要设置的字符串,其中包含 CsiSyncClient COM 对象支持的以管道分隔的文件扩展名集。 不得为 null。
返回值
值 | 说明 |
---|---|
E_FAIL |
调用失败。 |
E_INVALIDARG |
一个或多个参数无效。 |
E_LSC_NOTINITIALIZED |
过去未成功调用 ILSCLocalSyncClient::Initialize。 |
S_OK |
调用成功。 |
ILSCLocalSyncClient::Initialize
Initialize 必须是第一个调用的方法。 否则,所有其他 API 将返回E_LSC_NOTINITIALIZED。 对已初始化的对象调用 Initialize 将返回S_OK且不执行任何操作。 如果返回E_LSC_CACHEMISMATCH,调用方可以调用 ILSCLocalSyncClient::ResetCache 以删除与给定的 SuppliedID 关联的缓存。 但是,在这种情况下,其他 API 仍将返回E_LSC_NOTINITIALIZED。
HRESULT ILSCLocalSyncClient::Initialize ([in] BSTR bstrSuppliedID, [in] BSTR bstrProgID, [in] BSTR bstrFileSystemDirectoryHint, [in] IPartnerActivityCallback * pEventCallback, [out] VARIANT_BOOL * pfCreatedNewCache)
参数
bstrSuppliedID
标识使用者以及要使用的缓存。 必须为非空,最多 32 个字符。
bstrProgID
标识使用者的 COM 对象,以便进行双向通信。 必须为非空,最多 39 个字符。 有关 ProgID 的详细信息,请参阅< ProgID> 密钥。
bstrFileSystemDirectoryHint
标识将存储本地文件的目录根目录。 必须为非空,最多 256 个字符。 目录必须已存在。
pEventCallback
CsiSyncClient 将在更改时通知的回调接口。 请参阅 IPartnerActivityCallback::EventOccurred。 此值不得为 null。
pfCreatedNewCache
返回是否已创建新缓存。 如果没有与 SuppliedID 关联的缓存,则会创建一个缓存。 此值不得为 null。
返回值
值 | 说明 |
---|---|
E_FAIL |
调用失败。 |
E_INVALIDARG |
一个或多个参数无效。 |
E_LSC_CACHEMISMATCH |
SuppliedID 已具有与其关联的缓存,但具有不同于提供的 ProgId 或 FileSystemDirectoryHint 的缓存。 |
E_LSC_DIRECTORYHINTCONFLICT |
FileSystemDirectoryHint (或子文件夹) 已存在于其他缓存上。 |
E_LAC_PROGIDCONFLICT |
ProgID 已存在于其他缓存上。 |
S_OK |
调用成功。 |
ILSCLocalSyncClient::LocalFileChange
LocalFileChange 用于指示 CsiSyncClient COM 对象尝试上传指定的文件。 方法将准备要上传的文件,包括读取文件的当前内容。 如果上传已挂起,则会放弃以前的上传,并准备新内容以供上传。 如果打开文件以在应用程序中进行编辑,则此方法将返回S_OK,而不准备要上传的文件, (如果) 更改,应用程序应该已经执行此步骤。
如果之前 (请参阅 ILSCLocalSyncClient::RenameFile) ,则此方法将允许上传。
HRESULT ILSCLocalSyncClient::LocalFileChange ([in] BSTR bstrFileSystemPath, [in] BSTR bstrWebPath, [in] BSTR bstrResourceID)
参数
bstrFileSystemPath
标识客户端上的文件的字符串。 此值必须是非空本地路径,最多 256 个字符。 调用 ILSCLocalSyncClient::Initialize 时,此路径必须位于 FileSystemDirectoryHint 指定的目录树中。
bstrResourceID
标识文件的 ResourceID 的字符串。 此值必须为非空,最多 128 个字符。
bstrWebPath
标识服务器上的文件的字符串。 此值必须是非空的有效 URL,但不能超过 INTERNET_MAX_URL_LENGTH,由 https://support.microsoft.com/kb/208427定义。
返回值
值 | 说明 |
---|---|
E_FAIL |
调用失败。 |
E_INVALIDARG |
一个或多个参数无效。 |
E_LSC_CONFLICTINGFILE |
bstrFileSystemPath 指定的文件具有与指定不同的 ResourceID。 返回此错误时,将发送类型为 LSCEventType_OnFilePathConflict 的事件。 请参阅 ILSCLocalSyncClient::GetChanges。 |
E_LSC_FILENOTFOUND |
文件在操作中被删除。 |
E_LSC_FILENOTSUPPORTED |
CsiSyncClient COM 对象不支持给定的文件扩展名。 请参阅 ILSCLocalSyncClient::GetSupportedFileExtensions。 |
E_LSC_FILEUPTODATE |
COM 对象未计划上传,因为缓存中的文件具有来自磁盘的最新更改。 |
E_LSC_LOCALFILEUNAVAILABLE |
bstrFileSystemPath 指定的文件缺失或已锁定。 |
E_LSC_LOCALPATHNOTMAPPED |
调用 Initialize 时,给定的 FileSystemPath 不在 FileSystemDirectoryHint 指定的目录根目录下。 |
E_LSC_NOTINITIALIZED |
过去未成功调用 ILSCLocalSyncClient::Initialize。 |
E_LSC_PATHMISMATCH |
bstrResourceID 指定的文件具有与指定不同的 FileSystemPath。 |
E_LSC_PENDINGCHANGESINCACHE |
指定的文件已在其他缓存中具有挂起的更改,并且尚不能与使用者的缓存相关联。 |
E_LSC_SERVERPATHINDIFFERENTCACHE |
提供的 WebPath 属于不同的缓存。 |
S_OK |
调用成功。 |
ILSCLocalSyncClient::RenameFile
RenameFile 将关联给定 ResourceID 的新 URL 和本地路径。 如果缓存中尚不存在 ResourceID 指定的文件,则会尝试创建该文件并将其标记为下载。
HRESULT ILSCLocalSyncClient::RenameFile ([in] BSTR bstrResourceID, [in] BSTR bstrNewFileSystemPath, [in] BSTR bstrNewWebPath, [in] VARIANT_BOOL fBlockUploads)
参数
bstrResourceID
标识文件的 ResourceID 的字符串。 此值必须为非空,最多 128 个字符。
bstrNewFileSystemPath
指定文件的新本地路径的字符串。 此值必须是非空本地路径,最多 256 个字符。 调用 Initialize 时,此路径必须位于 FileSystemDirectoryHint 指定的目录树中。
bstrNewWebPath
指定文件的新 URL 的字符串。 此值必须是非空有效 URL,但不能超过 INTERNET_MAX_URL_LENGTH,如 定义 https://support.microsoft.com/kb/208427。
fBlockUploads
指定当前是否允许上传到新位置。
返回值
值 | 说明 |
---|---|
E_FAIL |
调用失败。 |
E_INVALIDARG |
一个或多个参数无效。 |
E_LSC_CONFLICTINGFILE |
bstrNewFileSystemPath 或 bstrNewWebPath 已存在于任何缓存中的另一个文件上。 返回此错误时,将发送类型为 LSCEventType_OnFilePathConflict 的事件。 请参阅 ILSCLocalSyncClient::GetChanges。 |
E_LSC_FILENOTFOUND |
此方法运行时,文件信息已从缓存中删除。 |
E_LSC_LOCALPATHNOTMAPPED |
调用 Initialize 时,给定的 FileSystemPath 不在 FileSystemDirectoryHint 指定的目录根目录下。 |
E_LSC_NOTINITIALIZED |
过去未成功调用 ILSCLocalSyncClient::Initialize。 |
E_LSC_PENDINGCHANGESINCACHE |
指定的文件当前正在 Office 应用程序中同步。 |
S_OK |
调用成功。 |
ILSCLocalSyncClient::ResetCache
ResetCache 将删除与 Initialize 上提供的 SuppliedID 关联的缓存。 这包括所有文件信息,但会将文件保留在客户端和服务器上。 此方法还会使对象处于部分未初始化状态。 在此之后,唯一有效的调用是 ILSCLocalSyncClient::Initialize 或 ILSCLocalSyncClient::Uninitialize。 如果 Initialize 失败并返回E_LSC_CACHEMISMATCH,则可能会调用此方法,并将删除与失败调用一起提供的 SuppliedID 关联的缓存。
HRESULT ILSCLocalSyncClient::ResetCache()
参数
无
返回值
值 | 说明 |
---|---|
E_FAIL |
调用失败。 |
E_LSC_NOTINITIALIZED |
过去未成功调用 ILSCLocalSyncClient::Initialize。 |
S_OK |
调用成功。 |
ILSCLocalSyncClient::ServerFileChange
ServerFileChange 告知 CsiSyncClient COM 对象标记要下载的指定文件。 如果文件在 Office 应用程序中打开以供编辑,则此方法将返回S_OK,而不标记要下载的文件, (如果) 更改,应用程序应已执行此步骤。
如果之前已将其标记为下载被阻止,则此方法将允许下载 (请参阅 RenameFile) 。
HRESULT ILSCLocalSyncClient::ServerFileChange ([in] BSTR bstrFileSystemPath, [in] BSTR bstrWebPath, [in] BSTR bstrResourceID)
参数
参数 | 说明 |
---|---|
bstrFileSystemPath |
标识客户端上的文件的字符串。 此值必须是非空本地路径,最多 256 个字符。 调用 Initialize 时,此路径必须位于 FileSystemDirectoryHint 指定的目录树中。 |
bstrResourceID |
标识文件的 ResourceID 的字符串。 此值必须为非空,最多 128 个字符。 |
bstrWebPath |
标识服务器上的文件的字符串。 此值必须是非空的有效 URL,但不能超过 INTERNET_MAX_URL_LENGTH,由 https://support.microsoft.com/kb/208427定义。 |
返回值
值 | 说明 |
---|---|
E_FAIL |
未能设置缓存连接状态。 |
E_LSC_CONFLICTINGFILE |
bstrFileSystemPath 指定的文件具有与指定不同的 ResourceID。 |
E_LSC_FILENOTSUPPORTED |
CsiSyncClient COM 对象不支持给定的文件扩展名。 请参阅 GetSupportedFileExtensions。 |
E_LSC_FILENOTFOUND |
在操作中删除了该文件。 |
E_INVALIDARG |
一个或多个参数无效。 |
E_LSC_LOCALPATHNOTMAPPED |
调用 Initialize 时,给定的 FileSystemPath 不在 FileSystemDirectoryHint 指定的目录根目录下。 |
E_LSC_NOINITIALIZED |
过去未成功调用 ILSCLocalSyncClient::Initialize。 |
E_LSC_PATHMISMATCH |
bstrResourceID 指定的文件具有与指定不同的 FileSystemPath。 |
E_LSC_PENDINGCHANGESINCACHE |
指定的文件已在其他缓存中具有挂起的更改,并且尚不能与使用者的缓存相关联。 |
E_LSC_SERVERPATHINDIFFERENTCACHE |
提供的 WebPath 属于不同的缓存。 |
S_OK |
调用成功。 |
ILSCLocalSyncClient::SetClientConnectivityState
将缓存设置为联机或脱机状态。 如果处于脱机状态,Office 不会尝试与该缓存中的任何文件服务器通信,而不管每个文件的 fBlockUploads 设置如何。
HRESULT ILSCLocalSyncClient::SetClientConnectivityState ([in] VARIANT_BOOL fIsOnline)
参数
fIsOnline
确定缓存的连接状态的布尔值。
返回值
值 | 说明 |
---|---|
E_FAIL |
未能设置缓存连接状态。 |
E_INVALIDARG |
一个或多个参数无效。 |
E_LSC_NOINITIALIZED |
过去未成功调用 ILSCLocalSyncClient::Initialize。 |
S_OK |
调用成功。 |
ILSCLocalSyncClient::SetClientNetworkSyncPermission
SetClientNetworkSyncPermission 用于替代或还原Office 的同步启发式网络成本和电源使用情况。 当使用 3G 或其他高成本网络时,或者当使用电池而不是插入电源时,Office 可能会选择阻止网络流量,直到更合适的时间。 此 API 的使用者可以使用它来替代 Office 的试探法,并强制进行同步。
HRESULT ILSCLocalSyncClient::SetClientNetworkSyncPermission ([in] LSCNetworkSyncPermissionType nspType, [in] VARIANT_BOOL fEnableSync)
参数
nspType
定义要替代的成本启发式的标志。 请参阅 Enum LSCNetworkSyncPermissionType。
fEnableSync
指定是强制同步,从而替代成本启发式,还是不再重写它。
返回值
值 | 说明 |
---|---|
E_FAIL |
无法替代同步试探法。 |
E_LSC_NOINITIALIZED |
过去未成功调用 ILSCLocalSyncClient::Initialize。 |
S_OK |
调用成功。 |
ILSCLocalSyncClient::Uninitialize
从 COM 对象卸载缓存并执行关闭操作。 ILSCLocalSyncClient::Uninitialize 在销毁 COM 对象之前,必须调用 。 调用后,不能调用其他 API,必须销毁 COM 对象,如果要继续操作,必须创建一个新对象。
HRESULT ILSCLocalSyncClient::Uninitialize ()
参数
无。
返回值
值 | 说明 |
---|---|
E_FAIL |
无法取消初始化。 |
E_LSC_NOINITIALIZED |
过去未成功调用 ILSCLocalSyncClient::Initialize。 |
S_OK |
调用成功。 |
接口 IEnumLSCEvent
此接口表示 ILSCEvent 事件的列表。
公共成员函数
IEnumLSCEvent::FNext
从事件列表中检索下一个事件。
HRESULT IEnumLSCEvent::FNext ([out] ILSCEvent ** ppiLSCEvent)
参数
ppiLSCEvent
指向 ILSCEvent 接口的指针。
返回值
值 | 说明 |
---|---|
E_FAIL |
不再有事件。 |
S_OK |
调用成功。 |
IEnumLSCEvent::Reset
将枚举器重置为第一个事件。
HRESULT IEnumLSCEvent::Reset ()
参数
无。
返回值
始终返回S_OK。
接口 ILSCEvent
此接口表示同步事件。 可以从 接口检索有关事件的所有信息。
公共成员函数
ILSCEvent::GetConflictStatus
请注意,此值是在调用 ILSCLocalSyncClient::GetChanges 时填充的,而不是在创建事件时填充的,因此将仅具有文件的当前状态,而不是冲突状态更改时文件的状态。
仅当事件的 Enum LSCEventType LSCEventType_OnLocalConflictStateChanged时,才会填充此值。
HRESULT ILSCEvent::GetConflictStatus ([out] VARIANT_BOOL * pfIsInConflict)
参数
pfIsInConflict
与事件关联的文件的当前冲突状态。
返回值
始终返回S_OK。
ILSCEvent::GetError
仅当事件的 Enum LSCEventType LSCEventType_OnServerChangesDownloaded或LSCEventType_OnLocalChangesUploaded时,才会填充此值。
HRESULT ILSCEvent::GetError ([out] LONG * pnError)
参数
pnError
与此事件关联的错误。
返回值
始终返回S_OK。
ILSCEvent::GetETag
仅当事件的 Enum LSCEventType LSCEventType_OnServerChangesDownloaded或LSCEventType_OnLocalChangesUploaded时,才会填充此值。
HRESULT ILSCEvent::GetETag ([out] BSTR * pbstrETag)
参数
pbstrETag
与此事件关联的 ETag
返回值
始终返回S_OK。
ILSCEvent::GetEventType
获取此事件的类型。
HRESULT ILSCEvent::GetEventType ([out] LSCEventType * pnEventType)
参数
pnEventType
此事件的事件类型。 有关有效值 ,请参阅 Enum LSCEventType 。 不得为 null。
返回值
值 | 说明 |
---|---|
E_INVALIDARG |
一个或多个参数无效。 |
S_OK |
调用成功。 |
ILSCEvent::GetLocalWorkingPath
获取此事件的本地工作路径。
HRESULT ILSCEvent::GetLocalWorkingPath ([out] BSTR * pbstrLocalWorkingPath)
参数
pbstrLocalWorkingPath
此事件所涉及的文件的本地路径。
返回值
始终返回S_OK。
ILSCEvent::GetResourceID
获取事件的资源 ID。
HRESULT ILSCEvent::GetResourceID ([out] BSTR * pbstrResourceID)
参数
pbstrResourceID
与此事件关联的文件的 ResourceID。
返回值
始终返回S_OK。
ILSCEvent::GetResourceIDAttempted
仅当事件的 Enum LSCEventType LSCEventType_OnFilePathConflict时,才会填充此值。 如果调用 ILSCLocalSyncClient::LocalFileChange、 ILSCLocalSyncClient::ServerFileChange 或 ILSCLocalSyncClient::RenameFile 会导致 Web 路径或本地路径与 Office 文件缓存中的另一个文件冲突,则会生成此事件。
HRESULT ILSCEvent::GetResourceIDAttempted ([out] BSTR * pbstrResourceIDAttempted)
参数
pbstrResourceIDAttempted
导致生成此事件的 ResourceID。 不得为 null。
返回值
始终返回S_OK。
ILSCEvent::GetSyncErrorType
仅当事件的 Enum LSCEventType LSCEventType_OnServerChangesDownloaded或LSCEventType_OnLocalChangesUploaded时,才会填充此值。
HRESULT ILSCEvent::GetSyncErrorType ([out] LSCEventSyncErrorType * pnSyncErrorType)
参数
pnSyncErrorType
与此事件关联的错误类型。 有关潜在值 ,请参阅 Enum LSCEventType 。 不得为 null。
返回值
值 | 说明 |
---|---|
E_INVALIDARG |
一个或多个参数无效。 |
S_OK |
调用成功。 |
ILSCEvent::GetWebPath
仅当事件的 Enum LSCEventType LSCEventType_OnFilePathConflict时,才会填充此值。
HRESULT ILSCEvent::GetWebPath ([out] BSTR * pbstrWebPath)
参数
pbstrWebPath
指定与此事件关联的 Web 路径。 不得为 null。
返回值
始终返回S_OK。
接口 ILSCEvent2
此接口包含有关同步事件的其他信息。
公共成员函数
ILSCEvent2::GetErrorChain
获取有关同步事件的错误链信息。
HRESULT ILSCEvent2::GetErrorChain ([out] BSTR * pbstrErrorChain)
参数
pbstrErrorChain
用于保存错误链信息的字符串。 不得为 null。
返回值
值 | 说明 |
---|---|
E_NOTIMPL |
已安装的 Office 版本不支持此接口 |
E_INVALIDARG |
一个或多个参数值无效。 |
E_FAIL |
错误链信息不可用。 |
S_OK |
调用成功。 |
接口 IPartnerActivityCallback
此接口为 CSISyncClient COM 对象提供回调函数。
公共成员函数
IPartnerActivityCallback::EventOccurred
这是给定给 CsiSyncClient COM 对象的对象的回调函数。 当事件发生 (为有效事件类型) 看到 Enum LSCEventTypeOccurred 时,CsiSyncClient COM 对象将调用此方法,向使用者发出信号。
HRESULT IPartnerActivityCallback::EventOccurred ([in] LSCEventTypeOccurred eEventTypeOccurred)
参数
eEventTypeOccurred
此事件的事件类型。 有关有效值,请参阅 Enum LSCEventTypeOccurred 。
返回值
始终返回S_OK。
枚举
CSISyncClient 使用以下枚举。
Enum LSCEventSyncErrorType
此枚举指定同步文件时可能发生的错误类别。
枚举 数 | 说明 |
---|---|
LSCEventSyncErrorType_UserInterventionRequiredUnexpected |
此事件的同步错误是意外的,可能需要特别注意。 默认情况下,用户可能需要进行干预。 |
LSCEventSyncErrorType_NoInterventionRequired |
此事件的同步错误不需要特别考虑。 Office 会自动处理它。 |
LSCEventSyncErrorType_UserInterventionRequired |
此事件的同步错误要求用户解决它。 例如,合并冲突错误要求用户打开并合并文档。 |
LSCEventSyncErrorType_WaitingOnClient |
此事件的同步错误要求使用者进行干预,但用户不应特别考虑。 |
LSCEventSyncErrorType_ClientInterventionRequired |
此事件的同步错误要求使用者作为特殊情况进行干预。 |
LSCEventSyncErrorType_Max |
枚举 LSCEventType
此枚举指定可为特定文件发生的事件类型。
枚举 数 | 说明 |
---|---|
LSCEventType_None |
|
LSCEventType_OnLocalChanges |
对本地文件进行了更改。 |
LSCEventType_OnOpenedByUser |
用户打开了文件。 |
LSCEventType_OnServerChangesDownloaded |
已完成从服务器下载文件更改。 |
LSCEventType_OnLocalChangesUploaded |
已完成将文件更改上传到服务器。 |
LSCEventType_OnLocalConflictStateChanged |
文件的合并冲突状态已更改。 |
LSCEventType_OnFileAdded |
已添加文件。 |
LSCEventType_OnFileDeleted |
文件已删除。 |
LSCEventType_OnSyncEnabled |
已为用户的文件启用同步。 |
LSCEventType_OnServerChangesDownloadStarted |
已开始从服务器下载文件更改。 |
LSCEventType_OnLocalChangesUploadStarted |
已开始将文件更改上传到服务器。 |
LSCEventType_OnFilePathConflict |
当对 ILSCLocalSyncClient::LocalFileChange、 ILSCLocalSyncClient::ServerFileChange 或 ILSCLocalSyncClient::RenameFile 的调用导致 Web 路径或本地路径与 Office 文件缓存中的另一个文件冲突时,将生成此事件。 |
LSCEventType_OnFileForked |
|
LSCEventType_Max |
Enum LSCEventTypeOccurred
此枚举指定可能发生的事件类型。 使用者需要根据事件类型调用特定的 ILSCLocalSyncClient 函数。
枚举 数 | 说明 |
---|---|
LSCEventTypeOccurred_GetChanges |
已发生 ILSCEvent。 使用者应调用 ILSCLocalSyncClient::GetChanges 来检索数据。 |
LSCEventTypeOccurred_GetSupportedFileExtensions |
支持的文件扩展名已更改。 使用者应调用 ILSCLocalSyncClient::GetSupportedFileExtensions 来检索支持扩展的新列表。 |
Enum LSCNetworkSyncPermissionType
此枚举指定用于网络成本启发式的标志。
枚举 数 | 说明 |
---|---|
LSCNetworkSyncPermissionType_HighCost |
如果重写了 3G) 等昂贵网络 (的成本试探法,则为 True。 |
LSCNetworkSyncPermissionType_HighPowerUsage |
如果重写了电池) 等电源使用的成本试探法 (,则其值为 True。 |
Enum LSCStatusFlag
此枚举用于表示文件的同步状态。
枚举 数 | 说明 |
---|---|
LCSStatusFlag_None |
|
LSCStatusFlag_UploadPending |
如果存在要发送到服务器文件的挂起数据,则为 True。 |
LSCStatusFlag_DownloadPending |
如果存在要从服务器文件下载的挂起数据,则为 True。 |
LSCStatusFlag_LocalFileUnchanged |
如果 Office 缓存中文件的数据是磁盘上数据的最新副本,则其值为 True。 |