Compartilhar via


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

Invoca diretamente o manipulador associado.

Sintaxe

HRESULT Invoke(
  [in] IDataObject *pdo
);

Parâmetros

[in] pdo

Tipo: IDataObject*

Um ponteiro para um IDataObject que representa o item selecionado no qual invocar o manipulador. Observe que você não deve chamar IAssocHandler::Invoke com uma seleção de vários itens. Se você tiver vários itens, chame IAssocHandler::CreateInvoker . Consulte Comentários para obter mais detalhes.

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 uma seleção de vários arquivos. Nem todos os aplicativos dão suporte à opção de vários arquivos. Os aplicativos que dão suporte a esse cenário podem impor outras restrições, como o número de arquivos que podem ser abertos simultaneamente ou a combinação aceitável 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 tiver verificado 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 e, nesses casos, o aplicativo normalmente chama IAssocHandler::Invoke com base nessa suposição.

No entanto, 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, invoque 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 que ele terá ê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)