Re: Windows keyboard restrictions

From: Doug Ewell <doug_at_ewellic.org>
Date: Thu, 06 Aug 2015 09:00:21 -0700

Marcel Schneider <charupdate at orange dot fr> wrote:

> A part of the documentation you request is available:
>
> “Download Windows Driver Kit Version 7.1.0 from Official Microsoft
> Download Center.” N. p., 1 Dec. 2014. Web. 1 Dec. 2014.
>
> https://www.microsoft.com/en-us/download/details.aspx?id=11800
>
> C:\WinDDK\7600.16385.1\inc\api\kbd.h
>
> Line 469, and preceding.

This snippet of code -- again, code is not documentation -- is the only
place in the entire DDK that gives any indication that anyone thought a
ligature of more than 4 code points could be valid:

> #define TYPEDEF_LIGATURE(n) typedef struct _LIGATURE##n { \
> BYTE VirtualKey; \
> WORD ModificationNumber; \
> WCHAR wch[n]; \
> } LIGATURE##n, *KBD_LONG_POINTER PLIGATURE##n;
> [...]
> TYPEDEF_LIGATURE(5) // LIGATURE5, *PLIGATURE5;

No code within the DDK, including the samples, appears to use
TYPEDEF_LIGATURE(5) or any larger value. So I don't see any evidence in
the code that the DDK actually supports ligatures longer than 4 code
points.

> To circumvent the issues araising from the word “bug”, we may simply
> ban that and focus on a few comments:
> * Ligature is an internal name for Wchar sequences that are
> * generated when a specified key is pressed.
> [...]
> * The maximum length of ligatures is 16 characters.
> * Characters from 17th on are discarded.

I can't find this text anywhere within the DDK (not even the substrings
"Wchar sequences" or "length of ligatures"), unless for some reason it's
in UTF-16 encoded text. So I also don't see any documentation that the
DDK supports ligatures longer than 4 code points.

> Whatʼs new for me, is that “sometimes” [scare quotes], the ligature
> length must not exceed four characters. I already knew whatʼs
> written in the MSKLC Help about this topic, and I explained in my
> previous e-mail that, when the MSKLC was built, Windows did not
> support more than four characters per ligature. (Thatʼs the only
> straightforward explanation of this point of the MSKLC.) As this
> proved to be insufficient, Microsoft must have decided to raise the
> limit to sixteen.

Speculation is also not documentation.

Seriously, please take this to Microsoft or to one of the forums where
the Driver Development Kit is discussed. This has nothing to do with
Unicode.

--
Doug Ewell | http://ewellic.org | Thornton, CO 🇺🇸
Received on Thu Aug 06 2015 - 11:01:29 CDT

This archive was generated by hypermail 2.2.0 : Thu Aug 06 2015 - 11:01:30 CDT