Display display = this.display;
int callWindowProc (int hwnd, int msg, int wParam, int lParam) {	if (handle == 0) return 0;	switch (msg) {		/*		* Bug in Windows.  For some reason, when the user clicks		* on this control, the Windows hook WH_MSGFILTER is sent		* despite the fact that an input event from a dialog box,		* message box, menu, or scroll bar did not seem to occur.		* The fix is to ignore the hook.		*/		case OS.WM_LBUTTONDOWN:		case OS.WM_MBUTTONDOWN:		case OS.WM_RBUTTONDOWN:		case OS.WM_XBUTTONDOWN: {			display.ignoreMsgFilter = true;			int code = OS.CallWindowProc (TableProc, hwnd, msg, wParam, lParam);			display.ignoreMsgFilter = false;			return code;		}		/*		* Feature in Windows.  Windows sends LVN_ITEMACTIVATE from WM_KEYDOWN		* instead of WM_CHAR.  This means that application code that expects		* to consume the key press and therefore avoid a SWT.DefaultSelection		* event will fail.  The fix is to ignore LVN_ITEMACTIVATE when it is		* caused by WM_KEYDOWN and send SWT.DefaultSelection from WM_CHAR.		*/		case OS.WM_KEYDOWN: {			ignoreActivate = true;			int code = OS.CallWindowProc (TableProc, hwnd, msg, wParam, lParam);			ignoreActivate = false;			return code;		}	}	return OS.CallWindowProc (TableProc, hwnd, msg, wParam, lParam);}