IProviderConverter Interface

When implemented by a derived class, represents an object that can convert an ISyncProvider object to an IKnowledgeSyncProvider object.

Syntax

interface IProviderConverter : IUnknown

Members

IProviderConverter method

Description

IProviderConverter::Initialize

Initializes the IProviderConverter object with the ISyncProvider object to be converted.

Remarks

IProviderConverter is typically implemented by the developer of the custom provider that it converts.

An implementation of IProviderConverter must be registered with Sync Framework by using IProviderConverterRegistration::RegisterProviderConverter. This registration requires the IID of the interface that the converter can convert to IKnowledgeSyncProvider, and the CLSID that Sync Framework can use to create the converter object by using CoCreateInstance.

When an ISyncSession object is used to manage synchronization, Sync Framework requires that each provider be represented by IKnowledgeSyncProvider. To obtain an IKnowledgeSyncProvider interface for each provider, Sync Framework takes the following steps during processing of IApplicationSyncServices::CreateSyncSession:

  1. Sync Framework directly queries the ISyncProvider interface that represents the provider by passing IID_IKnowledgeSyncProvider to the QueryInterface method of the ISyncProvider object.

  2. If QueryInterface returns E_NOINTERFACE, Sync Framework examines the registered IProviderConverter implementations and determines which of them can convert the ISyncProvider object to an IKnowledgeSyncProvider object.

  3. If an IProviderConverter is registered that can convert the provider, Sync Framework obtains the IKnowledgeSyncProvider interface from the IProviderConverter object. Sync Framework does this by first passing the ISyncProvider object to the converter by using IProviderConverter::Initialize, and then by passing IID_IKnowledgeSyncProvider to the QueryInterface method of the IProviderConverter.

Requirements

Header: Synchronization.h

See Also

Concepts

Sync Framework Core Components