winapi\shared/
windef.rs

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