使用 CSISyncClient 控制 Office 文档缓存 (ODC)

了解如何使用 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::InitializeILSCLocalSyncClient::Initialize 成功完成后,可以按任意顺序按任意频率调用任何 API。 还可以对已初始化的对象调用 ILSCLocalSyncClient::Initialize ,但这不起作用。

上一段的例外情况是 ILSCLocalSyncClient::ResetCacheILSCLocalSyncClient::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

一个标志,其中包含通过 sfRequestedStatusbstrResourceID 标识的文件请求的状态。 不得为 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
bstrNewFileSystemPathbstrNewWebPath 已存在于任何缓存中的另一个文件上。 返回此错误时,将发送类型为 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::InitializeILSCLocalSyncClient::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::LocalFileChangeILSCLocalSyncClient::ServerFileChangeILSCLocalSyncClient::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::LocalFileChangeILSCLocalSyncClient::ServerFileChangeILSCLocalSyncClient::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。