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


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

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

SYNCMGR_OBJECTID_ConflictStore

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

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

SYNCMGR_OBJECTID_EventLinkClick

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

SYNCMGR_OBJECTID_EventStore

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

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

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

SYNCMGR_OBJECTID_Icon

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

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

SYNCMGR_OBJECTID_QueryBeforeActivate

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

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

SYNCMGR_OBJECTID_QueryBeforeDeactivate

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

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

SYNCMGR_OBJECTID_QueryBeforeEnable

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

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

SYNCMGR_OBJECTID_QueryBeforeDisable

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

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

SYNCMGR_OBJECTID_ShowSchedule

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

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

[in] riid

Тип: REFIID

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