home *** CD-ROM | disk | FTP | other *** search
- /*************************************************************************
- * SO.HXX
- * Fri Oct 7 10:26:30 1994
- * (c) 1992-1994 STAR DIVISION
- *************************************************************************/
- #ifndef _SV_HXX
- #include "sv.hxx"
- #endif
-
- #ifndef _MEMBLOCK_HXX
- #define _MEMBLOCK_HXX
-
- #ifndef _SV_HXX
- #endif
-
- #ifdef W30
- #define HUGE _huge
- #else
- #define HUGE
- #endif
-
- class ImpSOClient;
- class ImpSOServer;
- class ImpSOClientData;
- class ImpSOServerData;
- class IPCImpServer;
- class IPCImpClient;
-
- class MemoryBlock
- {
- private:
- friend class ImpSOClient;
- friend class ImpSOServer;
- friend class ImpSOClientData;
- friend class ImpSOServerData;
- friend class IPCImpServer;
- friend class IPCImpClient;
-
- BOOL bErr;
- long nHandle;
- char HUGE * pBlk;
- char HUGE * pGet;
- char HUGE * pPut;
- long nGet;
- long nPut;
- long nLen;
- BOOL bErase;
-
- BOOL Resize( long nSize );
- long GetHandle();
-
- MemoryBlock( long nHandle, BOOL );
- MemoryBlock( long nHandle, long nSize, BOOL );
-
- public:
- MemoryBlock();
- MemoryBlock( const MemoryBlock& rBlock );
- ~MemoryBlock();
-
- long Len() const { return nLen; }
- BOOL Error() const { return bErr; }
-
- int good() const { return !bErr; }
- int bad() const { return bErr; }
- int operator ! () const { return bErr; }
-
- long Put( const void* pAddr, long nSize );
- long Get( void* pAddr, long nSize );
-
- friend MemoryBlock& operator >> ( MemoryBlock& rBlock, char& rValue );
- friend MemoryBlock& operator >> ( MemoryBlock& rBlock, BYTE& rValue );
- friend MemoryBlock& operator >> ( MemoryBlock& rBlock, short& rValue );
- friend MemoryBlock& operator >> ( MemoryBlock& rBlock, USHORT& rValue );
- friend MemoryBlock& operator >> ( MemoryBlock& rBlock, long& rValue );
- friend MemoryBlock& operator >> ( MemoryBlock& rBlock, ULONG& rValue );
- friend MemoryBlock& operator >> ( MemoryBlock& rBlock, Point& rValue );
- friend MemoryBlock& operator >> ( MemoryBlock& rBlock, Size& rValue );
- friend MemoryBlock& operator >> ( MemoryBlock& rBlock, Range& rValue );
- friend MemoryBlock& operator >> ( MemoryBlock& rBlock, Selection& rValue );
- friend MemoryBlock& operator >> ( MemoryBlock& rBlock, Rectangle& rValue );
- friend MemoryBlock& operator >> ( MemoryBlock& rBlock, String& rValue );
-
- friend MemoryBlock& operator << ( MemoryBlock& rBlock, const char& rValue );
- friend MemoryBlock& operator << ( MemoryBlock& rBlock, const BYTE& rValue );
- friend MemoryBlock& operator << ( MemoryBlock& rBlock, const short& rValue );
- friend MemoryBlock& operator << ( MemoryBlock& rBlock, const USHORT& rValue );
- friend MemoryBlock& operator << ( MemoryBlock& rBlock, const long& rValue );
- friend MemoryBlock& operator << ( MemoryBlock& rBlock, const ULONG& rValue );
- friend MemoryBlock& operator << ( MemoryBlock& rBlock, const Point& rValue );
- friend MemoryBlock& operator << ( MemoryBlock& rBlock, const Size& rValue );
- friend MemoryBlock& operator << ( MemoryBlock& rBlock, const Range& rValue );
- friend MemoryBlock& operator << ( MemoryBlock& rBlock, const Selection& rValue );
- friend MemoryBlock& operator << ( MemoryBlock& rBlock, const Rectangle& rValue );
- friend MemoryBlock& operator << ( MemoryBlock& rBlock, const String& rValue );
-
- friend ostream& operator << ( ostream& rStream, MemoryBlock& rBlock );
- friend istream& operator >> ( istream& rStream, MemoryBlock& rBlock );
-
- MemoryBlock& operator= ( const MemoryBlock& rBlock );
- };
-
- #endif
-
- #ifndef _SO_HXX
- #define _SO_HXX
-
- #ifndef _SV_HXX
- #endif
- #ifndef _MEMBLOCK_HXX
- #endif
-
- class istream;
- class ostream;
-
- class ImpSOClient;
- class ImpSOServer;
- class MemoryBlock;
-
- enum StarObjectError
- {
- SOERR_OK = 0,
- SOERR_ACTIVE,
- SOERR_CREATED,
- SOERR_NO_SERVER,
- SOERR_START_SERVER,
- SOERR_CREATE,
- SOERR_ACTION,
- SOERR_LAYER,
- SOERR_DLGABORT
- };
-
- enum StarObjectType
- {
- SOTYPE_EMBEDDED,
- SOTYPE_LINK,
- SOTYPE_AUTOLINK,
- SOTYPE_DISPLAY_EMBEDDED,
- SOTYPE_DISPLAY_LINKED
- };
-
- class StarObject
- {
- private:
- friend class ImpSOClient;
- friend class ImpSOClientData;
-
- static BOOL bSavePortable;
- static char cClient[ 64 ];
- ImpSOClient* pImp;
- String aServer;
- String aName;
- Link aNotifyHdl;
-
- protected:
- virtual void Notify();
-
- public:
- StarObject();
- StarObject( const String& );
- StarObject( const StarObject& );
- StarObject( const String&, const MemoryBlock&,
- const GDIMetaFile& );
- ~StarObject();
- void Copy( const StarObject & rObj );
-
- StarObject& operator=( const StarObject& );
-
- StarObjectType GetType() const;
-
- static String ChangeAppName( const String& rAppName );
- static String GetAppName();
-
- static BOOL GetSavePortable() { return bSavePortable; }
- static void SetSavePortable( BOOL b ) { bSavePortable = b; }
-
- String ChangeServerName( const String& rServerName );
- String GetServerName() const { return aServer; }
- String ChangeName( const String& rName );
- String GetName() const { return aName; }
- String ChangeLinkName( const String& );
- String GetLinkName() const;
-
- Size ChangeSize( const Size& rSize );
- Size GetSize() const;
-
- void Clear();
- void Create( const String& rDlgTitle );
- void Update();
- void Action( USHORT nAction = 0 );
-
- USHORT GetActionCount() const;
- String GetActionText( USHORT nAction = 0 ) const;
-
- BOOL IsActive() const;
- BOOL IsChanged();
-
- void Draw( OutputDevice& rOutDev, const Point& rPos );
- void Draw( OutputDevice& rOutDev,
- const Point& rPos, const Size& rSize );
- void Draw( OutputDevice& rOutDev, const Rectangle& rRect );
-
- static BOOL HasClipboardData();
- static BOOL HasClipboardLinkData();
- static BOOL CopyRequest();
- BOOL Copy();
- BOOL Paste( StarObjectType = SOTYPE_EMBEDDED );
-
- Link ChangeNotifyHdl( const Link& rHdl );
- Link GetNotifyHdl() const { return aNotifyHdl; }
-
- MemoryBlock * GetData() const;
- StarObjectError GetError() const;
-
- friend istream& operator >> ( istream& rStream, StarObject& rObj );
- friend ostream& operator << ( ostream& rStream, const StarObject& rObj );
- };
-
- inline Link StarObject::ChangeNotifyHdl( const Link& rNewHdl )
- {
- Link aOldLink = aNotifyHdl;
- aNotifyHdl = rNewHdl;
- return aOldLink;
- }
-
- class StarObjectServer
- {
- friend class ImpSOServer;
-
- BOOL bServer;
- ImpSOServer* pImp;
-
- StarObjectServer( const StarObjectServer& rObj );
- StarObjectServer& operator= ( const StarObjectServer& rObj );
-
- public:
- StarObjectServer();
- StarObjectServer( const String& rName );
- ~StarObjectServer();
-
- BOOL IsServer() const { return bServer; }
-
- String GetServerName() const;
- String GetAppName() const;
- String GetObjectName() const;
- Size GetSize() const;
-
- void Update();
-
- virtual BOOL Create() = 0;
- virtual void Release();
- virtual BOOL Action( USHORT nAction ) = 0;
- virtual void NewNames( const String& rAppName,
- const String& rObjName ) = 0;
- virtual BOOL ReceiveData( MemoryBlock& rMemBlock ) = 0;
- virtual BOOL TransmitData( MemoryBlock& rMemBlock ) = 0;
- virtual BOOL TransmitPicture( GDIMetaFile& rMtf ) = 0;
- };
-
- #endif
-