Поделиться через


Метод 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 , отображающий пользовательский интерфейс, позволяющий пользователю просматривать содержимое элемента.

Центр синхронизации запрашивает этот объект, только если флаг возможности SYNCMGR_ICM_CAN_BROWSE_CONTENT установлен в маске, полученной GetCapabilities.

SYNCMGR_OBJECTID_ConflictStore

Объект, реализующий интерфейс ISyncMgrConflictStore , который позволяет элементу предоставлять конфликты. Эти конфликты отображаются в папке Конфликты центра синхронизации. Хранилище конфликтов должно содержать конфликты только для элемента. Чтобы включить конфликты для всех элементов обработчика, центр синхронизации вызывает GetObject.

Центр синхронизации запрашивает этот объект, только если флаг возможности SYNCMGR_ICM_CONFLICT_STORE установлен в маске, полученной GetCapabilities.

SYNCMGR_OBJECTID_EventStore

Объект, реализующий интерфейс ISyncMgrEventStore , который позволяет элементу предоставлять собственный источник событий. Эти события отображаются в папке "Результаты синхронизации". Хранилище событий должно содержать только события для элемента. Чтобы включить события для всех элементов обработчика, Центр синхронизации вызывает GetObject.

Центр синхронизации запрашивает этот объект, только если флаг возможности SYNCMGR_ICM_EVENT_STORE установлен в маске, полученной GetCapabilities.

Элемент не требуется для предоставления хранилища событий. Хранилище событий по умолчанию, предоставляемое Центром синхронизации, можно использовать, если оно соответствует требованиям элемента.

SYNCMGR_OBJECTID_Icon

Объект извлечения значков, реализующий интерфейс IExtractIcon , используемый для отображения значка элемента. Этот объект должен предоставляться только в том случае, если элемент получает свой значок динамически во время выполнения. Предпочтительным механизмом предоставления значка является регистрация значка в качестве DefaultIcon в реестре.

Центр синхронизации запрашивает этот объект, только если флаг возможности SYNCMGR_ICM_PROVIDES_ICON установлен в маске, полученной GetCapabilities.

SYNCMGR_OBJECTID_QueryBeforeDelete

Объект, реализующий интерфейс ISyncMgrUIOperation , который отображает пользовательский интерфейс, когда пользователь выбирает элемент в папке обработчика, а затем выбирает задачу Удалить . Перед запросом этого объекта центр синхронизации создает отдельный поток для этой операции и новый экземпляр элемента.

Центр синхронизации запрашивает этот объект, только если флаги возможностей SYNCMGR_ICM_CAN_DELETE и SYNCMGR_ICM_QUERY_BEFORE_DELETE заданы в маске, полученной GetCapabilities.

SYNCMGR_OBJECTID_QueryBeforeEnable

Объект, реализующий интерфейс ISyncMgrUIOperation , который отображает пользовательский интерфейс, когда пользователь выбирает элемент в папке Центра синхронизации, а затем выбирает задачу Включить . Перед запросом этого объекта центр синхронизации создает отдельный поток для этой операции и новый экземпляр элемента.

Центр синхронизации запрашивает этот объект только в том случае, если установлен флаг возможности SYNCMGR_ICM_QUERY_BEFORE_ENABLE , а флаг политики SYNCMGR_IPM_PREVENT_ENABLE — нет.

SYNCMGR_OBJECTID_QueryBeforeDisable

Объект, реализующий интерфейс ISyncMgrUIOperation , который отображает пользовательский интерфейс, когда пользователь выбирает элемент в папке обработчика, а затем выбирает задачу Отключить . Перед запросом этого объекта центр синхронизации создает отдельный поток для этой операции и новый экземпляр элемента.

Центр синхронизации запрашивает этот объект, только если установлен флаг возможности SYNCMGR_ICM_QUERY_BEFORE_DELETE , а флаг политики SYNCMGR_IPM_PREVENT_DISABLE — нет.

[in] riid

Тип: REFIID

ИД запрошенного интерфейса. Это зависит от типа объекта с именем в 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
Header syncmgr.h