Using CSISyncClient to control the Office Document Cache (ODC)
Learn how to use CSISyncClient to control the Office Document Cache (ODC).
CSISyncClient is an out-of-proc COM server (CsiSyncClient.exe) that allows Microsoft OneDrive to control the behavior of the Office Document Cache (ODC). For example, OneDrive may call upon the ODC via CSISyncClient to upload and download files to and from MS-FSSHTTP enabled endpoints. This enables advanced service-backed features in Office, such as co-authoring and seamless transitions from offline to online.
CsiSyncClient is available in Office Desktop (both x86 and x64). Note: While newer versions of Office may ship with CsiSyncClient, the process will be used for backward compatibility only. The CsiSyncClient interface and the methodology of controlling the ODC will change in future versions of Office.
The class ID is currently set to respond only to OneDrive.
The COM object is usable as an out-of-proc COM server and runs in CsiSyncClient.exe. Due to limitations with Access (which the ODC uses), it ships with the bit type that Office comes in, so x64 Office means an x64 COM object, or x86 Office means an x86 COM object. To get around this limitation, specifying CLSCTX_LOCAL_SERVER as part of the CoCreateInstance will have the COM object be hosted as an out-of-proc COM server, allowing cross-bitness compatibility.
Interfaces
CSISyncClient uses the following interfaces.
Interface ILSCLocalSyncClient
This is the primary interface used to synchronize files in Office.
- ProgID: Office.LocalSyncClient
- CLSID: {14286318-B6CF-49a1-81FC-D74AD94902F9}
- TypeLib: {66CDD37F-D313-4e81-8C31-4198F3E42C3C}
The COM object that is exposed is used as an out-of-proc server. Specifying CLSCTX_LOCAL_SERVER as part of CoCreateInstance allows compatability between 64bit and 32bit processes.
Once you've co-created the COM object, you MUST call ILSCLocalSyncClient::Initialize first. Once ILSCLocalSyncClient::Initialize has completed successfully, you may call any API as often as you wish and in any order. You may also call ILSCLocalSyncClient::Initialize on an already initialized object, but this does nothing.
The exceptions to the previous paragraph are ILSCLocalSyncClient::ResetCache and ILSCLocalSyncClient::Uninitialize. After you call ILSCLocalSyncClient::Uninitialize on the COM object, you MUST destroy that object and create a new one. ILSCLocalSyncClient::ResetCache will delete your subcache, delete all associated file information in the cache, but leave the documents on disk. It also leaves the state intact for communicating with the cache. This allows you to call ILSCLocalSyncClient::Initialize again to create a new cache without having to destroy and recreate the COM object.
Public member functions
ILSCLocalSyncClient::DeleteFile
DeleteFile is used to remove the file information from the cache. However, this method will leave the associated file on disk and on the server.
HRESULT ILSCLocalSyncClient::DeleteFile ([in] BSTR bstrResourceID)
Parameters
bstrResourceID
The string which identifies the ResourceID of the file. This value must be non-empty with a maximum of 128 characters.
Return values
Value | Description |
---|---|
E_FAIL |
The call failed. |
E_INVALIDARG |
One or more parameters are invalid. |
E_FAIL |
The call failed. |
E_LSC_FILENOTFOUND |
The given ResourceID is not in the cache. |
E_LSC_NOTINITIALIZED |
Initialize has not been successfully called in the past. |
E_LSC_PENDINGCHANGESINCACHE |
The file is currently synchronizing or open and cannot be deleted. |
S_OK |
The call succeeded. |
ILSCLocalSyncClient::GetChanges
GetChanges returns an enumerator of ILSCEvent objects, and also returns a token that is given to the next call to GetChanges, assuming the consumer has processed the previous set of events. Events before the nPreviousChangesToken specified will be deleted and unavailable. If there are no events to be processed, pnCurrentChangesToken should be the same value as nPreviousChangesToken, but ppiEvents will still be set.
HRESULT ILSCLocalSyncClient::GetChanges ([in] LONG nPreviousChangesToken, [out] LONG * pnCurrentChangesToken, [out] IEnumLSCEvent ** ppiEvents)
Parameters
nPreviousChangesToken
Identifies which event was last processed by the consumer.
pnCurrentChangesToken
Identifies the most recent event being handed to the consumer. Must not be null.
ppiEvents
An enumerator for the events handed to the consumer. Must not be null.
Return values
Value | Description |
---|---|
E_FAIL |
The call failed. |
E_INVALIDARG |
One or more parameters are invalid. |
E_LSC_NOTINITIALIZED |
ILSCLocalSyncClient::Initialize has not been successfully called in the past. |
S_OK |
The call succeeded. |
ILSCLocalSyncClient::GetClientNetworkSyncPermission
GetClientNetworkSyncPermission is used to query whether Office's synchronizing heuristics for network cost and power usage are overridden. When on a 3G or other high cost network, or when running on battery versus being plugged in, Office may choose to block network traffic until a more opportune time.
HRESULT ILSCLocalSyncClient::GetClientNetworkSyncPermission ([in] LSCNetworkSyncPermissionType nspType, [out] VARIANT_BOOL * pfSyncEnabled)
Parameters
nspType
A flag which defines which cost heuristic to query. See Enum LSCNetworkSyncPermissionType.
pfSyncEnabled
Specifies whether the requested cost heuristic is currently overridden or not. Must not be null.
Return values
Value | Description |
---|---|
E_FAIL |
The call failed. |
E_INVALIDARG |
One or more parameters are invalid. |
E_LSC_NOTINITIALIZED |
ILSCLocalSyncClient::Initialize has not been successfully called in the past. |
S_OK |
The call succeeded. |
ILSCLocalSyncClient::GetFileStatus
GetFileStatus is used to gather information for a specific file: whether it exists in the cache, if it has pending communication with the server copy, and if Office 2013 has the most up to date data from the local copy. It requires a bitwise flag of Enum LSCStatusFlag values to determine what information the CsiSyncClient COM object is to query for.
HRESULT ILSCLocalSyncClient::GetFileStatus ([in] BSTR bstrResourceID, [in] LSCStatusFlag sfRequestedStatus, [out] BSTR * pbstrFileSystemPath, [out] BSTR * pbstrETag, [out] LSCStatusFlag * psfFileStatus)
Parameters
bstrResourceID
The string which identifies the file on the client. This value must be non-empty, with a maximum of 128 characters.
sfRequestedStatus
A flag which defines what information to return. See Enum LSCStatusFlag.
pbstrFileSystemPath
The string which identifies the location of the file identified by bstrResourceID on the client. Must not be null.
pbstrETag
A string which will contain the eTag for the file identified by bstrResourceID. Must not be null.
psfFileStatus
A flag which will contain the status requested via sfRequestedStatus for the file identified by bstrResourceID. Must not be null. See Enum LSCStatusFlag.
Return values
Value | Description |
---|---|
E_FAIL |
The call failed. |
E_INVALIDARG |
One or more parameters are invalid. |
E_LSC_FILENOTFOUND |
The file information specified by bstrResourceID does not exist in the cache. |
E_LSC_LOCALFILEUNAVAILABLE |
LSCStatusFlag_LocalFileUnchanged was requested or the file specified by bstrResourceID is locked or missing. |
E_LSC_NOTINITIALIZED |
ILSCLocalSyncClient::Initialize has not been successfully called in the past. |
S_OK |
The call succeeded. |
ILSCLocalSyncClient::GetSupportedFileExtensions
GetSupportedFileExtensions returns a list of pipe-delimited file extensions which are currently supported by the CsiSyncClient COM object. Note that this list may change, and the consumer will be notified of a change via the IPartnerActivityCallback object provided on ILSCLocalSyncClient::Initialize (See EventOccured).
An example of the string returned is as follows: "|docx|docm|pptx|"
HRESULT ILSCLocalSyncClient::GetSupportedFileExtensions ([out] BSTR * pbstrSupportedFileExtensions)
Parameters
pbstrSupportedFileExtensions
A string to be set with a pipe-delimited set of file extensions supported by the CsiSyncClient COM object. Must not be null.
Return values
Value | Description |
---|---|
E_FAIL |
The call failed. |
E_INVALIDARG |
One or more parameters are invalid. |
E_LSC_NOTINITIALIZED |
ILSCLocalSyncClient::Initialize has not been successfully called in the past. |
S_OK |
The call succeeded. |
ILSCLocalSyncClient::Initialize
Initialize must be the first method called. Otherwise, all other APIs will return E_LSC_NOTINITIALIZED. Calling Initialize on an already initialized object returns S_OK and does nothing. If E_LSC_CACHEMISMATCH is returned, the caller may call ILSCLocalSyncClient::ResetCache to delete the cache associated with the given SuppliedID. However, in this case other APIs will still return E_LSC_NOTINITIALIZED.
HRESULT ILSCLocalSyncClient::Initialize ([in] BSTR bstrSuppliedID, [in] BSTR bstrProgID, [in] BSTR bstrFileSystemDirectoryHint, [in] IPartnerActivityCallback * pEventCallback, [out] VARIANT_BOOL * pfCreatedNewCache)
Parameters
bstrSuppliedID
Identifies the consumer and which cache to use. Must be non-empty with a maximum of 32 characters.
bstrProgID
Identifies the consumer's COM object for two-way communication. Must be non-empty with a maximum of 39 characters. See <ProgID> Key for more information about ProgIDs.
bstrFileSystemDirectoryHint
Identifies the directory root in which local files will be stored. Must be non-empty with a maximum of 256 characters. The directory must already exist.
pEventCallback
The callback interface which CsiSyncClient will notify on changes. See IPartnerActivityCallback::EventOccurred. This value must not be null.
pfCreatedNewCache
Returns whether a new cache was created. If no cache is associated with the SuppliedID, one will be created. This value must not be null.
Return values
Value | Description |
---|---|
E_FAIL |
The call failed. |
E_INVALIDARG |
One or more parameters are invalid. |
E_LSC_CACHEMISMATCH |
A SuppliedID already has a cache associated with it, but has a different ProgId or FileSystemDirectoryHint than the ones provided. |
E_LSC_DIRECTORYHINTCONFLICT |
The FileSystemDirectoryHint (or a subfolder) already exists on a different cache. |
E_LAC_PROGIDCONFLICT |
The ProgID already exists on a different cache. |
S_OK |
The call succeeded. |
ILSCLocalSyncClient::LocalFileChange
LocalFileChange is used to tell the CsiSyncClient COM object to attempt to upload the specified file. The method will prepare the file for upload, including reading the file's current contents. If an upload is already pending, the previous upload will be discarded and the new contents prepared for upload. If the file is open for editing in an application, this method will return S_OK without preparing the file for upload (the application should already do this step if there are changes).
This method will allow uploads if it was marked as uploads blocked previously (see ILSCLocalSyncClient::RenameFile).
HRESULT ILSCLocalSyncClient::LocalFileChange ([in] BSTR bstrFileSystemPath, [in] BSTR bstrWebPath, [in] BSTR bstrResourceID)
Parameters
bstrFileSystemPath
A string which identifies the file on the client. This value must be a non-empty local path with a maximum of 256 characters. This path must be in the directory tree specified by the FileSystemDirectoryHint when the call to ILSCLocalSyncClient::Initialize was made.
bstrResourceID
A string which identifies the ResourceID of the file. This value must be non-empty with a maximum of 128 characters.
bstrWebPath
A string which identifies the file on the server. This value must be non-empty, valid URL, but no longer than INTERNET_MAX_URL_LENGTH, as defined by https://support.microsoft.com/kb/208427.
Return values
Value | Description |
---|---|
E_FAIL |
The call failed. |
E_INVALIDARG |
One or more parameters are invalid. |
E_LSC_CONFLICTINGFILE |
The file specified by bstrFileSystemPath has a different ResourceID than specified. An event of type LSCEventType_OnFilePathConflict is sent when this error is returned. See ILSCLocalSyncClient::GetChanges. |
E_LSC_FILENOTFOUND |
The file was deleted mid-operation. |
E_LSC_FILENOTSUPPORTED |
The given file extension is not supported by the CsiSyncClient COM object. See ILSCLocalSyncClient::GetSupportedFileExtensions. |
E_LSC_FILEUPTODATE |
The COM object did not schedule an upload because the file in the cache had the most recent changes from the disk. |
E_LSC_LOCALFILEUNAVAILABLE |
The file specified by bstrFileSystemPath is missing or locked. |
E_LSC_LOCALPATHNOTMAPPED |
The given FileSystemPath is not under the directory root specified by the FileSystemDirectoryHint when the call to Initialize was made. |
E_LSC_NOTINITIALIZED |
ILSCLocalSyncClient::Initialize has not been successfully called in the past. |
E_LSC_PATHMISMATCH |
The file specified by bstrResourceID has a different FileSystemPath than specified. |
E_LSC_PENDINGCHANGESINCACHE |
The file specified already has pending changes in a different cache and cannot yet be associated with the consumer's cache. |
E_LSC_SERVERPATHINDIFFERENTCACHE |
The WebPath provided falls under a different cache. |
S_OK |
The call succeeded. |
ILSCLocalSyncClient::RenameFile
RenameFile will associate a new URL and local path for a given ResourceID. If the file specified by the ResourceID doesn't already exist in the cache, an attempt will be made to create it and mark it for download.
HRESULT ILSCLocalSyncClient::RenameFile ([in] BSTR bstrResourceID, [in] BSTR bstrNewFileSystemPath, [in] BSTR bstrNewWebPath, [in] VARIANT_BOOL fBlockUploads)
Parameters
bstrResourceID
A string which identifies the ResourceID of the file. This value must be non-empty with a maximum of 128 characters.
bstrNewFileSystemPath
A string which specifies the new local path for the file. This value must be a non-empty local path with a maximum of 256 characters. This path must be in the directory tree specified by the FileSystemDirectoryHint when the call to Initialize was made.
bstrNewWebPath
A string which specifies the new URL for the file. This value must be non-empty valid URL, but no longer than INTERNET_MAX_URL_LENGTH, as defined by https://support.microsoft.com/kb/208427.
fBlockUploads
Specifies whether uploads to the new location are allowed currently.
Return values
Value | Description |
---|---|
E_FAIL |
The call failed. |
E_INVALIDARG |
One or more parameters are invalid. |
E_LSC_CONFLICTINGFILE |
The bstrNewFileSystemPath or bstrNewWebPath already exist on another file in any cache. An event of type LSCEventType_OnFilePathConflict is sent when this error is returned. See ILSCLocalSyncClient::GetChanges. |
E_LSC_FILENOTFOUND |
The file information was deleted from the cache while this method was running. |
E_LSC_LOCALPATHNOTMAPPED |
The given FileSystemPath is not under the directory root specified by the FileSystemDirectoryHint when the call to Initialize was made. |
E_LSC_NOTINITIALIZED |
ILSCLocalSyncClient::Initialize has not been successfully called in the past. |
E_LSC_PENDINGCHANGESINCACHE |
The file specified is currently synchronizing in an Office application. |
S_OK |
The call succeeded. |
ILSCLocalSyncClient::ResetCache
ResetCache will delete the cache associated with the SuppliedID that was provided on Initialize. This includes all of the file information, but will leave the files on both the client and the server. This method also leaves the object in a partially uninitialized state. The only valid calls after this are ILSCLocalSyncClient::Initialize or ILSCLocalSyncClient::Uninitialize. This method MAY be called if Initialize fails and returns E_LSC_CACHEMISMATCH, and will delete the cache associated with the SuppliedID that was provided with the failing call.
HRESULT ILSCLocalSyncClient::ResetCache()
Parameters
None
Return values
Value | Description |
---|---|
E_FAIL |
The call failed. |
E_LSC_NOTINITIALIZED |
ILSCLocalSyncClient::Initialize was not successfully called in the past. |
S_OK |
The call succeeded. |
ILSCLocalSyncClient::ServerFileChange
ServerFileChange tells the CsiSyncClient COM object to mark the specified file for download. If the file is open in an Office application for edit, this method will return S_OK without marking the file for download (the application should already do this step if there are changes).
This method will allow downloads if it was marked as downloads blocked previously (see RenameFile).
HRESULT ILSCLocalSyncClient::ServerFileChange ([in] BSTR bstrFileSystemPath, [in] BSTR bstrWebPath, [in] BSTR bstrResourceID)
Parameters
Parameter | Description |
---|---|
bstrFileSystemPath |
A string which identifies the file on the client. This value must be a non-empty local path with a maximum of 256 characters. This path must be in the directory tree specified by the FileSystemDirectoryHint when the call to Initialize was made. |
bstrResourceID |
A string which identifies the ResourceID of the file. This value must be non-empty with a maximum of 128 characters. |
bstrWebPath |
A string which identifies the file on the server. This value must be a non-empty valid URL, but no longer than INTERNET_MAX_URL_LENGTH, as defined by https://support.microsoft.com/kb/208427. |
Return values
Value | Description |
---|---|
E_FAIL |
Failure to set the cache connectivity state. |
E_LSC_CONFLICTINGFILE |
The file specified by bstrFileSystemPath has a different ResourceID than specified. |
E_LSC_FILENOTSUPPORTED |
The given file extension is not supported by the CsiSyncClient COM object. See GetSupportedFileExtensions. |
E_LSC_FILENOTFOUND |
The file was deleted in mid-operation. |
E_INVALIDARG |
One or more parameters are invalid. |
E_LSC_LOCALPATHNOTMAPPED |
The given FileSystemPath is not under the directory root specified by the FileSystemDirectoryHint when the call to Initialize was made. |
E_LSC_NOINITIALIZED |
ILSCLocalSyncClient::Initialize has not been successfully called in the past. |
E_LSC_PATHMISMATCH |
The file specified by bstrResourceID has a different FileSystemPath than specified. |
E_LSC_PENDINGCHANGESINCACHE |
The specified file already has pending changes in a different cache and cannot yet be associated with the consumer's cache. |
E_LSC_SERVERPATHINDIFFERENTCACHE |
The WebPath provided falls under a different cache. |
S_OK |
The call succeeded. |
ILSCLocalSyncClient::SetClientConnectivityState
Sets the cache into an online or offline state. If offline, Office will not attempt to communicate with the server for any files in that cache, regardless of each individual file's fBlockUploads setting.
HRESULT ILSCLocalSyncClient::SetClientConnectivityState ([in] VARIANT_BOOL fIsOnline)
Parameters
fIsOnline
A boolean determining the connectivity state of the cache.
Return values
Value | Description |
---|---|
E_FAIL |
Failure to set the cache connectivity state. |
E_INVALIDARG |
One or more parameters are invalid. |
E_LSC_NOINITIALIZED |
ILSCLocalSyncClient::Initialize has not been successfully called in the past. |
S_OK |
The call succeeded. |
ILSCLocalSyncClient::SetClientNetworkSyncPermission
SetClientNetworkSyncPermission is used to either override or restoreOffice's synchronizing heuristics for network cost and power usage. When on a 3G or other high cost network, or when running on battery versus being plugged in, Office may choose to block network traffic until a more opportune time. The consumer of this API can use it to override Office's heuristics and force synchronizing to occur.
HRESULT ILSCLocalSyncClient::SetClientNetworkSyncPermission ([in] LSCNetworkSyncPermissionType nspType, [in] VARIANT_BOOL fEnableSync)
Parameters
nspType
A flag which defines which cost heuristic to override. See Enum LSCNetworkSyncPermissionType.
fEnableSync
Specifies whether to force synchronizing on, thus overriding that cost heuristic, or to no longer override it.
Return values
Value | Description |
---|---|
E_FAIL |
Failure to override synchronizing heuristics. |
E_LSC_NOINITIALIZED |
ILSCLocalSyncClient::Initialize has not been successfully called in the past. |
S_OK |
The call succeeded. |
ILSCLocalSyncClient::Uninitialize
Unloads the cache from the COM object and perform closing operations. ILSCLocalSyncClient::Uninitialize MUST be called before destroying the COM object. Once called, no other APIs can be called, the COM object MUST be destroyed and a new one created if you wish to continue operations.
HRESULT ILSCLocalSyncClient::Uninitialize ()
Parameters
None.
Return values
Value | Description |
---|---|
E_FAIL |
Failure to uninitialize. |
E_LSC_NOINITIALIZED |
ILSCLocalSyncClient::Initialize has not been successfully called in the past. |
S_OK |
The call succeeded. |
Interface IEnumLSCEvent
This interface represents a list of ILSCEvent events.
Public member functions
IEnumLSCEvent::FNext
Retrieves the next event from the list of events.
HRESULT IEnumLSCEvent::FNext ([out] ILSCEvent ** ppiLSCEvent)
Parameters
ppiLSCEvent
A pointer to an ILSCEvent interface.
Return values
Value | Description |
---|---|
E_FAIL |
There are no more events. |
S_OK |
The call was successful. |
IEnumLSCEvent::Reset
Resets the enumerator to the first event.
HRESULT IEnumLSCEvent::Reset ()
Parameters
None.
Return values
Always returns S_OK.
Interface ILSCEvent
This interface represents a synchronizing event. All information about the event can be retrieved from the interface.
Public member functions
ILSCEvent::GetConflictStatus
Note that this value is populated when ILSCLocalSyncClient::GetChanges is called, not when the event was created, so you will only have the current status of the file, not the status of the file when the conflict status changed.
This value is only populated when the Enum LSCEventType of the event is LSCEventType_OnLocalConflictStateChanged.
HRESULT ILSCEvent::GetConflictStatus ([out] VARIANT_BOOL * pfIsInConflict)
Parameters
pfIsInConflict
The current conflict status of the file associated with the event.
Return values
Always returns S_OK.
ILSCEvent::GetError
This value is only populated when the Enum LSCEventType of the event is LSCEventType_OnServerChangesDownloaded or LSCEventType_OnLocalChangesUploaded.
HRESULT ILSCEvent::GetError ([out] LONG * pnError)
Parameters
pnError
The error associated with this event.
Return values
Always returns S_OK.
ILSCEvent::GetETag
This value is only populated when the Enum LSCEventType of the event is LSCEventType_OnServerChangesDownloaded or LSCEventType_OnLocalChangesUploaded.
HRESULT ILSCEvent::GetETag ([out] BSTR * pbstrETag)
Parameters
pbstrETag
The ETag associated with this event
Return values
Always returns S_OK.
ILSCEvent::GetEventType
Gets the type for this event.
HRESULT ILSCEvent::GetEventType ([out] LSCEventType * pnEventType)
Parameters
pnEventType
The event type of this event. See Enum LSCEventType for valid values. Must not be null.
Return values
Value | Description |
---|---|
E_INVALIDARG |
One or more parameters are invalid. |
S_OK |
The call was successful. |
ILSCEvent::GetLocalWorkingPath
Gets the local working path for this event.
HRESULT ILSCEvent::GetLocalWorkingPath ([out] BSTR * pbstrLocalWorkingPath)
Parameters
pbstrLocalWorkingPath
The local path of the file to which this event pertains.
Return values
Always returns S_OK.
ILSCEvent::GetResourceID
Gets the resource ID for the event.
HRESULT ILSCEvent::GetResourceID ([out] BSTR * pbstrResourceID)
Parameters
pbstrResourceID
The ResourceID of the file associated with this event.
Return values
Always returns S_OK.
ILSCEvent::GetResourceIDAttempted
This value is only populated when the Enum LSCEventType of the event is LSCEventType_OnFilePathConflict. When a call to ILSCLocalSyncClient::LocalFileChange, ILSCLocalSyncClient::ServerFileChange, or ILSCLocalSyncClient::RenameFile would cause a Web Path or Local Path collision with another file in the Office file cache, this event is generated.
HRESULT ILSCEvent::GetResourceIDAttempted ([out] BSTR * pbstrResourceIDAttempted)
Parameters
pbstrResourceIDAttempted
The ResourceID that caused this event to get generated. Must not be null.
Return values
Always returns S_OK.
ILSCEvent::GetSyncErrorType
This value is only populated when the Enum LSCEventType of the event is LSCEventType_OnServerChangesDownloaded or LSCEventType_OnLocalChangesUploaded.
HRESULT ILSCEvent::GetSyncErrorType ([out] LSCEventSyncErrorType * pnSyncErrorType)
Parameters
pnSyncErrorType
The error type associated with this event. See Enum LSCEventType for potential values. Must not be null.
Return values
Value | Description |
---|---|
E_INVALIDARG |
One or more parameters are invalid. |
S_OK |
The call was successful. |
ILSCEvent::GetWebPath
This value is only populated when the Enum LSCEventType of the event is LSCEventType_OnFilePathConflict.
HRESULT ILSCEvent::GetWebPath ([out] BSTR * pbstrWebPath)
Parameters
pbstrWebPath
Specifies the Web Path associated with this event. Must not be null.
Return values
Always returns S_OK.
Interface ILSCEvent2
This interface holds additional information about a synchronizing event.
Public member functions
ILSCEvent2::GetErrorChain
Gets the error chain information about a synchronizing event.
HRESULT ILSCEvent2::GetErrorChain ([out] BSTR * pbstrErrorChain)
Parameters
pbstrErrorChain
A string to hold the error chain information. Must not be null.
Return values
Value | Description |
---|---|
E_NOTIMPL |
The installed version of Office does not support this interface |
E_INVALIDARG |
One or more of the parameter values are invalid. |
E_FAIL |
The error chain information is not available. |
S_OK |
The call was successful. |
Interface IPartnerActivityCallback
This interface provides a callback function to the CSISyncClient COM object.
Public member functions
IPartnerActivityCallback::EventOccurred
This is a callback function on the object given to the CsiSyncClient COM object. It's expected that when an Event occurs (see Enum LSCEventTypeOccurred for valid event types), the CsiSyncClient COM object will call this method, signalling the consumer.
HRESULT IPartnerActivityCallback::EventOccurred ([in] LSCEventTypeOccurred eEventTypeOccurred)
Parameters
eEventTypeOccurred
The event type of this event. See Enum LSCEventTypeOccurred for valid values.
Return values
Always returns S_OK.
Enumerations
CSISyncClient uses the following enumerations.
Enum LSCEventSyncErrorType
This enumeration specifies the categories of errors that can occur while synchronizing a file.
Enumerator | Description |
---|---|
LSCEventSyncErrorType_UserInterventionRequiredUnexpected |
The synchronizing error of this event was unexpected, and may require special consideration. By default, the user may have to intervene. |
LSCEventSyncErrorType_NoInterventionRequired |
The synchronizing error of this event does not need special consideration. Office will handle it automatically. |
LSCEventSyncErrorType_UserInterventionRequired |
The synchronizing error of this event requires a user to resolve it. For example, merge conflict error requires a user to open the document and merge it. |
LSCEventSyncErrorType_WaitingOnClient |
The synchronizing error of this event requires the consumer to intervene, but should not require special consideration by the user. |
LSCEventSyncErrorType_ClientInterventionRequired |
The synchronizing error of this event requires the consumer to intervene as a special case. |
LSCEventSyncErrorType_Max |
Enum LSCEventType
This enumeration specifies the type of events that can occur for a particular file.
Enumerator | Description |
---|---|
LSCEventType_None |
|
LSCEventType_OnLocalChanges |
Changes were made to a local file. |
LSCEventType_OnOpenedByUser |
A user opened a file. |
LSCEventType_OnServerChangesDownloaded |
Finished downloading file changes from the server. |
LSCEventType_OnLocalChangesUploaded |
Finished uploading file changes to the server. |
LSCEventType_OnLocalConflictStateChanged |
The merge conflict state of a file has changed. |
LSCEventType_OnFileAdded |
A file was added. |
LSCEventType_OnFileDeleted |
A file was deleted. |
LSCEventType_OnSyncEnabled |
Synchronizing was enabled for a user's files. |
LSCEventType_OnServerChangesDownloadStarted |
Started downloading file changes from the server. |
LSCEventType_OnLocalChangesUploadStarted |
Started uploading file changes to the server. |
LSCEventType_OnFilePathConflict |
This event is generated when a call to ILSCLocalSyncClient::LocalFileChange, ILSCLocalSyncClient::ServerFileChange, or ILSCLocalSyncClient::RenameFile causes a Web Path or Local Path collision with another file in the Office file cache. |
LSCEventType_OnFileForked |
|
LSCEventType_Max |
Enum LSCEventTypeOccurred
This enumeration specifies the type of events that can occur. The consumer needs to call specific ILSCLocalSyncClient functions based on the event type.
Enumerator | Description |
---|---|
LSCEventTypeOccurred_GetChanges |
An ILSCEvent has occurred. The consumer should call ILSCLocalSyncClient::GetChanges to retrieve the data. |
LSCEventTypeOccurred_GetSupportedFileExtensions |
The supported file extensions have changed. The consumer should call ILSCLocalSyncClient::GetSupportedFileExtensions to retrieve the new list of supported extensions. |
Enum LSCNetworkSyncPermissionType
This enumeration specifies the flags used for a network cost heuristic.
Enumerator | Description |
---|---|
LSCNetworkSyncPermissionType_HighCost |
True if the cost heuristic for expensive networks (such as 3G) is overridden. |
LSCNetworkSyncPermissionType_HighPowerUsage |
True if the cost heuristic for power usage (such as a battery) is overridden. |
Enum LSCStatusFlag
This enumeration is used to represent the synchronize status of a file.
Enumerator | Description |
---|---|
LCSStatusFlag_None |
|
LSCStatusFlag_UploadPending |
True if there is pending data to send to the server file. |
LSCStatusFlag_DownloadPending |
True if there is pending data to download from the server file. |
LSCStatusFlag_LocalFileUnchanged |
True if the data Office has on the file in its cache is the most recent copy of the data on disk. |