diff options
Diffstat (limited to 'writerperfect/source/stream/WPXSvStream.h')
-rw-r--r-- | writerperfect/source/stream/WPXSvStream.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/writerperfect/source/stream/WPXSvStream.h b/writerperfect/source/stream/WPXSvStream.h new file mode 100644 index 000000000000..099c5a76eccf --- /dev/null +++ b/writerperfect/source/stream/WPXSvStream.h @@ -0,0 +1,47 @@ +#ifndef WPXSVSTREAM_H +#define WPXSVSTREAM_H + +#include <sot/storage.hxx> +#include <com/sun/star/io/XInputStream.hpp> + +#ifndef _COM_SUN_STAR_IO_XINPUTSTREAM_H_ +#include <com/sun/star/io/XSeekable.hpp> +#endif + + +#if defined _MSC_VER +#pragma warning( push, 1 ) +#endif +#include <libwpd/WPXStream.h> +#if defined _MSC_VER +#pragma warning( pop ) +#endif + +class WPXSvInputStream : public WPXInputStream +{ +public: + WPXSvInputStream( ::com::sun::star::uno::Reference< + ::com::sun::star::io::XInputStream > xStream ); + virtual ~WPXSvInputStream(); + + virtual bool isOLEStream(); + virtual WPXInputStream * getDocumentOLEStream(); + virtual WPXInputStream * getDocumentOLEStream(const char *name); + + virtual const uint8_t *read(size_t numBytes, size_t &numBytesRead); + virtual int seek(long offset, WPX_SEEK_TYPE seekType); + virtual long tell(); + virtual bool atEOS(); + +private: + SotStorageRef mxChildStorage; + SotStorageStreamRef mxChildStream; + ::com::sun::star::uno::Reference< + ::com::sun::star::io::XInputStream > mxStream; + ::com::sun::star::uno::Reference< + ::com::sun::star::io::XSeekable > mxSeekable; + ::com::sun::star::uno::Sequence< sal_Int8 > maData; + sal_Int64 mnLength; +}; + +#endif |