summaryrefslogtreecommitdiff
path: root/writerperfect/source/stream/WPXSvStream.h
diff options
context:
space:
mode:
Diffstat (limited to 'writerperfect/source/stream/WPXSvStream.h')
-rw-r--r--writerperfect/source/stream/WPXSvStream.h47
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