86 lines
2.4 KiB
C
86 lines
2.4 KiB
C
|
// FSStg.h -- Declaration of the FileSystemStorage class which wraps directories in
|
||
|
// the Win32 file system as IStorage objects.
|
||
|
|
||
|
#ifndef __FSSTG_H__
|
||
|
|
||
|
#define __FSSTG_H__
|
||
|
|
||
|
class CFileSystemStorage : public CITUnknown
|
||
|
{
|
||
|
public:
|
||
|
|
||
|
// Destructor:
|
||
|
|
||
|
~CFileSystemStorage(void);
|
||
|
|
||
|
// Creation:
|
||
|
|
||
|
static HRESULT STDMETHODCALLTYPE Create(IUnknown *punkOuter, REFIID riid, PPVOID ppv);
|
||
|
|
||
|
private:
|
||
|
|
||
|
CFileSystemStorage(IUnknown *pUnkOuter);
|
||
|
|
||
|
class CImpIFileSystemStorage : public IITFSStorage
|
||
|
{
|
||
|
public:
|
||
|
|
||
|
// Constructor and Destructor:
|
||
|
|
||
|
CImpIFileSystemStorage(CFileSystemStorage *pBackObj, IUnknown *punkOuter);
|
||
|
~CImpIFileSystemStorage(void);
|
||
|
|
||
|
// Initialing routines:
|
||
|
|
||
|
HRESULT STDMETHODCALLTYPE Init();
|
||
|
|
||
|
// IFSStorage methods
|
||
|
|
||
|
HRESULT STDMETHODCALLTYPE FSCreateStorage
|
||
|
(const WCHAR * pwcsName, DWORD grfMode, IStorage ** ppstgOpen);
|
||
|
HRESULT STDMETHODCALLTYPE FSCreateTemporaryStream(IStream **ppStrm);
|
||
|
HRESULT STDMETHODCALLTYPE FSOpenStorage
|
||
|
(const WCHAR * pwcsName, DWORD grfMode, IStorage ** ppstgOpen);
|
||
|
HRESULT STDMETHODCALLTYPE FSCreateStream
|
||
|
(const WCHAR *pwcsName, DWORD grfMode, IStream **ppStrm);
|
||
|
HRESULT STDMETHODCALLTYPE FSOpenStream
|
||
|
(const WCHAR *pwcsName, DWORD grfMode, IStream **ppStrm);
|
||
|
HRESULT STDMETHODCALLTYPE FSCreateLockBytes
|
||
|
(const WCHAR *pwcsName, DWORD grfMode, ILockBytes **ppLkb);
|
||
|
HRESULT STDMETHODCALLTYPE FSCreateTemporaryLockBytes(ILockBytes **ppLkb);
|
||
|
HRESULT STDMETHODCALLTYPE FSOpenLockBytes
|
||
|
(const WCHAR *pwcsName, DWORD grfMode, ILockBytes **ppLkb);
|
||
|
|
||
|
HRESULT STDMETHODCALLTYPE FSStgSetTimes
|
||
|
(WCHAR const * lpszName, FILETIME const * pctime,
|
||
|
FILETIME const * patime, FILETIME const * pmtime
|
||
|
);
|
||
|
};
|
||
|
|
||
|
CImpIFileSystemStorage m_ImpIFileSystemStorage;
|
||
|
};
|
||
|
|
||
|
inline CFileSystemStorage::CFileSystemStorage(IUnknown *pUnkOuter)
|
||
|
: m_ImpIFileSystemStorage(this, pUnkOuter),
|
||
|
CITUnknown(&IID_IFSStorage, 1, &m_ImpIFileSystemStorage)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
inline CFileSystemStorage::~CFileSystemStorage()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
inline CFileSystemStorage::CImpIFileSystemStorage::CImpIFileSystemStorage
|
||
|
(CFileSystemStorage *pBackObj, IUnknown *punkOuter)
|
||
|
: IITFSStorage(pBackObj, punkOuter)
|
||
|
|
||
|
{
|
||
|
}
|
||
|
|
||
|
inline CFileSystemStorage::CImpIFileSystemStorage::~CImpIFileSystemStorage(void)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
|
||
|
#endif // __FSSTG_H__
|