==== 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