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