This message is posted to the queue associated with the window that has the focus.
The set of keys that causes a WM_CHAR message is device-dependent.
When this message is processed, precedence should normally be given to a valid virtual key if there is one contained in the message.
There are several instances when a window procedure may receive this message with the KC_KEYUP bit set, although it did not receive this message for the down transition of the key.
For example,
Applications should normally only process WM_CHAR messages that do not have the KC_KEYUP bit set.
Except for the special instance where the LONEKEY flag is set on an accelerator key definition, all translations are done on the down stroke of the character.
When the current character is a double-byte character then param2 contains both bytes of the double-byte character. These bytes are in the order CHAR1FROMMP, CHAR2FROMMP. When the current character is a single-byte character, CHAR2FROMMP contains 0.