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_DELETESYNCMGR_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