#pragma once #include "common.h" class AFX_EXT_CLASS CLink { public: CLink(); CLink(CLink* prev); virtual ~CLink(); void InsertAt(CLink* before); void Remove(); void RemoveLink(); unsigned int Count() const; CLink* GetNext() { return mNext; } CLink* GetPrev() { return mPrev; } void SetNext(CLink* l) { mNext = l; } void SetPrev(CLink* l) { mPrev = l; } protected: CLink *mNext; CLink *mPrev; friend class CLinkIterator; friend class T2PeopleLinkIterator; }; class AFX_EXT_CLASS CLinkIterator { public: CLinkIterator(CLink* start); virtual ~CLinkIterator(); BOOL Current(CLink** p); BOOL Prev(CLink** p); BOOL Next(CLink** p); private: CLink *mStart; CLink *mCurrent; };