Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Known problem in MSKLC?

123 views
Skip to first unread message

Lionel Fourquaux

unread,
Jan 20, 2005, 6:03:00 PM1/20/05
to
I've been trying to build a keyboard layout with MSKLC, and I'm getting a
strange behavior for two keys: VK_OEM_5 (usually * on a French keyboard) and
VK_OEM_7 (usually ²). More details below. I wonder whether I'm doing
something wrong (however, I've tried to change everything that looked like a
possible cause for my problem, with no success), or it's due to a limitation
or bug in MSKLC.

Basically, I'm adding lots of dead keys to the usual French keyboard layout.
(It's more a demontration of what can be done than something really useful,
for my personal use four or five additional character would be enough). All
of them are working fine, except for the two I mentioned. When I test my
layout in MSKLC, it's working fine. When I build it, I get lots of warnings
about characters the do not belong to the default code page (which doesn't
matter since about all the programs I use have decent support for Unicode),
but nothing more serious. However, when I install the keyboard layout, the
dead key I defined for AltGr+VK_OEM_5 doesn't work (it does nothing), and
VK_OEM_7 behave more strangely: insted of being a dead key for subscripted
characters (the way I defined it) it prints ²² (the usual character,
repeated twice). Reimporting the layout in MSKLC gives something different
from the layout I built: the dead key for AltGr+VK_OEM_5 has disappeared,
and VK_OEM_7 is really set up to print ²².

However, if I look into the DLL, I can see dead key tables for the
characters I defined on these keys.

I find it rather strange that building a layout, installing it, and
reimporting it in MSKLC doesn't give the same thing. Is there a limit on the
number of dead keys? Or some reason why AltGr+VK_OEM_5 or VK_OEM_7 cannot be
used as dead keys?

If someone wants to investigate this more closely, here is my .klc file.
(Some lines will likely be wrapped. I can send it as an attachment if you
have problems with this).

Thanks in advance to anyone who can shed somelight on this mystery!

-- Lionel Fourquaux


==================== 8< ====================
KBD LFKBDF0 "Français (Unicode)"

COPYRIGHT "(c) 2005"

COMPANY "Lionel Fourquaux"

LOCALEID "0000040c"

VERSION 1.0

ATTRIBUTES
LRM_RLM

SHIFTSTATE

0 //Column 4
1 //Column 5 : Shft
2 //Column 6 : Ctrl
6 //Column 7 : Ctrl Alt
7 //Column 8 : Shft Ctrl Alt

LAYOUT ;an extra '@' at the end is a dead key

//SC VK_ Cap 0 1 2 6 7
//-- ---- ---- ---- ---- ---- ---- ----

02 1 1 0026 1 -1 00b4@ -1 // AMPERSAND, DIGIT ONE, <none>, ACUTE ACCENT,
<none>
03 2 1 00e9 2 -1 007e@ -1 // LATIN SMALL LETTER E WITH ACUTE, DIGIT TWO,
<none>, TILDE, <none>
04 3 1 0022 3 -1 0023 -1 // QUOTATION MARK, DIGIT THREE, <none>, NUMBER
SIGN, <none>
05 4 1 0027 4 -1 007b -1 // APOSTROPHE, DIGIT FOUR, <none>, LEFT CURLY
BRACKET, <none>
06 5 1 0028 5 -1 005b -1 // LEFT PARENTHESIS, DIGIT FIVE, <none>, LEFT
SQUARE BRACKET, <none>
07 6 1 002d 6 -1 007c -1 // HYPHEN-MINUS, DIGIT SIX, <none>, VERTICAL
LINE, <none>
08 7 1 00e8 7 -1 0060@ -1 // LATIN SMALL LETTER E WITH GRAVE, DIGIT SEVEN,
<none>, GRAVE ACCENT, <none>
09 8 1 005f 8 -1 005c -1 // LOW LINE, DIGIT EIGHT, <none>, REVERSE
SOLIDUS, <none>
0a 9 1 00e7 9 -1 005e -1 // LATIN SMALL LETTER C WITH CEDILLA, DIGIT NINE,
<none>, CIRCUMFLEX ACCENT, <none>
0b 0 1 00e0 0 -1 0040 -1 // LATIN SMALL LETTER A WITH GRAVE, DIGIT ZERO,
<none>, COMMERCIAL AT, <none>
0c OEM_4 0 0029 00b0 -1 005d -1 // RIGHT PARENTHESIS, DEGREE SIGN, <none>,
RIGHT SQUARE BRACKET, <none>
0d OEM_PLUS 0 003d 002b -1 007d -1 // EQUALS SIGN, PLUS SIGN, <none>, RIGHT
CURLY BRACKET, <none>
10 A 5 a A -1 00e6 00c6 // LATIN SMALL LETTER A, LATIN CAPITAL LETTER A,
<none>, LATIN SMALL LETTER AE (ash) *, LATIN CAPITAL LETTER AE (ash) *
11 Z 1 z Z -1 -1 -1 // LATIN SMALL LETTER Z, LATIN CAPITAL LETTER Z,
<none>, <none>, <none>
12 E 1 e E -1 20ac -1 // LATIN SMALL LETTER E, LATIN CAPITAL LETTER E,
<none>, EURO SIGN, <none>
13 R 1 r R -1 -1 -1 // LATIN SMALL LETTER R, LATIN CAPITAL LETTER R,
<none>, <none>, <none>
14 T 5 t T -1 00fe 00de // LATIN SMALL LETTER T, LATIN CAPITAL LETTER T,
<none>, LATIN SMALL LETTER THORN (Icelandic), LATIN CAPITAL LETTER THORN
(Icelandic)
15 Y 1 y Y -1 -1 -1 // LATIN SMALL LETTER Y, LATIN CAPITAL LETTER Y,
<none>, <none>, <none>
16 U 1 u U -1 -1 -1 // LATIN SMALL LETTER U, LATIN CAPITAL LETTER U,
<none>, <none>, <none>
17 I 1 i I -1 -1 -1 // LATIN SMALL LETTER I, LATIN CAPITAL LETTER I,
<none>, <none>, <none>
18 O 5 o O -1 0153 0152 // LATIN SMALL LETTER O, LATIN CAPITAL LETTER O,
<none>, LATIN SMALL LIGATURE OE, LATIN CAPITAL LIGATURE OE
19 P 1 p P -1 -1 -1 // LATIN SMALL LETTER P, LATIN CAPITAL LETTER P,
<none>, <none>, <none>
1a OEM_6 0 005e@ 00a8@ -1 02da@ -1 // CIRCUMFLEX ACCENT, DIAERESIS,
<none>, RING ABOVE, <none>
1b OEM_1 0 0024 00a3 -1 00a4@ -1 // DOLLAR SIGN, POUND SIGN, <none>,
CURRENCY SIGN, <none>
1e Q 1 q Q -1 -1 -1 // LATIN SMALL LETTER Q, LATIN CAPITAL LETTER Q,
<none>, <none>, <none>
1f S 5 s S -1 00df %% // LATIN SMALL LETTER S, LATIN CAPITAL LETTER S,
<none>, LATIN SMALL LETTER SHARP S (German), <null>
20 D 1 d D -1 -1 -1 // LATIN SMALL LETTER D, LATIN CAPITAL LETTER D,
<none>, <none>, <none>
21 F 1 f F -1 -1 -1 // LATIN SMALL LETTER F, LATIN CAPITAL LETTER F,
<none>, <none>, <none>
22 G 1 g G -1 02db@ -1 // LATIN SMALL LETTER G, LATIN CAPITAL LETTER G,
<none>, OGONEK, <none>
23 H 5 h H -1 00f0 00d0 // LATIN SMALL LETTER H, LATIN CAPITAL LETTER H,
<none>, LATIN SMALL LETTER ETH (Icelandic), LATIN CAPITAL LETTER ETH
(Icelandic)
24 J 1 j J -1 -1 -1 // LATIN SMALL LETTER J, LATIN CAPITAL LETTER J,
<none>, <none>, <none>
25 K 1 k K -1 -1 -1 // LATIN SMALL LETTER K, LATIN CAPITAL LETTER K,
<none>, <none>, <none>
26 L 1 l L -1 -1 -1 // LATIN SMALL LETTER L, LATIN CAPITAL LETTER L,
<none>, <none>, <none>
27 M 1 m M -1 00af@ -1 // LATIN SMALL LETTER M, LATIN CAPITAL LETTER M,
<none>, MACRON, <none>
28 OEM_3 1 00f9 0025 -1 -1 -1 // LATIN SMALL LETTER U WITH GRAVE, PERCENT
SIGN, <none>, <none>, <none>
29 OEM_7 0 005f@ 00b2@ -1 -1 -1 // SUBSCRIPT, SUPERSCRIPT, <none>, <none>,
<none>
2b OEM_5 0 002a 00b5 -1 2009@ -1 // ASTERISK, MICRO SIGN, <none>,
PUNCTUATION, <none>
2c W 1 w W -1 -1 -1 // LATIN SMALL LETTER W, LATIN CAPITAL LETTER W,
<none>, <none>, <none>
2d X 1 x X -1 0023@ -1 // LATIN SMALL LETTER X, LATIN CAPITAL LETTER X,
<none>, NUMBER SIGN, <none>
2e C 1 c C -1 -1 -1 // LATIN SMALL LETTER C, LATIN CAPITAL LETTER C,
<none>, <none>, <none>
2f V 1 v V -1 02c7@ -1 // LATIN SMALL LETTER V, LATIN CAPITAL LETTER V,
<none>, CARON, <none>
30 B 1 b B -1 02d8@ -1 // LATIN SMALL LETTER B, LATIN CAPITAL LETTER B,
<none>, BREVE, <none>
31 N 1 n N -1 -1 -1 // LATIN SMALL LETTER N, LATIN CAPITAL LETTER N,
<none>, <none>, <none>
32 OEM_COMMA 0 002c 003f -1 00b8@ -1 // COMMA, QUESTION MARK, <none>,
CEDILLA, <none>
33 OEM_PERIOD 1 003b 002e -1 -1 -1 // SEMICOLON, FULL STOP, <none>, <none>,
<none>
34 OEM_2 0 003a 002f -1 -1 002f@ // COLON, SOLIDUS, <none>, <none>, STROKE
35 OEM_8 0 0021 00a7 -1 -1 -1 // EXCLAMATION MARK, SECTION SIGN, <none>,
<none>, <none>
39 SPACE 4 0020 0020 0020 00a0 00a0 // SPACE, SPACE, SPACE, NO-BREAK
SPACE, NO-BREAK SPACE
56 OEM_102 0 003c 003e -1 00ab 00bb // LESS-THAN SIGN, GREATER-THAN SIGN,
<none>, LEFT-POINTING DOUBLE ANGLE QUOTATION MARK *, RIGHT-POINTING DOUBLE
ANGLE QUOTATION MARK *
53 DECIMAL 0 002e 002e -1 -1 -1 // FULL STOP, FULL STOP, , ,

LIGATURE

//VK_ Mod# Char0 Char1 Char2 Char3
//---- ---- ---- ---- ---- ----

S 4 0053 0053 // LATIN CAPITAL LETTER S + LATIN CAPITAL LETTER S

DEADKEY 00b4

0041 00c1 // A -> Á
0045 00c9 // E -> É
0049 00cd // I -> Í
004f 00d3 // O -> Ó
0055 00da // U -> Ú
0059 00dd // Y -> Ý
0061 00e1 // a -> á
0065 00e9 // e -> é
0069 00ed // i -> í
006f 00f3 // o -> ó
0075 00fa // u -> ú
0079 00fd // y -> ý
0043 0106 // C -> Ć
0063 0107 // c -> ć
004c 0139 // L -> Ĺ
006c 013a // l -> ĺ
004e 0143 // N -> Ń
006e 0144 // n -> ń
0052 0154 // R -> Ŕ
0072 0155 // r -> ŕ
0053 015a // S -> Ś
0073 015b // s -> ś
005a 0179 // Z -> Ź
007a 017a // z -> ź
0047 01f4 // G -> Ǵ
0067 01f5 // g -> ǵ
00c6 01fc // Æ -> Ǽ
00e6 01fd // æ -> ǽ
00a0 0301 // -> ́
004b 1e30 // K -> Ḱ
006b 1e31 // k -> ḱ
004d 1e3e // M -> Ḿ
006d 1e3f // m -> ḿ
0050 1e54 // P -> Ṕ
0070 1e55 // p -> ṕ
0057 1e82 // W -> Ẃ
0077 1e83 // w -> ẃ
0020 00b4 // -> ´

DEADKEY 007e

0041 00c3 // A -> Ã
004e 00d1 // N -> Ñ
004f 00d5 // O -> Õ
0061 00e3 // a -> ã
006e 00f1 // n -> ñ
006f 00f5 // o -> õ
0049 0128 // I -> Ĩ
0069 0129 // i -> ĩ
0055 0168 // U -> Ũ
0075 0169 // u -> ũ
00a0 0303 // -> ̃
0056 1e7c // V -> Ṽ
0076 1e7d // v -> ṽ
0045 1ebc // E -> Ẽ
0065 1ebd // e -> ẽ
0059 1ef8 // Y -> Ỹ
0079 1ef9 // y -> ỹ
0020 007e // -> ~

DEADKEY 0060

0041 00c0 // A -> À
0045 00c8 // E -> È
0049 00cc // I -> Ì
004f 00d2 // O -> Ò
0055 00d9 // U -> Ù
0061 00e0 // a -> à
0065 00e8 // e -> è
0069 00ec // i -> ì
006f 00f2 // o -> ò
0075 00f9 // u -> ù
004e 01f8 // N -> Ǹ
006e 01f9 // n -> ǹ
00a0 0300 // -> ̀
0057 1e80 // W -> Ẁ
0077 1e81 // w -> ẁ
0059 1ef2 // Y -> Ỳ
0079 1ef3 // y -> ỳ
0020 0060 // -> `

DEADKEY 005e

0041 00c2 // A -> Â
0045 00ca // E -> Ê
0049 00ce // I -> Î
004f 00d4 // O -> Ô
0055 00db // U -> Û
0061 00e2 // a -> â
0065 00ea // e -> ê
0069 00ee // i -> î
006f 00f4 // o -> ô
0075 00fb // u -> û
0043 0108 // C -> Ĉ
0063 0109 // c -> ĉ
0047 011c // G -> Ĝ
0067 011d // g -> ĝ
0048 0124 // H -> Ĥ
0068 0125 // h -> ĥ
004a 0134 // J -> Ĵ
006a 0135 // j -> ĵ
0053 015c // S -> Ŝ
0073 015d // s -> ŝ
0057 0174 // W -> Ŵ
0077 0175 // w -> ŵ
0059 0176 // Y -> Ŷ
0079 0177 // y -> ŷ
00a0 0302 // -> ̂
005a 1e90 // Z -> Ẑ
007a 1e91 // z -> ẑ
0020 005e // -> ^

DEADKEY 00a8

0041 00c4 // A -> Ä
0045 00cb // E -> Ë
0049 00cf // I -> Ï
004f 00d6 // O -> Ö
0055 00dc // U -> Ü
0061 00e4 // a -> ä
0065 00eb // e -> ë
0069 00ef // i -> ï
006f 00f6 // o -> ö
0075 00fc // u -> ü
0079 00ff // y -> ÿ
0059 0178 // Y -> Ÿ
00a0 0308 // -> ̈
0048 1e26 // H -> Ḧ
0068 1e27 // h -> ḧ
0057 1e84 // W -> Ẅ
0077 1e85 // w -> ẅ
0058 1e8c // X -> Ẍ
0078 1e8d // x -> ẍ
0074 1e97 // t -> ẗ
0020 00a8 // -> ¨

DEADKEY 02da

0041 00c5 // A -> Å
0061 00e5 // a -> å
0055 016e // U -> Ů
0075 016f // u -> ů
00a0 030a // -> ̊
0077 1e98 // w -> ẘ
0079 1e99 // y -> ẙ
0020 02da // -> ˚

DEADKEY 00a4

0053 0024 // S -> $
0063 00a2 // c -> ¢
004c 00a3 // L -> £
0059 00a5 // Y -> ¥
0046 20a3 // F -> ₣
0050 20a7 // P -> ₧
0065 20ac // e -> €
0044 20af // D -> ₯
0020 00a4 // -> ¤

DEADKEY 02db

0041 0104 // A -> Ą
0061 0105 // a -> ą
0045 0118 // E -> Ę
0065 0119 // e -> ę
0049 012e // I -> Į
0069 012f // i -> į
0055 0172 // U -> Ų
0075 0173 // u -> ų
004f 01ea // O -> Ǫ
006f 01eb // o -> ǫ
00a0 0328 // -> ̨
0020 02db // -> ˛

DEADKEY 00af

0041 0100 // A -> Ā
0061 0101 // a -> ā
0045 0112 // E -> Ē
0065 0113 // e -> ē
0049 012a // I -> Ī
0069 012b // i -> ī
004f 014c // O -> Ō
006f 014d // o -> ō
0055 016a // U -> Ū
0075 016b // u -> ū
00c6 01e2 // Æ -> Ǣ
00e6 01e3 // æ -> ǣ
0059 0232 // Y -> Ȳ
0079 0233 // y -> ȳ
00a0 0304 // -> ̄
0047 1e20 // G -> Ḡ
0067 1e21 // g -> ḡ
0020 00af // -> ¯

DEADKEY 005f

0069 1d62 // i -> ᵢ
0072 1d63 // r -> ᵣ
0075 1d64 // u -> ᵤ
0076 1d65 // v -> ᵥ
0030 2080 // 0 -> ₀
0031 2081 // 1 -> ₁
0032 2082 // 2 -> ₂
0033 2083 // 3 -> ₃
0034 2084 // 4 -> ₄
0035 2085 // 5 -> ₅
0036 2086 // 6 -> ₆
0037 2087 // 7 -> ₇
0038 2088 // 8 -> ₈
0039 2089 // 9 -> ₉
002b 208a // + -> ₊
002d 208b // - -> ₋
003d 208c // = -> ₌
0028 208d // ( -> ₍
0029 208e // ) -> ₎
0020 005f // -> _

DEADKEY 00b2

0061 00aa // a -> ª
0032 00b2 // 2 -> ²
0033 00b3 // 3 -> ³
0031 00b9 // 1 -> ¹
006f 00ba // o -> º
0030 2070 // 0 -> ⁰
0034 2074 // 4 -> ⁴
0035 2075 // 5 -> ⁵
0036 2076 // 6 -> ⁶
0037 2077 // 7 -> ⁷
0038 2078 // 8 -> ⁸
0039 2079 // 9 -> ⁹
002b 207a // + -> ⁺
002d 207b // - -> ⁻
003d 207c // = -> ⁼
0028 207d // ( -> ⁽
0029 207e // ) -> ⁾
006e 207f // n -> ⁿ
0020 00b2 // -> ²

DEADKEY 2009

0021 00a1 // ! -> ¡
007c 00a6 // | -> ¦
0043 00a9 // C -> ©
0068 00ad // h -> ­
0052 00ae // R -> ®
0050 00b6 // P -> ¶
002e 00b7 // . -> ·
0034 00bc // 4 -> ¼
0032 00bd // 2 -> ½
002b 00be // + -> ¾
003f 00bf // ? -> ¿
006e 2013 // n -> –
006d 2014 // m -> —
0027 2019 // ' -> ’
005f 2026 // _ -> …
0033 2153 // 3 -> ⅓
0020 2009 // ->

DEADKEY 0023

0021 00ac // ! -> ¬
002b 00b1 // + -> ±
002a 00d7 // * -> ×
002f 00f7 // / -> ÷
0066 2200 // f -> ∀
0064 2202 // d -> ∂
0065 2203 // e -> ∃
0030 2205 // 0 -> ∅
20ac 2208 // € -> ∈
002d 2213 // - -> ∓
0038 221e // 8 -> ∞
003c 2264 // < -> ≤
003e 2265 // > -> ≥
0020 0023 // -> #

DEADKEY 02c7

0043 010c // C -> Č
0063 010d // c -> č
0044 010e // D -> Ď
0064 010f // d -> ď
0045 011a // E -> Ě
0065 011b // e -> ě
004c 013d // L -> Ľ
006c 013e // l -> ľ
004e 0147 // N -> Ň
006e 0148 // n -> ň
0052 0158 // R -> Ř
0072 0159 // r -> ř
0053 0160 // S -> Š
0073 0161 // s -> š
0054 0164 // T -> Ť
0074 0165 // t -> ť
005a 017d // Z -> Ž
007a 017e // z -> ž
0041 01cd // A -> Ǎ
0061 01ce // a -> ǎ
0049 01cf // I -> Ǐ
0069 01d0 // i -> ǐ
004f 01d1 // O -> Ǒ
006f 01d2 // o -> ǒ
0055 01d3 // U -> Ǔ
0075 01d4 // u -> ǔ
0047 01e6 // G -> Ǧ
0067 01e7 // g -> ǧ
004b 01e8 // K -> Ǩ
006b 01e9 // k -> ǩ
006a 01f0 // j -> ǰ
0048 021e // H -> Ȟ
0068 021f // h -> ȟ
00a0 030c // -> ̌
0020 02c7 // -> ˇ

DEADKEY 02d8

0041 0102 // A -> Ă
0061 0103 // a -> ă
0045 0114 // E -> Ĕ
0065 0115 // e -> ĕ
0047 011e // G -> Ğ
0067 011f // g -> ğ
0049 012c // I -> Ĭ
0069 012d // i -> ĭ
004f 014e // O -> Ŏ
006f 014f // o -> ŏ
0055 016c // U -> Ŭ
0075 016d // u -> ŭ
00a0 0306 // -> ̆
0020 02d8 // -> ˘

DEADKEY 00b8

0043 00c7 // C -> Ç
0063 00e7 // c -> ç
0047 0122 // G -> Ģ
0067 0123 // g -> ģ
004b 0136 // K -> Ķ
006b 0137 // k -> ķ
004c 013b // L -> Ļ
006c 013c // l -> ļ
004e 0145 // N -> Ņ
006e 0146 // n -> ņ
0052 0156 // R -> Ŗ
0072 0157 // r -> ŗ
0053 015e // S -> Ş
0073 015f // s -> ş
0054 0162 // T -> Ţ
0074 0163 // t -> ţ
0045 0228 // E -> Ȩ
0065 0229 // e -> ȩ
00a0 0327 // -> ̧
0044 1e10 // D -> Ḑ
0064 1e11 // d -> ḑ
0048 1e28 // H -> Ḩ
0068 1e29 // h -> ḩ
0020 00b8 // -> ¸

DEADKEY 002f

004f 00d8 // O -> Ø
006f 00f8 // o -> ø
0044 0110 // D -> Đ
0064 0111 // d -> đ
0048 0126 // H -> Ħ
0068 0127 // h -> ħ
004c 0141 // L -> Ł
006c 0142 // l -> ł
0054 0166 // T -> Ŧ
0074 0167 // t -> ŧ
0062 0180 // b -> ƀ
0049 0197 // I -> Ɨ
005a 01b5 // Z -> Ƶ
007a 01b6 // z -> ƶ
0047 01e4 // G -> Ǥ
0067 01e5 // g -> ǥ
0069 0268 // i -> ɨ
00a0 0338 // -> ̸
003d 2260 // = -> ≠
0020 002f // -> /


KEYNAME

01 Esc
0e Backspace
0f Tab
1c Enter
1d Ctrl
2a Shift
36 "Right Shift"
37 "Num *"
38 Alt
39 Space
3a "Caps Lock"
3b F1
3c F2
3d F3
3e F4
3f F5
40 F6
41 F7
42 F8
43 F9
44 F10
45 Pause
46 "Scroll Lock"
47 "Num 7"
48 "Num 8"
49 "Num 9"
4a "Num -"
4b "Num 4"
4c "Num 5"
4d "Num 6"
4e "Num +"
4f "Num 1"
50 "Num 2"
51 "Num 3"
52 "Num 0"
53 "Num Del"
54 "Sys Req"
57 F11
58 F12
7c F13
7d F14
7e F15
7f F16
80 F17
81 F18
82 F19
83 F20
84 F21
85 F22
86 F23
87 F24

KEYNAME_EXT

1c "Num Enter"
1d "Right Ctrl"
35 "Num /"
37 "Prnt Scrn"
38 "Right Alt"
45 "Num Lock"
46 Break
47 Home
48 Up
49 "Page Up"
4b Left
4d Right
4f End
50 Down
51 "Page Down"
52 Insert
53 Delete
54 <00>
56 Help
5b "Left Windows"
5c "Right Windows"
5d Application

KEYNAME_DEAD

00b4 "ACUTE ACCENT"
007e "TILDE"
0060 "GRAVE ACCENT"
005e "CIRCUMFLEX ACCENT"
00a8 "DIAERESIS"
02da "RING ABOVE"
00a4 "CURRENCY SIGN"
02db "OGONEK"
00af "MACRON"
005f "SUBSCRIPT"
00b2 "SUPERSCRIPT"
2009 "PUNCTUATION"
0023 "NUMBER SIGN"
02c7 "CARON"
02d8 "BREVE"
00b8 "CEDILLA"
002f "STROKE"


ENDKBD
==================== 8< ====================

Michael (michka) Kaplan [MS]

unread,
Jan 21, 2005, 4:11:50 AM1/21/05
to
I did notice that the dead key on VK_OEM7 is also defined as a non-deadkey
elsewhere. But I do not know of specific limits and if I

1) load your file
2) build it
3) install the built file
4)load the layout into MSKLC

then I do not see substantive data differences between the two files.


--
MichKa [MS]
NLS Collation/Locale/Keyboard Technical Lead
Globalization Infrastructure, Fonts, and Tools
Microsoft Windows International Division

This posting is provided "AS IS" with
no warranties, and confers no rights.


"Lionel Fourquaux" <use-re...@no-spam.invalid> wrote in message
news:OlK1tQ0$EHA....@TK2MSFTNGP09.phx.gbl...


> I've been trying to build a keyboard layout with MSKLC, and I'm getting a
> strange behavior for two keys: VK_OEM_5 (usually * on a French keyboard)
and

> VK_OEM_7 (usually ē). More details below. I wonder whether I'm doing


> something wrong (however, I've tried to change everything that looked like
a
> possible cause for my problem, with no success), or it's due to a
limitation
> or bug in MSKLC.
>
> Basically, I'm adding lots of dead keys to the usual French keyboard
layout.
> (It's more a demontration of what can be done than something really
useful,
> for my personal use four or five additional character would be enough).
All
> of them are working fine, except for the two I mentioned. When I test my
> layout in MSKLC, it's working fine. When I build it, I get lots of
warnings
> about characters the do not belong to the default code page (which doesn't
> matter since about all the programs I use have decent support for
Unicode),
> but nothing more serious. However, when I install the keyboard layout, the
> dead key I defined for AltGr+VK_OEM_5 doesn't work (it does nothing), and
> VK_OEM_7 behave more strangely: insted of being a dead key for subscripted

> characters (the way I defined it) it prints ēē (the usual character,


> repeated twice). Reimporting the layout in MSKLC gives something different
> from the layout I built: the dead key for AltGr+VK_OEM_5 has disappeared,

> and VK_OEM_7 is really set up to print ēē.


>
> However, if I look into the DLL, I can see dead key tables for the
> characters I defined on these keys.
>
> I find it rather strange that building a layout, installing it, and
> reimporting it in MSKLC doesn't give the same thing. Is there a limit on
the
> number of dead keys? Or some reason why AltGr+VK_OEM_5 or VK_OEM_7 cannot
be
> used as dead keys?
>
> If someone wants to investigate this more closely, here is my .klc file.
> (Some lines will likely be wrapped. I can send it as an attachment if you
> have problems with this).
>
> Thanks in advance to anyone who can shed somelight on this mystery!
>
> -- Lionel Fourquaux
>
>
> ==================== 8< ====================

> KBD LFKBDF0 "Franįais (Unicode)"

> 0043 0106 // C -> C
> 0063 0107 // c -> c
> 004c 0139 // L -> L
> 006c 013a // l -> l
> 004e 0143 // N -> N
> 006e 0144 // n -> n
> 0052 0154 // R -> R
> 0072 0155 // r -> r
> 0053 015a // S -> S
> 0073 015b // s -> s
> 005a 0179 // Z -> Z
> 007a 017a // z -> z
> 0047 01f4 // G -> ?
> 0067 01f5 // g -> ?
> 00c6 01fc // Æ -> ?
> 00e6 01fd // æ -> ?
> 00a0 0301 // -> ?
> 004b 1e30 // K -> ?
> 006b 1e31 // k -> ?
> 004d 1e3e // M -> ?
> 006d 1e3f // m -> ?
> 0050 1e54 // P -> ?
> 0070 1e55 // p -> ?
> 0057 1e82 // W -> ?
> 0077 1e83 // w -> ?
> 0020 00b4 // -> ī


>
> DEADKEY 007e
>
> 0041 00c3 // A -> Ã

> 004e 00d1 // N -> Ņ


> 004f 00d5 // O -> Õ
> 0061 00e3 // a -> ã

> 006e 00f1 // n -> ņ


> 006f 00f5 // o -> õ

> 0049 0128 // I -> I
> 0069 0129 // i -> i
> 0055 0168 // U -> U
> 0075 0169 // u -> u
> 00a0 0303 // -> ~
> 0056 1e7c // V -> ?
> 0076 1e7d // v -> ?
> 0045 1ebc // E -> ?
> 0065 1ebd // e -> ?
> 0059 1ef8 // Y -> ?
> 0079 1ef9 // y -> ?


> 0020 007e // -> ~
>
> DEADKEY 0060
>

> 0041 00c0 // A -> Ā
> 0045 00c8 // E -> Č
> 0049 00cc // I -> Ė
> 004f 00d2 // O -> Ō
> 0055 00d9 // U -> Ų
> 0061 00e0 // a -> ā
> 0065 00e8 // e -> č
> 0069 00ec // i -> ė
> 006f 00f2 // o -> ō
> 0075 00f9 // u -> ų
> 004e 01f8 // N -> ?
> 006e 01f9 // n -> ?
> 00a0 0300 // -> `
> 0057 1e80 // W -> ?
> 0077 1e81 // w -> ?
> 0059 1ef2 // Y -> ?
> 0079 1ef3 // y -> ?


> 0020 0060 // -> `
>
> DEADKEY 005e
>
> 0041 00c2 // A -> Â

> 0045 00ca // E -> Ę


> 0049 00ce // I -> Î
> 004f 00d4 // O -> Ô
> 0055 00db // U -> Û
> 0061 00e2 // a -> â

> 0065 00ea // e -> ę


> 0069 00ee // i -> î
> 006f 00f4 // o -> ô
> 0075 00fb // u -> û

> 0043 0108 // C -> C
> 0063 0109 // c -> c
> 0047 011c // G -> G
> 0067 011d // g -> g
> 0048 0124 // H -> H
> 0068 0125 // h -> h
> 004a 0134 // J -> J
> 006a 0135 // j -> j
> 0053 015c // S -> S
> 0073 015d // s -> s
> 0057 0174 // W -> W
> 0077 0175 // w -> w
> 0059 0176 // Y -> Y
> 0079 0177 // y -> y
> 00a0 0302 // -> ^
> 005a 1e90 // Z -> ?
> 007a 1e91 // z -> ?


> 0020 005e // -> ^
>
> DEADKEY 00a8
>
> 0041 00c4 // A -> Ä
> 0045 00cb // E -> Ë
> 0049 00cf // I -> Ï
> 004f 00d6 // O -> Ö
> 0055 00dc // U -> Ü
> 0061 00e4 // a -> ä
> 0065 00eb // e -> ë
> 0069 00ef // i -> ï
> 006f 00f6 // o -> ö
> 0075 00fc // u -> ü

> 0079 00ff // y -> ĸ
> 0059 0178 // Y -> Y
> 00a0 0308 // -> ?
> 0048 1e26 // H -> ?
> 0068 1e27 // h -> ?
> 0057 1e84 // W -> ?
> 0077 1e85 // w -> ?
> 0058 1e8c // X -> ?
> 0078 1e8d // x -> ?
> 0074 1e97 // t -> ?
> 0020 00a8 // -> Ļ


>
> DEADKEY 02da
>
> 0041 00c5 // A -> Å
> 0061 00e5 // a -> å

> 0055 016e // U -> U
> 0075 016f // u -> u
> 00a0 030a // -> ?
> 0077 1e98 // w -> ?
> 0079 1e99 // y -> ?
> 0020 02da // -> ?


>
> DEADKEY 00a4
>
> 0053 0024 // S -> $

> 0063 00a2 // c -> Ē
> 004c 00a3 // L -> Ģ
> 0059 00a5 // Y -> Ĩ
> 0046 20a3 // F -> ?
> 0050 20a7 // P -> ?
> 0065 20ac // e -> ?
> 0044 20af // D -> ?
> 0020 00a4 // -> Ī
>
> DEADKEY 02db
>
> 0041 0104 // A -> A
> 0061 0105 // a -> a
> 0045 0118 // E -> E
> 0065 0119 // e -> e
> 0049 012e // I -> I
> 0069 012f // i -> i
> 0055 0172 // U -> U
> 0075 0173 // u -> u
> 004f 01ea // O -> O
> 006f 01eb // o -> o
> 00a0 0328 // -> ?
> 0020 02db // -> ?
>
> DEADKEY 00af
>
> 0041 0100 // A -> A
> 0061 0101 // a -> a
> 0045 0112 // E -> E
> 0065 0113 // e -> e
> 0049 012a // I -> I
> 0069 012b // i -> i
> 004f 014c // O -> O
> 006f 014d // o -> o
> 0055 016a // U -> U
> 0075 016b // u -> u
> 00c6 01e2 // Æ -> ?
> 00e6 01e3 // æ -> ?
> 0059 0232 // Y -> ?
> 0079 0233 // y -> ?
> 00a0 0304 // -> ?
> 0047 1e20 // G -> ?
> 0067 1e21 // g -> ?
> 0020 00af // -> Ŋ
>
> DEADKEY 005f
>
> 0069 1d62 // i -> ?
> 0072 1d63 // r -> ?
> 0075 1d64 // u -> ?
> 0076 1d65 // v -> ?
> 0030 2080 // 0 -> ?
> 0031 2081 // 1 -> ?
> 0032 2082 // 2 -> ?
> 0033 2083 // 3 -> ?
> 0034 2084 // 4 -> ?
> 0035 2085 // 5 -> ?
> 0036 2086 // 6 -> ?
> 0037 2087 // 7 -> ?
> 0038 2088 // 8 -> ?
> 0039 2089 // 9 -> ?
> 002b 208a // + -> ?
> 002d 208b // - -> ?
> 003d 208c // = -> ?
> 0028 208d // ( -> ?
> 0029 208e // ) -> ?


> 0020 005f // -> _
>
> DEADKEY 00b2
>

> 0061 00aa // a -> Š
> 0032 00b2 // 2 -> ē
> 0033 00b3 // 3 -> ģ
> 0031 00b9 // 1 -> đ
> 006f 00ba // o -> š
> 0030 2070 // 0 -> ?
> 0034 2074 // 4 -> ?
> 0035 2075 // 5 -> ?
> 0036 2076 // 6 -> ?
> 0037 2077 // 7 -> ?
> 0038 2078 // 8 -> ?
> 0039 2079 // 9 -> ?
> 002b 207a // + -> ?
> 002d 207b // - -> ?
> 003d 207c // = -> ?
> 0028 207d // ( -> ?
> 0029 207e // ) -> ?
> 006e 207f // n -> ?
> 0020 00b2 // -> ē
>
> DEADKEY 2009
>
> 0021 00a1 // ! -> Ą
> 007c 00a6 // | -> Ķ
> 0043 00a9 // C -> Đ


> 0068 00ad // h -> ­

> 0052 00ae // R -> Ū
> 0050 00b6 // P -> ķ


> 002e 00b7 // . -> ·

> 0034 00bc // 4 -> ž


> 0032 00bd // 2 -> ―

> 002b 00be // + -> ū
> 003f 00bf // ? -> ŋ
> 006e 2013 // n -> -
> 006d 2014 // m -> -
> 0027 2019 // ' -> '
> 005f 2026 // _ -> .
> 0033 2153 // 3 -> ?


> 0020 2009 // ->
>
> DEADKEY 0023
>

> 0021 00ac // ! -> Ž
> 002b 00b1 // + -> ą
> 002a 00d7 // * -> Ũ
> 002f 00f7 // / -> ũ
> 0066 2200 // f -> ?
> 0064 2202 // d -> ?
> 0065 2203 // e -> ?
> 0030 2205 // 0 -> ?
> 20ac 2208 // ? -> ?
> 002d 2213 // - -> ?
> 0038 221e // 8 -> ?
> 003c 2264 // < -> ?
> 003e 2265 // > -> ?


> 0020 0023 // -> #
>
> DEADKEY 02c7
>

> 0043 010c // C -> C
> 0063 010d // c -> c
> 0044 010e // D -> D
> 0064 010f // d -> d
> 0045 011a // E -> E
> 0065 011b // e -> e
> 004c 013d // L -> L
> 006c 013e // l -> l
> 004e 0147 // N -> N
> 006e 0148 // n -> n
> 0052 0158 // R -> R
> 0072 0159 // r -> r
> 0053 0160 // S -> S
> 0073 0161 // s -> s
> 0054 0164 // T -> T
> 0074 0165 // t -> t
> 005a 017d // Z -> Z
> 007a 017e // z -> z
> 0041 01cd // A -> A
> 0061 01ce // a -> a
> 0049 01cf // I -> I
> 0069 01d0 // i -> i
> 004f 01d1 // O -> O
> 006f 01d2 // o -> o
> 0055 01d3 // U -> U
> 0075 01d4 // u -> u
> 0047 01e6 // G -> G
> 0067 01e7 // g -> g
> 004b 01e8 // K -> K
> 006b 01e9 // k -> k
> 006a 01f0 // j -> j
> 0048 021e // H -> ?
> 0068 021f // h -> ?
> 00a0 030c // -> ?
> 0020 02c7 // -> ?
>
> DEADKEY 02d8
>
> 0041 0102 // A -> A
> 0061 0103 // a -> a
> 0045 0114 // E -> E
> 0065 0115 // e -> e
> 0047 011e // G -> G
> 0067 011f // g -> g
> 0049 012c // I -> I
> 0069 012d // i -> i
> 004f 014e // O -> O
> 006f 014f // o -> o
> 0055 016c // U -> U
> 0075 016d // u -> u
> 00a0 0306 // -> ?
> 0020 02d8 // -> ?
>
> DEADKEY 00b8
>
> 0043 00c7 // C -> Į
> 0063 00e7 // c -> į
> 0047 0122 // G -> G
> 0067 0123 // g -> g
> 004b 0136 // K -> K
> 006b 0137 // k -> k
> 004c 013b // L -> L
> 006c 013c // l -> l
> 004e 0145 // N -> N
> 006e 0146 // n -> n
> 0052 0156 // R -> R
> 0072 0157 // r -> r
> 0053 015e // S -> S
> 0073 015f // s -> s
> 0054 0162 // T -> T
> 0074 0163 // t -> t
> 0045 0228 // E -> ?
> 0065 0229 // e -> ?
> 00a0 0327 // -> ?
> 0044 1e10 // D -> ?
> 0064 1e11 // d -> ?
> 0048 1e28 // H -> ?
> 0068 1e29 // h -> ?
> 0020 00b8 // -> ļ


>
> DEADKEY 002f
>
> 004f 00d8 // O -> Ø
> 006f 00f8 // o -> ø

> 0044 0110 // D -> D
> 0064 0111 // d -> d
> 0048 0126 // H -> H
> 0068 0127 // h -> h
> 004c 0141 // L -> L
> 006c 0142 // l -> l
> 0054 0166 // T -> T
> 0074 0167 // t -> t
> 0062 0180 // b -> b
> 0049 0197 // I -> I
> 005a 01b5 // Z -> ?
> 007a 01b6 // z -> z
> 0047 01e4 // G -> G
> 0067 01e5 // g -> g
> 0069 0268 // i -> ?
> 00a0 0338 // -> ?
> 003d 2260 // = -> ?

Lionel Fourquaux

unread,
Jan 21, 2005, 3:09:38 PM1/21/05
to
Thank yo very much for looking into this! More comments inline.

"Michael (michka) Kaplan [MS]" <mic...@online.microsoft.com> a écrit dans
le message de news: uLxoUk5$EHA....@tk2msftngp13.phx.gbl...


>I did notice that the dead key on VK_OEM7 is also defined as a non-deadkey
> elsewhere.

Can this cause a problem? The default French layout has a similar
duplication for U+005e (VK_OEM_6 as a dead key, and Ctrl+Alt VK_9 as a
non-deadkey).

> But I do not know of specific limits and if I
>
> 1) load your file
> 2) build it
> 3) install the built file
> 4)load the layout into MSKLC
>
> then I do not see substantive data differences between the two files.

Is it possible that you are using and updated version of MSKLC? I've version
1.3.4073.0.

I'll try a test an another computer, to check whether something is wrong on
mine.

I've noticed a few other oddities:
- keyboard layout changes may or may not need a reboot to be taken into
account (the problem with VK_OEM_7 printing ²² disappeared when I
desinstalled the layout, moved the dead key to Ctrl+Alt VK_OEM_7, installed
the new one, *and rebooted*)
- when I reimport the keyboard layout and save the result as a .klc file,
then look into it with Notepad, I see duplicated entries in the dead key
tables: exactly the entries for (dead key + U+00a0 -> some combining
character) are duplicated
- I see only one detail in my Windows configuration that could cause these
problems: I've installed the support for complex scripts and Asian languages
(I don't speak any of them, I just wanted to be able to play with Unicode)
- one unusual point I noticed about the two misbehaving dead keys is that
they are the only ones including characters that can't be printed using
Arial Unicode (some subcripted characters, and thin space), I'll try
removing these mappings.

Thank you for your help!

--
Lionel Fourquaux

Michael (michka) Kaplan [MS]

unread,
Jan 22, 2005, 12:45:11 AM1/22/05
to
"Lionel Fourquaux" <use-re...@no-spam.invalid> wrote...

> Can this cause a problem? The default French layout has a similar
> duplication for U+005e (VK_OEM_6 as a dead key, and Ctrl+Alt VK_9 as a
> non-deadkey).

No, its just what I noticed...

> Is it possible that you are using and updated version of MSKLC? I've
version
> 1.3.4073.0.

No, I always try to repro problems on the shipped versions, as the repro is
the most important part of identifying problems....

> I'll try a test an another computer, to check whether something is wrong
on
> mine.
>
> I've noticed a few other oddities:
> - keyboard layout changes may or may not need a reboot to be taken into

> account (the problem with VK_OEM_7 printing 께 disappeared when I


> desinstalled the layout, moved the dead key to Ctrl+Alt VK_OEM_7,
installed
> the new one, *and rebooted*)

A reboot should only be required in the case where you uninstall it for a
user even though its in use.

> - when I reimport the keyboard layout and save the result as a .klc file,
> then look into it with Notepad, I see duplicated entries in the dead key
> tables: exactly the entries for (dead key + U+00a0 -> some combining
> character) are duplicated

Ok, that seems like it could cause problems -- I will look into that part.

> - I see only one detail in my Windows configuration that could cause
these
> problems: I've installed the support for complex scripts and Asian
languages
> (I don't speak any of them, I just wanted to be able to play with Unicode)
> - one unusual point I noticed about the two misbehaving dead keys is that
> they are the only ones including characters that can't be printed using
> Arial Unicode (some subcripted characters, and thin space), I'll try
> removing these mappings.

That should not cause a problem, nor should the installed components. But I
will look into the duplication issue.

Lionel Fourquaux

unread,
Jan 22, 2005, 1:14:36 PM1/22/05
to
"Michael (michka) Kaplan [MS]" <mic...@online.microsoft.com> a écrit dans
le message de news: OPtSgVE...@TK2MSFTNGP10.phx.gbl...

> That should not cause a problem, nor should the installed components. But
> I
> will look into the duplication issue.

Thanks.

I did some more debugging, and it really looks like a bug in kbdutool.exe.
It looks like deads keys are sometimes misinterpreted as ligatures. More
precisely, my .klc currently has

29 OEM_7 0 00b2 00b2@ -1 2082@ -1 // SUPERSCRIPT TWO, SUPERSCRIPT, <none>,
SUBSCRIPT, <none>


2b OEM_5 0 002a 00b5 -1 2009@ -1 // ASTERISK, MICRO SIGN, <none>,
PUNCTUATION, <none>

and the generated C file contains

{VK_OEM_7 ,0 ,0x00b2 ,WCH_DEAD ,WCH_NONE ,WCH_LGTR ,WCH_NONE },
{0xff ,0 ,WCH_NONE ,0x00b2 ,WCH_NONE ,WCH_NONE ,WCH_NONE },
{VK_OEM_5 ,0 ,'*' ,0x00b5 ,WCH_NONE ,WCH_LGTR ,WCH_NONE },
{'W' ,CAPLOK ,'w' ,'W' ,WCH_NONE ,WCH_NONE ,WCH_NONE },

and

static ALLOC_SECTION_LDATA LIGATURE2 aLigature[] = {
{VK_OEM_7 ,6 ,0x2082 ,0x2082 },
{'S' ,4 ,'S' ,'S' },
{0 ,0 ,0 ,0 }
};

which is clearly not what I asked for. As far as I can see, only the
aVkToWch5 and aLigature tables are wrong; aDeadKey is correct and doesn't
have any duplicate entry, so the two problems may be unrelated.

I re-downloaded msklc, extracted kbdutool.exe, and compared it to my
version. The two files were identical, so it's not a file corruption
problem.

Regards,

--
Lionel Fourquaux

Lionel Fourquaux

unread,
Jan 22, 2005, 4:54:11 PM1/22/05
to
"Lionel Fourquaux" <use-re...@no-spam.invalid> a écrit dans le message de
news: eQPN94KA...@TK2MSFTNGP15.phx.gbl...

> aVkToWch5 and aLigature tables are wrong; aDeadKey is correct and doesn't
> have any duplicate entry, so the two problems may be unrelated.

Looks like they are unrelated: I patched the generated C file and compiled
it using the same options as kbdutool.exe. The resulting keyboad layout DLL
works with no problem until now, but the duplication is still there when I
reimport the layout in msklc.

Michael (michka) Kaplan [MS]

unread,
Jan 22, 2005, 6:43:32 PM1/22/05
to
Ok, I am now confused.

1) Are you saying that it is the source file is wrong, or the generated DLL
that gets built?

2) Are you saying that you were able to create a DLL that does not have such
problems?

3) So the two problems (which may be the same problem) are the misbehaving
of the DLL when it is used, and the reimport of that DLL into MSKLC?


--
MichKa [MS]
NLS Collation/Locale/Keyboard Technical Lead
Globalization Infrastructure, Fonts, and Tools
Microsoft Windows International Division

This posting is provided "AS IS" with
no warranties, and confers no rights.

"Lionel Fourquaux" <use-re...@no-spam.invalid> wrote in message

news:#9FYrzMA...@TK2MSFTNGP10.phx.gbl...

Lionel Fourquaux

unread,
Jan 23, 2005, 6:02:06 AM1/23/05
to
"Michael (michka) Kaplan [MS]" <mic...@online.microsoft.com> a écrit dans
le message de news: %23fclEwN...@TK2MSFTNGP10.phx.gbl...

> Ok, I am now confused.
>
> 1) Are you saying that it is the source file is wrong, or the generated
> DLL
> that gets built?

The C source file generated (internally) by kbdutool is wrong. Thus the DLL
is wrong. On the other hand, the .klc file is ok.

> 2) Are you saying that you were able to create a DLL that does not have
> such
> problems?

Yes. I started kbdutool in windbg, put a breakpoint at CreateProcess(A|W),
copied the generated .c, .h, .rc and .def files, patched the .c file to
correct the errors, and compiled it using the same commands as kbdutool. The
resulting DLL works ok...

>
> 3) So the two problems (which may be the same problem) are the misbehaving
> of the DLL when it is used, and the reimport of that DLL into MSKLC?

... but the duplication problem is still there: when I reimport the layout
in MSKLC, the dead key tables contains twice each entry for combining chars
(which was not the case in the .klc file, nor in the generated C file).

Lionel Fourquaux

unread,
Jan 23, 2005, 11:54:42 AM1/23/05
to
"Lionel Fourquaux" <use-re...@no-spam.invalid> a écrit dans le message de
news: Oo3c7rTA...@TK2MSFTNGP14.phx.gbl...

>> 3) So the two problems (which may be the same problem) are the
>> misbehaving
>> of the DLL when it is used, and the reimport of that DLL into MSKLC?
>
> ... but the duplication problem is still there: when I reimport the layout
> in MSKLC, the dead key tables contains twice each entry for combining
> chars (which was not the case in the .klc file, nor in the generated C
> file).

So yes, your description of the two problems is correct. It turns out,
however, that the DLL was misbehaving when used because it contained
erroneous data (cf. the errors in the C file), and that a corrected (AFAIK,
since it's the first time I looked into these data structures) DLL still
exhibits the duplication problem when reimported.

For the first problem, I'm pretty sure it's a bug in kbdutool, probably
triggered by the fact I have both (a lot of) dead keys and a ligature. (See
my previous post for precise information on what was wrong in the generated
tables).

The second comes either from msklc.exe or the keybard APIs. Currently, I
have no idea of what may be happening, but I see that _for my layout_ the
duplications correspond exactly to dead keys producing a combining
character. I suspect (although I've _not_ checked it) that any keyboard
layout with a dead key producing a combining character would have the same
problem when reimported.

Hope this helps.

--
Lionel Fourquaux

Michael (michka) Kaplan [MS]

unread,
Jan 23, 2005, 6:38:04 PM1/23/05
to
Yes, I will be looking into both problems further -- a detailed bug
reporting, either way!

I am more inclined to believe the bug is in the code I wrote, as I usually
prefer to be sure its not my fault before making someone else look into it.
So while it may be a keyboard API issue, I will assume its in my code
until/unless I prove otherwise. :-)


--
MichKa [MS]
NLS Collation/Locale/Keyboard Technical Lead
Globalization Infrastructure, Fonts, and Tools
Microsoft Windows International Division

This posting is provided "AS IS" with
no warranties, and confers no rights.

"Lionel Fourquaux" <use-re...@no-spam.invalid> wrote in message

news:#sf08wWA...@TK2MSFTNGP12.phx.gbl...

0 new messages