From cc12e887845f407b86bfe270bfcd9227904250d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herv=C3=A9=20Poussineau?= Date: Sun, 4 Jun 2006 13:36:39 +0000 Subject: [PATCH] Convert result struct only if NtUserEnumDisplayDevices returned success svn path=/trunk/; revision=22205 --- reactos/dll/win32/user32/misc/display.c | 40 +++++++++++++------------ 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/reactos/dll/win32/user32/misc/display.c b/reactos/dll/win32/user32/misc/display.c index 30bbdfcd937..99a7664e2c5 100644 --- a/reactos/dll/win32/user32/misc/display.c +++ b/reactos/dll/win32/user32/misc/display.c @@ -67,25 +67,27 @@ EnumDisplayDevicesA( iDevNum, &DisplayDeviceW, dwFlags ); - - /* Copy result from DisplayDeviceW to lpDisplayDevice */ - lpDisplayDevice->StateFlags = DisplayDeviceW.StateFlags; - WideCharToMultiByte(CP_ACP,0, - DisplayDeviceW.DeviceName,wcslen(DisplayDeviceW.DeviceName), - lpDisplayDevice->DeviceName,sizeof(lpDisplayDevice->DeviceName) / sizeof(lpDisplayDevice->DeviceName[0]), - NULL,NULL); - WideCharToMultiByte(CP_ACP,0, - DisplayDeviceW.DeviceString,wcslen(DisplayDeviceW.DeviceString), - lpDisplayDevice->DeviceString,sizeof(lpDisplayDevice->DeviceString) / sizeof(lpDisplayDevice->DeviceString[0]), - NULL,NULL); - WideCharToMultiByte(CP_ACP,0, - DisplayDeviceW.DeviceID,wcslen(DisplayDeviceW.DeviceID), - lpDisplayDevice->DeviceID,sizeof(lpDisplayDevice->DeviceID) / sizeof(lpDisplayDevice->DeviceID[0]), - NULL,NULL); - WideCharToMultiByte(CP_ACP,0, - DisplayDeviceW.DeviceKey,wcslen(DisplayDeviceW.DeviceKey), - lpDisplayDevice->DeviceKey,sizeof(lpDisplayDevice->DeviceKey) / sizeof(lpDisplayDevice->DeviceKey[0]), - NULL,NULL); + if (!rc) + { + /* Copy result from DisplayDeviceW to lpDisplayDevice */ + lpDisplayDevice->StateFlags = DisplayDeviceW.StateFlags; + WideCharToMultiByte(CP_ACP,0, + DisplayDeviceW.DeviceName,wcslen(DisplayDeviceW.DeviceName), + lpDisplayDevice->DeviceName,sizeof(lpDisplayDevice->DeviceName) / sizeof(lpDisplayDevice->DeviceName[0]), + NULL,NULL); + WideCharToMultiByte(CP_ACP,0, + DisplayDeviceW.DeviceString,wcslen(DisplayDeviceW.DeviceString), + lpDisplayDevice->DeviceString,sizeof(lpDisplayDevice->DeviceString) / sizeof(lpDisplayDevice->DeviceString[0]), + NULL,NULL); + WideCharToMultiByte(CP_ACP,0, + DisplayDeviceW.DeviceID,wcslen(DisplayDeviceW.DeviceID), + lpDisplayDevice->DeviceID,sizeof(lpDisplayDevice->DeviceID) / sizeof(lpDisplayDevice->DeviceID[0]), + NULL,NULL); + WideCharToMultiByte(CP_ACP,0, + DisplayDeviceW.DeviceKey,wcslen(DisplayDeviceW.DeviceKey), + lpDisplayDevice->DeviceKey,sizeof(lpDisplayDevice->DeviceKey) / sizeof(lpDisplayDevice->DeviceKey[0]), + NULL,NULL); + } RtlFreeUnicodeString ( &Device );