#ifndef _LLIST_ #define _LLIST_ typedef class LLIST_NODE * PLLIST_NODE; class LLIST_NODE { friend class LLIST; private: LPVOID buff; LPVOID Next; BOOL FreeBuff; public: LLIST_NODE(LPVOID Buff,DWORD Size); LLIST_NODE(); LLIST_NODE(DWORD Size); ~LLIST_NODE(); }; typedef class LLIST * PLLIST; class LLIST { private: PLLIST_NODE Start; PLLIST_NODE Last; PLLIST_NODE Cur; DWORD size; DWORD count; DWORD DefaultAlolcSize; public: LLIST(DWORD DefaultSize); LLIST(); ~LLIST(); VOID Clear(VOID); VOID SetSize(DWORD Size) {DefaultAlolcSize = Size;}; LPVOID First(VOID); LPVOID Next(VOID); DWORD Count(VOID){return(count); }; DWORD Size(VOID) {return(size); }; LPVOID &Append(LPVOID Buff); LPVOID &Append(VOID) { return(Append(DefaultAlolcSize));}; LPVOID &Append(LPVOID buff,DWORD Size); LPVOID &Append(DWORD Size); LPVOID &Enum(DWORD Num); LPVOID &operator[](DWORD Index); }; #endif