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.
123 lines
3.4 KiB
123 lines
3.4 KiB
// Warehse.h -- Header information for the CWarehouse class
|
|
|
|
#ifndef __WAREHSE_H__
|
|
|
|
#define __WAREHSE_H__
|
|
|
|
class CWarehouse : public CITUnknown
|
|
{
|
|
|
|
public:
|
|
|
|
// Creator:
|
|
|
|
static HRESULT STDMETHODCALLTYPE Create(IUnknown *punkOuter, REFIID riid, PPVOID ppv);
|
|
|
|
// Destructor:
|
|
|
|
~CWarehouse(void);
|
|
|
|
private:
|
|
|
|
// Constructor:
|
|
|
|
CWarehouse(IUnknown *punkOuter);
|
|
|
|
class CImpIWarehouse : public IITITStorageEx
|
|
{
|
|
|
|
public:
|
|
|
|
CImpIWarehouse(CWarehouse *pBackObj, IUnknown *punkOuter);
|
|
~CImpIWarehouse(void);
|
|
|
|
// Initialing method:
|
|
|
|
STDMETHODIMP Init();
|
|
|
|
// IITStorage methods:
|
|
|
|
STDMETHODIMP StgCreateDocfile
|
|
(const WCHAR * pwcsName, DWORD grfMode,
|
|
DWORD reserved, IStorage ** ppstgOpen
|
|
);
|
|
|
|
STDMETHODIMP StgCreateDocfileOnILockBytes
|
|
(ILockBytes * plkbyt, DWORD grfMode,
|
|
DWORD reserved, IStorage ** ppstgOpen
|
|
);
|
|
|
|
STDMETHODIMP StgIsStorageFile(const WCHAR * pwcsName);
|
|
|
|
STDMETHODIMP StgIsStorageILockBytes(ILockBytes * plkbyt);
|
|
|
|
STDMETHODIMP StgOpenStorage
|
|
(const WCHAR * pwcsName, IStorage * pstgPriority,
|
|
DWORD grfMode, SNB snbExclude, DWORD reserved,
|
|
IStorage ** ppstgOpen
|
|
);
|
|
|
|
STDMETHODIMP StgOpenStorageOnILockBytes
|
|
(ILockBytes * plkbyt, IStorage * pStgPriority,
|
|
DWORD grfMode, SNB snbExclude, DWORD reserved,
|
|
IStorage ** ppstgOpen
|
|
);
|
|
|
|
STDMETHODIMP StgSetTimes
|
|
(WCHAR const * lpszName, FILETIME const * pctime,
|
|
FILETIME const * patime, FILETIME const * pmtime
|
|
);
|
|
|
|
STDMETHODIMP SetControlData(PITS_Control_Data pControlData);
|
|
|
|
STDMETHODIMP DefaultControlData(PITS_Control_Data *ppControlData);
|
|
|
|
STDMETHODIMP Compact(const WCHAR * pwcsName, ECompactionLev iLev);
|
|
|
|
// ITStorageEx methods:
|
|
|
|
STDMETHODIMP StgCreateDocfileForLocale
|
|
(const WCHAR * pwcsName, DWORD grfMode, DWORD reserved, LCID lcid,
|
|
IStorage ** ppstgOpen
|
|
);
|
|
|
|
STDMETHODIMP StgCreateDocfileForLocaleOnILockBytes
|
|
(ILockBytes * plkbyt, DWORD grfMode, DWORD reserved, LCID lcid,
|
|
IStorage ** ppstgOpen
|
|
);
|
|
|
|
STDMETHODIMP QueryFileStampAndLocale(const WCHAR *pwcsName, DWORD *pFileStamp,
|
|
DWORD *pFileLocale);
|
|
|
|
STDMETHODIMP QueryLockByteStampAndLocale(ILockBytes * plkbyt, DWORD *pFileStamp,
|
|
DWORD *pFileLocale);
|
|
|
|
private:
|
|
|
|
ITS_Control_Data *m_pITSCD;
|
|
};
|
|
|
|
CImpIWarehouse m_ImpIWarehouse;
|
|
};
|
|
|
|
typedef CWarehouse *PCWarehouse;
|
|
|
|
extern GUID aIID_CITStorage[];
|
|
extern UINT cInterfaces_CITStorage;
|
|
|
|
inline CWarehouse::CWarehouse(IUnknown *pUnkOuter)
|
|
: m_ImpIWarehouse(this, pUnkOuter),
|
|
CITUnknown(aIID_CITStorage, cInterfaces_CITStorage, (IUnknown *) &m_ImpIWarehouse)
|
|
{
|
|
}
|
|
|
|
inline CWarehouse::~CWarehouse(void)
|
|
{
|
|
}
|
|
|
|
inline STDMETHODIMP CWarehouse::CImpIWarehouse::Init()
|
|
{
|
|
return NO_ERROR;
|
|
}
|
|
|
|
#endif // __WAREHSE_H__
|