
D front-end changes: - Import latest changes from dmd v2.107.0-beta.1. - Keywords like `__FILE__' are now always evaluated at the callsite. D runtime changes: - Import latest changes from druntime v2.107.0-beta.1. - Added `nameSig' field to TypeInfo_Class in object.d. Phobos changes: - Import latest changes from phobos v2.107.0-beta.1. gcc/d/ChangeLog: * dmd/MERGE: Merge upstream dmd bce5c1f7b5. * d-attribs.cc (build_attributes): Update for new front-end interface. * d-lang.cc (d_parse_file): Likewise. * decl.cc (DeclVisitor::visit (VarDeclaration *)): Likewise. * expr.cc (build_lambda_tree): New function. (ExprVisitor::visit (FuncExp *)): Use build_lambda_tree. (ExprVisitor::visit (SymOffExp *)): Likewise. (ExprVisitor::visit (VarExp *)): Likewise. * typeinfo.cc (create_tinfo_types): Add two ulong fields to internal TypeInfo representation. (TypeInfoVisitor::visit (TypeInfoClassDeclaration *)): Emit stub data for TypeInfo_Class.nameSig. (TypeInfoVisitor::visit (TypeInfoStructDeclaration *)): Update for new front-end interface. libphobos/ChangeLog: * libdruntime/MERGE: Merge upstream druntime bce5c1f7b5. * src/MERGE: Merge upstream phobos e4d0dd513.
151 lines
3.3 KiB
D
151 lines
3.3 KiB
D
/**
|
|
* 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
|
|
}
|