//+--------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1992 - 1992. // // File: peiter.hxx // // Contents: PExposedIterator class // // Classes: PExposedIterator // // Notes: PExposedIterator is a partial exposed iterator // implementation used by both CExposedIterator // and CExposedPropertyIterator // //---------------------------------------------------------------------------- #ifndef __PEITER_HXX__ #define __PEITER_HXX__ #include interface PExposedIterator { public: SCODE hSkip(ULONG celt); inline SCODE hReset(void); inline LONG hAddRef(void); LONG hRelease(void); SCODE hQueryInterface(REFIID iid, REFIID riidSelf, void **ppv); protected: CPubIter *_ppi; ULONG _ulOffset; LONG _cReferences; ULONG _ulAccessLockBase; ULONG _sig; }; //+--------------------------------------------------------------------------- // // Member: PExposedIterator::hReset, public // // Synopsis: Reset help // //---------------------------------------------------------------------------- SCODE PExposedIterator::hReset(void) { SCODE sc; olDebugOut((DEB_ITRACE, "In PExposedIterator::hReset:%p()\n", this)); if (SUCCEEDED(sc = _ppi->CheckReverted())) _ulOffset = 0; olDebugOut((DEB_ITRACE, "Out PExposedIterator::hReset\n")); return sc; } //+--------------------------------------------------------------------------- // // Member: PExposedIterator::hAddRef, public // // Synopsis: AddRef helper // //---------------------------------------------------------------------------- LONG PExposedIterator::hAddRef(void) { olDebugOut((DEB_ITRACE, "In PExposedIterator::hAddRef:%p()\n", this)); AtomicInc(&_cReferences); olDebugOut((DEB_ITRACE, "Out PExposedIterator::hAddRef\n")); return _cReferences; } #endif // #ifndef __PEITER_HXX__