Files
core/ASCOfficeDocFile/DocDocxConverter/StructuredStorageReader.h

45 lines
847 B
C++

#pragma once
namespace DocFileFormat
{
class StructuredStorageReader
{
public:
StructuredStorageReader () : m_pStorage(NULL)
{
}
~StructuredStorageReader()
{
RELEASEINTERFACE(m_pStorage);
}
inline HRESULT SetFile (const WCHAR* filename)
{
return StgOpenStorage (filename, NULL, STGM_READ | STGM_TRANSACTED | STGM_SHARE_DENY_NONE, NULL, 0, &m_pStorage);
}
inline HRESULT GetStream (const OLECHAR *path, IStream** ppStream)
{
HRESULT result = S_FALSE;
if (( m_pStorage != NULL ) && ( path != NULL ))
{
result = m_pStorage->OpenStream (path, NULL, ( STGM_READ | STGM_DIRECT | STGM_SHARE_EXCLUSIVE ), NULL, ppStream );
}
return result;
}
inline IStorage* GetStorage()
{
return m_pStorage;
}
private:
IStorage* m_pStorage;
};
}