// 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 for minwin partition use ctypes::{c_char, c_float, c_int, c_long, c_uchar, c_uint, c_ulong, c_ushort, c_void}; use shared::basetsd::{LONG_PTR, UINT_PTR}; use shared::ntdef::{HANDLE, LONG}; pub type ULONG = c_ulong; pub type PULONG = *mut ULONG; pub type USHORT = c_ushort; pub type PUSHORT = *mut USHORT; pub type UCHAR = c_uchar; pub type PUCHAR = *mut UCHAR; pub type PSZ = *mut c_char; pub const MAX_PATH: usize = 260; pub const FALSE: BOOL = 0; pub const TRUE: BOOL = 1; pub type DWORD = c_ulong; pub type BOOL = c_int; pub type BYTE = c_uchar; pub type WORD = c_ushort; pub type FLOAT = c_float; pub type PFLOAT = *mut FLOAT; pub type PBOOL = *mut BOOL; pub type LPBOOL = *mut BOOL; pub type PBYTE = *mut BYTE; pub type LPBYTE = *mut BYTE; pub type PINT = *mut c_int; pub type LPINT = *mut c_int; pub type PWORD = *mut WORD; pub type LPWORD = *mut WORD; pub type LPLONG = *mut c_long; pub type PDWORD = *mut DWORD; pub type LPDWORD = *mut DWORD; pub type LPVOID = *mut c_void; pub type LPCVOID = *const c_void; pub type INT = c_int; pub type UINT = c_uint; pub type PUINT = *mut c_uint; pub type WPARAM = UINT_PTR; pub type LPARAM = LONG_PTR; pub type LRESULT = LONG_PTR; #[inline] pub fn MAKEWORD(a: BYTE, b: BYTE) -> WORD { (a as WORD) | ((b as WORD) << 8) } #[inline] pub fn MAKELONG(a: WORD, b: WORD) -> LONG { ((a as DWORD) | ((b as DWORD) << 16)) as LONG } #[inline] pub fn LOWORD(l: DWORD) -> WORD { (l & 0xffff) as WORD } #[inline] pub fn HIWORD(l: DWORD) -> WORD { ((l >> 16) & 0xffff) as WORD } #[inline] pub fn LOBYTE(l: WORD) -> BYTE { (l & 0xff) as BYTE } #[inline] pub fn HIBYTE(l: WORD) -> BYTE { ((l >> 8) & 0xff) as BYTE } pub type SPHANDLE = *mut HANDLE; pub type LPHANDLE = *mut HANDLE; pub type HGLOBAL = HANDLE; pub type HLOCAL = HANDLE; pub type GLOBALHANDLE = HANDLE; pub type LOCALHANDLE = HANDLE; pub enum __some_function {} /// Pointer to a function with unknown type signature. pub type FARPROC = *mut __some_function; /// Pointer to a function with unknown type signature. pub type NEARPROC = *mut __some_function; /// Pointer to a function with unknown type signature. pub type PROC = *mut __some_function; pub type ATOM = WORD; DECLARE_HANDLE!{HKEY, HKEY__} pub type PHKEY = *mut HKEY; DECLARE_HANDLE!{HMETAFILE, HMETAFILE__} DECLARE_HANDLE!{HINSTANCE, HINSTANCE__} pub type HMODULE = HINSTANCE; DECLARE_HANDLE!{HRGN, HRGN__} DECLARE_HANDLE!{HRSRC, HRSRC__} DECLARE_HANDLE!{HSPRITE, HSPRITE__} DECLARE_HANDLE!{HLSURF, HLSURF__} DECLARE_HANDLE!{HSTR, HSTR__} DECLARE_HANDLE!{HTASK, HTASK__} DECLARE_HANDLE!{HWINSTA, HWINSTA__} DECLARE_HANDLE!{HKL, HKL__} pub type HFILE = c_int; STRUCT!{#[debug] struct FILETIME { dwLowDateTime: DWORD, dwHighDateTime: DWORD, }} pub type PFILETIME = *mut FILETIME; pub type LPFILETIME = *mut FILETIME;