Bagikan melalui


Metode IOleInPlaceFrame::TranslateAccelerator (oleidl.h)

Menerjemahkan penekanan tombol akselerator yang ditujukan untuk bingkai kontainer saat objek aktif di tempatnya.

Sintaks

HRESULT TranslateAccelerator(
  [in] LPMSG lpmsg,
  [in] WORD  wID
);

Parameter

[in] lpmsg

Penunjuk ke struktur MSG yang berisi pesan penekanan tombol.

[in] wID

Nilai pengidentifikasi perintah yang sesuai dengan penekanan tombol dalam tabel akselerator yang disediakan kontainer. Kontainer harus menggunakan nilai ini alih-alih menerjemahkan lagi.

Menampilkan nilai

Metode ini mengembalikan S_OK pada keberhasilan. Nilai pengembalian lain yang mungkin termasuk yang berikut ini.

Menampilkan kode Deskripsi
S_FALSE
Penekanan tombol tidak digunakan.
E_INVALIDARG
Penunjuk yang ditentukan tidak valid.
E_UNEXPECTED
Terjadi kesalahan tak terduga.

Keterangan

Catatan untuk Penelepon

Metode IOleInPlaceFrame::TranslateAccelerator dipanggil secara tidak langsung oleh OleTranslateAccelerator ketika keystroke accelerator yang ditujukan untuk kontainer (bingkai) diterima.

Catatan untuk Pelaksana

Aplikasi kontainer harus melakukan pemrosesan akselerator yang biasa, atau menggunakan wID secara langsung, dan kemudian mengembalikan, menunjukkan apakah akselerator penekanan tombol diproses. Jika kontainer adalah aplikasi MDI dan fungsi TranslateAccelerator gagal, kontainer dapat memanggil fungsi TranslateMDISysAccel , seperti halnya untuk pemrosesan pesan biasa.

Objek di tempat harus diberikan kesempatan pertama untuk menerjemahkan pesan akselerator. Namun, karena objek yang diimplementasikan oleh aplikasi objek DLL tidak memiliki pompa pesan mereka sendiri, mereka menerima pesan mereka dari antrean pesan kontainer. Untuk memastikan bahwa objek memiliki kesempatan pertama untuk menerjemahkan pesan, kontainer harus selalu memanggil IOleInPlaceFrame::TranslateAccelerator sebelum melakukan terjemahan akseleratornya sendiri. Sebaliknya, aplikasi objek yang dapat dieksekusi harus memanggil OleTranslateAccelerator setelah memanggil TranslateAccelerator, memanggil TranslateMessage dan DispatchMessage hanya jika kedua fungsi terjemahan gagal.

Anda harus menentukan tabel akselerator untuk kontainer sehingga mereka akan bekerja dengan baik dengan aplikasi objek yang melakukan terjemahan penekanan kunci akselerator mereka sendiri. Tabel harus didefinisikan sebagai berikut.

"char", wID, VIRTKEY, CONTROL

Ini adalah cara paling umum untuk menggambarkan akselerator keyboard. Kegagalan untuk melakukannya dapat mengakibatkan penekanan tombol hilang atau dikirim ke objek yang salah selama sesi di tempat.

Persyaratan

   
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header oleidl.h

Lihat juga

IOleInPlaceFrame

IOleInPlaceFrame::TranslateAccelerator

OleTranslateAccelerator

TranslateAccelerator

TranslateMDISysAccel