IPreviewHandler::TranslateAccelerator 方法 (shobjidl_core.h)
指示預覽處理常式處理從預覽處理常式執行所在進程的訊息幫浦傳遞的擊鍵。
語法
HRESULT TranslateAccelerator(
[in] MSG *pmsg
);
參數
[in] pmsg
類型: MSG*
視窗訊息的指標。
傳回值
類型: HRESULT
如果預覽處理常式可以處理擊鍵訊息,處理常式會處理它並傳回 S_OK。 如果預覽處理常式無法處理擊鍵訊息,它會使用 TranslateAccelerator將它提供給主機。 如果主機處理訊息,這個方法會 傳回S_OK。 如果主機未處理訊息,這個方法會 傳回S_FALSE。
備註
此函式只會從執行預覽處理常式之進程的訊息幫浦呼叫。 此函式允許使用 TranslateAccelerator將按鍵訊息從訊息幫浦轉送到主機。
當預覽處理常式從其訊息幫浦收到訊息 (擊鍵) 時,其會負責將訊息轉送至其主機。
在預覽處理常式上呼叫 IObjectWithSite::SetSite 時,會傳入預覽處理常式主機的參考。 物件應該會立即 查詢 該月臺的 IPreviewHandlerFrame,並儲存該指標。
預覽處理常式接著可以選擇呼叫 GetWindowCoNtext 來取得快速鍵表來篩選按鍵。 接著,預覽可以使用 IsAccelerator 來比較按鍵與該快速鍵表,並只針對相符的按鍵呼叫 IPreviewHandler::TranslateAccelerator 。 這可能會導致效能降低。 預覽處理常式必須使用 DestroyAcceleratorTable 函式釋放快速鍵資料表。
預覽處理常式也可以接受,以避免完全使用資料表,並針對每個按鍵呼叫 IPreviewHandler::TranslateAccelerator 。 請注意,在低完整性處理常式中執行的所有預覽處理常式都必須使用這個方法。
按下 Tab 鍵時,如果預覽處理常式有多個定位停駐點,則會負責在這些定位停駐點內移動鍵盤焦點。 如果目前的鍵盤焦點位於其中一個定位停駐點上,而往前移動鍵盤焦點會將它移到另一個預覽工具定位停駐點,預覽程式應該在下一個定位停駐點上呼叫 SetFocus。 否則,索引鍵應該轉送至主機,以處理預覽程式的定位字元。
需求
最低支援的用戶端 | Windows Vista、Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | shobjidl_core.h (包含 Shobjidl.h) |
可轉散發套件 | Windows 搜尋 4 或更新版本 |