comparison 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
comparison
equal deleted inserted replaced
131:5825d48b27d1 132:1700239cab2e
1 module tango.sys.win32.Macros;
2
3 /*
4 Module: Windows Utilities
5 Author: Trevor Parscal
6 */
7
8 /+ Imports +/
9 public
10 {
11 import tango.sys.win32.Types;
12 }
13 private
14 {
15 import tango.stdc.string;
16 import tango.sys.win32.UserGdi;
17 }
18
19
20 /+ Functions +/
21 ushort MAKEWORD(ubyte A, ubyte B)
22 {
23 return cast(ushort)(A | (B << 8));
24 }
25 uint MAKELONG(ushort A, ushort B)
26 {
27 return cast(uint)(A | (B << 16));
28 }
29 ushort HIWORD(uint L)
30 {
31 return cast(ushort)(L >> 16);
32 }
33 ushort LOWORD(uint L)
34 {
35 return cast(ushort)(L & 0xFFFF);
36 }
37 ubyte HIBYTE(ushort W)
38 {
39 return cast(ubyte)(W >> 8);
40 }
41 ubyte LOBYTE(ushort W)
42 {
43 return cast(ubyte)(W & 0xFF);
44 }
45 HANDLE GlobalDiscard(HANDLE h)
46 {
47 return GlobalReAlloc(h, 0, GMEM_MOVEABLE);
48 }
49 HANDLE LocalDiscard(HANDLE h)
50 {
51 return LocalReAlloc(h, 0, LMEM_MOVEABLE);
52 }
53 BOOL SUCCEEDED(HRESULT Status)
54 {
55 return (cast(int)Status & 0x80000000) == 0;
56 }
57 BOOL FAILED(HRESULT Status)
58 {
59 return (cast(int)Status & 0x80000000) != 0;
60 }
61 BOOL IS_ERROR(HRESULT Status)
62 {
63 return (cast(int)Status >> 31) == SEVERITY_ERROR;
64 }
65 int HRESULT_CODE(HRESULT hr)
66 {
67 return cast(int)hr & 0xFFFF;
68 }
69 int HRESULT_FACILITY(HRESULT hr)
70 {
71 return (cast(int)hr >> 16) & 0x1FFF;
72 }
73 int HRESULT_SEVERITY(HRESULT hr)
74 {
75 return (cast(int)hr >> 31) & 0x1;
76 }
77 HRESULT MAKE_HRESULT(int sev, int fac, int code)
78 {
79 return cast(HRESULT)((sev << 31) | (fac << 16) | code);
80 }
81 HRESULT HRESULT_FROM_WIN32(int x)
82 {
83 return cast(HRESULT) (x ? (x & 0xFFFF) | (FACILITY_WIN32 << 16) | 0x80000000 : 0);
84 }
85 //HRESULT HRESULT_FROM_NT(int x)
86 //{
87 // return x | FACILITY_NT_BIT;
88 //}
89 DWORD MAKEROP4(DWORD fore, DWORD back)
90 {
91 return ((back << 8) & 0xFF000000) | fore;
92 }
93 ubyte GetKValue(COLORREF cmyk)
94 {
95 return cast(ubyte)(cmyk & 0xFF);
96 }
97 ubyte GetYValue(COLORREF cmyk)
98 {
99 return cast(ubyte)((cmyk >> 8) & 0xFF);
100 }
101 ubyte GetMValue(COLORREF cmyk)
102 {
103 return cast(ubyte)((cmyk >> 16) & 0xFF);
104 }
105 ubyte GetCValue(COLORREF cmyk)
106 {
107 return cast(ubyte)((cmyk >> 24) & 0xFF);
108 }
109 COLORREF CMYK(ubyte c, ubyte m, ubyte y, ubyte k)
110 {
111 return k | (y << 8) | (m << 16) | (c << 24);
112 }
113 COLORREF RGB(ubyte r, ubyte g, ubyte b)
114 {
115 return r | (g << 8) | (b << 16);
116 }
117 COLORREF PALETTERGB(ubyte r, ubyte g, ubyte b)
118 {
119 return 0x02000000 | RGB(r, g, b);
120 }
121 COLORREF PALETTEINDEX(ushort i)
122 {
123 return 0x01000000 | i;
124 }
125 ubyte GetRValue(COLORREF rgb)
126 {
127 return cast(ubyte)(rgb & 0xFF);
128 }
129 ubyte GetGValue(COLORREF rgb)
130 {
131 return cast(ubyte)((rgb >> 8) & 0xFF);
132 }
133 ubyte GetBValue(COLORREF rgb)
134 {
135 return cast(ubyte)((rgb >> 16) & 0xFF);
136 }
137 WPARAM MAKEWPARAM(ushort l, ushort h)
138 {
139 return MAKELONG(l, h);
140 }
141 LPARAM MAKELPARAM(ushort l, ushort h)
142 {
143 return MAKELONG(l, h);
144 }
145 LRESULT MAKELRESULT(ushort l, ushort h)
146 {
147 return MAKELONG(l, h);
148 }
149 BOOL ExitWindows(DWORD dwReserved, UINT uReserved)
150 {
151 return ExitWindowsEx(EWX_LOGOFF, 0);
152 }
153 HWND CreateWindowA(PCHAR b, PCHAR c, DWORD d, int e,
154 int f, int g, int h, HWND i, HMENU j, HINST k, POINTER l)
155 {
156 return CreateWindowExA(0, b, c, d, e, f, g, h, i, j, k, l);
157 }
158 HWND CreateWindowW(PWIDECHAR b, PWIDECHAR c, DWORD d, int e,
159 int f, int g, int h, HWND i, HMENU j, HINST k, POINTER l)
160 {
161 return CreateWindowExW(0, b, c, d, e, f, g, h, i, j, k, l);
162 }
163 HWND CreateDialogA(HINST a, PANSICHAR b, HWND c, DLGPROC d)
164 {
165 return CreateDialogParamA(a, b, c, d, 0);
166 }
167 HWND CreateDialogW(HINST a, PWIDECHAR b, HWND c, DLGPROC d)
168 {
169 return CreateDialogParamW(a, b, c, d, 0);
170 }
171 HWND CreateDialogIndirectA(HINST a, DLGTEMPLATE* b, HWND c, DLGPROC d)
172 {
173 return CreateDialogIndirectParamA(a, b, c, d, 0);
174 }
175 HWND CreateDialogIndirectW(HINST a, DLGTEMPLATE* b, HWND c, DLGPROC d)
176 {
177 return CreateDialogIndirectParamW(a, b, c, d, 0);
178 }
179 int DialogBoxA(HINST a, PANSICHAR b, HWND c, DLGPROC d)
180 {
181 return DialogBoxParamA(a, b, c, d, 0);
182 }
183 int DialogBoxW(HINST a, PWIDECHAR b, HWND c, DLGPROC d)
184 {
185 return DialogBoxParamW(a, b, c, d, 0);
186 }
187 int DialogBoxIndirectA(HINST a, DLGTEMPLATE* b, HWND c, DLGPROC d)
188 {
189 return DialogBoxIndirectParamA(a, b, c, d, 0);
190 }
191 int DialogBoxIndirectW(HINST a, DLGTEMPLATE* b, HWND c, DLGPROC d)
192 {
193 return DialogBoxIndirectParamW(a, b, c, d, 0);
194 }
195 void ZeroMemory(void* dest, uint len)
196 {
197 memset(dest, 0, len);
198 }
199 void FillMemory(void* dest, uint len, ubyte c)
200 {
201 memset(dest, c, len);
202 }
203 void MoveMemory(void* dest, void* src, uint len)
204 {
205 memmove(dest, src, len);
206 }
207 void CopyMemory(void* dest, void* src, uint len)
208 {
209 memcpy(dest, src, len);
210 }