+// Try to look up the functions needed for supporting multiple monitors. If
+// they aren't available (probably because we're running on Win95 or NT4 which
+// predate this API), set a flag which makes wxDisplay return results for a
+// single screen.
+static bool OsSupportsMultipleMonitors()
+{
+ static int isNewEnough = -1;
+ if ( isNewEnough == -1 )
+ {
+ isNewEnough = 0;
+ wxDynamicLibrary dllUser32(_T("user32.dll"));
+ // Check for one of the symbols to avoid logging errors just because
+ // we happen to be running on Win95 or NT4.
+ if ( dllUser32.IsLoaded() &&
+ dllUser32.HasSymbol(wxT("EnumDisplayMonitors")) )
+ {
+ // GetMonitorInfo has Unicode/ANSI variants, the others don't.
+ gs_EnumDisplayMonitors = (EnumDisplayMonitors_t)
+ dllUser32.GetSymbol(wxT("EnumDisplayMonitors"));
+ gs_MonitorFromPoint = (MonitorFromPoint_t)
+ dllUser32.GetSymbol(wxT("MonitorFromPoint"));
+ gs_MonitorFromWindow = (MonitorFromWindow_t)
+ dllUser32.GetSymbol(wxT("MonitorFromWindow"));
+ gs_GetMonitorInfo = (GetMonitorInfo_t)
+ dllUser32.GetSymbol(WINFUNC(GetMonitorInfo));
+ if ( gs_EnumDisplayMonitors != NULL &&
+ gs_MonitorFromPoint != NULL &&
+ gs_MonitorFromWindow != NULL &&
+ gs_GetMonitorInfo != NULL )
+ {
+ isNewEnough = 1;
+ }
+ }
+ }
+ return (isNewEnough != 0);
+}
+
+#ifdef HAVE_DDRAW_H