windows-nt/Source/XPSP1/NT/enduser/stuff/itss/fsstg.h
2020-09-26 16:20:57 +08:00

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__