==== KbdGetCp ==== **Bindings**: [[getcp#C bindings|C]], [[getcp#MASM bindings|MASM]] This call allows a process to query the code page being used to translate scan codes to ASCII characters. KbdGetCp (Reserved, CodePageID, KbdHandle) //Reserved// (**ULONG**) - input Reserved and must be set to zero. //CodePageID// (**PUSHORT**) - output Address of the code page ID located in the application's data area. The keyboard support copies the current code page ID for a specified keyboard handle into this word. The code page ID is equivalent to one of the code page IDs specified in the CONFIG.SYS CODEPAGE = statement or 0000. //KbdHandle// (**HKBD**) - input Default keyboard or the logical keyboard. //rc// (**USHORT**) - return Return code descriptions are: |0 |NO_ERROR | |373 |ERROR_KBD_PARAMETER | |439 |ERROR_KBD_INVALID_HANDLE | |445 |ERROR_KBD_FOCUS_REQUIRED | |447 |ERROR_KBD_KEYBOARD_BUSY | |464 |ERROR_KBD_DETACHED | |504 |ERROR_KBD_EXTENDED_SG | **Remarks** The //CodePageID// is the currently active keyboard code page. A value of 0 indicates the code page translation table in use is the ROM code page translation table provided by the hardware. === C bindings === #define INCL_KBD USHORT rc = KbdGetCp(Reserved, CodePageID, KbdHandle); ULONG Reserved; /* Reserved (must be zero) */ PUSHORT CodePageID; /* Code Page ID */ HKBD KbdHandle; /* Keyboard handle */ USHORT rc; /* return code */ === MASM bindings === EXTRN KbdGetCp:FAR INCL_KBD EQU 1 PUSH DWORD Reserved ;Reserved (must be zero) PUSH@ WORD CodePageID ;Code Page ID PUSH WORD KbdHandle ;Keyboard handle CALL KbdGetCp Returns WORD