ISyncMgrHandlerCollection interface (syncmgr.h)

Exposes methods that provide an enumerator of sync handler IDs and instantiate those sync handlers.

Inheritance

The ISyncMgrHandlerCollection interface inherits from the IUnknown interface. ISyncMgrHandlerCollection also has these types of members:

Methods

The ISyncMgrHandlerCollection interface has these methods.

 
ISyncMgrHandlerCollection::BindToHandler

Instantiates a specified sync handler when called by Sync Center.
ISyncMgrHandlerCollection::GetHandlerEnumerator

Gets an enumerator that provides access to the IDs of sync handlers exposed to and managed by the user.

Remarks

The author of a sync handler implements this interface to support multiple devices or computers and sync their details independently. Sync Center uses the handler collection to request instantiation of individual sync handlers. ISyncMgrHandlerCollection also allows a sync handler author to add handlers dynamically to Sync Center as opposed to registering each one individually in the registry.

The following example shows an outline implementation of this interface.

class CMyHandlerCollection : public ISyncMgrHandlerCollection
{
public:
    // IUnknown
    // ISyncMgrHandlerCollection
    IFACEMETHODIMP GetHandlerEnumerator(__out IEnumString **ppenum);
    IFACEMETHODIMP BindToHandler(
        __in LPCWSTR    pszHandlerID,
        __in REFIID     riid,
        __out void    **ppv);
};

STDMETHODIMP CMyHandlerCollection::GetHandlerEnumerator(
    __out IEnumString **ppenum)
{
    // IDs are retrieved from a data source such as the registry.
    // IDs could be retrieved either by this collection class 
    // or the factory method.
    return CEnumMyHandlerIDs_Create(ppenum);
}

STDMETHODIMP CMyHandlerCollection::BindToHandler(
    __in LPCWSTR    pszHandlerID,
    __in REFIID     riid,
    __out void    **ppv)
{
    // Map the pszHandlerID to the handler to create. This could be done
    // by the factory method or by some other method.
    return CMyHandler_Create(pszHandlerID, riid, ppv);
}

Requirements

Requirement Value
Minimum supported client Windows Vista [desktop apps only]
Minimum supported server Windows Server 2008 [desktop apps only]
Target Platform Windows
Header syncmgr.h