00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef ICLIPBOARD_H
00020 #define ICLIPBOARD_H
00021
00022 #include "IInterface.h"
00023 #include "CString.h"
00024 #include "BasicTypes.h"
00025
00027
00030 class IClipboard : public IInterface {
00031 public:
00033
00038 typedef UInt32 Time;
00039
00041
00059 enum EFormat {
00060 kText,
00061 kBitmap,
00062 kHTML,
00063 kNumFormats
00064 };
00065
00067
00068
00070
00076 virtual bool empty() = 0;
00077
00079
00083 virtual void add(EFormat, const CString& data) = 0;
00084
00086
00087
00088
00090
00098 virtual bool open(Time time) const = 0;
00099
00101
00108 virtual void close() const = 0;
00109
00111
00114 virtual Time getTime() const = 0;
00115
00117
00121 virtual bool has(EFormat) const = 0;
00122
00124
00129 virtual CString get(EFormat) const = 0;
00130
00132
00136 static CString marshall(const IClipboard* clipboard);
00137
00139
00143 static void unmarshall(IClipboard* clipboard,
00144 const CString& data, Time time);
00145
00147
00154 static bool copy(IClipboard* dst, const IClipboard* src);
00155
00157
00163 static bool copy(IClipboard* dst, const IClipboard* src, Time);
00164
00166
00167 private:
00168 static UInt32 readUInt32(const char*);
00169 static void writeUInt32(CString*, UInt32);
00170 };
00171
00172 #endif