ISyncMgrSyncItem::GetObject 方法 (syncmgr.h)
创建与项相关的特定对象类型。
语法
HRESULT GetObject(
[in] REFGUID rguidObjectID,
[in] REFIID riid,
[out] void **ppv
);
参数
[in] rguidObjectID
类型: REFGUID
标识要创建的对象类型的 GUID。 shlguid.h 中定义的以下值之一。
SYNCMGR_OBJECTID_BrowseContent
实现 ISyncMgrUIOperation 接口的对象,该接口显示允许用户浏览项内容的 UI。
仅当 getCapabilities 检索的掩码中设置了SYNCMGR_ICM_CAN_BROWSE_CONTENT功能标志时,同步中心才会请求此对象。
SYNCMGR_OBJECTID_ConflictStore
实现 ISyncMgrConflictStore 接口的对象,该接口允许项提供冲突。 这些冲突显示在“同步中心冲突”文件夹中。 冲突存储应仅包含项的冲突。 若要包含处理程序的所有项的冲突,同步中心调用 GetObject。
仅当 getCapabilities 检索到的掩码中设置了SYNCMGR_ICM_CONFLICT_STORE功能标志时,同步中心才会请求此对象。
SYNCMGR_OBJECTID_EventStore
实现 ISyncMgrEventStore 接口的对象,该接口允许项提供其自己的事件源。 这些事件显示在“同步结果”文件夹中。 事件存储应仅包含项的事件。 若要包含处理程序的所有项的事件,同步中心调用 GetObject。
仅当 getCapabilities 检索到的掩码中设置了SYNCMGR_ICM_EVENT_STORE功能标志时,同步中心才会请求此对象。
提供事件存储不需要项。 如果同步中心提供的默认事件存储满足项的要求,则可以使用它。
SYNCMGR_OBJECTID_Icon
实现用于显示项图标的 IExtractIcon 接口的图标提取对象。 仅当项在运行时动态获取其图标时,才应提供此对象。 提供图标的首选机制是在注册表中将图标注册为 DefaultIcon。
仅当 getCapabilities 检索的掩码中设置了SYNCMGR_ICM_PROVIDES_ICON功能标志时,同步中心才会请求此对象。
SYNCMGR_OBJECTID_QueryBeforeDelete
实现 ISyncMgrUIOperation 接口的对象,当用户选择处理程序文件夹中的项并选择 “删除” 任务时显示 UI。 在请求此对象之前,同步中心会为此操作创建一个单独的线程和项的新实例。
仅当 getCapabilities 检索的掩码中设置了SYNCMGR_ICM_CAN_DELETE和SYNCMGR_ICM_QUERY_BEFORE_DELETE功能标志时,同步中心才会请求此对象。
SYNCMGR_OBJECTID_QueryBeforeEnable
实现 ISyncMgrUIOperation 接口的对象,当用户选择“同步中心”文件夹中的项并选择 “启用” 任务时显示 UI。 在请求此对象之前,同步中心会为此操作创建一个单独的线程和项的新实例。
仅当设置了SYNCMGR_ICM_QUERY_BEFORE_ENABLE功能标志且未设置SYNCMGR_IPM_PREVENT_ENABLE策略标志时,同步中心才会请求此对象。
SYNCMGR_OBJECTID_QueryBeforeDisable
实现 ISyncMgrUIOperation 接口的对象,当用户选择处理程序文件夹中的项并选择 “禁用 ”任务时显示 UI。 在请求此对象之前,同步中心会为此操作创建一个单独的线程和项的新实例。
仅当设置了SYNCMGR_ICM_QUERY_BEFORE_DELETE功能标志且未设置SYNCMGR_IPM_PREVENT_DISABLE策略标志时,同步中心才会请求此对象。
[in] riid
类型: REFIID
请求的接口的 IID。 这依赖于 rguidObjectID 中名为 的对象类型。
[out] ppv
类型: void**
此方法返回时,包含指向所请求接口的指针的地址。
返回值
类型: HRESULT
如果成功,则返回 S_OK,否则返回错误值。 如果项不支持请求的对象类型,则返回E_INVALIDARG。
注解
项可以在其处理程序上实现请求的接口,也可以在不同的对象上实现它。
示例
以下示例演示此方法的实现。
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;
}
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | syncmgr.h |