]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/private.h
define wxUSE_MFC as 0 if it's not defined (fixes gcc -Wundef warning)
[wxWidgets.git] / include / wx / msw / private.h
index 9489b2fd68c776e42eb7008efc14d4f30b721f8b..840642a60c461b632fefc71ffedf2d13ef06acd1 100644 (file)
@@ -535,13 +535,40 @@ private:
     DECLARE_NO_COPY_CLASS(HDCClipper)
 };
 
+// smart buffeer using GlobalAlloc/GlobalFree()
+class GlobalPtr
+{
+public:
+    // allocates a block of given size
+    GlobalPtr(size_t size, unsigned flags = GMEM_MOVEABLE)
+    {
+        m_hGlobal = ::GlobalAlloc(flags, size);
+        if ( !m_hGlobal )
+            wxLogLastError(_T("GlobalAlloc"));
+    }
+
+    ~GlobalPtr()
+    {
+        if ( m_hGlobal && ::GlobalFree(m_hGlobal) )
+            wxLogLastError(_T("GlobalFree"));
+    }
+
+    // implicit conversion
+    operator HGLOBAL() const { return m_hGlobal; }
+
+private:
+    HGLOBAL m_hGlobal;
+
+    DECLARE_NO_COPY_CLASS(GlobalPtr)
+};
+
 // when working with global pointers (which is unfortunately still necessary
 // sometimes, e.g. for clipboard) it is important to unlock them exactly as
 // many times as we lock them which just asks for using a "smart lock" class
-class GlobalPtr
+class GlobalPtrLock
 {
 public:
-    GlobalPtr(HGLOBAL hGlobal) : m_hGlobal(hGlobal)
+    GlobalPtrLock(HGLOBAL hGlobal) : m_hGlobal(hGlobal)
     {
         m_ptr = GlobalLock(hGlobal);
         if ( !m_ptr )
@@ -550,7 +577,7 @@ public:
         }
     }
 
-    ~GlobalPtr()
+    ~GlobalPtrLock()
     {
         if ( !GlobalUnlock(m_hGlobal) )
         {
@@ -571,7 +598,7 @@ private:
     HGLOBAL m_hGlobal;
     void *m_ptr;
 
-    DECLARE_NO_COPY_CLASS(GlobalPtr)
+    DECLARE_NO_COPY_CLASS(GlobalPtrLock)
 };
 
 // register the class when it is first needed and unregister it in dtor
@@ -791,9 +818,6 @@ inline bool wxStyleHasBorder(long style)
                      wxSUNKEN_BORDER | wxDOUBLE_BORDER)) != 0;
 }
 
-// Deferred window moving
-bool wxMoveWindowDeferred(HDWP& hdwp, wxWindowBase* win, HWND hWnd, int x, int y, int width, int height);
-
 // ----------------------------------------------------------------------------
 // functions mapping HWND to wxWindow
 // ----------------------------------------------------------------------------