X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d38e8d5f34262fa688cd0e5d397a2201978e5fa7..09b67c660cadef225cbf8f1986cfe591f8feae8c:/include/wx/msw/dde.h diff --git a/include/wx/msw/dde.h b/include/wx/msw/dde.h index 56813e4340..9cc5cca987 100644 --- a/include/wx/msw/dde.h +++ b/include/wx/msw/dde.h @@ -12,10 +12,6 @@ #ifndef _WX_DDE_H_ #define _WX_DDE_H_ -#ifdef __GNUG__ -#pragma interface "dde.h" -#endif - #include "wx/ipcbase.h" /* @@ -42,97 +38,101 @@ * */ -class WXDLLEXPORT wxDDEServer; -class WXDLLEXPORT wxDDEClient; +class WXDLLIMPEXP_FWD_BASE wxDDEServer; +class WXDLLIMPEXP_FWD_BASE wxDDEClient; -class WXDLLEXPORT wxDDEConnection: public wxConnectionBase +class WXDLLIMPEXP_BASE wxDDEConnection : public wxConnectionBase { - DECLARE_DYNAMIC_CLASS(wxDDEConnection) public: - wxDDEConnection(wxChar *buffer, int size); // use external buffer + wxDDEConnection(void *buffer, size_t size); // use external buffer wxDDEConnection(); // use internal buffer - ~wxDDEConnection(void); + virtual ~wxDDEConnection(); - // Calls that CLIENT can make - virtual bool Execute(const wxChar *data, int size = -1, wxIPCFormat format = wxIPC_TEXT); - virtual wxChar *Request(const wxString& item, int *size = NULL, wxIPCFormat format = wxIPC_TEXT); - virtual bool Poke(const wxString& item, wxChar *data, int size = -1, wxIPCFormat format = wxIPC_TEXT); + // implement base class pure virtual methods + virtual const void *Request(const wxString& item, + size_t *size = NULL, + wxIPCFormat format = wxIPC_TEXT); virtual bool StartAdvise(const wxString& item); virtual bool StopAdvise(const wxString& item); + virtual bool Disconnect(); - // Calls that SERVER can make - virtual bool Advise(const wxString& item, wxChar *data, int size = -1, wxIPCFormat format = wxIPC_TEXT); - - // Calls that both can make - virtual bool Disconnect(void); +protected: + virtual bool DoExecute(const void *data, size_t size, wxIPCFormat format); + virtual bool DoPoke(const wxString& item, const void *data, size_t size, + wxIPCFormat format); + virtual bool DoAdvise(const wxString& item, const void *data, size_t size, + wxIPCFormat format); - // Default behaviour is to delete connection and return TRUE - virtual bool OnDisconnect(void); - - public: +public: wxString m_topicName; wxDDEServer* m_server; wxDDEClient* m_client; WXHCONV m_hConv; - wxChar* m_sendingData; + const void* m_sendingData; int m_dataSize; - wxIPCFormat m_dataType; + wxIPCFormat m_dataType; + + DECLARE_NO_COPY_CLASS(wxDDEConnection) + DECLARE_DYNAMIC_CLASS(wxDDEConnection) }; -class WXDLLEXPORT wxDDEServer: public wxServerBase +class WXDLLIMPEXP_BASE wxDDEServer : public wxServerBase { - DECLARE_DYNAMIC_CLASS(wxDDEServer) - public: - - wxDDEServer(void); - ~wxDDEServer(void); - bool Create(const wxString& server_name); // Returns FALSE if can't create server (e.g. port - // number is already in use) - virtual wxConnectionBase *OnAcceptConnection(const wxString& topic); - - //////////////////////////////////////////////////////////// - // Implementation - - // Find/delete wxDDEConnection corresponding to the HCONV - wxDDEConnection *FindConnection(WXHCONV conv); - bool DeleteConnection(WXHCONV conv); - inline wxString& GetServiceName(void) const { return (wxString&) m_serviceName; } - inline wxList& GetConnections(void) const { return (wxList&) m_connections; } - - protected: - int m_lastError; - wxString m_serviceName; - wxList m_connections; +public: + wxDDEServer(); + bool Create(const wxString& server_name); + virtual ~wxDDEServer(); + + virtual wxConnectionBase *OnAcceptConnection(const wxString& topic); + + // Find/delete wxDDEConnection corresponding to the HCONV + wxDDEConnection *FindConnection(WXHCONV conv); + bool DeleteConnection(WXHCONV conv); + wxString& GetServiceName() const { return (wxString&) m_serviceName; } + + wxDDEConnectionList& GetConnections() const + { return (wxDDEConnectionList&) m_connections; } + +protected: + int m_lastError; + wxString m_serviceName; + wxDDEConnectionList m_connections; + + DECLARE_DYNAMIC_CLASS(wxDDEServer) }; -class WXDLLEXPORT wxDDEClient: public wxClientBase +class WXDLLIMPEXP_BASE wxDDEClient: public wxClientBase { - DECLARE_DYNAMIC_CLASS(wxDDEClient) - public: - wxDDEClient(void); - ~wxDDEClient(void); - bool ValidHost(const wxString& host); - virtual wxConnectionBase *MakeConnection(const wxString& host, const wxString& server, const wxString& topic); - // Call this to make a connection. - // Returns NULL if cannot. - virtual wxConnectionBase *OnMakeConnection(void); // Tailor this to return own connection. - - //////////////////////////////////////////////////////////// - // Implementation - - // Find/delete wxDDEConnection corresponding to the HCONV - wxDDEConnection *FindConnection(WXHCONV conv); - bool DeleteConnection(WXHCONV conv); - inline wxList& GetConnections(void) const { return (wxList&) m_connections; } - - protected: - int m_lastError; - wxList m_connections; +public: + wxDDEClient(); + virtual ~wxDDEClient(); + + bool ValidHost(const wxString& host); + + // Call this to make a connection. Returns NULL if cannot. + virtual wxConnectionBase *MakeConnection(const wxString& host, + const wxString& server, + const wxString& topic); + + // Tailor this to return own connection. + virtual wxConnectionBase *OnMakeConnection(); + + // Find/delete wxDDEConnection corresponding to the HCONV + wxDDEConnection *FindConnection(WXHCONV conv); + bool DeleteConnection(WXHCONV conv); + + wxDDEConnectionList& GetConnections() const + { return (wxDDEConnectionList&) m_connections; } + +protected: + int m_lastError; + wxDDEConnectionList m_connections; + + DECLARE_DYNAMIC_CLASS(wxDDEClient) }; -void WXDLLEXPORT wxDDEInitialize(); -void WXDLLEXPORT wxDDECleanUp(); +void WXDLLIMPEXP_BASE wxDDEInitialize(); +void WXDLLIMPEXP_BASE wxDDECleanUp(); -#endif - // _WX_DDE_H_ +#endif // _WX_DDE_H_