Método IOleInPlaceFrame::TranslateAccelerator (oleidl.h)
Traduce las pulsaciones de tecla del acelerador diseñadas para el marco del contenedor mientras un objeto está activo en su lugar.
Sintaxis
HRESULT TranslateAccelerator(
[in] LPMSG lpmsg,
[in] WORD wID
);
Parámetros
[in] lpmsg
Puntero a la estructura msg que contiene el mensaje de pulsación de tecla.
[in] wID
Valor del identificador de comando correspondiente a la pulsación de tecla en la tabla de aceleradores proporcionada por el contenedor. Los contenedores deben usar este valor en lugar de traducirlo de nuevo.
Valor devuelto
Este método devuelve S_OK cuando funciona correctamente. Otros posibles valores devueltos son los siguientes.
Código devuelto | Descripción |
---|---|
|
No se usó la pulsación de tecla. |
|
El puntero especificado no es válido. |
|
Se ha producido un error inesperado. |
Comentarios
Notas a los autores de llamadas
OleTranslateAccelerator llama indirectamente al método IOleInPlaceFrame::TranslateAccelerator cuando se recibe un acelerador de pulsaciones de teclas destinado al contenedor (marco).Notas para los implementadores
La aplicación contenedora debe realizar su procesamiento de acelerador habitual, o usar wID directamente y, a continuación, devolver, que indica si se procesó el acelerador de pulsaciones de teclas. Si el contenedor es una aplicación MDI y se produce un error en la función TranslateAccelerator , el contenedor puede llamar a la función TranslateMDISysAccel , igual que para su procesamiento de mensajes habitual.Los objetos en contexto deben tener la primera oportunidad de traducir mensajes de aceleración. Sin embargo, dado que los objetos implementados por las aplicaciones de objetos DLL no tienen su propio bombeo de mensajes, reciben sus mensajes de la cola de mensajes del contenedor. Para asegurarse de que el objeto tiene la primera oportunidad de traducir mensajes, un contenedor siempre debe llamar a IOleInPlaceFrame::TranslateAccelerator antes de realizar su propia traducción del acelerador. Por el contrario, una aplicación de objeto ejecutable debe llamar a OleTranslateAccelerator después de llamar a TranslateAccelerator, llamando a TranslateMessage y DispatchMessage solo si se produce un error en ambas funciones de traducción.
Debe definir tablas de aceleradores para contenedores para que funcionen correctamente con aplicaciones de objetos que realicen sus propias traducciones de pulsación de teclas de aceleración. Las tablas deben definirse de la siguiente manera.
"char", wID, VIRTKEY, CONTROL
Esta es la forma más común de describir los aceleradores de teclado. Si no lo hace, se pueden perder o enviar pulsaciones de teclas al objeto incorrecto durante una sesión local.
Requisitos
Cliente mínimo compatible | Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | oleidl.h |