remove fireball hack in changedisplay, do not hard code the display number,

with this patch we are now extract the display number from the desktop and use it
patch was wroten by me and janderwald. I was to lazy finish it so janderwald did finish it
thanks janderwald. 

svn path=/trunk/; revision=25131
This commit is contained in:
Magnus Olsen
2006-12-12 17:56:27 +00:00
parent e564de2bbd
commit f1c6b23eaa
+24 -3
View File
@@ -2925,9 +2925,30 @@ IntChangeDisplaySettings(
/* Check if pDeviceName is NULL, we need to retrieve it */
if (pDeviceName == NULL)
{
/* FIXME: It is a hack, but there is no proper way right now */
RtlInitUnicodeString(&InDeviceName, L"\\\\.\\DISPLAY1");
{
WCHAR szBuffer[MAX_DRIVER_NAME];
PDC DC;
PWINDOW_OBJECT Wnd=NULL;
HWND hWnd;
HDC hDC;
hWnd = IntGetDesktopWindow();
if (hWnd && !(Wnd = UserGetWindowObject(hWnd)))
{
return FALSE;
}
hDC = (HDC)UserGetWindowDC(Wnd);
DC = DC_LockDc(hDC);
if (NULL == DC)
{
return FALSE;
}
swprintf (szBuffer, L"\\\\.\\DISPLAY%lu", ((GDIDEVICE *)DC->GDIDevice)->DisplayNumber);
DC_UnlockDc(DC);
RtlInitUnicodeString(&InDeviceName, szBuffer);
pDeviceName = &InDeviceName;
}