92 lines
2.2 KiB
C++
92 lines
2.2 KiB
C++
//+---------------------------------------------------------------------------
|
|
//
|
|
// 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
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// 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
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
#ifdef CODESEGMENTS
|
|
#pragma code_seg(SEG_PTSetMember_STAT)
|
|
#endif
|
|
|
|
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
|
|
{
|
|
ULONG cbSize;
|
|
|
|
ptstm = (CTransactedStream *)this;
|
|
ptstm->GetSize(&cbSize);
|
|
ULISet32(pstat->cbSize, 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;
|
|
}
|