view tango/tango/sys/win32/Macros.di @ 132:1700239cab2e trunk

[svn r136] MAJOR UNSTABLE UPDATE!!! Initial commit after moving to Tango instead of Phobos. Lots of bugfixes... This build is not suitable for most things.
author lindquist
date Fri, 11 Jan 2008 17:57:40 +0100
parents
children
line wrap: on
line source

module tango.sys.win32.Macros;

/*
 	Module:		Windows Utilities
 	Author: 	Trevor Parscal
*/

/+ Imports +/
public
{
    import tango.sys.win32.Types;
}
private
{
	import tango.stdc.string;
	import tango.sys.win32.UserGdi;
}


/+ Functions +/
ushort MAKEWORD(ubyte A, ubyte B)
{
	return cast(ushort)(A | (B << 8));
}
uint MAKELONG(ushort A, ushort B)
{
	return cast(uint)(A | (B << 16));
}
ushort HIWORD(uint L)
{
	return cast(ushort)(L >> 16);
}
ushort LOWORD(uint L)
{
	return cast(ushort)(L & 0xFFFF);
}
ubyte HIBYTE(ushort W)
{
	return cast(ubyte)(W >> 8);
}
ubyte LOBYTE(ushort W)
{
	return cast(ubyte)(W & 0xFF);
}
HANDLE GlobalDiscard(HANDLE h)
{
	return GlobalReAlloc(h, 0, GMEM_MOVEABLE);
}
HANDLE LocalDiscard(HANDLE h)
{
	return LocalReAlloc(h, 0, LMEM_MOVEABLE);
}
BOOL SUCCEEDED(HRESULT Status)
{
	return (cast(int)Status & 0x80000000) == 0;
}
BOOL FAILED(HRESULT Status)
{
	return (cast(int)Status & 0x80000000) != 0;
}
BOOL IS_ERROR(HRESULT Status)
{
	return (cast(int)Status >> 31) == SEVERITY_ERROR;
}
int HRESULT_CODE(HRESULT hr)
{
	return cast(int)hr & 0xFFFF;
}
int HRESULT_FACILITY(HRESULT hr)
{
	return (cast(int)hr >> 16) & 0x1FFF;
}
int HRESULT_SEVERITY(HRESULT hr)
{
	return (cast(int)hr >> 31) & 0x1;
}
HRESULT MAKE_HRESULT(int sev, int fac, int code)
{
	return cast(HRESULT)((sev << 31) | (fac << 16) | code);
}
HRESULT HRESULT_FROM_WIN32(int x)
{
	return cast(HRESULT) (x ? (x & 0xFFFF) | (FACILITY_WIN32 << 16) | 0x80000000 : 0);
}
//HRESULT HRESULT_FROM_NT(int x)
//{
//	return x | FACILITY_NT_BIT;
//}
DWORD MAKEROP4(DWORD fore, DWORD back)
{
	return ((back << 8) & 0xFF000000) | fore;
}
ubyte GetKValue(COLORREF cmyk)
{
	return cast(ubyte)(cmyk & 0xFF);
}
ubyte GetYValue(COLORREF cmyk)
{
	return cast(ubyte)((cmyk >> 8) & 0xFF);
}
ubyte GetMValue(COLORREF cmyk)
{
	return cast(ubyte)((cmyk >> 16) & 0xFF);
}
ubyte GetCValue(COLORREF cmyk)
{
	return cast(ubyte)((cmyk >> 24) & 0xFF);
}
COLORREF CMYK(ubyte c, ubyte m, ubyte y, ubyte k)
{
	return k | (y << 8) | (m << 16) | (c << 24);
}
COLORREF RGB(ubyte r, ubyte g, ubyte b)
{
	return r | (g << 8) | (b << 16);
}
COLORREF PALETTERGB(ubyte r, ubyte g, ubyte b)
{
	return 0x02000000 | RGB(r, g, b);
}
COLORREF PALETTEINDEX(ushort i)
{
	return 0x01000000 | i;
}
ubyte GetRValue(COLORREF rgb)
{
	return cast(ubyte)(rgb & 0xFF);
}
ubyte GetGValue(COLORREF rgb)
{
	return cast(ubyte)((rgb >> 8) & 0xFF);
}
ubyte GetBValue(COLORREF rgb)
{
	return cast(ubyte)((rgb >> 16) & 0xFF);
}
WPARAM MAKEWPARAM(ushort l, ushort h)
{
	return MAKELONG(l, h);
}
LPARAM MAKELPARAM(ushort l, ushort h)
{
	return MAKELONG(l, h);
}
LRESULT MAKELRESULT(ushort l, ushort h)
{
	return MAKELONG(l, h);
}
BOOL ExitWindows(DWORD dwReserved, UINT uReserved)
{
	return ExitWindowsEx(EWX_LOGOFF, 0);
}
HWND CreateWindowA(PCHAR b, PCHAR c, DWORD d, int e,
	int f, int g, int h, HWND i, HMENU j, HINST k, POINTER l)
{
	return CreateWindowExA(0, b, c, d, e, f, g, h, i, j, k, l);
}
HWND CreateWindowW(PWIDECHAR b, PWIDECHAR c, DWORD d, int e,
	int f, int g, int h, HWND i, HMENU j, HINST k, POINTER l)
{
	return CreateWindowExW(0, b, c, d, e, f, g, h, i, j, k, l);
}
HWND CreateDialogA(HINST a, PANSICHAR b, HWND c, DLGPROC d)
{
	return CreateDialogParamA(a, b, c, d, 0);
}
HWND CreateDialogW(HINST a, PWIDECHAR b, HWND c, DLGPROC d)
{
	return CreateDialogParamW(a, b, c, d, 0);
}
HWND CreateDialogIndirectA(HINST a, DLGTEMPLATE* b, HWND c, DLGPROC d)
{
	return CreateDialogIndirectParamA(a, b, c, d, 0);
}
HWND CreateDialogIndirectW(HINST a, DLGTEMPLATE* b, HWND c, DLGPROC d)
{
	return CreateDialogIndirectParamW(a, b, c, d, 0);
}
int DialogBoxA(HINST a, PANSICHAR b, HWND c, DLGPROC d)
{
	return DialogBoxParamA(a, b, c, d, 0);
}
int DialogBoxW(HINST a, PWIDECHAR b, HWND c, DLGPROC d)
{
	return DialogBoxParamW(a, b, c, d, 0);
}
int DialogBoxIndirectA(HINST a, DLGTEMPLATE* b, HWND c, DLGPROC d)
{
	return DialogBoxIndirectParamA(a, b, c, d, 0);
}
int DialogBoxIndirectW(HINST a, DLGTEMPLATE* b, HWND c, DLGPROC d)
{
	return DialogBoxIndirectParamW(a, b, c, d, 0);
}
void ZeroMemory(void* dest, uint len)
{
	memset(dest, 0, len);
}
void FillMemory(void* dest, uint len, ubyte c)
{
	memset(dest, c, len);
}
void MoveMemory(void* dest, void* src, uint len)
{
	memmove(dest, src, len);
}
void CopyMemory(void* dest, void* src, uint len)
{
	memcpy(dest, src, len);
}