==== KbdSetCp ==== **Bindings**: [[setcp#C bindings|C]], [[setcp#MASM bindings|MASM]] This call allows the process to set the code page used to translate key strokes received from the keyboard. KbdSetCp (Reserved, CodePageID, KbdHandle) //Reserved// (**USHORT**) - input Reserved and must be set to zero. //CodePageID// (**USHORT**) - input //CodePageID// represents a code-page ID in the application's data area. The code-page ID must be equivalent to one of the code-page IDs specified on the CONFIG.SYS CODEPAGE = statement or 0000. If the code-page ID does not match one of the IDs on the CODEPAGE = statement, an error results. The code-page word must have one of these code-page identifiers: ^Identifier ^Description ^ |0 |Resident code page | |437 |IBM PC US 437 | |850 |Multilingual | |860 |Portuguese | |863 |Canadian-French | |865 |Nordic. | //KbdHandle// (**HKBD**) - input Default keyboard or the logical keyboard. //rc// (**USHORT**) - return Return code descriptions are: |0 |NO_ERROR | |439 |ERROR_KBD_INVALID_HANDLE | |445 |ERROR_KBD_FOCUS_REQUIRED | |447 |ERROR_KBD_KEYBOARD_BUSY | |448 |ERROR_KBD_INVALID_CODEPAGE | |464 |ERROR_KBD_DETACHED | |504 |ERROR_KBD_EXTENDED_SG | **Remarks** Keyboard code page support is not available without the DEVINFO=KBD statement in the CONFIG.SYS file. Refer to IBM Operating System/2 Standard Edition Version 1.2 Using Advanced Features for a complete description of CODEPAGE and DEVINFO. === C bindings === #define INCL_KBD USHORT rc = KbdSetCp(Reserved, CodePageID, KbdHandle); USHORT Reserved; /* Reserved (must be zero) */ USHORT CodePageID; /* code page ID */ HKBD KbdHandle; /* Keyboard handle */ USHORT rc; /* return code */ === MASM bindings === EXTRN KbdSetCp:FAR INCL_KBD EQU 1 PUSH WORD Reserved ;Reserved (must be zero) PUSH WORD CodePageID ;code page ID PUSH WORD KbdHandle ;Keyboard handle CALL KbdSetCp Returns WORD