X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/379a3b04b984e6ffcd67e4d408c0a8a315827d8f..794bcc2dea743ac907b839f54e451847c9ea4b72:/include/wx/msw/winundef.h diff --git a/include/wx/msw/winundef.h b/include/wx/msw/winundef.h index c8a389bc89..e580f24650 100644 --- a/include/wx/msw/winundef.h +++ b/include/wx/msw/winundef.h @@ -9,10 +9,21 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// +/* THIS SHOULD NOT BE USED since you might include it once e.g. in window.h, + * then again _AFTER_ you've included windows.h, in which case it won't work + * a 2nd time -- JACS #ifndef _WX_WINUNDEF_H_ #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 @@ -117,6 +128,10 @@ #ifdef StartDoc #undef StartDoc + #ifdef __GNUG__ + #define DOCINFOW DOCINFO + #define DOCINFOA DOCINFO + #endif #ifdef _UNICODE inline int StartDoc(HDC h, CONST DOCINFOW* info) { @@ -140,10 +155,96 @@ return GetObjectW(h, i, buffer); #else return GetObjectA(h, i, buffer); - #endif + #endif } #endif +// GetMessage + +#ifdef GetMessage + #undef GetMessage + inline int GetMessage(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax) + { + #ifdef _UNICODE + return GetMessageW(lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax); + #else + return GetMessageA(lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax); + #endif + } +#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__) + #undef GetWindowStyle +#endif // For ming and cygwin @@ -159,11 +260,11 @@ // GetNextSibling #ifdef GetNextSibling - #undef GetNextSibling - inline HWND GetNextSibling(HWND h) - { - return GetWindow(h, GW_HWNDNEXT); - } + #undef GetNextSibling + inline HWND GetNextSibling(HWND h) + { + return GetWindow(h, GW_HWNDNEXT); + } #endif // GetWindowProc @@ -174,4 +275,5 @@ // #undef GetNextChild //endif -#endif // _WX_WINUNDEF_H_ +// #endif // _WX_WINUNDEF_H_ +