| /** |
| * 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 |
| } |