Source code of Windows XP (NT5)
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.
|
|
// 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__
|