C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 10.16.1.24 - Функция ToUnicode / Клавиатура. / Win32 API

10.16.1.24 - Функция ToUnicode

(вУникод)

Функция ToUnicode переводит заданный код виртуальной клавиши и состояние клавиатуры в соответствующий символ или символы Unicode.

Синтаксис

int ToUnicode(
	UINT wVirtKey,	// код виртуальной клавиши
	UINT wScanCode,	// скэн-код
	PBYTE lpKeyState,	// адрес массива состояния клавиши
	LPWSTR pwszBuff,	// буфер для трансляции клавиши
	int cchBuff,	// размер буфера для трансляции клавиши
	UINT wFlags	// установка флажков, согласования функций
);

Параметры
wVirtKey
Определяет код виртуальной клавиши, который будет оттранслирован.
wScanCode
Определяет аппаратный скэн-код клавиши, которая будет оттранслирована. Старший бит этого значения установлен, если клавиша вверху (не нажата).
lpKeyState
Указывает на 256-байтовый массив, который содержит текущее состояние клавиатуры. Каждый элемент (байт) в массиве содержит состояние одной из клавиш. Если старший бит байта установлен, клавиша - внизу (нажата).
pwszBuff
Указывает на буфер, который примет оттранслированный символ или символы Unicode.
cchBuff
Определяет размер буфера, указанного параметром pwszBuff, в символах.
wFlags
Набор битовых флажков, которые определяют поведение функции. Бит 0 установлен, если меню активно. Биты от 1 до 31 зарезервированы.

Возвращаемые значения
Функция возвращает одно из следующих значений:

  • - 1 - Заданная виртуальная клавиша - символ мертвой клавиши (знак ударения или диакритический знак). Это значение возвращается независимо от раскладки символов на клавиатуре, даже если несколько символов были введены с клавиатуры и сохранены в состоянии клавиатуры. Если возможно, наравне с раскладками символов Уникода на клавиатуре, функция запишет разделенную пробелами версию символа мертвой клавиши в буфер, заданный pwszBuffer. Например, функция запишет символ SPACING ACUTE (0x00B4), а не символ NON_SPACING ACUTE (0x0301).
  • 0 - Заданная виртуальная клавиша не транслируется для текущего состояния клавиатуры. Ничего не пишется в буфер, определенный при помощи pwszBuffer
  • 1 - Один символ был записан в буфер, заданный pwszBuffer.
  • 2 или больше - Два или больше символа были записаны в буфер, заданный pwszBuff. Наиболее общая причина для этого является то, что символ мертвой клавиши (знак ударения или диакритический знак) сохраненный в раскладке символов на клавиатуре не может быть объединен с заданной виртуальной клавишей, чтобы сформировать единый символ.

Замечания
Параметров, данных в функции ToUnicode, может быть не достаточно, чтобы перевести код виртуальной клавиши, потому что предыдущая мертвая клавиша сохраняется в раскладке символов на клавиатуре.
Как правило, ToUnicode исполняет трансляцию, опираясь на код виртуальной клавиши. Однако в некоторых случаях, бит 15 параметра wScanCode может быть использован, чтобы различить между нажатием клавиши и её отпуском.

Смотри также
ToAscii, VkKeyScan

Размещение и совместимость ToUnicode

Windows NT			Да 
Win95				Нет 
Win32s				Нет
Импортируемая библиотека		user32.lib 
Заголовочный файл			winuser.h 
Unicode				Нет 
Замечания по платформе		Не имеется

| |
Автор Владимир Соковиков.
[AD]