// Licensed under the Apache License, Version 2.0
// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, 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_AWARENE
SS_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,
}}