#ifndef _genericlist_h_ #define _genericlist_h_ ////////////////////////////////////////////////////////////////////////////// // // List Item Identifier // ////////////////////////////////////////////////////////////////////////////// typedef void* ItemID; ////////////////////////////////////////////////////////////////////////////// // // List // ////////////////////////////////////////////////////////////////////////////// class List : public IObject { public: virtual int GetCount() = 0; virtual ItemID GetItem(int index) = 0; virtual int GetIndex(ItemID pitem) = 0; virtual ItemID GetNext(ItemID pitem) = 0; virtual IEventSource* GetChangedEvent() = 0; }; class EmptyList : public List { public: int GetCount() { return 0; } ItemID GetItem(int index) { return NULL; } int GetIndex(ItemID pitem) { return -1; } ItemID GetNext(ItemID pitem) { return NULL; } IEventSource* GetChangedEvent() { return IEventSource::GetNever(); } }; #endif