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


Метод IAssocHandler::CreateInvoker (shobjidl_core.h)

Извлекает объект , который включает вызов связанного обработчика для текущего выделенного фрагмента. Вызывающий объект включает возможность проверить, поддерживается ли текущий выбор.

Синтаксис

HRESULT CreateInvoker(
  [in]  IDataObject          *pdo,
  [out] IAssocHandlerInvoker **ppInvoker
);

Параметры

[in] pdo

Тип: IDataObject*

Указатель на объект IDataObject , представляющий выбранный элемент или элементы, для которых вызывается обработчик. Обратите внимание, что если у вас есть только один элемент, IAssocHandler::Invoke может быть лучшим выбором. Дополнительные сведения см. в разделе Примечания.

[out] ppInvoker

Тип: IAssocHandlerInvoker**

При возврате этим методом содержит адрес указателя на объект IAssocHandlerInvoker . Этот объект используется для вызова пункта меню после обеспечения поддержки выбранных элементов связанным обработчиком.

Возвращаемое значение

Тип: HRESULT

Если этот метод завершается успешно, он возвращает S_OK. В противном случае возвращается код ошибки HRESULT .

Комментарии

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

Вызов и CreateInvoker

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

Поэтому приложение часто должно определить, поддерживает ли обработчик выбор, прежде чем пытаться вызвать обработчик. Например, приложение может включить пункт меню только в том случае, если оно знает, что соответствующий выбор поддерживается этим обработчиком.

Как правило, можно предположить, что приложение будет поддерживать вызов для одного элемента; В таких случаях приложение обычно вызывает IAssocHandler::Invoke.

Для нескольких сценариев выбора приложение должно вызывать IAssocHandler::CreateInvoker. Этот метод извлекает объект IAssocHandlerInvoker, который позволяет вызывающей приложению сначала проверка, поддерживается ли выбор (SupportsSelection), а затем вызвать обработчик (Invoke).

IAssocHandler::Invoke можно вызывать для нескольких файлов, но это не рекомендуется из-за большой нагрузки на обработку и отсутствия гарантии успеха.

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header shobjidl_core.h (включая Shobjidl.h)

См. также раздел

IAssocHandler

IAssocHandler::Invoke

IEnumAssocHandlers