user32: Use NtUserGetDisplayConfigBufferSizes.
Signed-off-by: Jacek Caban <jacek@codeweavers.com> Signed-off-by: Huw Davies <huw@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
1221722ed3
commit
8b9b2580a5
|
@ -4201,63 +4201,6 @@ BOOL WINAPI PhysicalToLogicalPoint( HWND hwnd, POINT *point )
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
/**********************************************************************
|
||||
* GetDisplayConfigBufferSizes (USER32.@)
|
||||
*/
|
||||
LONG WINAPI GetDisplayConfigBufferSizes(UINT32 flags, UINT32 *num_path_info, UINT32 *num_mode_info)
|
||||
{
|
||||
LONG ret = ERROR_GEN_FAILURE;
|
||||
HANDLE mutex;
|
||||
HDEVINFO devinfo;
|
||||
SP_DEVINFO_DATA device_data = {sizeof(device_data)};
|
||||
DWORD monitor_index = 0, state_flags, type;
|
||||
|
||||
FIXME("(0x%x %p %p): semi-stub\n", flags, num_path_info, num_mode_info);
|
||||
|
||||
if (!num_path_info || !num_mode_info)
|
||||
return ERROR_INVALID_PARAMETER;
|
||||
|
||||
*num_path_info = 0;
|
||||
|
||||
if (flags != QDC_ALL_PATHS &&
|
||||
flags != QDC_ONLY_ACTIVE_PATHS &&
|
||||
flags != QDC_DATABASE_CURRENT)
|
||||
return ERROR_INVALID_PARAMETER;
|
||||
|
||||
if (flags != QDC_ONLY_ACTIVE_PATHS)
|
||||
FIXME("only returning active paths\n");
|
||||
|
||||
wait_graphics_driver_ready();
|
||||
mutex = get_display_device_init_mutex();
|
||||
|
||||
/* Iterate through "targets"/monitors.
|
||||
* Each target corresponds to a path, and each path references a source and a target mode.
|
||||
*/
|
||||
devinfo = SetupDiGetClassDevsW(&GUID_DEVCLASS_MONITOR, L"DISPLAY", NULL, DIGCF_PRESENT);
|
||||
if (devinfo == INVALID_HANDLE_VALUE)
|
||||
goto done;
|
||||
|
||||
while (SetupDiEnumDeviceInfo(devinfo, monitor_index++, &device_data))
|
||||
{
|
||||
/* Only count active monitors */
|
||||
if (!SetupDiGetDevicePropertyW(devinfo, &device_data, &WINE_DEVPROPKEY_MONITOR_STATEFLAGS,
|
||||
&type, (BYTE *)&state_flags, sizeof(state_flags), NULL, 0))
|
||||
goto done;
|
||||
|
||||
if (state_flags & DISPLAY_DEVICE_ACTIVE)
|
||||
(*num_path_info)++;
|
||||
}
|
||||
|
||||
*num_mode_info = *num_path_info * 2;
|
||||
ret = ERROR_SUCCESS;
|
||||
TRACE("returning %u path(s) %u mode(s)\n", *num_path_info, *num_mode_info);
|
||||
|
||||
done:
|
||||
SetupDiDestroyDeviceInfoList(devinfo);
|
||||
release_display_device_init_mutex(mutex);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static DISPLAYCONFIG_ROTATION get_dc_rotation(const DEVMODEW *devmode)
|
||||
{
|
||||
if (devmode->dmFields & DM_DISPLAYORIENTATION)
|
||||
|
|
|
@ -291,7 +291,7 @@
|
|||
@ stdcall GetDesktopWindow()
|
||||
@ stdcall GetDialogBaseUnits()
|
||||
@ stdcall GetDisplayAutoRotationPreferences(ptr)
|
||||
@ stdcall GetDisplayConfigBufferSizes(long ptr ptr)
|
||||
@ stdcall GetDisplayConfigBufferSizes(long ptr ptr) NtUserGetDisplayConfigBufferSizes
|
||||
@ stdcall GetDlgCtrlID(long)
|
||||
@ stdcall GetDlgItem(long long)
|
||||
@ stdcall GetDlgItemInt(long long ptr long)
|
||||
|
|
Loading…
Reference in New Issue