Hi!
Could somebody help me out and explain how the TryToTranslateChar function in
\reactos\subsys\win32k\ntuser\keyboard.c is supposed to work...
First there is the following definition:
shift = keyLayout->pCharModifiers->ModNumber[ModBits];
which is later used in:
CapsMod = shift | ((CapsState & CAPITAL_BIT) ? vkPtr->Attributes : 0);
which is used for the translation:
*pwcTranslatedChar = vkPtr->wch[CapsMod];
Doesn't shift contain the index for the VK_TO_CHARSx table in the keyboard layout data
structure?
Why is it then |:ed with vkPtr->Attributes , which I suppose corresponds to the
CAPS/NOCAPS constants in the keyboard layout files ?
Shouldn't it be something like:
shift = keyLayout->pCharModifiers->ModNumber[ModBits ^ ((CapsState &
CAPITAL_BIT) ? vkPtr->Attributes : 0];
Regards
Johannes Olofsson
10 Gigabyte Mailbox -
http://mail.spray.se