Metodo IOleInPlaceFrame::TranslateAccelerator (oleidl.h)
Converte le sequenze di tasti di scelta rapida destinate al frame del contenitore mentre un oggetto è attivo sul posto.
Sintassi
HRESULT TranslateAccelerator(
[in] LPMSG lpmsg,
[in] WORD wID
);
Parametri
[in] lpmsg
Puntatore alla struttura MSG contenente il messaggio di sequenza di tasti.
[in] wID
Valore dell'identificatore di comando corrispondente alla sequenza di tasti nella tabella di acceleratore fornita dal contenitore. I contenitori devono usare questo valore anziché tradurre di nuovo.
Valore restituito
Questo metodo restituisce S_OK se l'operazione ha esito positivo. Gli altri valori restituiti possibili includono i seguenti:
Codice restituito | Descrizione |
---|---|
|
La sequenza di tasti non è stata usata. |
|
Il puntatore specificato non è valido. |
|
Si è verificato un errore imprevisto. |
Commenti
Note ai chiamanti
Il metodo IOleInPlaceFrame::TranslateAccelerator viene chiamato indirettamente da OleTranslateAccelerator quando viene ricevuto un acceleratore di tasti destinato al contenitore (frame).Note per gli implementatori
L'applicazione contenitore deve eseguire la consueta elaborazione dell'acceleratore o usare direttamente wID e quindi restituire, che indica se l'acceleratore di sequenze di tasti è stato elaborato. Se il contenitore è un'applicazione MDI e la funzione TranslateAccelerator ha esito negativo, il contenitore può chiamare la funzione TranslateMDISysAccel , proprio come avviene per l'elaborazione dei messaggi consueta.Gli oggetti sul posto devono avere la prima possibilità di tradurre i messaggi dell'acceleratore. Tuttavia, poiché gli oggetti implementati dalle applicazioni a oggetti DLL non hanno la propria pompa di messaggi, ricevono i messaggi dalla coda dei messaggi del contenitore. Per assicurarsi che l'oggetto abbia la prima possibilità di tradurre i messaggi, un contenitore deve sempre chiamare IOleInPlaceFrame::TranslateAccelerator prima di eseguire la propria traduzione dell'acceleratore. Al contrario, un'applicazione dell'oggetto eseguibile deve chiamare OleTranslateAccelerator dopo aver chiamato TranslateAccelerator, chiamando TranslateMessage e DispatchMessage solo se entrambe le funzioni di traduzione hanno esito negativo.
È consigliabile definire tabelle di acceleratore per i contenitori in modo che funzionino correttamente con applicazioni a oggetti che eseguono traduzioni di tasti di scelta rapida. Le tabelle devono essere definite come segue.
"char", wID, VIRTKEY, CONTROL
Questo è il modo più comune per descrivere gli acceleratori di tastiera. In caso contrario, è possibile che le sequenze di tasti vengano perse o inviate all'oggetto errato durante una sessione sul posto.
Requisiti
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | oleidl.h |