if (!OS.IsWinCE) { OS.NotifyWinEvent (OS.EVENT_OBJECT_FOCUS, handle, OS.OBJID_CLIENT, index + 1); }
LRESULT WM_LBUTTONDOWN (int wParam, int lParam) {	mouseDown = true;		/*	* Feature in Windows.  For some reason, capturing	* the mouse after processing the mouse event for the	* widget interferes with the normal mouse processing	* for the widget.  The fix is to avoid the automatic	* mouse capture.	*/	LRESULT result = sendMouseDownEvent (SWT.MouseDown, 1, OS.WM_LBUTTONDOWN, wParam, lParam);	/* Look for check/uncheck */	if ((style & SWT.CHECK) != 0) {		LVHITTESTINFO pinfo = new LVHITTESTINFO ();		pinfo.x = (short) (lParam & 0xFFFF);		pinfo.y = (short) (lParam >> 16);		/*		* Note that when the table has LVS_EX_FULLROWSELECT and the		* user clicks anywhere on a row except on the check box, all		* of the bits are set.  The hit test flags are LVHT_ONITEM.		* This means that a bit test for LVHT_ONITEMSTATEICON is not		* the correct way to determine that the user has selected		* the check box.		*/		int index = OS.SendMessage (handle, OS.LVM_HITTEST, 0, pinfo);		if (index != -1 && pinfo.flags == OS.LVHT_ONITEMSTATEICON) {			TableItem item = _getItem (index);			item.setChecked (!item.getChecked (), true);		}		}		return result;}