]> git.saurik.com Git - wxWidgets.git/blame - include/wx/msw/winundef.h
synchronize GTK2 minimum version in docs
[wxWidgets.git] / include / wx / msw / winundef.h
CommitLineData
98216d40
VZ
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$
77ffb593 8// Copyright: (c) wxWidgets team
65571936 9// Licence: wxWindows licence
98216d40
VZ
10/////////////////////////////////////////////////////////////////////////////
11
25889d3c
JS
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
98216d40
VZ
15#ifndef _WX_WINUNDEF_H_
16#define _WX_WINUNDEF_H_
25889d3c 17 */
98216d40 18
7cc98b3e
VZ
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// ----------------------------------------------------------------------------
6bbd3344 27
b225f659
VZ
28// CreateDialog
29
fb86251b 30#if defined(CreateDialog)
b225f659
VZ
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
136b3b19
VZ
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
7344726a
VZ
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
731db709
VZ
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
2b5f62a0
VZ
119// FindText
120
121#ifdef FindText
122 #undef FindText
123
124 inline HWND APIENTRY FindText(LPFINDREPLACE lpfindreplace)
125 {
5d779223 126 #ifdef _UNICODE
2b5f62a0
VZ
127 return FindTextW(lpfindreplace);
128 #else
129 return FindTextA(lpfindreplace);
5d779223 130 #endif
2b5f62a0
VZ
131 }
132#endif
133
6bbd3344
BM
134// GetCharWidth
135
98216d40 136#ifdef GetCharWidth
379a3b04
BM
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 }
e90babdf 146#endif
6bbd3344
BM
147
148// FindWindow
149
98216d40 150#ifdef FindWindow
379a3b04
BM
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
e90babdf 163#endif
6bbd3344 164
13ff9344
JS
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
6bbd3344
BM
182// GetClassName
183
98216d40 184#ifdef GetClassName
379a3b04
BM
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
e90babdf 197#endif
6bbd3344
BM
198
199// GetClassInfo
200
98216d40 201#ifdef GetClassInfo
379a3b04
BM
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
e90babdf 214#endif
6bbd3344
BM
215
216// LoadAccelerators
217
98216d40 218#ifdef LoadAccelerators
379a3b04
BM
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
98216d40 231#endif
6bbd3344
BM
232
233// DrawText
234
98216d40 235#ifdef DrawText
379a3b04
BM
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
e90babdf 248#endif
6bbd3344 249
4ccf704a 250
6bbd3344
BM
251// StartDoc
252
98216d40 253#ifdef StartDoc
379a3b04 254 #undef StartDoc
364f3b07
VZ
255
256 // Work around a bug in very old MinGW headers that didn't define DOCINFOW
257 // and DOCINFOA but only DOCINFO in both ANSI and Unicode.
258 #if defined( __GNUG__ )
259 #if !wxCHECK_W32API_VERSION( 0, 5 )
260 #define DOCINFOW DOCINFO
261 #define DOCINFOA DOCINFO
262 #endif
0c589ad0 263 #endif
364f3b07 264
379a3b04
BM
265 #ifdef _UNICODE
266 inline int StartDoc(HDC h, CONST DOCINFOW* info)
267 {
d8c72298 268 return StartDocW(h, (DOCINFOW*) info);
379a3b04
BM
269 }
270 #else
271 inline int StartDoc(HDC h, CONST DOCINFOA* info)
272 {
d8c72298 273 return StartDocA(h, (DOCINFOA*) info);
379a3b04
BM
274 }
275 #endif
98216d40
VZ
276#endif
277
379a3b04
BM
278// GetObject
279
280#ifdef GetObject
281 #undef GetObject
282 inline int GetObject(HGDIOBJ h, int i, LPVOID buffer)
283 {
284 #ifdef _UNICODE
285 return GetObjectW(h, i, buffer);
286 #else
287 return GetObjectA(h, i, buffer);
6ec9d18f
RD
288 #endif
289 }
290#endif
291
7cc98b3e 292// GetMessage
6ec9d18f
RD
293
294#ifdef GetMessage
295 #undef GetMessage
296 inline int GetMessage(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax)
297 {
298 #ifdef _UNICODE
299 return GetMessageW(lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax);
300 #else
301 return GetMessageA(lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax);
302 #endif
379a3b04 303 }
e90babdf 304#endif
98216d40 305
8b39c006
VZ
306// LoadIcon
307#ifdef LoadIcon
308 #undef LoadIcon
5e2411ab 309 inline HICON LoadIcon(HINSTANCE hInstance, LPCTSTR lpIconName)
8b39c006
VZ
310 {
311 #ifdef _UNICODE
312 return LoadIconW(hInstance, lpIconName);
313 #else // ANSI
314 return LoadIconA(hInstance, lpIconName);
315 #endif // Unicode/ANSI
316 }
317#endif // LoadIcon
318
381adb74
VZ
319// LoadBitmap
320#ifdef LoadBitmap
321 #undef LoadBitmap
322 inline HBITMAP LoadBitmap(HINSTANCE hInstance, LPCTSTR lpBitmapName)
323 {
324 #ifdef _UNICODE
325 return LoadBitmapW(hInstance, lpBitmapName);
326 #else // ANSI
327 return LoadBitmapA(hInstance, lpBitmapName);
328 #endif // Unicode/ANSI
329 }
330#endif // LoadBitmap
8b39c006 331
7cc98b3e
VZ
332// LoadLibrary
333
334#ifdef LoadLibrary
335 #undef LoadLibrary
7cc98b3e 336 #ifdef _UNICODE
f6bcfd97
BP
337 inline HINSTANCE LoadLibrary(LPCWSTR lpLibFileName)
338 {
7cc98b3e 339 return LoadLibraryW(lpLibFileName);
f6bcfd97 340 }
7cc98b3e 341 #else
f6bcfd97
BP
342 inline HINSTANCE LoadLibrary(LPCSTR lpLibFileName)
343 {
7cc98b3e 344 return LoadLibraryA(lpLibFileName);
7cc98b3e 345 }
f6bcfd97 346 #endif
7cc98b3e
VZ
347#endif
348
b568d04f
VZ
349// FindResource
350#ifdef FindResource
351 #undef FindResource
b568d04f 352 #ifdef _UNICODE
f6bcfd97
BP
353 inline HRSRC FindResource(HMODULE hModule, LPCWSTR lpName, LPCWSTR lpType)
354 {
b568d04f 355 return FindResourceW(hModule, lpName, lpType);
f6bcfd97 356 }
b568d04f 357 #else
f6bcfd97
BP
358 inline HRSRC FindResource(HMODULE hModule, LPCSTR lpName, LPCSTR lpType)
359 {
b568d04f 360 return FindResourceA(hModule, lpName, lpType);
b568d04f 361 }
f6bcfd97 362 #endif
b568d04f
VZ
363#endif
364
3372145d
PA
365// IsMaximized
366
367#ifdef IsMaximized
368 #undef IsMaximized
0c0d1521 369 inline BOOL IsMaximized(HWND WXUNUSED_IN_WINCE(hwnd))
3372145d 370 {
42d11c8e
JS
371#ifdef __WXWINCE__
372 return FALSE;
373#else
3372145d 374 return IsZoomed(hwnd);
42d11c8e 375#endif
3372145d
PA
376 }
377#endif
378
2ba3d4f0
PA
379// GetFirstChild
380
381#ifdef GetFirstChild
382 #undef GetFirstChild
0c0d1521 383 inline HWND GetFirstChild(HWND WXUNUSED_IN_WINCE(hwnd))
2ba3d4f0 384 {
42d11c8e
JS
385#ifdef __WXWINCE__
386 return 0;
387#else
2ba3d4f0 388 return GetTopWindow(hwnd);
42d11c8e 389#endif
2ba3d4f0
PA
390 }
391#endif
392
dec531b2
VS
393// GetFirstSibling
394
395#ifdef GetFirstSibling
396 #undef GetFirstSibling
397 inline HWND GetFirstSibling(HWND hwnd)
398 {
399 return GetWindow(hwnd,GW_HWNDFIRST);
400 }
401#endif
402
403// GetLastSibling
404
405#ifdef GetLastSibling
406 #undef GetLastSibling
407 inline HWND GetLastSibling(HWND hwnd)
408 {
409 return GetWindow(hwnd,GW_HWNDLAST);
410 }
411#endif
412
79bc2382
PA
413// GetPrevSibling
414
415#ifdef GetPrevSibling
416 #undef GetPrevSibling
417 inline HWND GetPrevSibling(HWND hwnd)
418 {
419 return GetWindow(hwnd,GW_HWNDPREV);
420 }
421#endif
422
423// GetNextSibling
424
425#ifdef GetNextSibling
426 #undef GetNextSibling
427 inline HWND GetNextSibling(HWND hwnd)
428 {
429 return GetWindow(hwnd,GW_HWNDNEXT);
430 }
431#endif
432
c455ab93
RR
433// For WINE
434
b4da152e 435#if defined(GetWindowStyle)
c455ab93
RR
436 #undef GetWindowStyle
437#endif
98216d40 438
379a3b04 439// For ming and cygwin
6bbd3344 440
379a3b04
BM
441// GetFirstChild
442#ifdef GetFirstChild
443 #undef GetFirstChild
444 inline HWND GetFirstChild(HWND h)
445 {
446 return GetTopWindow(h);
447 }
448#endif
6bbd3344 449
98216d40 450
379a3b04
BM
451// GetNextSibling
452#ifdef GetNextSibling
0c589ad0
BM
453 #undef GetNextSibling
454 inline HWND GetNextSibling(HWND h)
455 {
456 return GetWindow(h, GW_HWNDNEXT);
457 }
98216d40
VZ
458#endif
459
73c13bb9
RD
460
461#ifdef Yield
462 #undef Yield
463#endif
464
368c9c6d
JS
465
466#if defined(__WXWINCE__) && defined(DrawIcon) //#ifdef DrawIcon
467 #undef DrawIcon
27d2dbbc 468 inline BOOL DrawIcon(HDC hdc, int x, int y, HICON hicon)
368c9c6d
JS
469 {
470 return DrawIconEx(hdc,x,y,hicon,0,0,0,NULL, DI_NORMAL) ;
471 }
472#endif
473
474
379a3b04
BM
475// GetWindowProc
476//ifdef GetWindowProc
477// #undef GetWindowProc
478//endif
479//ifdef GetNextChild
480// #undef GetNextChild
481//endif
6bbd3344 482
25889d3c
JS
483// #endif // _WX_WINUNDEF_H_
484