]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/winundef.h
test
[wxWidgets.git] / include / wx / msw / winundef.h
index ac2fa36577be717723e9cc00be3100735f4ab548..e580f2465070e6e03dd274880b0da3bf979f3a88 100644 (file)
 #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
 
 
 #ifdef StartDoc
    #undef StartDoc
-   #ifdef __GNUWIN32__
+   #ifdef __GNUG__
       #define DOCINFOW DOCINFO
       #define DOCINFOA DOCINFO
    #endif
    }
 #endif
 
+// GetMessage
 
 #ifdef GetMessage
    #undef GetMessage
    }
 #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__)