// Licensed under the Apache License, Version 2.0 // or the MIT license // , at your option. // All files in the project carrying such notice may not be copied, modified, or distributed // except according to those terms. //! Basic Windows Type Definitions use ctypes::c_void; use shared::minwindef::{DWORD, HFILE, WORD}; use um::winnt::{LONG, SHORT}; DECLARE_HANDLE!{HWND, HWND__} DECLARE_HANDLE!{HHOOK, HHOOK__} pub type HGDIOBJ = *mut c_void; DECLARE_HANDLE!{HACCEL, HACCEL__} DECLARE_HANDLE!{HBITMAP, HBITMAP__} DECLARE_HANDLE!{HBRUSH, HBRUSH__} DECLARE_HANDLE!{HCOLORSPACE, HCOLORSPACE__} DECLARE_HANDLE!{HDC, HDC__} DECLARE_HANDLE!{HGLRC, HGLRC__} DECLARE_HANDLE!{HDESK, HDESK__} DECLARE_HANDLE!{HENHMETAFILE, HENHMETAFILE__} DECLARE_HANDLE!{HFONT, HFONT__} DECLARE_HANDLE!{HICON, HICON__} DECLARE_HANDLE!{HMENU, HMENU__} DECLARE_HANDLE!{HPALETTE, HPALETTE__} DECLARE_HANDLE!{HPEN, HPEN__} DECLARE_HANDLE!{HWINEVENTHOOK, HWINEVENTHOOK__} DECLARE_HANDLE!{HMONITOR, HMONITOR__} DECLARE_HANDLE!{HUMPD, HUMPD__} pub type HCURSOR = HICON; pub type COLORREF = DWORD; pub type LPCOLORREF = *mut DWORD; pub const HFILE_ERROR: HFILE = -1; STRUCT!{#[debug] struct RECT { left: LONG, top: LONG, right: LONG, bottom: LONG, }} pub type PRECT = *mut RECT; pub type NPRECT = *mut RECT; pub type LPRECT = *mut RECT; pub type LPCRECT = *const RECT; STRUCT!{#[debug] struct RECTL { left: LONG, top: LONG, right: LONG, bottom: LONG, }} pub type PRECTL = *mut RECTL; pub type LPRECTL = *mut RECTL; pub type LPCRECTL = *const RECTL; STRUCT!{struct POINT { x: LONG, y: LONG, }} pub type PPOINT = *mut POINT; pub type NPPOINT = *mut POINT; pub type LPPOINT = *mut POINT; STRUCT!{struct POINTL { x: LONG, y: LONG, }} pub type PPOINTL = *mut POINTL; STRUCT!{struct SIZE { cx: LONG, cy: LONG, }} pub type PSIZE = *mut SIZE; pub type LPSIZE = *mut SIZE; pub type SIZEL = SIZE; pub type PSIZEL = *mut SIZE; pub type LPSIZEL = *mut SIZE; STRUCT!{struct POINTS { x: SHORT, y: SHORT, }} pub type PPOINTS = *mut POINTS; pub type LPPOINTS = *mut POINTS; pub const DM_UPDATE: WORD = 1; pub const DM_COPY: WORD = 2; pub const DM_PROMPT: WORD = 4; pub const DM_MODIFY: WORD = 8; pub const DM_IN_BUFFER: WORD = DM_MODIFY; pub const DM_IN_PROMPT: WORD = DM_PROMPT; pub const DM_OUT_BUFFER: WORD = DM_COPY; pub const DM_OUT_DEFAULT: WORD = DM_UPDATE; pub const DC_FIELDS: DWORD = 1; pub const DC_PAPERS: DWORD = 2; pub const DC_PAPERSIZE: DWORD = 3; pub const DC_MINEXTENT: DWORD = 4; pub const DC_MAXEXTENT: DWORD = 5; pub const DC_BINS: DWORD = 6; pub const DC_DUPLEX: DWORD = 7; pub const DC_SIZE: DWORD = 8; pub const DC_EXTRA: DWORD = 9; pub const DC_VERSION: DWORD = 10; pub const DC_DRIVER: DWORD = 11; pub const DC_BINNAMES: DWORD = 12; pub const DC_ENUMRESOLUTIONS: DWORD = 13; pub const DC_FILEDEPENDENCIES: DWORD = 14; pub const DC_TRUETYPE: DWORD = 15; pub const DC_PAPERNAMES: DWORD = 16; pub const DC_ORIENTATION: DWORD = 17; pub const DC_COPIES: DWORD = 18; DECLARE_HANDLE!{DPI_AWARENESS_CONTEXT, DPI_AWARENESS_CONTEXT__} ENUM!{enum DPI_AWARENESS { DPI_AWARENESS_INVALID = -1i32 as u32, DPI_AWARENESS_UNAWARE = 0, DPI_AWARENESS_SYSTEM_AWARE = 1, DPI_AWARENESS_PER_MONITOR_AWARE = 2, }} pub const DPI_AWARENESS_CONTEXT_UNAWARE: DPI_AWARENESS_CONTEXT = -1isize as DPI_AWARENESS_CONTEXT; pub const DPI_AWARENESS_CONTEXT_SYSTEM_AWARE: DPI_AWARENESS_CONTEXT = -2isize as DPI_AWARENESS_CONTEXT; pub const DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE: DPI_AWARENESS_CONTEXT = -3isize as DPI_AWARENESS_CONTEXT; pub const DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2: DPI_AWARENESS_CONTEXT = -4isize as DPI_AWARENESS_CONTEXT; pub const DPI_AWARENESS_CONTEXT_UNAWARE_GDISCALED: DPI_AWARENESS_CONTEXT = -5isize as DPI_AWARENESS_CONTEXT; ENUM!{enum DPI_HOSTING_BEHAVIOR { DPI_HOSTING_BEHAVIOR_INVALID = -1i32 as u32, DPI_HOSTING_BEHAVIOR_DEFAULT = 0, DPI_HOSTING_BEHAVIOR_MIXED = 1, }}