Der Message-Key ist letztlich ein 4-byte Integer-Wert, der allerdings auch in den API's bereits immer 4-Byte CHAR war (z.B. RCVMSG-Befehl).
Wichtig ist eben, dass für den Wert keine Codewandlung durchgeführt wird, was bei einer Umwandlungsfunktion Char() durchaus passieren könnte.