X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0e4acbd463920ae9d18972dfa16f5e4633f2ea97..64b1cea09aac1077469090dc2dac9a139a509833:/include/wx/msw/dde.h diff --git a/include/wx/msw/dde.h b/include/wx/msw/dde.h index dd55e69610..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_ -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma interface "dde.h" -#endif - #include "wx/ipcbase.h" /* @@ -42,107 +38,101 @@ * */ -class WXDLLIMPEXP_BASE wxDDEServer; -class WXDLLIMPEXP_BASE wxDDEClient; +class WXDLLIMPEXP_FWD_BASE wxDDEServer; +class WXDLLIMPEXP_FWD_BASE wxDDEClient; -class WXDLLIMPEXP_BASE 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 bool Execute(const wxString& str) { return Execute(str, -1, 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); - - // Default behaviour is to delete connection and return TRUE - virtual bool OnDisconnect(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); - 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_NO_COPY_CLASS(wxDDEConnection) + DECLARE_DYNAMIC_CLASS(wxDDEConnection) }; -class WXDLLIMPEXP_BASE 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 wxDDEConnectionList& GetConnections(void) const - { - return (wxDDEConnectionList&) 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 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 wxDDEConnectionList& GetConnections(void) const - { - return (wxDDEConnectionList&) 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 WXDLLIMPEXP_BASE wxDDEInitialize(); void WXDLLIMPEXP_BASE wxDDECleanUp(); -#endif - // _WX_DDE_H_ +#endif // _WX_DDE_H_