| /** |
| * 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 ubyte BYTE; |
| alias ubyte* PBYTE, LPBYTE; |
| alias ushort USHORT, WORD, ATOM; |
| alias ushort* PUSHORT, PWORD, LPWORD; |
| alias uint ULONG, DWORD, UINT, COLORREF; |
| alias uint* PULONG, PDWORD, LPDWORD, PUINT, LPUINT, LPCOLORREF; |
| alias int WINBOOL, BOOL, INT, LONG, HFILE, HRESULT; |
| alias int* PWINBOOL, LPWINBOOL, PBOOL, LPBOOL, PINT, LPINT, LPLONG; |
| alias float FLOAT; |
| alias float* PFLOAT; |
| alias const(void)* PCVOID, LPCVOID; |
| |
| alias UINT_PTR WPARAM; |
| alias LONG_PTR LPARAM, LRESULT; |
| |
| 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 HKEY* PHKEY; |
| |
| static if (_WIN32_WINNT >= 0x500) { |
| alias HTERMINAL = HANDLE; |
| alias HWINEVENTHOOK = HANDLE; |
| } |
| |
| alias extern (Windows) INT_PTR function() nothrow FARPROC, NEARPROC, PROC; |
| |
| struct RECT { |
| LONG left; |
| LONG top; |
| LONG right; |
| LONG bottom; |
| } |
| alias RECT RECTL; |
| alias RECT* PRECT, NPRECT, LPRECT, PRECTL, LPRECTL; |
| alias const(RECT)* LPCRECT, LPCRECTL; |
| |
| struct POINT { |
| LONG x; |
| LONG y; |
| } |
| alias POINT POINTL; |
| alias POINT* PPOINT, NPPOINT, LPPOINT, PPOINTL, LPPOINTL; |
| |
| struct SIZE { |
| LONG cx; |
| LONG cy; |
| } |
| alias SIZE SIZEL; |
| alias SIZE* PSIZE, LPSIZE, PSIZEL, LPSIZEL; |
| |
| struct POINTS { |
| SHORT x; |
| SHORT y; |
| } |
| alias POINTS* PPOINTS, LPPOINTS; |
| |
| enum : BOOL { |
| FALSE = 0, |
| TRUE = 1 |
| } |