Метод 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 |