Compartilhar via


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

Recupera um objeto que habilita a invocação do manipulador associado na seleção atual. O invocador inclui a capacidade de verificar se a seleção atual tem suporte.

Sintaxe

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

Parâmetros

[in] pdo

Tipo: IDataObject*

Um ponteiro para um IDataObject que representa o item ou os itens selecionados nos quais invocar o manipulador. Observe que, se você tiver apenas um único item, IAssocHandler::Invoke poderá ser a melhor opção. Consulte Comentários para obter mais detalhes.

[out] ppInvoker

Tipo: IAssocHandlerInvoker**

Quando esse método retorna, contém o endereço de um ponteiro para um objeto IAssocHandlerInvoker . Esse objeto é usado para invocar o item de menu depois de garantir que os itens selecionados sejam compatíveis com o manipulador associado.

Retornar valor

Tipo: HRESULT

Se o método for bem-sucedido, ele retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT.

Comentários

Objetos IAssocHandler normalmente são usados para preencher um menu Abrir com . Quando um desses itens de menu é selecionado, esse método é chamado para iniciar o aplicativo escolhido.

Invocar e criarInvoker

O IDataObject usado por esses métodos pode representar um único arquivo ou pode representar uma seleção de vários arquivos. Nem todos os aplicativos dão suporte à opção de vários arquivos. Esses aplicativos que dão suporte a esse cenário podem impor outras restrições, como o número de arquivos que podem ser abertos de uma só vez ou combinações aceitáveis de tipos de arquivo.

Portanto, um aplicativo geralmente deve determinar se o manipulador dá suporte à seleção antes de tentar invocar o manipulador. Por exemplo, um aplicativo só poderá habilitar um item de menu se souber que a seleção em questão era compatível com esse manipulador.

Geralmente, é seguro supor que um aplicativo dará suporte à invocação em um único item; nesses casos, o aplicativo normalmente chama IAssocHandler::Invoke.

Para vários cenários de seleção, o aplicativo deve chamar IAssocHandler::CreateInvoker. Esse método recupera um objeto IAssocHandlerInvoker que permite que o aplicativo de chamada primeiro marcar se a seleção tem suporte (SupportsSelection) e, em seguida, invocar o manipulador (Invoke).

IAssocHandler::Invoke pode ser chamado em uma seleção de vários arquivos, mas não é recomendado devido à grande carga de processamento envolvida e nenhuma garantia de êxito.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho shobjidl_core.h (inclua Shobjidl.h)

Confira também

IAssocHandler

IAssocHandler::Invoke

IEnumAssocHandlers