Artifact 305164202924dd1b6fb8f78c6c8e17af22376bee
- File
src/win32/windef.d
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
The problem was __gshared. Replacing it with TLS fixed the issue. Remaining problem is that "hack.d"'s CloseHandle hack is not working anymore.
(user: kinaba) [annotate]
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
/***********************************************************************\ * windef.d * * * * Windows API header module * * * * Translated from MinGW Windows headers * * by Stewart Gordon * * * * Placed into public domain * \***********************************************************************/ module win32.windef; public import win32.winnt; private import win32.w32api; const size_t MAX_PATH = 260; 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); } template max(T) { T max(T a, T b) { return a > b ? a : b; } } template min(T) { T min(T a, T b) { return a < b ? a : b; } } enum void* NULL = 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; 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; mixin DECLARE_HANDLE!("HGLOBAL"); mixin DECLARE_HANDLE!("HLOCAL"); mixin DECLARE_HANDLE!("GLOBALHANDLE"); mixin DECLARE_HANDLE!("LOCALHANDLE"); mixin DECLARE_HANDLE!("HGDIOBJ"); mixin DECLARE_HANDLE!("HACCEL"); mixin DECLARE_HANDLE!("HBITMAP", HGDIOBJ); mixin DECLARE_HANDLE!("HBRUSH", HGDIOBJ); mixin DECLARE_HANDLE!("HCOLORSPACE"); mixin DECLARE_HANDLE!("HDC"); mixin DECLARE_HANDLE!("HGLRC"); mixin DECLARE_HANDLE!("HDESK"); mixin DECLARE_HANDLE!("HENHMETAFILE"); mixin DECLARE_HANDLE!("HFONT", HGDIOBJ); mixin DECLARE_HANDLE!("HICON"); mixin DECLARE_HANDLE!("HINSTANCE"); mixin DECLARE_HANDLE!("HKEY"); mixin DECLARE_HANDLE!("HMENU"); mixin DECLARE_HANDLE!("HMETAFILE"); mixin DECLARE_HANDLE!("HMODULE"); mixin DECLARE_HANDLE!("HMONITOR"); mixin DECLARE_HANDLE!("HPALETTE"); mixin DECLARE_HANDLE!("HPEN", HGDIOBJ); mixin DECLARE_HANDLE!("HRGN", HGDIOBJ); mixin DECLARE_HANDLE!("HRSRC"); mixin DECLARE_HANDLE!("HSTR"); mixin DECLARE_HANDLE!("HTASK"); mixin DECLARE_HANDLE!("HWND"); mixin DECLARE_HANDLE!("HWINSTA"); mixin DECLARE_HANDLE!("HKL"); mixin DECLARE_HANDLE!("HCURSOR"); alias HKEY* PHKEY; static if (_WIN32_WINNT >= 0x500) { mixin DECLARE_HANDLE!("HTERMINAL"); mixin DECLARE_HANDLE!("HWINEVENTHOOK"); } alias extern (Windows) INT_PTR function() FARPROC, NEARPROC, PROC; struct RECT { LONG left; LONG top; LONG right; LONG bottom; } alias RECT RECTL; alias RECT* PRECT, LPRECT, PRECTL, LPRECTL; alias const(RECT)* LPCRECT, LPCRECTL; struct POINT { LONG x; LONG y; } alias POINT POINTL; alias POINT* PPOINT, 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 }