|
|
// Warehse.cpp -- Implementation for the class CWarehouse
#include "stdafx.h"
CWarehouse::CImpIWarehouse::CImpIWarehouse(CWarehouse *pBackObj, IUnknown *punkOuter) : IITITStorageEx(pBackObj, punkOuter) { m_pITSCD = NULL; }
CWarehouse::CImpIWarehouse::~CImpIWarehouse(void) { if (m_pITSCD) delete [] (DWORD *) m_pITSCD; }
HRESULT STDMETHODCALLTYPE CWarehouse::Create (IUnknown *punkOuter, REFIID riid, PPVOID ppv) { if (punkOuter && riid != IID_IUnknown) return CLASS_E_NOAGGREGATION; CWarehouse *pWarehouse = New CWarehouse(punkOuter);
if (!pWarehouse) return STG_E_INSUFFICIENTMEMORY;
HRESULT hr = pWarehouse->m_ImpIWarehouse.Init();
if (hr == S_OK) hr = pWarehouse->QueryInterface(riid, ppv);
if (hr != S_OK) delete pWarehouse;
return hr; }
STDMETHODIMP CWarehouse::CImpIWarehouse::StgCreateDocfile (const WCHAR * pwcsName, DWORD grfMode, DWORD reserved, IStorage ** ppstgOpen ) { return CITFileSystem::CreateITFileSystem (NULL, pwcsName, grfMode, m_pITSCD, GetUserDefaultLCID(), ppstgOpen); }
STDMETHODIMP CWarehouse::CImpIWarehouse::StgCreateDocfileOnILockBytes (ILockBytes * plkbyt, DWORD grfMode, DWORD reserved, IStorage ** ppstgOpen ) { return CITFileSystem::CreateITFSOnLockBytes (NULL, plkbyt, grfMode, m_pITSCD, GetUserDefaultLCID(), ppstgOpen); }
STDMETHODIMP CWarehouse::CImpIWarehouse::StgCreateDocfileForLocale (const WCHAR * pwcsName, DWORD grfMode, DWORD reserved, LCID lcid, IStorage ** ppstgOpen) { return CITFileSystem::CreateITFileSystem (NULL, pwcsName, grfMode, m_pITSCD, lcid, ppstgOpen); }
STDMETHODIMP CWarehouse::CImpIWarehouse::StgCreateDocfileForLocaleOnILockBytes (ILockBytes * plkbyt, DWORD grfMode, DWORD reserved, LCID lcid, IStorage ** ppstgOpen) { return CITFileSystem::CreateITFSOnLockBytes (NULL, plkbyt, grfMode, m_pITSCD, lcid, ppstgOpen); }
STDMETHODIMP CWarehouse::CImpIWarehouse::QueryFileStampAndLocale (const WCHAR *pwcsName, DWORD *pFileStamp, DWORD *pFileLocale) { return CITFileSystem::QueryFileStampAndLocale(pwcsName, pFileStamp, pFileLocale); }
STDMETHODIMP CWarehouse::CImpIWarehouse::QueryLockByteStampAndLocale (ILockBytes * plkbyt, DWORD *pFileStamp, DWORD *pFileLocale) { return CITFileSystem::QueryLockByteStampAndLocale(plkbyt, pFileStamp, pFileLocale); }
STDMETHODIMP CWarehouse::CImpIWarehouse::StgIsStorageFile(const WCHAR * pwcsName) { return CITFileSystem::IsITFile(pwcsName); }
STDMETHODIMP CWarehouse::CImpIWarehouse::StgIsStorageILockBytes(ILockBytes * plkbyt) { return CITFileSystem::IsITLockBytes(plkbyt); }
STDMETHODIMP CWarehouse::CImpIWarehouse::StgOpenStorage (const WCHAR * pwcsName, IStorage * pstgPriority, DWORD grfMode, SNB snbExclude, DWORD reserved, IStorage ** ppstgOpen ) { return CITFileSystem::OpenITFileSystem(NULL, pwcsName, grfMode, (IStorageITEx **)ppstgOpen); }
STDMETHODIMP CWarehouse::CImpIWarehouse::StgOpenStorageOnILockBytes (ILockBytes * plkbyt, IStorage * pStgPriority, DWORD grfMode, SNB snbExclude, DWORD reserved, IStorage ** ppstgOpen ) { return CITFileSystem::OpenITFSOnLockBytes(NULL, plkbyt, grfMode, (IStorageITEx **)ppstgOpen); }
STDMETHODIMP CWarehouse::CImpIWarehouse::StgSetTimes (WCHAR const * lpszName, FILETIME const * pctime, FILETIME const * patime, FILETIME const * pmtime ) { return CITFileSystem::SetITFSTimes(lpszName, pctime, patime, pmtime); }
STDMETHODIMP CWarehouse::CImpIWarehouse::SetControlData(PITS_Control_Data pControlData) { UINT cdw = pControlData->cdwControlData + 1;
ITS_Control_Data *pITSCD = (ITS_Control_Data *) New DWORD[cdw];
if (!pITSCD) return STG_E_INSUFFICIENTMEMORY;
CopyMemory(pITSCD, pControlData, cdw * sizeof(DWORD));
if (m_pITSCD) delete [] (DWORD *) m_pITSCD; m_pITSCD = pITSCD;
return NO_ERROR; }
STDMETHODIMP CWarehouse::CImpIWarehouse::DefaultControlData(PITS_Control_Data *ppControlData) { return CITFileSystem::DefaultControlData(ppControlData); }
STDMETHODIMP CWarehouse::CImpIWarehouse::Compact(const WCHAR * pwcsName, ECompactionLev iLev) { return CITFileSystem::Compact(pwcsName, iLev); }
|