2015-04-12 11:27 GMT+02:00 Ilya Zakharevich <nospam-ab...@ilyaz.org>:

> > Note also that (since always), MSKLC generated drivers have never allowed
> > us to change the mapping of scancodes (from hardware keyboards) to
> virtual
> > keys, aka "vkeys", or to "WM_SYSKEY" (this is hardwired in a lower
> internal
> > level).
>
> Wrong.  Look for any French or German keyboard.
>

Wrong. I use a French keyboard everyday. And even used MSKLC for extending
this French keyboard (but now with weird compatibility problems in Windows
Server 2012 and Windows 8+, this is a separate issue).

Seriously, how can you imagine that I never looked at a French keyboard ?

You're still speaking about something else, I just spoke about MSKLC which
has not been revized at all to generate compatible drivers. But even if it
did, it DOES NOT support the extended interface in "kdh.h" (which is NOT
the ".klc" format that MSKLC supports)

And yes, MSKLC *does not* allow changing the mapping of scancodes (from
hardware keyboards) to vkeys, it just allows editing the mapping from
sequences of vkeys(+limited keyboard states) to ONE and only ONE code
point. the first part is not accessible (and not described at all in .klc
source files which have nothing in common to the internal binary structures
generated in installable keyboard drivers, and used then by the kernel) and
it offers absolutely no way to describe a layout geometry (as needed for
touch interfaces) where we can reposition the vkeys accurately (for example
for typing with left-hand only, or for an ABCD disposition, or for defining
other custom input methods similar to phones using 10 digits or using
predictive "T9" methods, or for creating specific selection grid layouts
for symbols and emojis with mutliple selectable sets):

MSKLC still assumes legacy 101/102 key geometries (and does not in fact
distinguish the numeric keypad, with the *only* exception of the decimal
separator key which is distinguished). And there's no way to change the
layout of "function keys" (those keys that are show with a black/dark grey
background in this editor): you can only defined mappings for the vkeys in
the alphanumeric part plus the spacebar. Everything else is assumed
(there's also no distinction of the two Alt keys for keymaps that want to
distinguish Ctrl+LeftAlt and Ctrl+AltGr which may also be Shifted)

In fact the *.klc source file format (specific to the MSKLC tool) is not
even documented (and not supported at all by "klc.h" which just describes
the binary structures: the kernel has abosutely no support for processing
.klc files directly, it just wants the binary-encoded tables exposed by the
driver that must be compiled).

And did I say that the MSKLC tool does not even worok in Windows 8+ or
Windows Server 2012 +? It cannot compile the driver (fails to launch the
linker of the Windows SDK, even if it's correctly installed). To run this
tool you still need to use it in previous versions of Windows. The
generated driver however is installable in later versions of Windows (with
some quirks to coexist with the onscreen interface).

And even in Windows 8 and Windows Server 1012 here are TWO distinct touch
interfaces:
- one compatible with accessibility options tools (works even without a
touch screen, you can click on it with your mouse, or touch it),
- another newer one specific for touch screens (not available without a
touch screen, but when it exists, its really behaves differently but with
too frequent bugs if you use it simultaneously with a physical keyboard,
notably each time you have used it to touch the onscreen shift keys, whose
state is incorrectly defined; the only way to solve these bugs in Windows 8
is to disable the touch screen device completely, but it is enabled
autiomatically...).

Reply via email to