The WinSetLangInfo API is used to manipulate the window bidi status word.
The Bidirectional status flags hold information about the following:
The PM Bidirectional Support defines several hotkeys that allow the user to perform Bidi-related operations such as Start Push or Field Reverse.
When this flag is set ON, the bidirectional input support system is disabled. The input system operates in the same way as in a non-bidi (e.g US/English) system.
The hotkey disable flags are used by the system to process the various bidirectional hotkeys. When a certain flag is ON this tells the system that the default system action for this hotkey (identified by the flag) is disabled. Applications can disable hotkeys that use key combinations which the application wishes to handle itself.
When a disabled bidirectional hotkey combination is detected, the system does not take any special action and passes the event to the application. This allows the application to receive notification about the hotkey being typed and take the necessary action. In addition, the system also generates a WM_CHAR event with a Virtual Key value (VK_) appropriate to this hotkey. This allows applications to isolate themselves from the actual key combination and be sensitive only to the virtual key value (this allows remapping of the bidi hotkeys).
When a hotkey is enabled, the system will translate the key combination to the relevant bidi virtual key identifier. Applications that respond to the bidirectional hotkeys will take the appropriate action when they detect the virtual key identifiers. The system may also take some actions based on the hotkey being pressed (such as changing the keyboard layer, see below).
Bidirectional status also contain enable/disable flags for 'Automatic Push'. These flags tell the system if the user has enabled the 'AutoPush' feature for the PM entry fields. (AutoPush enabled means that the system starts and ends Push mode automatically, based on the characters that are typed by the user. AutoPush is only relevant if the PM entry field contains visual text). There are two AutoPush flags, one for typing in Left-To-Right direction and one for typing in Right-To-Left.