]> git.saurik.com Git - wxWidgets.git/blob - include/wx/msw/winundef.h
Make wxTaskBarIcon's ctor have the same API on all platforms even though setting...
[wxWidgets.git] / include / wx / msw / winundef.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: winundef.h
3 // Purpose: undefine the common symbols #define'd by <windows.h>
4 // Author: Vadim Zeitlin
5 // Modified by:
6 // Created: 16.05.99
7 // RCS-ID: $Id$
8 // Copyright: (c) wxWidgets team
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 /* THIS SHOULD NOT BE USED since you might include it once e.g. in window.h,
13 * then again _AFTER_ you've included windows.h, in which case it won't work
14 * a 2nd time -- JACS
15 #ifndef _WX_WINUNDEF_H_
16 #define _WX_WINUNDEF_H_
17 */
18
19 // ----------------------------------------------------------------------------
20 // windows.h #defines the following identifiers which are also used in wxWin so
21 // we replace these symbols with the corresponding inline functions and
22 // undefine the macro.
23 //
24 // This looks quite ugly here but allows us to write clear (and correct!) code
25 // elsewhere because the functions, unlike the macros, respect the scope.
26 // ----------------------------------------------------------------------------
27
28 // CreateDialog
29
30 #if defined(CreateDialog)
31 #undef CreateDialog
32
33 inline HWND CreateDialog(HINSTANCE hInstance,
34 LPCTSTR pTemplate,
35 HWND hwndParent,
36 DLGPROC pDlgProc)
37 {
38 #ifdef _UNICODE
39 return CreateDialogW(hInstance, pTemplate, hwndParent, pDlgProc);
40 #else
41 return CreateDialogA(hInstance, pTemplate, hwndParent, pDlgProc);
42 #endif
43 }
44 #endif
45
46 // CreateFont
47
48 #ifdef CreateFont
49 #undef CreateFont
50
51 inline HFONT CreateFont(int height,
52 int width,
53 int escapement,
54 int orientation,
55 int weight,
56 DWORD italic,
57 DWORD underline,
58 DWORD strikeout,
59 DWORD charset,
60 DWORD outprecision,
61 DWORD clipprecision,
62 DWORD quality,
63 DWORD family,
64 LPCTSTR facename)
65 {
66 #ifdef _UNICODE
67 return CreateFontW(height, width, escapement, orientation,
68 weight, italic, underline, strikeout, charset,
69 outprecision, clipprecision, quality,
70 family, facename);
71 #else
72 return CreateFontA(height, width, escapement, orientation,
73 weight, italic, underline, strikeout, charset,
74 outprecision, clipprecision, quality,
75 family, facename);
76 #endif
77 }
78 #endif // CreateFont
79
80 // CreateWindow
81
82 #if defined(CreateWindow)
83 #undef CreateWindow
84
85 inline HWND CreateWindow(LPCTSTR lpClassName,
86 LPCTSTR lpWndClass,
87 DWORD dwStyle,
88 int x, int y, int w, int h,
89 HWND hWndParent,
90 HMENU hMenu,
91 HINSTANCE hInstance,
92 LPVOID lpParam)
93 {
94 #ifdef _UNICODE
95 return CreateWindowW(lpClassName, lpWndClass, dwStyle, x, y, w, h,
96 hWndParent, hMenu, hInstance, lpParam);
97 #else
98 return CreateWindowA(lpClassName, lpWndClass, dwStyle, x, y, w, h,
99 hWndParent, hMenu, hInstance, lpParam);
100 #endif
101 }
102 #endif
103
104 // LoadMenu
105
106 #ifdef LoadMenu
107 #undef LoadMenu
108
109 inline HMENU LoadMenu(HINSTANCE instance, LPCTSTR name)
110 {
111 #ifdef _UNICODE
112 return LoadMenuW(instance, name);
113 #else
114 return LoadMenuA(instance, name);
115 #endif
116 }
117 #endif
118
119 // FindText
120
121 #ifdef FindText
122 #undef FindText
123
124 inline HWND APIENTRY FindText(LPFINDREPLACE lpfindreplace)
125 {
126 #ifdef _UNICODE
127 return FindTextW(lpfindreplace);
128 #else
129 return FindTextA(lpfindreplace);
130 #endif
131 }
132 #endif
133
134 // GetCharWidth
135
136 #ifdef GetCharWidth
137 #undef GetCharWidth
138 inline BOOL GetCharWidth(HDC dc, UINT first, UINT last, LPINT buffer)
139 {
140 #ifdef _UNICODE
141 return GetCharWidthW(dc, first, last, buffer);
142 #else
143 return GetCharWidthA(dc, first, last, buffer);
144 #endif
145 }
146 #endif
147
148 // FindWindow
149
150 #ifdef FindWindow
151 #undef FindWindow
152 #ifdef _UNICODE
153 inline HWND FindWindow(LPCWSTR classname, LPCWSTR windowname)
154 {
155 return FindWindowW(classname, windowname);
156 }
157 #else
158 inline HWND FindWindow(LPCSTR classname, LPCSTR windowname)
159 {
160 return FindWindowA(classname, windowname);
161 }
162 #endif
163 #endif
164
165 // PlaySound
166
167 #ifdef PlaySound
168 #undef PlaySound
169 #ifdef _UNICODE
170 inline BOOL PlaySound(LPCWSTR pszSound, HMODULE hMod, DWORD fdwSound)
171 {
172 return PlaySoundW(pszSound, hMod, fdwSound);
173 }
174 #else
175 inline BOOL PlaySound(LPCSTR pszSound, HMODULE hMod, DWORD fdwSound)
176 {
177 return PlaySoundA(pszSound, hMod, fdwSound);
178 }
179 #endif
180 #endif
181
182 // GetClassName
183
184 #ifdef GetClassName
185 #undef GetClassName
186 #ifdef _UNICODE
187 inline int GetClassName(HWND h, LPWSTR classname, int maxcount)
188 {
189 return GetClassNameW(h, classname, maxcount);
190 }
191 #else
192 inline int GetClassName(HWND h, LPSTR classname, int maxcount)
193 {
194 return GetClassNameA(h, classname, maxcount);
195 }
196 #endif
197 #endif
198
199 // GetClassInfo
200
201 #ifdef GetClassInfo
202 #undef GetClassInfo
203 #ifdef _UNICODE
204 inline BOOL GetClassInfo(HINSTANCE h, LPCWSTR name, LPWNDCLASSW winclass)
205 {
206 return GetClassInfoW(h, name, winclass);
207 }
208 #else
209 inline BOOL GetClassInfo(HINSTANCE h, LPCSTR name, LPWNDCLASSA winclass)
210 {
211 return GetClassInfoA(h, name, winclass);
212 }
213 #endif
214 #endif
215
216 // LoadAccelerators
217
218 #ifdef LoadAccelerators
219 #undef LoadAccelerators
220 #ifdef _UNICODE
221 inline HACCEL LoadAccelerators(HINSTANCE h, LPCWSTR name)
222 {
223 return LoadAcceleratorsW(h, name);
224 }
225 #else
226 inline HACCEL LoadAccelerators(HINSTANCE h, LPCSTR name)
227 {
228 return LoadAcceleratorsA(h, name);
229 }
230 #endif
231 #endif
232
233 // DrawText
234
235 #ifdef DrawText
236 #undef DrawText
237 #ifdef _UNICODE
238 inline int DrawText(HDC h, LPCWSTR str, int count, LPRECT rect, UINT format)
239 {
240 return DrawTextW(h, str, count, rect, format);
241 }
242 #else
243 inline int DrawText(HDC h, LPCSTR str, int count, LPRECT rect, UINT format)
244 {
245 return DrawTextA(h, str, count, rect, format);
246 }
247 #endif
248 #endif
249
250
251 // StartDoc
252
253 #ifdef StartDoc
254 #undef StartDoc
255 #if defined( __GNUG__ ) && !wxCHECK_W32API_VERSION( 0, 5 )
256 #define DOCINFOW DOCINFO
257 #define DOCINFOA DOCINFO
258 #endif
259 #ifdef _UNICODE
260 inline int StartDoc(HDC h, CONST DOCINFOW* info)
261 {
262 return StartDocW(h, (DOCINFOW*) info);
263 }
264 #else
265 inline int StartDoc(HDC h, CONST DOCINFOA* info)
266 {
267 return StartDocA(h, (DOCINFOA*) info);
268 }
269 #endif
270 #endif
271
272 // GetObject
273
274 #ifdef GetObject
275 #undef GetObject
276 inline int GetObject(HGDIOBJ h, int i, LPVOID buffer)
277 {
278 #ifdef _UNICODE
279 return GetObjectW(h, i, buffer);
280 #else
281 return GetObjectA(h, i, buffer);
282 #endif
283 }
284 #endif
285
286 // GetMessage
287
288 #ifdef GetMessage
289 #undef GetMessage
290 inline int GetMessage(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax)
291 {
292 #ifdef _UNICODE
293 return GetMessageW(lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax);
294 #else
295 return GetMessageA(lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax);
296 #endif
297 }
298 #endif
299
300 // LoadIcon
301 #ifdef LoadIcon
302 #undef LoadIcon
303 inline HICON LoadIcon(HINSTANCE hInstance, LPCTSTR lpIconName)
304 {
305 #ifdef _UNICODE
306 return LoadIconW(hInstance, lpIconName);
307 #else // ANSI
308 return LoadIconA(hInstance, lpIconName);
309 #endif // Unicode/ANSI
310 }
311 #endif // LoadIcon
312
313 // LoadBitmap
314 #ifdef LoadBitmap
315 #undef LoadBitmap
316 inline HBITMAP LoadBitmap(HINSTANCE hInstance, LPCTSTR lpBitmapName)
317 {
318 #ifdef _UNICODE
319 return LoadBitmapW(hInstance, lpBitmapName);
320 #else // ANSI
321 return LoadBitmapA(hInstance, lpBitmapName);
322 #endif // Unicode/ANSI
323 }
324 #endif // LoadBitmap
325
326 // LoadLibrary
327
328 #ifdef LoadLibrary
329 #undef LoadLibrary
330 #ifdef _UNICODE
331 inline HINSTANCE LoadLibrary(LPCWSTR lpLibFileName)
332 {
333 return LoadLibraryW(lpLibFileName);
334 }
335 #else
336 inline HINSTANCE LoadLibrary(LPCSTR lpLibFileName)
337 {
338 return LoadLibraryA(lpLibFileName);
339 }
340 #endif
341 #endif
342
343 // FindResource
344 #ifdef FindResource
345 #undef FindResource
346 #ifdef _UNICODE
347 inline HRSRC FindResource(HMODULE hModule, LPCWSTR lpName, LPCWSTR lpType)
348 {
349 return FindResourceW(hModule, lpName, lpType);
350 }
351 #else
352 inline HRSRC FindResource(HMODULE hModule, LPCSTR lpName, LPCSTR lpType)
353 {
354 return FindResourceA(hModule, lpName, lpType);
355 }
356 #endif
357 #endif
358
359 // IsMaximized
360
361 #ifdef IsMaximized
362 #undef IsMaximized
363 inline BOOL IsMaximized(HWND WXUNUSED_IN_WINCE(hwnd))
364 {
365 #ifdef __WXWINCE__
366 return FALSE;
367 #else
368 return IsZoomed(hwnd);
369 #endif
370 }
371 #endif
372
373 // GetFirstChild
374
375 #ifdef GetFirstChild
376 #undef GetFirstChild
377 inline HWND GetFirstChild(HWND WXUNUSED_IN_WINCE(hwnd))
378 {
379 #ifdef __WXWINCE__
380 return 0;
381 #else
382 return GetTopWindow(hwnd);
383 #endif
384 }
385 #endif
386
387 // GetFirstSibling
388
389 #ifdef GetFirstSibling
390 #undef GetFirstSibling
391 inline HWND GetFirstSibling(HWND hwnd)
392 {
393 return GetWindow(hwnd,GW_HWNDFIRST);
394 }
395 #endif
396
397 // GetLastSibling
398
399 #ifdef GetLastSibling
400 #undef GetLastSibling
401 inline HWND GetLastSibling(HWND hwnd)
402 {
403 return GetWindow(hwnd,GW_HWNDLAST);
404 }
405 #endif
406
407 // GetPrevSibling
408
409 #ifdef GetPrevSibling
410 #undef GetPrevSibling
411 inline HWND GetPrevSibling(HWND hwnd)
412 {
413 return GetWindow(hwnd,GW_HWNDPREV);
414 }
415 #endif
416
417 // GetNextSibling
418
419 #ifdef GetNextSibling
420 #undef GetNextSibling
421 inline HWND GetNextSibling(HWND hwnd)
422 {
423 return GetWindow(hwnd,GW_HWNDNEXT);
424 }
425 #endif
426
427 // For WINE
428
429 #if defined(GetWindowStyle)
430 #undef GetWindowStyle
431 #endif
432
433 // For ming and cygwin
434
435 // GetFirstChild
436 #ifdef GetFirstChild
437 #undef GetFirstChild
438 inline HWND GetFirstChild(HWND h)
439 {
440 return GetTopWindow(h);
441 }
442 #endif
443
444
445 // GetNextSibling
446 #ifdef GetNextSibling
447 #undef GetNextSibling
448 inline HWND GetNextSibling(HWND h)
449 {
450 return GetWindow(h, GW_HWNDNEXT);
451 }
452 #endif
453
454
455 #ifdef Yield
456 #undef Yield
457 #endif
458
459
460 #if defined(__WXWINCE__) && defined(DrawIcon) //#ifdef DrawIcon
461 #undef DrawIcon
462 inline BOOL DrawIcon(HDC hdc, int x, int y, HICON hicon)
463 {
464 return DrawIconEx(hdc,x,y,hicon,0,0,0,NULL, DI_NORMAL) ;
465 }
466 #endif
467
468
469 // GetWindowProc
470 //ifdef GetWindowProc
471 // #undef GetWindowProc
472 //endif
473 //ifdef GetNextChild
474 // #undef GetNextChild
475 //endif
476
477 // #endif // _WX_WINUNDEF_H_
478