ISyncMgrSyncItem::GetObject method (syncmgr.h)
Creates a specific type of object related to the item.
Syntax
HRESULT GetObject(
[in] REFGUID rguidObjectID,
[in] REFIID riid,
[out] void **ppv
);
Parameters
[in] rguidObjectID
Type: REFGUID
A GUID identifying the type of object to create. One of the following values as defined in shlguid.h.
SYNCMGR_OBJECTID_BrowseContent
An object implementing the ISyncMgrUIOperation interface that shows UI that allows the user to browse the contents of the item.
Sync Center only requests this object if the SYNCMGR_ICM_CAN_BROWSE_CONTENT capability flag is set in the mask retrieved by GetCapabilities.
SYNCMGR_OBJECTID_ConflictStore
An object implementing the ISyncMgrConflictStore interface that allows an item to provide conflicts. These conflicts are shown in the Sync Center Conflicts folder. The conflict store should include conflicts only for the item. To include conflicts for all of a handler's items, Sync Center calls GetObject.
Sync Center only requests this object if the SYNCMGR_ICM_CONFLICT_STORE capability flag is set in the mask retrieved by GetCapabilities.
SYNCMGR_OBJECTID_EventStore
An object implementing the ISyncMgrEventStore interface that allows an item to provide its own source of events. These events are shown in the Sync Results folder. The event store should include only events for the item. To include events for all of a handler's items, Sync Center calls GetObject.
Sync Center only requests this object if the SYNCMGR_ICM_EVENT_STORE capability flag is set in the mask retrieved by GetCapabilities.
An item is not required to provide an event store. The default event store provided by Sync Center can be used if it meets the item's requirements.
SYNCMGR_OBJECTID_Icon
An icon extraction object that implements the IExtractIcon interface used to display an icon for the item. This object should only be provided if the item obtains its icon dynamically at run time. The preferred mechanism for providing the icon is to register the icon as the DefaultIcon in the registry.
Sync Center only requests this object if the SYNCMGR_ICM_PROVIDES_ICON capability flag is set in the mask retrieved by GetCapabilities.
SYNCMGR_OBJECTID_QueryBeforeDelete
An object implementing the ISyncMgrUIOperation interface that displays UI when the user selects the item in the handler's folder then selects the Delete task. Before requesting this object, Sync Center creates both a separate thread for this operation and a new instance of the item.
Sync Center only requests this object if the SYNCMGR_ICM_CAN_DELETE and SYNCMGR_ICM_QUERY_BEFORE_DELETE capability flags are set in the mask retrieved by GetCapabilities.
SYNCMGR_OBJECTID_QueryBeforeEnable
An object implementing the ISyncMgrUIOperation interface that displays UI when the user selects the item in the Sync Center folder then selects the Enable task. Before requesting this object, Sync Center creates both a separate thread for this operation and a new instance of the item.
Sync Center only requests this object if the SYNCMGR_ICM_QUERY_BEFORE_ENABLE capability flag is set and the SYNCMGR_IPM_PREVENT_ENABLE policy flag is not.
SYNCMGR_OBJECTID_QueryBeforeDisable
An object implementing the ISyncMgrUIOperation interface that displays UI when the user selects the item in the handler's folder then selects the Disable task. Before requesting this object, Sync Center creates both a separate thread for this operation and a new instance of the item.
Sync Center only requests this object if the SYNCMGR_ICM_QUERY_BEFORE_DELETE capability flag is set and the SYNCMGR_IPM_PREVENT_DISABLE policy flag is not.
[in] riid
Type: REFIID
The IID of the requested interface. This is dependent on the object type named in rguidObjectID.
[out] ppv
Type: void**
When this method returns, contains the address of a pointer to the requested interface.
Return value
Type: HRESULT
Returns S_OK if successful, or an error value otherwise. Returns E_INVALIDARG if the item does not support the requested type of object.
Remarks
The item can implement the requested interface on its handler or it can implement it on a different object.
Examples
The following example shows an implementation of this method.
STDMETHODIMP CMyDeviceSyncItem::GetObject(__in REFGUID rguidObjectID,
__in REFIID riid,
__out void **ppv)
{
HRESULT hr = E_INVALIDARG;
*ppv = NULL;
if (rguidObjectID == SYNCMGR_OBJECTID_QueryBeforeDelete)
{
hr = _CreateQueryBeforeDeleteObject(riid, ppv);
}
else if (rguidObjectID == SYNCMGR_OBJECTID_EventStore)
{
hr = _CreateEventStore(_pszItemID, riid, ppv);
}
return hr;
}
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 |