As we don't support Win9x anyway, we can use ProcessIdToSessionId()

2008-06-11  Tor Lillqvist  <tml@novell.com>

	* gdk/win32/gdkdisplay-win32.c (gdk_display_get_name): As we don't
	support Win9x anyway, we can use ProcessIdToSessionId()
	unconditionally.


svn path=/trunk/; revision=20353
This commit is contained in:
Tor Lillqvist 2008-06-11 16:05:28 +00:00 committed by Tor Lillqvist
parent 6f25f771c5
commit b981e4ff37
2 changed files with 13 additions and 29 deletions

View File

@ -1,3 +1,9 @@
2008-06-11 Tor Lillqvist <tml@novell.com>
* gdk/win32/gdkdisplay-win32.c (gdk_display_get_name): As we don't
support Win9x anyway, we can use ProcessIdToSessionId()
unconditionally.
2008-06-11 Michael Natterer <mitch@imendio.com>
* gtk/gtkfilechooserbutton.c: fix local prototype of

View File

@ -184,33 +184,6 @@ _gdk_monitor_init (void)
}
/*
* Dynamic version of ProcessIdToSessionId() form Terminal Service.
* It is only returning something else than 0 when running under
* Terminal Service, available since NT4 SP4 and not for win9x
*/
static guint
get_session_id (void)
{
typedef BOOL (WINAPI *t_ProcessIdToSessionId) (DWORD, DWORD*);
static t_ProcessIdToSessionId p_ProcessIdToSessionId = NULL;
static HMODULE kernel32 = NULL;
DWORD id = 0;
if (kernel32 == NULL)
{
kernel32 = GetModuleHandle ("kernel32.dll");
g_assert (kernel32 != NULL);
p_ProcessIdToSessionId = (t_ProcessIdToSessionId) GetProcAddress (kernel32, "ProcessIdToSessionId");
}
if (p_ProcessIdToSessionId)
p_ProcessIdToSessionId (GetCurrentProcessId (), &id); /* got it (or not ;) */
return id;
}
GdkDisplay *
gdk_display_open (const gchar *display_name)
{
@ -265,6 +238,7 @@ gdk_display_get_name (GdkDisplay *display)
HWINSTA hwinsta = GetProcessWindowStation ();
char *window_station_name;
DWORD n;
DWORD session_id;
char *display_name;
static const char *display_name_cache = NULL;
@ -301,8 +275,12 @@ gdk_display_get_name (GdkDisplay *display)
window_station_name = "WinSta0";
}
display_name = g_strdup_printf ("%d\\%s\\%s",
get_session_id (), window_station_name,
if (!ProcessIdToSessionId (GetCurrentProcessId (), &session_id))
session_id = 0;
display_name = g_strdup_printf ("%ld\\%s\\%s",
session_id,
window_station_name,
desktop_name);
GDK_NOTE (MISC, g_print ("gdk_display_get_name: %s\n", display_name));