X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b3324be240257cb1a97c439616a1d58cb3b437cc..b2eabfe86603fe932b61c513577a8e1b7d0fb815:/include/wx/msw/dde.h diff --git a/include/wx/msw/dde.h b/include/wx/msw/dde.h index 31aaa334a8..9cc5cca987 100644 --- a/include/wx/msw/dde.h +++ b/include/wx/msw/dde.h @@ -5,16 +5,12 @@ // Modified by: // Created: 01/02/97 // RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license +// Copyright: (c) Julian Smart +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifndef __DDEH__ -#define __DDEH__ - -#ifdef __GNUG__ -#pragma interface "dde.h" -#endif +#ifndef _WX_DDE_H_ +#define _WX_DDE_H_ #include "wx/ipcbase.h" @@ -42,121 +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(char *buffer, int size); - wxDDEConnection(void); - ~wxDDEConnection(void); - - // Calls that CLIENT can make - virtual bool Execute(char *data, int size = -1, wxDataFormat format = wxDF_TEXT); - virtual bool Execute(const wxString& str) { return Execute((char *)(const char *)str, -1, wxDF_TEXT); } - virtual char *Request(const wxString& item, int *size = NULL, wxDataFormat format = wxDF_TEXT); - virtual bool Poke(const wxString& item, char *data, int size = -1, wxDataFormat format = wxDF_TEXT); + wxDDEConnection(void *buffer, size_t size); // use external buffer + wxDDEConnection(); // use internal buffer + virtual ~wxDDEConnection(); + + // 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, char *data, int size = -1, wxDataFormat format = wxDF_TEXT); - - // Calls that both can make - virtual bool Disconnect(void); - - // Callbacks to SERVER - override at will - virtual bool OnExecute(const wxString& topic, char *data, int size, wxDataFormat format) { return FALSE; }; - virtual char *OnRequest(const wxString& topic, const wxString& item, int *size, wxDataFormat format) { return NULL; }; - virtual bool OnPoke(const wxString& topic, const wxString& item, char *data, int size, wxDataFormat format) { return FALSE; }; - virtual bool OnStartAdvise(const wxString& topic, const wxString& item) { return FALSE; }; - virtual bool OnStopAdvise(const wxString& topic, const wxString& item) { return FALSE; }; - - // Callbacks to CLIENT - override at will - virtual bool OnAdvise(const wxString& topic, const wxString& item, char *data, int size, wxDataFormat format) { return FALSE; }; - - // Callbacks to BOTH - - // 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: - char* m_bufPtr; +public: wxString m_topicName; - int m_bufSize; wxDDEServer* m_server; wxDDEClient* m_client; WXHCONV m_hConv; - char* m_sendingData; + const void* m_sendingData; int m_dataSize; - wxDataFormat 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); -void WXDLLEXPORT wxDDEInitialize(); -void WXDLLEXPORT wxDDECleanUp(); + // 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) +}; -// Compatibility -#if WXWIN_COMPATIBILITY -#define wxServer wxDDEServer -#define wxClient wxDDEClient -#define wxConnection wxDDEConnection -#define wxIPCInitialize wxDDEInitialize -#define wxIPCCleanUp wxDDECleanUp -#endif +void WXDLLIMPEXP_BASE wxDDEInitialize(); +void WXDLLIMPEXP_BASE wxDDECleanUp(); -#endif - // __DDEH__ +#endif // _WX_DDE_H_