X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/25889d3c43f537fea00a2b7d6df7bd7e63e113f8..46522c79107fcd3996f2ab53f61b89f1ce16dbc0:/include/wx/msw/winundef.h diff --git a/include/wx/msw/winundef.h b/include/wx/msw/winundef.h index ac2fa36577..e580f24650 100644 --- a/include/wx/msw/winundef.h +++ b/include/wx/msw/winundef.h @@ -16,7 +16,14 @@ #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. +// ---------------------------------------------------------------------------- // GetCharWidth @@ -121,7 +128,7 @@ #ifdef StartDoc #undef StartDoc - #ifdef __GNUWIN32__ + #ifdef __GNUG__ #define DOCINFOW DOCINFO #define DOCINFOA DOCINFO #endif @@ -152,6 +159,7 @@ } #endif +// GetMessage #ifdef GetMessage #undef GetMessage @@ -165,6 +173,73 @@ } #endif +// LoadLibrary + +#ifdef LoadLibrary + #undef LoadLibrary + inline HINSTANCE LoadLibrary(LPCTSTR lpLibFileName) + { + #ifdef _UNICODE + return LoadLibraryW(lpLibFileName); + #else + return LoadLibraryA(lpLibFileName); + #endif + } +#endif + +// FindResource +#ifdef FindResource + #undef FindResource + inline HRSRC FindResource(HMODULE hModule, LPCTSTR lpName, LPCTSTR lpType) + { + #ifdef _UNICODE + return FindResourceW(hModule, lpName, lpType); + #else + 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__)