1 // Licensed under the Apache License, Version 2.0 2 // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license 3 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option. 4 // All files in the project carrying such notice may not be copied, modified, or distributed 5 // except according to those terms. 6 use shared::minwindef::UINT; 7 use shared::windef::HMONITOR; 8 use um::winnt::{HANDLE, HRESULT}; 9 ENUM!{enum PROCESS_DPI_AWARENESS { 10 PROCESS_DPI_UNAWARE = 0, 11 PROCESS_SYSTEM_DPI_AWARE = 1, 12 PROCESS_PER_MONITOR_DPI_AWARE = 2, 13 }} 14 ENUM!{enum MONITOR_DPI_TYPE { 15 MDT_EFFECTIVE_DPI = 0, 16 MDT_ANGULAR_DPI = 1, 17 MDT_RAW_DPI = 2, 18 MDT_DEFAULT = MDT_EFFECTIVE_DPI, 19 }} 20 extern "system" { SetProcessDpiAwareness( value: PROCESS_DPI_AWARENESS, ) -> HRESULT21 pub fn SetProcessDpiAwareness( 22 value: PROCESS_DPI_AWARENESS, 23 ) -> HRESULT; GetProcessDpiAwareness( hProcess: HANDLE, value: *mut PROCESS_DPI_AWARENESS, ) -> HRESULT24 pub fn GetProcessDpiAwareness( 25 hProcess: HANDLE, 26 value: *mut PROCESS_DPI_AWARENESS, 27 ) -> HRESULT; GetDpiForMonitor( hmonitor: HMONITOR, dpiType: MONITOR_DPI_TYPE, dpiX: *mut UINT, dpiY: *mut UINT, ) -> HRESULT28 pub fn GetDpiForMonitor( 29 hmonitor: HMONITOR, 30 dpiType: MONITOR_DPI_TYPE, 31 dpiX: *mut UINT, 32 dpiY: *mut UINT, 33 ) -> HRESULT; 34 } 35 ENUM!{enum SHELL_UI_COMPONENT { 36 SHELL_UI_COMPONENT_TASKBARS = 0, 37 SHELL_UI_COMPONENT_NOTIFICATIONAREA = 1, 38 SHELL_UI_COMPONENT_DESKBAND = 2, 39 }} 40 extern "system" { GetDpiForShellUIComponent( component: SHELL_UI_COMPONENT, ) -> UINT41 pub fn GetDpiForShellUIComponent( 42 component: SHELL_UI_COMPONENT, 43 ) -> UINT; 44 } 45