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_ENABLESYNCMGR_HCM_QUERY_BEFORE_ENABLE功能标志时,同步中心才会请求此对象。

SYNCMGR_OBJECTID_QueryBeforeDisable

实现 ISyncMgrUIOperation 接口的对象,该接口在用户选择“同步中心”文件夹中的处理程序并选择“ 禁用” 任务时显示 UI。 在请求此对象之前,Sync Center 会为此操作创建单独的线程和处理程序的新实例。

仅当 getCapabilities 检索到的掩码中设置了SYNCMGR_HCM_CAN_DISABLESYNCMGR_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