X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0d2a2b601b1994333886dff8f53d82a714c4042f..f0218e9a220607721c4c5b5896f707fe3a733d83:/src/msw/dde.cpp diff --git a/src/msw/dde.cpp b/src/msw/dde.cpp index 5cdd617036..d8fe4dfa5a 100644 --- a/src/msw/dde.cpp +++ b/src/msw/dde.cpp @@ -31,15 +31,19 @@ #include "wx/app.h" #endif -#include "wx/msw/private.h" +#include "wx/module.h" #include "wx/dde.h" +#include "wx/msw/private.h" +#include +#include + +#ifndef __TWIN32__ #ifdef __GNUWIN32__ #include "wx/msw/gnuwin32/extra.h" #endif +#endif -#include -#include #include #ifdef __WIN32__ @@ -118,6 +122,21 @@ void wxDDECleanUp() delete [] DDEDefaultIPCBuffer ; } +// A module to allow DDE initialization/cleanup +// without calling these functions from app.cpp or from +// the user's application. + +class wxDDEModule: public wxModule +{ +DECLARE_DYNAMIC_CLASS(wxDDEModule) +public: + wxDDEModule() {} + bool OnInit() { wxDDEInitialize(); return TRUE; }; + void OnExit() { wxDDECleanUp(); }; +}; + +IMPLEMENT_DYNAMIC_CLASS(wxDDEModule, wxModule) + // Global find connection static wxDDEConnection *DDEFindConnection(HCONV hConv) { @@ -197,7 +216,7 @@ bool wxDDEServer::Create(const wxString& server_name) m_serviceName = server_name; HSZ serviceName = DdeCreateStringHandle(DDEIdInst, (char*) (const char *)server_name, CP_WINANSI); - if (DdeNameService(DDEIdInst, serviceName, NULL, DNS_REGISTER) == 0) + if (DdeNameService(DDEIdInst, serviceName, (HSZ) NULL, DNS_REGISTER) == 0) { DDEPrintError(); return FALSE; @@ -309,8 +328,8 @@ wxConnectionBase *wxDDEClient::MakeConnection(const wxString& /* host */, const HSZ topic_atom = DdeCreateStringHandle(DDEIdInst, (char*) (const char *)topic, CP_WINANSI); HCONV hConv = DdeConnect(DDEIdInst, serviceName, topic_atom, (PCONVCONTEXT)NULL); - if (hConv == NULL) - return NULL; + if (hConv == (HCONV) NULL) + return (wxConnectionBase*) NULL; else { wxDDEConnection *connection = (wxDDEConnection*) OnMakeConnection(); @@ -322,7 +341,7 @@ wxConnectionBase *wxDDEClient::MakeConnection(const wxString& /* host */, const m_connections.Append(connection); return connection; } - else return NULL; + else return (wxConnectionBase*) NULL; } } @@ -778,7 +797,7 @@ void DDEPrintError(void) err = "Unrecognised error type."; break; } - MessageBox(NULL, (LPCSTR)err, "DDE Error", MB_OK | MB_ICONINFORMATION); + MessageBox((HWND) NULL, (LPCSTR)err, "DDE Error", MB_OK | MB_ICONINFORMATION); } #endif