外してたらスマソ。今、考えたとこで検証したわけじゃないんでね。
char ch = -1;
WORD c = LOWORD(ch);
とやった場合であっても、c = 0xff となって欲しい。
もし、WORD b = (WORD)ch; と展開すると、b = 0xffff となる。
からじゃないかな?
識者の突っ込みキボーン。