mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
2.4 KiB
85 lines
2.4 KiB
// 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__
|