diff options
Diffstat (limited to 'gdk/win32')
-rw-r--r-- | gdk/win32/gdkdisplay-win32.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gdk/win32/gdkdisplay-win32.c b/gdk/win32/gdkdisplay-win32.c index 43dcb74575..1874c608e9 100644 --- a/gdk/win32/gdkdisplay-win32.c +++ b/gdk/win32/gdkdisplay-win32.c @@ -241,6 +241,8 @@ gdk_display_get_name (GdkDisplay *display) DWORD session_id; char *display_name; static const char *display_name_cache = NULL; + typedef BOOL (* PFN_ProcessIdToSessionId) (DWORD, DWORD *); + PFN_ProcessIdToSessionId processIdToSessionId; g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL); @@ -275,7 +277,8 @@ gdk_display_get_name (GdkDisplay *display) window_station_name = "WinSta0"; } - if (!ProcessIdToSessionId (GetCurrentProcessId (), &session_id)) + processIdToSessionId = (PFN_ProcessIdToSessionId) GetProcAddress (GetModuleHandle ("kernel32.dll"), "ProcessIdToSessionId"); + if (!processIdToSessionId || !processIdToSessionId (GetCurrentProcessId (), &session_id)) session_id = 0; display_name = g_strdup_printf ("%ld\\%s\\%s", |