#define _WX_WINUNDEF_H_
*/
-// windows.h #defines the following identifiers which are also used in wxWin
+// ----------------------------------------------------------------------------
+// windows.h #defines the following identifiers which are also used in wxWin so
+// we replace these symbols with the corresponding inline functions and
+// undefine the macro.
+//
+// This looks quite ugly here but allows us to write clear (and correct!) code
+// elsewhere because the functions, unlike the macros, respect the scope.
+// ----------------------------------------------------------------------------
+
+// CreateDialog
+
+#ifdef CreateDialog
+ #undef CreateDialog
+
+ inline HWND CreateDialog(HINSTANCE hInstance,
+ LPCTSTR pTemplate,
+ HWND hwndParent,
+ DLGPROC pDlgProc)
+ {
+ #ifdef _UNICODE
+ return CreateDialogW(hInstance, pTemplate, hwndParent, pDlgProc);
+ #else
+ return CreateDialogA(hInstance, pTemplate, hwndParent, pDlgProc);
+ #endif
+ }
+#endif
+
+// LoadMenu
+
+#ifdef LoadMenu
+ #undef LoadMenu
+
+ inline HMENU LoadMenu(HINSTANCE instance, LPCTSTR name)
+ {
+ #ifdef _UNICODE
+ return LoadMenuW(instance, name);
+ #else
+ return LoadMenuA(instance, name);
+ #endif
+ }
+#endif
// GetCharWidth
#endif
#endif
+// PlaySound
+
+#ifdef PlaySound
+ #undef PlaySound
+ #ifdef _UNICODE
+ inline BOOL PlaySound(LPCWSTR pszSound, HMODULE hMod, DWORD fdwSound)
+ {
+ return PlaySoundW(pszSound, hMod, fdwSound);
+ }
+ #else
+ inline BOOL PlaySound(LPCSTR pszSound, HMODULE hMod, DWORD fdwSound)
+ {
+ return PlaySoundA(pszSound, hMod, fdwSound);
+ }
+ #endif
+#endif
+
// GetClassName
#ifdef GetClassName
#endif
#endif
+
+/*
+ When this file is included, sometimes the wxCHECK_W32API_VERSION macro
+ is undefined. With for example CodeWarrior this gives problems with
+ the following code:
+ #if 0 && wxCHECK_W32API_VERSION( 0, 5 )
+ Because CodeWarrior does macro expansion before test evaluation.
+ We define wxCHECK_W32API_VERSION here if it's undefined.
+*/
+#if !defined(__GNUG__) && !defined(wxCHECK_W32API_VERSION)
+ #define wxCHECK_W32API_VERSION(maj, min) (0)
+#endif
+
// StartDoc
#ifdef StartDoc
#undef StartDoc
- #ifdef __GNUWIN32__
+ #if defined( __GNUG__ ) && !wxCHECK_W32API_VERSION( 0, 5 )
#define DOCINFOW DOCINFO
#define DOCINFOA DOCINFO
#endif
#ifdef _UNICODE
inline int StartDoc(HDC h, CONST DOCINFOW* info)
{
- return StartDocW(h, info);
+ return StartDocW(h, (DOCINFOW*) info);
}
#else
inline int StartDoc(HDC h, CONST DOCINFOA* info)
{
- return StartDocA(h, info);
+ return StartDocA(h, (DOCINFOA*) info);
}
#endif
#endif
}
#endif
+// GetMessage
#ifdef GetMessage
#undef GetMessage
}
#endif
+// LoadLibrary
+
+#ifdef LoadLibrary
+ #undef LoadLibrary
+ #ifdef _UNICODE
+ inline HINSTANCE LoadLibrary(LPCWSTR lpLibFileName)
+ {
+ return LoadLibraryW(lpLibFileName);
+ }
+ #else
+ inline HINSTANCE LoadLibrary(LPCSTR lpLibFileName)
+ {
+ return LoadLibraryA(lpLibFileName);
+ }
+ #endif
+#endif
+
+// FindResource
+#ifdef FindResource
+ #undef FindResource
+ #ifdef _UNICODE
+ inline HRSRC FindResource(HMODULE hModule, LPCWSTR lpName, LPCWSTR lpType)
+ {
+ return FindResourceW(hModule, lpName, lpType);
+ }
+ #else
+ inline HRSRC FindResource(HMODULE hModule, LPCSTR lpName, LPCSTR lpType)
+ {
+ return FindResourceA(hModule, lpName, lpType);
+ }
+ #endif
+#endif
+
+// IsMaximized
+
+#ifdef IsMaximized
+ #undef IsMaximized
+ inline BOOL IsMaximized(HWND hwnd)
+ {
+ return IsZoomed(hwnd);
+ }
+#endif
+
+// GetFirstChild
+
+#ifdef GetFirstChild
+ #undef GetFirstChild
+ inline HWND GetFirstChild(HWND hwnd)
+ {
+ return GetTopWindow(hwnd);
+ }
+#endif
+
+// GetPrevSibling
+
+#ifdef GetPrevSibling
+ #undef GetPrevSibling
+ inline HWND GetPrevSibling(HWND hwnd)
+ {
+ return GetWindow(hwnd,GW_HWNDPREV);
+ }
+#endif
+
+// GetNextSibling
+
+#ifdef GetNextSibling
+ #undef GetNextSibling
+ inline HWND GetNextSibling(HWND hwnd)
+ {
+ return GetWindow(hwnd,GW_HWNDNEXT);
+ }
+#endif
+
// For WINE
#if defined(GetWindowStyle) || defined(__WXWINE__)
}
#endif
+
+#ifdef Yield
+ #undef Yield
+#endif
+
// GetWindowProc
//ifdef GetWindowProc
// #undef GetWindowProc