]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/dde.cpp
fix for DMC missing mouse defines - linking of minimal failed
[wxWidgets.git] / src / msw / dde.cpp
index ce6914ee5c22028de5f2c5dd3037ebd196978fe4..72bf2a9230daf7c040c4bfbae4d0716695328f17 100644 (file)
@@ -17,7 +17,7 @@
 // headers
 // ----------------------------------------------------------------------------
 
 // headers
 // ----------------------------------------------------------------------------
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
     #pragma implementation "dde.h"
 #endif
 
     #pragma implementation "dde.h"
 #endif
 
@@ -194,8 +194,10 @@ extern void wxDDEInitialize()
 
 void wxDDECleanUp()
 {
 
 void wxDDECleanUp()
 {
-    WX_CLEAR_LIST(wxDDEClientList, wxDDEClientObjects);
-    WX_CLEAR_LIST(wxDDEServerList, wxDDEServerObjects);
+    // deleting them later won't work as DDE won't be initialized any more
+    wxASSERT_MSG( wxDDEServerObjects.empty() &&
+                    wxDDEClientObjects.empty(),
+                    _T("all DDE objects should be deleted by now") );
 
     wxAtomTable.clear();
 
 
     wxAtomTable.clear();
 
@@ -965,8 +967,7 @@ static wxString DDEStringFromAtom(HSZ hsz)
     static const size_t len = 256;
 
     wxString s;
     static const size_t len = 256;
 
     wxString s;
-    (void)DdeQueryString(DDEIdInst, hsz, s.GetWriteBuf(len), len, DDE_CP);
-    s.UngetWriteBuf();
+    (void)DdeQueryString(DDEIdInst, hsz, wxStringBuffer(s, len), len, DDE_CP);
 
     return s;
 }
 
     return s;
 }