Функція MapVirtualKeyEx

ФункціяMapVirtualKeyExтранслює (перетворює) код віртуальної клавіші на скен-код або символьне значення, або переводить скен-код на код віртуальної клавіші. Функція транслює коди, використовуючи мову введення та ідентифікатор мови введення.

[in] Визначає код віртуальної клавіші або код скану для клавіші. Як це інтерпретується, залежить від значення параметраuMapType.

[in] Визначає трансляцію для виконання. Значення цього параметра залежить від значенняuCode:

Значення

Призначення

uCode - код віртуальної клавіші та транслюється у скен-код. Якщо це код віртуальної клавіші, який не робить відмінності між ліво- та правосторонніми клавішами, повертається скен-код лівої клавіші. Якщо трансляція не відбувається, функція повертає значення 0.

uCode - скен-код і транслюється в код віртуальної клавіші, який робить різниці між ліво - і правосторонніми клавішами. Якщо трансляція не відбувається, функція повертає значення 0.

uCode - код віртуальної клавіші і транслюється значення символів нижнього регістру, в молодшому слові якого величина повертається значення. Мертві клавіші (діакритичні знаки) позначаються за допомогою установки старшого біта величини значення, що повертається. Якщо трансляція не відбувається, функція повертає значення 0.

Windows NT/2000/XP:uCode- скен-код і транслюється в код віртуальної клавіші, який робить різницю між ліво- та правосторонніми клавішами. Якщо трансляція не відбувається, функція повертає значення 0.

[in] Ідентифікатор мови введення, який використовується для трансляції заданого коду. Цей параметр може бути будь-якимідентифікатор мови введення, попередньо повернутий функцієюLoadKeyboardLayout.

Величина значення, що повертається, є або скен-кодом, або кодом віртуальної клавіші, або символьним значенням, яке залежить від значенняuCodeіuMapType. Якщо трансляція не відбувається, функція повертає значення 0.

Ідентифікатор мови введення даних - ширше поняття, ніж розкладка клавіатури, оскільки може також містити у собі перетворювач мови у текст,Редактор Методу Введення (IME), або будь-яка інша форма введення даних.

Прикладна програма може використовуватиMapVirtualKeyEx, щоб перевести скен-коди в константи коду віртуальної клавішіVK_SHIFT,VK_CONTROLтаVK_MENUі навпаки. Ці трансляції не роблять різницю між лівими і правими екземплярами клавішSHIFT,CTRLабоALT.

Windows NT/2000/XP:Прикладна програма може отримати скен-код, відповідний для лівого або правого екземпляра однієї з цих клавіш шляхом викликуMapVirtualKeyExз установкоюuCodeв одну з наступних констант коду віртуальної клавіші:

VK_LSHIFT

VK_RSHIFT

VK_LCONTROL

VK_RCONTROL

VK_LMENU

VK_RMENU

Ці ліво- та правосторонні константи доступні прикладній програмі тільки через функціїGetKeyboardState,SetKeyboardState,GetAsyncKeyState,GetKeyStateState,MapVirtualKeyтаMapVirtualKeyEx. Список заповнених таблиць кодів віртуальної клавіші дивись у статті Коди віртуальних клавіш.

Windows 95/98/Me:MapVirtualKeyExWпідтримується підпрограмоюMicrosoft Layer for Unicode(MSLU). Щоб використовувати підпрограму, потрібно додати деякі файли до вашої програми, як це визначено вMicrosoft Layer for Unicode для Windows 95/98/Me.

Розміщення та сумісність MapVirtualKeyEx