Module: wine Branch: master Commit: d4115033ef5cd875850b07074bcb483e7a34c632 URL: https://source.winehq.org/git/wine.git/?a=commit;h=d4115033ef5cd875850b07074...
Author: Zhiyi Zhang zzhang@codeweavers.com Date: Mon Jul 1 20:13:13 2019 +0800
user32: Specify enumerator when calling SetupDiGetClassDevsW.
Signed-off-by: Zhiyi Zhang zzhang@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/user32/sysparams.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/dlls/user32/sysparams.c b/dlls/user32/sysparams.c index 12225a6..83450ee 100644 --- a/dlls/user32/sysparams.c +++ b/dlls/user32/sysparams.c @@ -283,7 +283,8 @@ static const WCHAR BACKSLASH[] = {'\',0}; static const WCHAR DRIVER_DESC[] = {'D','r','i','v','e','r','D','e','s','c',0}; static const WCHAR STATE_FLAGS[] = {'S','t','a','t','e','F','l','a','g','s',0}; static const WCHAR GPU_ID[] = {'G','P','U','I','D',0}; -static const WCHAR DISPLAY[] = {'\','\','.','\','D','I','S','P','L','A','Y'}; +static const WCHAR DISPLAY[] = {'D','I','S','P','L','A','Y',0}; +static const WCHAR ADAPTER_PREFIX[] = {'\','\','.','\','D','I','S','P','L','A','Y'}; static const WCHAR MONITOR_ID_VALUE_FMT[] = {'M','o','n','i','t','o','r','I','D','%','d',0}; static const WCHAR VIDEO_KEY[] = {'H','A','R','D','W','A','R','E','\', 'D','E','V','I','C','E','M','A','P','\', @@ -3748,7 +3749,7 @@ BOOL CDECL nulldrv_GetMonitorInfo( HMONITOR handle, MONITORINFO *info )
/* Use SetupAPI to get monitors */ mutex = get_display_device_init_mutex(); - devinfo = SetupDiGetClassDevsW( &GUID_DEVCLASS_MONITOR, NULL, NULL, 0 ); + devinfo = SetupDiGetClassDevsW( &GUID_DEVCLASS_MONITOR, DISPLAY, NULL, DIGCF_PRESENT ); if (SetupDiEnumDeviceInfo(devinfo, (DWORD)(UINT_PTR)handle - 1, &device_data)) { SetupDiGetDevicePropertyW( devinfo, &device_data, &WINE_DEVPROPKEY_MONITOR_RCMONITOR, &type, @@ -3892,7 +3893,7 @@ BOOL CDECL nulldrv_EnumDisplayMonitors( HDC hdc, RECT *rect, MONITORENUMPROC pro if (GetUserObjectInformationA( winstation, UOI_FLAGS, &flags, sizeof(flags), NULL ) && (flags.dwFlags & WSF_VISIBLE)) { mutex = get_display_device_init_mutex(); - devinfo = SetupDiGetClassDevsW( &GUID_DEVCLASS_MONITOR, NULL, NULL, 0 ); + devinfo = SetupDiGetClassDevsW( &GUID_DEVCLASS_MONITOR, DISPLAY, NULL, DIGCF_PRESENT ); while (SetupDiEnumDeviceInfo( devinfo, i++, &device_data )) { /* Inactive monitors don't get enumerated */ @@ -4062,10 +4063,10 @@ BOOL WINAPI EnumDisplayDevicesW( LPCWSTR device, DWORD index, DISPLAY_DEVICEW *i else { /* Check adapter name */ - if (strncmpiW( device, DISPLAY, ARRAY_SIZE(DISPLAY) )) + if (strncmpiW( device, ADAPTER_PREFIX, ARRAY_SIZE(ADAPTER_PREFIX) )) goto done;
- adapter_index = strtolW( device + ARRAY_SIZE(DISPLAY), NULL, 10 ); + adapter_index = strtolW( device + ARRAY_SIZE(ADAPTER_PREFIX), NULL, 10 ); sprintfW( key_nameW, VIDEO_VALUE_FMT, adapter_index - 1 );
size = sizeof(bufferW);