Método IOleInPlaceFrame::TranslateAccelerator (oleidl.h)
Converte pressionamentos de teclas de acelerador destinados ao quadro do contêiner enquanto um objeto está ativo no local.
Sintaxe
HRESULT TranslateAccelerator(
[in] LPMSG lpmsg,
[in] WORD wID
);
Parâmetros
[in] lpmsg
Um ponteiro para a estrutura MSG que contém a mensagem de pressionamento de tecla.
[in] wID
O valor do identificador de comando correspondente ao pressionamento de tecla na tabela de aceleradores fornecida pelo contêiner. Os contêineres devem usar esse valor em vez de traduzir novamente.
Valor retornado
Esse método retorna S_OK com êxito. Outros valores retornados possíveis incluem o seguinte.
Código de retorno | Descrição |
---|---|
|
O pressionamento de tecla não foi usado. |
|
O ponteiro especificado é inválido. |
|
Erro inesperado. |
Comentários
Anotações para chamadores
O método IOleInPlaceFrame::TranslateAccelerator é chamado indiretamente por OleTranslateAccelerator quando um acelerador de pressionamento de tecla destinado ao contêiner (quadro) é recebido.Anotações aos implementadores
O aplicativo de contêiner deve executar seu processamento de acelerador habitual ou usar o wID diretamente e, em seguida, retornar, indicando se o acelerador de pressionamento de teclas foi processado. Se o contêiner for um aplicativo MDI e a função TranslateAccelerator falhar, o contêiner poderá chamar a função TranslateMDISysAccel , assim como faz para o processamento de mensagens usual.Os objetos in-loco devem ter a primeira chance de traduzir mensagens de acelerador. No entanto, como os objetos implementados por aplicativos de objeto DLL não têm sua própria bomba de mensagem, eles recebem suas mensagens da fila de mensagens do contêiner. Para garantir que o objeto tenha a primeira chance de traduzir mensagens, um contêiner sempre deve chamar IOleInPlaceFrame::TranslateAccelerator antes de fazer sua própria tradução de acelerador. Por outro lado, um aplicativo de objeto executável deve chamar OleTranslateAccelerator depois de chamar TranslateAccelerator, chamando TranslateMessage e DispatchMessage somente se ambas as funções de tradução falharem.
Você deve definir tabelas de acelerador para contêineres para que eles funcionem corretamente com aplicativos de objeto que fazem suas próprias traduções de pressionamento de teclas de acelerador. As tabelas devem ser definidas da seguinte maneira.
"char", wID, VIRTKEY, CONTROL
Essa é a maneira mais comum de descrever aceleradores de teclado. A falha ao fazer isso pode fazer com que os pressionamentos de tecla sejam perdidos ou enviados para o objeto errado durante uma sessão in-loco.
Requisitos
Cliente mínimo com suporte | Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows 2000 Server [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | oleidl.h |