blob: 80f6874634709168015a5c6d432bf14cfaae34a5 [file]
/**
* Windows API header module
*
* Translated from MinGW Windows headers
*
* Authors: Stewart Gordon
* License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
* Source: $(DRUNTIMESRC core/sys/windows/_windef.d)
*/
module core.sys.windows.windef;
version (Windows):
public import core.sys.windows.winnt;
import core.sys.windows.w32api;
enum size_t MAX_PATH = 260;
pure nothrow @nogc {
ushort MAKEWORD(ubyte a, ubyte b) {
return cast(ushort) ((b << 8) | a);
}
ushort MAKEWORD(ushort a, ushort b) {
assert((a & 0xFF00) == 0);
assert((b & 0xFF00) == 0);
return MAKEWORD(cast(ubyte)a, cast(ubyte)b);
}
uint MAKELONG(ushort a, ushort b) {
return cast(uint) ((b << 16) | a);
}
uint MAKELONG(uint a, uint b) {
assert((a & 0xFFFF0000) == 0);
assert((b & 0xFFFF0000) == 0);
return MAKELONG(cast(ushort)a, cast(ushort)b);
}
ushort LOWORD(ulong l) {
return cast(ushort) l;
}
ushort HIWORD(ulong l) {
return cast(ushort) (l >>> 16);
}
ubyte LOBYTE(ushort w) {
return cast(ubyte) w;
}
ubyte HIBYTE(ushort w) {
return cast(ubyte) (w >>> 8);
}
}
enum NULL = null;
static assert (is(typeof({
void test(int* p) {}
test(NULL);
})));
alias BYTE = ubyte;
alias PBYTE = ubyte*, LPBYTE = ubyte*;
alias USHORT = ushort, WORD = ushort, ATOM = ushort;
alias PUSHORT = ushort*, PWORD = ushort*, LPWORD = ushort*;
alias ULONG = uint, DWORD = uint, UINT = uint, COLORREF = uint;
alias PULONG = uint*, PDWORD = uint*, LPDWORD = uint*, PUINT = uint*, LPUINT = uint*, LPCOLORREF = uint*;
alias WINBOOL = int, BOOL = int, INT = int, LONG = int, HFILE = int, HRESULT = int;
alias PWINBOOL = int*, LPWINBOOL = int*, PBOOL = int*, LPBOOL = int*, PINT = int*, LPINT = int*, LPLONG = int*;
alias FLOAT = float;
alias PFLOAT = float*;
alias PCVOID = const(void)*, LPCVOID = const(void)*;
alias WPARAM = UINT_PTR;
alias LPARAM = LONG_PTR, LRESULT = LONG_PTR;
alias HHOOK = HANDLE;
alias HGLOBAL = HANDLE;
alias HLOCAL = HANDLE;
alias GLOBALHANDLE = HANDLE;
alias LOCALHANDLE = HANDLE;
alias HGDIOBJ = HANDLE;
alias HACCEL = HANDLE;
alias HBITMAP = HGDIOBJ;
alias HBRUSH = HGDIOBJ;
alias HCOLORSPACE = HANDLE;
alias HDC = HANDLE;
alias HGLRC = HANDLE;
alias HDESK = HANDLE;
alias HENHMETAFILE = HANDLE;
alias HFONT = HGDIOBJ;
alias HICON = HANDLE;
alias HINSTANCE = HANDLE;
alias HKEY = HANDLE;
alias HMENU = HANDLE;
alias HMETAFILE = HANDLE;
alias HMODULE = HANDLE;
alias HMONITOR = HANDLE;
alias HPALETTE = HANDLE;
alias HPEN = HGDIOBJ;
alias HRGN = HGDIOBJ;
alias HRSRC = HANDLE;
alias HSTR = HANDLE;
alias HTASK = HANDLE;
alias HWND = HANDLE;
alias HWINSTA = HANDLE;
alias HKL = HANDLE;
alias HCURSOR = HANDLE;
alias PHKEY = HKEY*;
static if (_WIN32_WINNT >= 0x500) {
alias HTERMINAL = HANDLE;
alias HWINEVENTHOOK = HANDLE;
}
alias FARPROC = extern (Windows) INT_PTR function() nothrow, NEARPROC = extern (Windows) INT_PTR function() nothrow, PROC = extern (Windows) INT_PTR function() nothrow;
struct RECT {
LONG left;
LONG top;
LONG right;
LONG bottom;
}
alias RECTL = RECT;
alias PRECT = RECT*, NPRECT = RECT*, LPRECT = RECT*, PRECTL = RECT*, LPRECTL = RECT*;
alias LPCRECT = const(RECT)*, LPCRECTL = const(RECT)*;
struct POINT {
LONG x;
LONG y;
}
alias POINTL = POINT;
alias PPOINT = POINT*, NPPOINT = POINT*, LPPOINT = POINT*, PPOINTL = POINT*, LPPOINTL = POINT*;
struct SIZE {
LONG cx;
LONG cy;
}
alias SIZEL = SIZE;
alias PSIZE = SIZE*, LPSIZE = SIZE*, PSIZEL = SIZE*, LPSIZEL = SIZE*;
struct POINTS {
SHORT x;
SHORT y;
}
alias PPOINTS = POINTS*, LPPOINTS = POINTS*;
enum : BOOL {
FALSE = 0,
TRUE = 1
}