==== KbdClose ====
Bindings: [[close#C bindings|C]], [[close#MASM bindings|MASM]]
This call closes the existing logical keyboard identified by the keyboard handle. 
KbdClose (KbdHandle) 
//KbdHandle// (**HKBD**) - input 
Default keyboard or the logical keyboard. 
//rc// (**USHORT**) - return 
Return code descriptions are: 
|0 |NO_ERROR |
|439 |ERROR_KBD_INVALID_HANDLE |
|464 |ERROR_KBD_DETACHED |
|504 |ERROR_KBD_EXTENDED_SG |
**Remarks** 
//KbdClose// blocks while another thread has the keyboard focus (by way of //[[en:ibm:prcp:kbd:getfocus|KbdGetFocus]]//) until the thread with the focus issues //[[en:ibm:prcp:kbd:freefocus|KbdFreeFocus]]//. Therefore, to prevent KbdClose from blocking, it is recommended that //KbdClose// be issued only while the current thread has the focus. For example: 
  * KbdGetFocus Wait until focus available on handle 0. 
  * KbdClose Close a logical keyboard handle. 
  * KbdClose Close another logical keyboard handle. 
  * KbdClose Close still another logical keyboard handle. 
  * KbdFreeFocus Give up the focus on handle 0. 
=== C bindings ===
#define INCL_KBD
USHORT  rc = KbdClose(KbdHandle);
HKBD             KbdHandle;     /* Keyboard handle */
USHORT           rc;            /* return code */
=== MASM bindings ===
EXTRN  KbdClose:FAR
INCL_KBD            EQU 1
PUSH   WORD    KbdHandle     ;Keyboard handle
CALL   KbdClose
Returns WORD