20#ifndef INCLUDED_OOX_OLE_OLESTORAGE_HXX
21#define INCLUDED_OOX_OLE_OLESTORAGE_HXX
25#include <com/sun/star/uno/Reference.hxx>
28#include <rtl/ustring.hxx>
31 namespace container {
class XNameContainer; }
32 namespace embed {
class XStorage; }
33 namespace io {
class XInputStream; }
34 namespace io {
class XOutputStream; }
35 namespace io {
class XStream; }
36 namespace uno {
class XComponentContext; }
47 const css::uno::Reference< css::uno::XComponentContext >& rxContext,
48 const css::uno::Reference< css::io::XInputStream >& rxInStream,
49 bool bBaseStreamAccess );
52 const css::uno::Reference< css::uno::XComponentContext >& rxContext,
53 const css::uno::Reference< css::io::XStream >& rxOutStream,
54 bool bBaseStreamAccess );
61 const css::uno::Reference< css::container::XNameContainer >& rxStorage,
62 const OUString& rElementName,
66 const css::uno::Reference< css::io::XStream >& rxOutStream,
67 const OUString& rElementName );
70 void initStorage(
const css::uno::Reference< css::io::XInputStream >& rxInStream );
72 void initStorage(
const css::uno::Reference< css::io::XStream >& rxOutStream );
75 virtual bool implIsStorage()
const override;
82 virtual css::uno::Reference< css::embed::XStorage >
83 implGetXStorage()
const override;
86 virtual void implGetElementNames( ::std::vector< OUString >& orElementNames )
const override;
89 virtual StorageRef implOpenSubStorage(
const OUString& rElementName,
bool bCreateMissing )
override;
92 virtual css::uno::Reference< css::io::XInputStream >
93 implOpenInputStream(
const OUString& rElementName )
override;
96 virtual css::uno::Reference< css::io::XOutputStream >
97 implOpenOutputStream(
const OUString& rElementName )
override;
100 virtual void implCommit()
const override;
103 css::uno::Reference< css::uno::XComponentContext >
105 css::uno::Reference< css::container::XNameContainer >
Base class for storage access implementations.
Implements stream access for binary OLE storages.
OleStorage(const OleStorage &rParentStorage, const css::uno::Reference< css::container::XNameContainer > &rxStorage, const OUString &rElementName, bool bReadOnly)
OleStorage(const css::uno::Reference< css::uno::XComponentContext > &rxContext, const css::uno::Reference< css::io::XInputStream > &rxInStream, bool bBaseStreamAccess)
void initStorage(const css::uno::Reference< css::io::XStream > &rxOutStream)
Initializes the API storage object for input/output.
void initStorage(const css::uno::Reference< css::io::XInputStream > &rxInStream)
Initializes the API storage object for input.
const OleStorage * mpParentStorage
Parent OLE storage that contains this storage.
OleStorage(const OleStorage &rParentStorage, const css::uno::Reference< css::io::XStream > &rxOutStream, const OUString &rElementName)
OleStorage(const css::uno::Reference< css::uno::XComponentContext > &rxContext, const css::uno::Reference< css::io::XStream > &rxOutStream, bool bBaseStreamAccess)
css::uno::Reference< css::uno::XComponentContext > mxContext
Component context with service manager.
css::uno::Reference< css::container::XNameContainer > mxStorage
Access to elements of this sub storage.
std::shared_ptr< StorageBase > StorageRef