Compartir a través de


Método IAssocHandler::Invoke (shobjidl_core.h)

Invoca directamente el controlador asociado.

Sintaxis

HRESULT Invoke(
  [in] IDataObject *pdo
);

Parámetros

[in] pdo

Tipo: IDataObject*

Puntero a un IDataObject que representa el elemento seleccionado en el que se va a invocar el controlador. Tenga en cuenta que no debe llamar a IAssocHandler::Invoke con una selección de varios elementos. Si tiene varios elementos, llame a IAssocHandler::CreateInvoker en su lugar. Consulte Comentarios para obtener más detalles.

Valor devuelto

Tipo: HRESULT

Si este método se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error de HRESULT.

Comentarios

Los objetos IAssocHandler se suelen usar para rellenar un menú Abrir con. Cuando se selecciona uno de esos elementos de menú, se llama a este método para iniciar la aplicación elegida.

Invocación y creación deInvoker

El objeto IDataObject usado por estos métodos puede representar un único archivo o una selección de varios archivos. No todas las aplicaciones admiten la opción de varios archivos. Las aplicaciones que admiten ese escenario podrían imponer otras restricciones, como el número de archivos que se pueden abrir simultáneamente o la combinación aceptable de tipos de archivo.

Por lo tanto, una aplicación a menudo debe determinar si el controlador admite la selección antes de intentar invocar el controlador. Por ejemplo, una aplicación podría habilitar un elemento de menú solo si ha comprobado que la selección en cuestión era compatible con ese controlador.

Por lo general, es seguro suponer que una aplicación admitirá la invocación en un solo elemento y, en esos casos, la aplicación normalmente llama a IAssocHandler::Invoke en función de esa suposición.

Sin embargo, para varios escenarios de selección, la aplicación debe llamar a IAssocHandler::CreateInvoker. Ese método recupera un objeto IAssocHandlerInvoker que permite a la aplicación que realiza la llamada comprobar primero si se admite la selección (SupportsSelection) y, a continuación, invocar el controlador (Invoke).

Se puede llamar a IAssocHandler::Invoke en una selección de varios archivos, pero no se recomienda debido a la carga de procesamiento grande implicada y no se garantiza que se realice correctamente.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado shobjidl_core.h (incluya Shobjidl.h)