Sorting it all Out Michael Kaplan's random stuff of dubious value Be sure to read the disclaimer here first!
Prior posts in the series:
Now I did not start this at the beginning, I kind of picked it up in the middle. Here is some info that is nice to know very near to the beginning, though....
Here are the pre-defined keystrokes and how they behave in the Candidate Window.
Note that they are Virtual Key (VK) based. I will get to the consequences of that in a moment.
While composing:
Virtual Key
Function
VK_LEFT
Move caret to left in composition char
If we have the Incremental Candidate List, then cancel composition.
VK_RIGHT
Move caret to right in composition char
If we have the Incremental Candidate List, then cancel composition
VK_RETURN
Finalize composition char
VK_ESCAPE
Cancel composition char
VK_BACK
Delete one composition char
VK_SPACE
Convert composition char
VK_UP
If we have the Incremental Candidate List, then move candidate selection to up
VK_DOWN
If we have the Incremental Candidate List, then move candidate selection to down
VK_PRIOR
If we have the Incremental Candidate List, then move candidate selection to prior
VK_NEXT
If we have the Incremental Candidate List, then move candidate selection to next
VK_HOME
If we have the Incremental Candidate List, then move candidate selection to home
VK_END
If we have the Incremental Candidate List, then move candidate selection to end
And then in the Candidate/Phrase Window:
Move candidate selection to up
Move candidate selection to down
Move candidate selection to prior
Move candidate selection to next
Move candidate selection to home
Move candidate selection to end
Finalize candidate list
Cancel candidate list
VK_1 - VK_9
Select list item for corresponding number, one through nine
Now each text file has a section it in that is key to how every other character is handled. Here is what it looks like in our MSDN_TableTextService_Explicit.txt file:
[Keystroke.Composition]VK_1, 0 = INPUT // 1VK_2, 0 = INPUT // 2VK_3, 0 = INPUT // 3VK_4, 0 = INPUT // 4VK_5, 0 = INPUT // 5VK_6, 0 = INPUT // 6VK_7, 0 = INPUT // 7VK_8, 0 = INPUT // 8VK_9, 0 = INPUT // 9
Now as that list might or might not seem to indicate, all other keys just pass right through to the underlying keyboard that sits underneath the Tabld Driven TIP.
But adding a VK_* value to this list will cause keystrokes from that VK to be processed by the Table Driven Text Service -- and if those letters never appear in the [Text] section then those keystrokes will be eaten.
Now there are a few more advanced features, which I'll discuss soon.
And there is the interaction between the predefined keys and the ones you define in the file -- basically the rule is easy and simple for the DLL -- it always wins. Which means if you define something then it will alwys pay attention to you unless it has its own override (hih is why VK_1 - VK_9 have that weird behavior where as soon as you have a candidate list then if it is numbered then the candidate item selection takes prioirty over the actual input -- which leads to VERY confusing behavior.
I'll discuss this more soon, as well. :-)
At this point, you may be wondering about two more things -- the meaning of the INPUT keyword here, and the meaning of the number 0. The fact that every single text file on Vista includes these very same entries is just a special bonus to people trying to figure out the meaning without assistance or documentation....
If you are one of those people then you can take comfort in the fact that I was too, so I'll be getting to this very soon, in an upcoming blog in this series. :-)
Coming up soon, maybe next -- some really explicit information about the [TEXT] section, and more information on some of the configuration sections....
This post brought to you by ③ (U+2462, aka CIRCLED DIGIT THREE)
Prior posts in the series: 0 (You have to start somewhere) 1 (Starting with a dictionary simple in every
I've been blogging about Sinhalese keyboard on and off for some time. Like in November of 2005 when in