//+--------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1992 - 1993. // // File: tset.cxx // // Contents: PTSetMember methods // // History: 16-Apr-93 DrewB Created // //---------------------------------------------------------------------------- #include "dfhead.cxx" #pragma hdrstop #include //+--------------------------------------------------------------------------- // // Member: PTSetMember::Stat, public // // Synopsis: Fills in a STATSTG for the XSM // // Arguments: [pstat] - Buffer to fill in // [dwFlags] - STATFLAG_* // // Returns: Appropriate status code // // Modifies: [pstat] // // History: 12-Apr-93 DrewB Created // //---------------------------------------------------------------------------- SCODE PTSetMember::Stat(STATSTGW *pstat, DWORD dwFlags) { CWrappedDocFile *pwdf; CTransactedStream *ptstm; SCODE sc; olDebugOut((DEB_ITRACE, "In PTSetMember::Stat:%p(%p, %lX)\n", this, pstat, dwFlags)); pstat->type = ObjectType(); if ((pstat->type & STGTY_REAL) == STGTY_STORAGE) { PTimeEntry *pen; pwdf = (CWrappedDocFile *)this; pen = pwdf; olChk(pen->GetTime(WT_CREATION, &pstat->ctime)); olChk(pen->GetTime(WT_ACCESS, &pstat->atime)); olChk(pen->GetTime(WT_MODIFICATION, &pstat->mtime)); olChk(pwdf->GetClass(&pstat->clsid)); olChk(pwdf->GetStateBits(&pstat->grfStateBits)); ULISet32(pstat->cbSize, 0); } else { #ifdef LARGE_STREAMS ULONGLONG cbSize; #else ULONG cbSize; #endif ptstm = (CTransactedStream *)this; ptstm->GetSize(&cbSize); pstat->cbSize.QuadPart = cbSize; } if ((dwFlags & STATFLAG_NONAME) == 0) { olMem(pstat->pwcsName = (WCHAR *)TaskMemAlloc(_dfnName.GetLength())); memcpy(pstat->pwcsName, _dfnName.GetBuffer(), _dfnName.GetLength()); } else { pstat->pwcsName = NULL; } sc = S_OK; olDebugOut((DEB_ITRACE, "Out PTSetMember::Stat\n")); // Fall through EH_Err: return sc; } //+-------------------------------------------------------------- // // Member: PTSetMember::BeginCommit, public // // Synopsis: calls to derived object // // History: 20-Jan-98 HenryLee Created // //--------------------------------------------------------------- SCODE PTSetMember::BeginCommit(DWORD const dwFlags) { if (_sig == CWRAPPEDDOCFILE_SIG) return ((CWrappedDocFile *)this)->BeginCommit(dwFlags); else if (_sig == CTRANSACTEDSTREAM_SIG) return ((CTransactedStream *)this)->BeginCommit (dwFlags); else olAssert (!"Invalid signature on PTSetMember!"); return STG_E_INVALIDFUNCTION; } //+-------------------------------------------------------------- // // Member: PTSetMember::EndCommit, public // // Synopsis: calls to derived object // // History: 20-Jan-98 HenryLee Created // //--------------------------------------------------------------- void PTSetMember::EndCommit(DFLAGS const df) { if (_sig == CWRAPPEDDOCFILE_SIG) ((CWrappedDocFile *)this)->EndCommit (df); else if (_sig == CTRANSACTEDSTREAM_SIG) ((CTransactedStream *)this)->EndCommit (df); else olAssert (!"Invalid signature on PTSetMember!"); return; } //+-------------------------------------------------------------- // // Member: PTSetMember::Revert, public // // Synopsis: calls to derived object // // History: 20-Jan-98 HenryLee Created // //--------------------------------------------------------------- void PTSetMember::Revert(void) { if (_sig == CWRAPPEDDOCFILE_SIG) ((CWrappedDocFile *)this)->Revert (); else if (_sig == CTRANSACTEDSTREAM_SIG) ((CTransactedStream *)this)->Revert (); else olAssert (!"Invalid signature on PTSetMember!"); return; } //+-------------------------------------------------------------- // // Member: PTSetMember::GetCommitInfo, public // // Synopsis: calls to derived object // // History: 20-Jan-98 HenryLee Created // //--------------------------------------------------------------- #ifdef LARGE_STREAMS void PTSetMember::GetCommitInfo(ULONGLONG *pulRet1, ULONGLONG *pulRet2) #else void PTSetMember::GetCommitInfo(ULONG *pulRet1, ULONG *pulRet2) #endif { if (_sig == CWRAPPEDDOCFILE_SIG) ((CWrappedDocFile *)this)->GetCommitInfo (pulRet1, pulRet2); else if (_sig == CTRANSACTEDSTREAM_SIG) ((CTransactedStream *)this)->GetCommitInfo (pulRet1, pulRet2); else { *pulRet1 = 0; *pulRet2 = 0; olAssert (!"Invalid signature on PTSetMember!"); } return; } //+-------------------------------------------------------------- // // Member: PTSetMember::AddRef, public // // Synopsis: calls to derived object // // History: 20-Jan-98 HenryLee Created // //--------------------------------------------------------------- void PTSetMember::AddRef(void) { if (_sig == CWRAPPEDDOCFILE_SIG) ((CWrappedDocFile *)this)->AddRef (); else if (_sig == CTRANSACTEDSTREAM_SIG) ((CTransactedStream *)this)->AddRef (); else olAssert (!"Invalid signature on PTSetMember!"); return; } //+-------------------------------------------------------------- // // Member: PTSetMember::Release, public // // Synopsis: calls to derived object // // History: 20-Jan-98 HenryLee Created // //--------------------------------------------------------------- void PTSetMember::Release (void) { if (_sig == CWRAPPEDDOCFILE_SIG) ((CWrappedDocFile *)this)->Release (); else if (_sig == CTRANSACTEDSTREAM_SIG) ((CTransactedStream *)this)->Release (); else olAssert (!"Invalid signature on PTSetMember!"); return; }