//+--------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1992 - 1996. // // File: laywrap.cxx // // Contents: IStorage wrapper for layout docfile // // Classes: // // Functions: // // History: 14-Feb-96 SusiA Created // //---------------------------------------------------------------------------- #include "layouthd.cxx" #pragma hdrstop #include "laywrap.hxx" #include "layouter.hxx" //+--------------------------------------------------------------------------- // // Member: CLayoutRootStorage::QueryInterface, public // // History: 14-Feb-96 SusiA Created // //---------------------------------------------------------------------------- STDMETHODIMP CLayoutRootStorage::QueryInterface(REFIID iid, void **ppvObj) { SCODE sc = S_OK; *ppvObj = NULL; layDebugOut((DEB_ITRACE, "In CLayoutRootStorage::QueryInterface:%p()\n", this)); if (IsEqualIID(iid, IID_IUnknown)) { *ppvObj = (IStorage *)this; } else if (IsEqualIID(iid, IID_IStorage)) { *ppvObj = (IStorage *)this; } else if (IsEqualIID(iid, IID_IRootStorage)) { IRootStorage *prstg; if (FAILED(_pRealStg->QueryInterface(IID_IRootStorage, (void **) &prstg))) { return E_NOINTERFACE; } prstg->Release(); *ppvObj = (IRootStorage *)this; } else if (IsEqualIID(iid, IID_ILayoutStorage)) { *ppvObj = (ILayoutStorage *)this; } else { sc = E_NOINTERFACE; } if (SUCCEEDED(sc)) { AddRef(); } layDebugOut((DEB_ITRACE, "Out CLayoutRootStorage::QueryInterface:%p()\n", this)); return sc; } //+--------------------------------------------------------------------------- // // Member: CLayoutRootStorage::AddRef, public // // History: 01-Jan-96 SusiA Created // //---------------------------------------------------------------------------- STDMETHODIMP_(ULONG) CLayoutRootStorage::AddRef(void) { ULONG ulRet; layDebugOut((DEB_ITRACE, "In CLayoutRootStorage::AddRef:%p()\n", this)); InterlockedIncrement(&_cReferences); ulRet = _cReferences; layDebugOut((DEB_ITRACE, "Out CLayoutRootStorage::AddRef\n")); return ulRet; } //+--------------------------------------------------------------------------- // // Member: CLayoutRootStorage::Release, public // // History: 01-Jan-96 SusiA Created // //---------------------------------------------------------------------------- STDMETHODIMP_(ULONG) CLayoutRootStorage::Release(void) { LONG lRet; layDebugOut((DEB_ITRACE, "In CLayoutRootStorage::Release:%p()\n", this)); lRet = InterlockedDecrement(&_cReferences); if (lRet == 0) { delete this; } else if (lRet < 0) lRet = 0; layDebugOut((DEB_ITRACE, "Out CLayoutRootStorage::Release\n")); return (ULONG)lRet; } //+--------------------------------------------------------------------------- // // Member: CLayoutRootStorage::CreateStream, public // // History: 01-Jan-96 SusiA Created // //---------------------------------------------------------------------------- STDMETHODIMP CLayoutRootStorage::CreateStream(OLECHAR const *pwcsName, DWORD grfMode, DWORD reserved1, DWORD reserved2, IStream **ppstm) { SCODE sc; layDebugOut((DEB_ITRACE, "In CLayoutRootStorage::CreateStream:%p()\n", this)); sc = _pRealStg->CreateStream(pwcsName, grfMode, reserved1, reserved2, ppstm); layDebugOut((DEB_ITRACE, "Out CLayoutRootStorage::CreateStream:%p()\n", this)); return ResultFromScode(sc); } //+--------------------------------------------------------------------------- // // Member: CLayoutRootStorage::OpenStream, public // // History: 01-Jan-96 SusiA Created // //---------------------------------------------------------------------------- STDMETHODIMP CLayoutRootStorage::OpenStream(OLECHAR const *pwcsName, void *reserved1, DWORD grfMode, DWORD reserved2, IStream **ppstm) { SCODE sc = S_OK; layDebugOut((DEB_ITRACE, "In CLayoutRootStorage::OpenStream:%p()\n", this)); sc = _pRealStg->OpenStream(pwcsName, reserved1, grfMode, reserved2, ppstm); layDebugOut((DEB_ITRACE, "Out CLayoutRootStorage::OpenStream:%p()\n", this)); return ResultFromScode(sc); } //+--------------------------------------------------------------------------- // // Member: CLayoutRootStorage::CreateStorage, public // // History: 01-Jan-96 SusiA Created // //---------------------------------------------------------------------------- STDMETHODIMP CLayoutRootStorage::CreateStorage(OLECHAR const *pwcsName, DWORD grfMode, DWORD reserved1, LPSTGSECURITY reserved2, IStorage **ppstg) { SCODE sc = S_OK; layDebugOut((DEB_ITRACE, "In CLayoutRootStorage::CreateStorage:%p()\n", this)); sc = _pRealStg->CreateStorage( pwcsName, grfMode, reserved1, reserved2, ppstg); layDebugOut((DEB_ITRACE, "Out CLayoutRootStorage::CreateStorage:%p()\n", this)); return ResultFromScode(sc); } //+--------------------------------------------------------------------------- // // Member: CLayoutRootStorage::OpenStorage, public // // History: 01-Jan-96 SusiA Created // //---------------------------------------------------------------------------- STDMETHODIMP CLayoutRootStorage::OpenStorage(OLECHAR const *pwcsName, IStorage *pstgPriority, DWORD grfMode, SNB snbExclude, DWORD reserved, IStorage **ppstg) { SCODE sc = S_OK; layDebugOut((DEB_ITRACE, "In CLayoutRootStorage::OpenStorage:%p()\n", this)); sc = _pRealStg->OpenStorage(pwcsName, pstgPriority, grfMode, snbExclude, reserved, ppstg); layDebugOut((DEB_ITRACE, "Out CLayoutRootStorage::OpenStorage:%p()\n", this)); return ResultFromScode(sc); } //+--------------------------------------------------------------------------- // // Member: CLayoutRootStorage::CopyTo, public // // History: 01-Jan-96 SusiA Created // //---------------------------------------------------------------------------- STDMETHODIMP CLayoutRootStorage::CopyTo(DWORD ciidExclude, IID const *rgiidExclude, SNB snbExclude, IStorage *pstgDest) { SCODE sc = S_OK; layDebugOut((DEB_ITRACE, "In CLayoutRootStorage::CopyTo%p()\n", this)); sc = _pRealStg->CopyTo(ciidExclude, rgiidExclude, snbExclude, pstgDest); layDebugOut((DEB_ITRACE, "Out CLayoutRootStorage::CopyTo\n")); return ResultFromScode(sc); } //+--------------------------------------------------------------------------- // // Member: CLayoutRootStorage::MoveElementTo, public // // History: 01-Jan-96 SusiA Created // //---------------------------------------------------------------------------- STDMETHODIMP CLayoutRootStorage::MoveElementTo(OLECHAR const *lpszName, IStorage *pstgDest, OLECHAR const *lpszNewName, DWORD grfFlags) { SCODE sc = S_OK; layDebugOut((DEB_ITRACE, "In CLayoutRootStorage::MoveElementTo%p()\n", this)); sc = _pRealStg->MoveElementTo(lpszName, pstgDest, lpszNewName, grfFlags) ; layDebugOut((DEB_ITRACE, "Out CLayoutRootStorage::MoveElementTo\n")); return ResultFromScode(sc); } //+--------------------------------------------------------------------------- // // Member: CLayoutRootStorage::Commit, public // // History: 01-Jan-96 SusiA Created // //---------------------------------------------------------------------------- STDMETHODIMP CLayoutRootStorage::Commit(DWORD grfCommitFlags) { SCODE sc = S_OK; layDebugOut((DEB_ITRACE, "In CLayoutRootStorage::Commit%p()\n", this)); sc = _pRealStg->Commit(grfCommitFlags); layDebugOut((DEB_ITRACE, "Out CLayoutRootStorage::Commit\n")); return ResultFromScode(sc); } //+--------------------------------------------------------------------------- // // Member: CLayoutRootStorage::Revert, public // // History: 01-Jan-96 SusiA Created // //---------------------------------------------------------------------------- STDMETHODIMP CLayoutRootStorage::Revert(void) { SCODE sc = S_OK; layDebugOut((DEB_ITRACE, "In CLayoutRootStorage::Revert%p()\n", this)); sc = _pRealStg->Revert(); layDebugOut((DEB_ITRACE, "Out CLayoutRootStorage::Revert\n")); return ResultFromScode(sc); } //+--------------------------------------------------------------------------- // // Member: CLayoutRootStorage::EnumElements, public // // History: 01-Jan-96 SusiA Created // //---------------------------------------------------------------------------- STDMETHODIMP CLayoutRootStorage::EnumElements(DWORD reserved1, void *reserved2, DWORD reserved3, IEnumSTATSTG **ppenm) { SCODE sc = S_OK; layDebugOut((DEB_ITRACE, "In CLayoutRootStorage::EnumElements%p()\n", this)); sc = _pRealStg->EnumElements(reserved1, reserved2, reserved3, ppenm); layDebugOut((DEB_ITRACE, "Out CLayoutRootStorage::EnumElements\n")); return ResultFromScode(sc); } //+--------------------------------------------------------------------------- // // Member: CLayoutRootStorage::DestroyElement, public // // History: 01-Jan-96 SusiA Created // //---------------------------------------------------------------------------- STDMETHODIMP CLayoutRootStorage::DestroyElement(OLECHAR const *pwcsName) { SCODE sc = S_OK; layDebugOut((DEB_ITRACE, "In CLayoutRootStorage::DestroyElement\n")); sc = _pRealStg->DestroyElement(pwcsName); layDebugOut((DEB_ITRACE, "Out CLayoutRootStorage::DestroyElement\n")); return ResultFromScode(sc); } //+--------------------------------------------------------------------------- // // Member: CLayoutRootStorage::RenameElement, public // // History: 01-Jan-96 SusiA Created // //---------------------------------------------------------------------------- STDMETHODIMP CLayoutRootStorage::RenameElement(OLECHAR const *pwcsOldName, OLECHAR const *pwcsNewName) { SCODE sc = S_OK; sc = _pRealStg->RenameElement(pwcsOldName, pwcsNewName); layDebugOut((DEB_ITRACE, "Out CLayoutRootStorage::RenameElement\n")); return ResultFromScode(sc); } //+--------------------------------------------------------------------------- // // Member: CLayoutRootStorage::SetElementTimes, public // // History: 01-Jan-96 SusiA Created // //---------------------------------------------------------------------------- STDMETHODIMP CLayoutRootStorage::SetElementTimes(const OLECHAR *lpszName, FILETIME const *pctime, FILETIME const *patime, FILETIME const *pmtime) { SCODE sc = S_OK; layDebugOut((DEB_ITRACE, "In CLayoutRootStorage::SetElementTimes\n")); sc = _pRealStg->SetElementTimes(lpszName, pctime, patime, pmtime); layDebugOut((DEB_ITRACE, "Out CLayoutRootStorage::SetElementTimes\n")); return ResultFromScode(sc); } //+--------------------------------------------------------------------------- // // Member: CLayoutRootStorage::SetClass, public // // History: 01-Jan-96 SusiA Created // //---------------------------------------------------------------------------- STDMETHODIMP CLayoutRootStorage::SetClass(REFCLSID clsid) { SCODE sc = S_OK; layDebugOut((DEB_ITRACE, "In CLayoutRootStorage::SetClass\n")); sc = _pRealStg->SetClass(clsid); layDebugOut((DEB_ITRACE, "Out CLayoutRootStorage::SetClass\n")); return ResultFromScode(sc); } //+--------------------------------------------------------------------------- // // Member: CLayoutRootStorage::SetStateBits, public // // History: 01-Jan-96 SusiA Created // //---------------------------------------------------------------------------- STDMETHODIMP CLayoutRootStorage::SetStateBits(DWORD grfStateBits, DWORD grfMask) { SCODE sc = S_OK; layDebugOut((DEB_ITRACE, "In CLayoutRootStorage::SetStateBits\n")); sc = _pRealStg->SetStateBits(grfStateBits, grfMask); layDebugOut((DEB_ITRACE, "Out CLayoutRootStorage::SetStateBits\n")); return ResultFromScode(sc); } //+--------------------------------------------------------------------------- // // Member: CLayoutRootStorage::Stat, public // // History: 01-Jan-96 SusiA Created // //---------------------------------------------------------------------------- STDMETHODIMP CLayoutRootStorage::Stat(STATSTG *pstatstg, DWORD grfStatFlag) { SCODE sc = S_OK; layDebugOut((DEB_ITRACE, "In CLayoutRootStorage::Stat%p()\n", this)); sc = _pRealStg->Stat( pstatstg, grfStatFlag); layDebugOut((DEB_ITRACE, "Out CLayoutRootStorage::Stat\n")); return ResultFromScode(sc); } //+--------------------------------------------------------------------------- // // Member: CLayoutRootStorage::SwitchToFile, public // // History: 01-Jan-96 SusiA Created // //---------------------------------------------------------------------------- STDMETHODIMP CLayoutRootStorage::SwitchToFile(OLECHAR *ptcsFile) { SCODE sc = S_OK; IRootStorage *prstg; layDebugOut((DEB_ITRACE, "In CLayoutRootStorage::%p()\n", this)); layVerify(SUCCEEDED(_pRealStg->QueryInterface(IID_IRootStorage, (void **) &prstg))); sc = prstg->SwitchToFile(ptcsFile); prstg->Release(); layDebugOut((DEB_ITRACE, "Out CLayoutRootStorage::\n")); return ResultFromScode(sc); }