if (lpfnEnum == 0) SWT.error (SWT.ERROR_NO_MORE_CALLBACKS);
public Monitor getPrimaryMonitor () {	checkDevice ();	if (OS.IsWinCE || OS.WIN32_VERSION < OS.VERSION (4, 10)) {		Monitor monitor = new Monitor();		int width = OS.GetSystemMetrics (OS.SM_CXSCREEN);		int height = OS.GetSystemMetrics (OS.SM_CYSCREEN);		monitor.width = width;		monitor.height = height;		RECT rect = new RECT ();		OS.SystemParametersInfo (OS.SPI_GETWORKAREA, 0, rect, 0);		monitor.clientX = rect.left;		monitor.clientY = rect.top;		monitor.clientWidth = rect.right - rect.left;		monitor.clientHeight = rect.bottom - rect.top;		return monitor;	}	monitors = new Monitor [4];	Callback callback = new Callback (this, "monitorEnumProc", 4); //$NON-NLS-1$	int lpfnEnum = callback.getAddress ();	OS.EnumDisplayMonitors (0, null, lpfnEnum, 0);	callback.dispose ();	Monitor result = null;	MONITORINFO lpmi = new MONITORINFO ();	lpmi.cbSize = MONITORINFO.sizeof;	for (int i = 0; i < monitorCount; i++) {		Monitor monitor = monitors [i];		OS.GetMonitorInfo (monitors [i].handle, lpmi);		if ((lpmi.dwFlags & OS.MONITORINFOF_PRIMARY) != 0) {			result = monitor;			break;		} 				}	monitors = null;	monitorCount = 0;	return result;		}