Leaked source code of windows server 2003
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.
|
|
//+--------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1991 - 1992.
//
// File: iter.cxx
//
// Contents: CDocFileIterator implementation
//
//---------------------------------------------------------------
#include "dfhead.cxx"
#include "h/msfiter.hxx"
#include "iter.hxx"
//+--------------------------------------------------------------
//
// Member: CDocFileIterator::CDocFileIterator, public
//
// Synopsis: Empty object ctor
//
//---------------------------------------------------------------
CDocFileIterator::CDocFileIterator(void) { olDebugOut((DEB_ITRACE, "In CDocFileIterator::CDocFileIterator()\n")); _pi = NULL; olDebugOut((DEB_ITRACE, "Out CDocFileIterator::CDocFileIterator\n")); }
//+--------------------------------------------------------------
//
// Member: CDocFileIterator::Init
//
// Synopsis: Constructor
//
// Arguments: [ph] - Multistream handle
//
// Returns: Appropriate status code
//
//---------------------------------------------------------------
SCODE CDocFileIterator::Init(CStgHandle *ph) { SCODE sc;
olDebugOut((DEB_ITRACE, "In CDocFileIterator::Init(%p)\n", ph)); if (FAILED(sc = ph->GetIterator(&_pi))) _pi = NULL; olDebugOut((DEB_ITRACE, "Out CDocFileIterator::Init\n")); return sc; }
//+--------------------------------------------------------------
//
// Member: CDocFileIterator::~CDocFileIterator
//
// Synopsis: Destructor
//
//---------------------------------------------------------------
CDocFileIterator::~CDocFileIterator(void) { olDebugOut((DEB_ITRACE, "In CDocFileIterator::~CDocFileIterator\n")); if (_pi) _pi->Release(); olDebugOut((DEB_ITRACE, "Out CDocFileIterator::~CDocFileIterator\n")); }
//+--------------------------------------------------------------
//
// Member: CDocFileIterator::GetNext
//
// Synopsis: Get the next entry
//
// Arguments: [pstatstg] - Buffer to return information in
//
// Returns: Appropriate status code
//
// Modifies: [pstatstg]
//
//---------------------------------------------------------------
SCODE CDocFileIterator::GetNext(STATSTGW *pstatstg) { SCODE sc;
olDebugOut((DEB_ITRACE, "In CDocFileIterator::GetNext(%p)\n", pstatstg));
if (FAILED(sc = _pi->GetNext(pstatstg))) { #if DEVL == 1
// Null the name to clean up some debug prints
pstatstg->pwcsName = NULL; #endif
}
olDebugOut((DEB_ITRACE, "Out CDocFileIterator::GetNext => %ws, %ld\n", pstatstg->pwcsName, pstatstg->type)); return sc; }
//+--------------------------------------------------------------
//
// Member: CDocFileIterator::BufferGetNext, public
//
// Synopsis: Fast, fixed-space version of GetNext
//
// Arguments: [pib] - Buffer to fill in
//
// Returns: Appropriate status code
//
// Modifies: [pib]
//
//---------------------------------------------------------------
SCODE CDocFileIterator::BufferGetNext(SIterBuffer *pib) { return _pi->BufferGetNext(pib); }
//+--------------------------------------------------------------
//
// Member: CDocFileIterator::Release, public
//
// Synopsis: Releases resources for an iterator
//
// Returns: Appropriate status code
//
//---------------------------------------------------------------
void CDocFileIterator::Release(void) { olDebugOut((DEB_ITRACE, "In CDocFileIterator::Release()\n")); delete this; olDebugOut((DEB_ITRACE, "Out CDocFileIterator::Release\n")); }
|