summaryrefslogtreecommitdiff
path: root/gdk/win32
diff options
context:
space:
mode:
Diffstat (limited to 'gdk/win32')
-rw-r--r--gdk/win32/gdkdisplay-win32.c5
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",