1 // Copyright © 2016-2017 winapi-rs developers 2 // Licensed under the Apache License, Version 2.0 3 // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license 4 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option. 5 // All files in the project carrying such notice may not be copied, modified, or distributed 6 // except according to those terms. 7 //! Basic Windows Type Definitions 8 use ctypes::c_void; 9 use shared::minwindef::{DWORD, HFILE, WORD}; 10 use um::winnt::{LONG, SHORT}; 11 DECLARE_HANDLE!{HWND, HWND__} 12 DECLARE_HANDLE!{HHOOK, HHOOK__} 13 pub type HGDIOBJ = *mut c_void; 14 DECLARE_HANDLE!{HACCEL, HACCEL__} 15 DECLARE_HANDLE!{HBITMAP, HBITMAP__} 16 DECLARE_HANDLE!{HBRUSH, HBRUSH__} 17 DECLARE_HANDLE!{HCOLORSPACE, HCOLORSPACE__} 18 DECLARE_HANDLE!{HDC, HDC__} 19 DECLARE_HANDLE!{HGLRC, HGLRC__} 20 DECLARE_HANDLE!{HDESK, HDESK__} 21 DECLARE_HANDLE!{HENHMETAFILE, HENHMETAFILE__} 22 DECLARE_HANDLE!{HFONT, HFONT__} 23 DECLARE_HANDLE!{HICON, HICON__} 24 DECLARE_HANDLE!{HMENU, HMENU__} 25 DECLARE_HANDLE!{HPALETTE, HPALETTE__} 26 DECLARE_HANDLE!{HPEN, HPEN__} 27 DECLARE_HANDLE!{HWINEVENTHOOK, HWINEVENTHOOK__} 28 DECLARE_HANDLE!{HMONITOR, HMONITOR__} 29 DECLARE_HANDLE!{HUMPD, HUMPD__} 30 pub type HCURSOR = HICON; 31 pub type COLORREF = DWORD; 32 pub type LPCOLORREF = *mut DWORD; 33 pub const HFILE_ERROR: HFILE = -1; 34 STRUCT!{#[debug] struct RECT { 35 left: LONG, 36 top: LONG, 37 right: LONG, 38 bottom: LONG, 39 }} 40 pub type PRECT = *mut RECT; 41 pub type NPRECT = *mut RECT; 42 pub type LPRECT = *mut RECT; 43 pub type LPCRECT = *const RECT; 44 STRUCT!{#[debug] struct RECTL { 45 left: LONG, 46 top: LONG, 47 right: LONG, 48 bottom: LONG, 49 }} 50 pub type PRECTL = *mut RECTL; 51 pub type LPRECTL = *mut RECTL; 52 pub type LPCRECTL = *const RECTL; 53 STRUCT!{struct POINT { 54 x: LONG, 55 y: LONG, 56 }} 57 pub type PPOINT = *mut POINT; 58 pub type NPPOINT = *mut POINT; 59 pub type LPPOINT = *mut POINT; 60 STRUCT!{struct POINTL { 61 x: LONG, 62 y: LONG, 63 }} 64 pub type PPOINTL = *mut POINTL; 65 STRUCT!{struct SIZE { 66 cx: LONG, 67 cy: LONG, 68 }} 69 pub type PSIZE = *mut SIZE; 70 pub type LPSIZE = *mut SIZE; 71 pub type SIZEL = SIZE; 72 pub type PSIZEL = *mut SIZE; 73 pub type LPSIZEL = *mut SIZE; 74 STRUCT!{struct POINTS { 75 x: SHORT, 76 y: SHORT, 77 }} 78 pub type PPOINTS = *mut POINTS; 79 pub type LPPOINTS = *mut POINTS; 80 pub const DM_UPDATE: WORD = 1; 81 pub const DM_COPY: WORD = 2; 82 pub const DM_PROMPT: WORD = 4; 83 pub const DM_MODIFY: WORD = 8; 84 pub const DM_IN_BUFFER: WORD = DM_MODIFY; 85 pub const DM_IN_PROMPT: WORD = DM_PROMPT; 86 pub const DM_OUT_BUFFER: WORD = DM_COPY; 87 pub const DM_OUT_DEFAULT: WORD = DM_UPDATE; 88 pub const DC_FIELDS: DWORD = 1; 89 pub const DC_PAPERS: DWORD = 2; 90 pub const DC_PAPERSIZE: DWORD = 3; 91 pub const DC_MINEXTENT: DWORD = 4; 92 pub const DC_MAXEXTENT: DWORD = 5; 93 pub const DC_BINS: DWORD = 6; 94 pub const DC_DUPLEX: DWORD = 7; 95 pub const DC_SIZE: DWORD = 8; 96 pub const DC_EXTRA: DWORD = 9; 97 pub const DC_VERSION: DWORD = 10; 98 pub const DC_DRIVER: DWORD = 11; 99 pub const DC_BINNAMES: DWORD = 12; 100 pub const DC_ENUMRESOLUTIONS: DWORD = 13; 101 pub const DC_FILEDEPENDENCIES: DWORD = 14; 102 pub const DC_TRUETYPE: DWORD = 15; 103 pub const DC_PAPERNAMES: DWORD = 16; 104 pub const DC_ORIENTATION: DWORD = 17; 105 pub const DC_COPIES: DWORD = 18; 106 DECLARE_HANDLE!{DPI_AWARENESS_CONTEXT, DPI_AWARENESS_CONTEXT__} 107 ENUM!{enum DPI_AWARENESS { 108 DPI_AWARENESS_INVALID = -1i32 as u32, 109 DPI_AWARENESS_UNAWARE = 0, 110 DPI_AWARENESS_SYSTEM_AWARE = 1, 111 DPI_AWARENESS_PER_MONITOR_AWARE = 2, 112 }} 113 pub const DPI_AWARENESS_CONTEXT_UNAWARE: DPI_AWARENESS_CONTEXT = -1isize as DPI_AWARENESS_CONTEXT; 114 pub const DPI_AWARENESS_CONTEXT_SYSTEM_AWARE: DPI_AWARENESS_CONTEXT 115 = -2isize as DPI_AWARENESS_CONTEXT; 116 pub const DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE: DPI_AWARENESS_CONTEXT 117 = -3isize as DPI_AWARENESS_CONTEXT; 118