30 #include "IPMUnknown.h" 40 kSeekFromStart = 0x01,
42 kSeekFromCurrent = 0x02,
74 #include "IDBStreamData.h" 75 #include "DocumentID.h" 76 #include "WorkspaceID.h" 78 #define ASSERT_IF_WRITING_TO_DOCUMENT(db_Stream) if(db_Stream->IsWriting()) {\ 79 InterfacePtr<IDBStreamData> db_StreamData(db_Stream,IID_IDBSTREAMDATA);\ 80 if (db_StreamData != nil)\ 82 IDataBase *stream_DB = db_StreamData->GetDataBase();\ 83 UID db_rootUID = stream_DB->GetRootUID();\ 84 ASSERT_MSG(stream_DB->GetClass(db_rootUID) != kDocBoss,"This shouldn't be written to a pub database!");\ 87 #define ASSERT_IF_WRITING_TO_DEFAULTS(db_Stream) if(db_Stream->IsWriting()) {\ 88 InterfacePtr<IDBStreamData> db_StreamData(db_Stream,IID_IDBSTREAMDATA);\ 89 if (db_StreamData != nil)\ 91 IDataBase *stream_DB = db_StreamData->GetDataBase();\ 92 UID db_rootUID = stream_DB->GetRootUID();\ 93 ASSERT_MSG(stream_DB->GetClass(db_rootUID) != kWorkspaceBoss,"This shouldn't be written to a defaults database!");\ 97 #define ASSERT_IF_WRITING_TO_DOCUMENT(stream) 98 #define ASSERT_IF_WRITING_TO_DEFAULTS(stream) 102 #define XFER_ENUM(stream, enumVal) { stream->XferInt32((int32&)enumVal); } 103 #define XFER_ENUM16(stream, enumVal) { int16 _dummy = (int16) enumVal; (int32&) enumVal = (int32) stream->XferInt16(_dummy); } 130 e =
static_cast<T
>(tmp);
133 tmp =
static_cast<int32
>(e);
141 virtual uchar
XferByte(uchar& chr) = 0;
144 virtual int32
XferByte(uchar *buf, int32 num) = 0;
148 virtual bool16
XferBool(bool16& chr) = 0;
151 virtual int32
XferBool(bool16 *buf, int32 num) = 0;
158 virtual int32
XferInt16(int16 *buf, int32 num) = 0;
165 virtual int32
XferInt32(int32 *buf, int32 num) = 0;
196 for (int32 i = 0; i < count; ++i)
307 virtual void Comment(
const char* comment) = 0;
312 virtual int64
Seek(int64 numberOfBytes, SeekFromWhere fromHere) = 0;
320 virtual void Flush() = 0;
364 virtual bool16
Open() = 0;
367 virtual void Close() = 0;
372 ADOBE_NAME_TYPE_0(
"ipmstream:indesign:adobe",
IPMStream);
396 template <
typename T>
399 inline static void Read (
IPMStream* stream, T& t)
406 inline static void Write (
IPMStream* stream,
const T& t)
412 T& tNonConst =
const_cast<T&
> (t);
413 tNonConst.ReadWrite(stream);