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) |