ISyncMgrHandler::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_HCM_CAN_BROWSE_CONTENT功能标志时,同步中心才会请求此对象。
SYNCMGR_OBJECTID_ConflictStore
实现 ISyncMgrConflictStore 接口的对象,该接口使处理程序能够提供冲突。 这些冲突显示在“同步中心冲突”文件夹中。 冲突存储应包括处理程序的冲突及其所有项的冲突。 若要仅包含特定项的冲突,同步中心调用 GetObject。
仅当 getCapabilities 检索到的掩码中设置了SYNCMGR_HCM_CONFLICT_STORE功能标志时,同步中心才会请求此对象。
SYNCMGR_OBJECTID_EventLinkClick
实现 ISyncMgrEventLinkUIOperation 接口的对象,该接口实现对“同步结果”文件夹中显示的事件提供的链接的单击操作。
SYNCMGR_OBJECTID_EventStore
实现 ISyncMgrEventStore 接口的对象,该接口允许处理程序提供其自己的事件源。 这些事件显示在“同步结果”文件夹中。 事件存储应包含处理程序及其所有项的事件。 若要仅包含特定项的事件,同步中心调用 GetObject。 下次同步处理程序时,会要求事件存储区删除处理程序的事件。 默认事件存储会在用户注销时清除其事件。
仅当 getCapabilities 检索到的掩码中设置了SYNCMGR_HCM_EVENT_STORE功能标志时,同步中心才会请求此对象。
不需要处理程序即可提供事件存储。 如果同步中心提供的默认事件存储满足处理程序的要求,可以使用它。
SYNCMGR_OBJECTID_Icon
实现 IExtractIcon 接口的图标提取对象,用于显示处理程序的图标。 仅当处理程序在运行时动态获取其图标时,才应提供此对象。 提供图标的首选机制是在注册表中将图标注册为 DefaultIcon。
仅当 getCapabilities 检索到的掩码中设置了SYNCMGR_HCM_PROVIDES_ICON功能标志时,同步中心才会请求此对象。
SYNCMGR_OBJECTID_QueryBeforeActivate
实现 ISyncMgrUIOperation 接口的对象,该接口显示允许用户配置处理程序的 UI。 当用户选择“同步设置”文件夹中的处理程序,然后选择 “安装 ”任务时,将显示此 UI。 在请求此对象之前,Sync Center 会为此操作创建单独的线程和处理程序的新实例。
仅当 getCapabilities 检索到的掩码中设置了SYNCMGR_HCM_QUERY_BEFORE_ACTIVATE功能标志,并且 GetPolicies 检索到的掩码中未设置SYNCMGR_HPM_PREVENT_ACTIVATE策略标志时,同步中心才会请求此对象。
SYNCMGR_OBJECTID_QueryBeforeDeactivate
实现 ISyncMgrUIOperation 接口的对象,当用户选择“同步中心”文件夹中的处理程序,然后选择 “删除” 任务时,该接口将显示 UI。 在请求此对象之前,Sync Center 会为此操作创建单独的线程和处理程序的新实例。
仅当在 GetCapabilities 检索的掩码中设置了SYNCMGR_HCM_QUERY_BEFORE_DEACTIVATE功能标志,并且 GetPolicies 检索到的掩码中未设置SYNCMGR_HPM_PREVENT_DEACTIVATE策略标志时,同步中心才会请求此对象。
SYNCMGR_OBJECTID_QueryBeforeEnable
实现 ISyncMgrUIOperation 接口的对象,当用户选择“同步中心”文件夹中的处理程序并选择 “启用” 任务时显示 UI。 在请求此对象之前,Sync Center 会为此操作创建单独的线程和处理程序的新实例。
仅当 getCapabilities 检索到的掩码中设置了SYNCMGR_HCM_CAN_ENABLE和SYNCMGR_HCM_QUERY_BEFORE_ENABLE功能标志时,同步中心才会请求此对象。
SYNCMGR_OBJECTID_QueryBeforeDisable
实现 ISyncMgrUIOperation 接口的对象,该接口在用户选择“同步中心”文件夹中的处理程序并选择“ 禁用” 任务时显示 UI。 在请求此对象之前,Sync Center 会为此操作创建单独的线程和处理程序的新实例。
仅当 getCapabilities 检索到的掩码中设置了SYNCMGR_HCM_CAN_DISABLE和SYNCMGR_HCM_QUERY_BEFORE_DISABLE功能标志时,同步中心才会请求此对象。
SYNCMGR_OBJECTID_ShowSchedule
实现 ISyncMgrUIOperation 接口的对象,该接口显示允许用户配置处理程序计划的 UI。 在请求此对象之前,Sync Center 会为此操作创建单独的线程和处理程序的新实例。
仅当 getCapabilities 检索到的掩码中设置了SYNCMGR_HCM_CAN_SHOW_SCHEDULE功能标志时,同步中心才会请求此对象。
[in] riid
类型: REFIID
请求的接口的 IID。 这取决于 rguidObjectID 中名为 的对象类型。
[out] ppv
类型: void**
此方法返回时,包含指向所请求接口的指针的地址。
返回值
类型: HRESULT
如果成功,则返回 S_OK,否则返回错误值。 如果处理程序不支持请求的对象类型,则返回E_NOTIMPL。
注解
处理程序可以在自身上实现请求的接口,也可以在不同的 对象上实现它。
示例
以下示例演示此方法的实现。
STDMETHODIMP CMyDeviceHandler::GetObject( __in REFGUID rguidObjectID,
__in REFIID riid,
__out void **ppv)
{
HRESULT hr = E_NOTIMPL;
*ppv = NULL;
if (rguidObjectID == SYNCMGR_OBJECTID_QueryBeforeActivate)
{
hr = _CreateSetupObject(riid, ppv);
}
else if (rguidObjectID == SYNCMGR_OBJECTID_EventStore)
{
hr = _CreateEventStore(NULL, riid, ppv);
}
return hr;
}
要求
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | syncmgr.h |