| 
 Purpose  | 
 In a Callback Function, return the window handle of the caller.  | 
| 
 Syntax  | 
 WindowHandle??? = CBHNDL  | 
| 
 Remarks  | 
 When a user clicks on a button, types into a text box, or generally 
 interacts with any 
 CBHNDL will also return the window handle for all other types of messages that flow through dialog callback functions. For example, %WM_PAINT, %WM_INITDIALOG, etc. As it is possible to share a control callback function with multiple controls, it is also possible to share a dialog callback function with multiple dialogs. In such cases, CBHNDL can be used to make a clear distinction between each dialog. If we consider a conventional callback procedure definition: FUNCTION DlgCallback(BYVAL hDlg???, BYVAL wMsg&, BYVAL wParam&, BYVAL lParam&) _ EXPORT AS LONG The handle is sent to the callback as the hDlg??? parameter. hDlg may be a Long-integer or Double-word variable (i.e., hDlg& or hDlg???), but a Double-word variable is recommended.  | 
| 
 Restrictions  | 
 This function is only valid inside a Callback Function.  | 
| 
 See also  | 
 Dynamic Dialog Tools, CBCTL, CBCTLMSG, CBLPARAM, CBMSG, CBWPARAM  | 
| 
 Example  | 
 CALLBACK FUNCTION DlgCallback() AS LONG SELECT CASE CBMSG ' CBMSG holds the message CASE %WM_SYSCOMMAND ' CBHNDL is dialog handle here CASE %WM_COMMAND ' CBCTL is the control ID here ' CBCTLMSG is the notification message ... END SELECT END FUNCTION  |