uLib  User mode C/C++ extended API library for Win32 programmers.
ListFunc.h File Reference

Go to the source code of this file.

Classes

struct  LIST_ENTRY
 
struct  SINGLE_LIST_ENTRY
 
class  DLinkList
 
class  SLinkList
 

Macros

#define InitializeListEntry(E)   (E)->Flink = (E)->Blink = (E)
 
#define _InitializeListEntry(E)   _InitializeListHead( (PLIST_ENTRY)(E) )
 
#define UnlinkListEntry(E)   InitializeListEntry( E )
 

Typedefs

typedef struct _LIST_ENTRY * PLIST_ENTRY
 
typedef struct _SINGLE_LIST_ENTRY * PSINGLE_LIST_ENTRY
 
typedef class DLinkListPDLinkList
 
typedef bool(__stdcall * PDListFunc) (PLIST_ENTRY Entry, void *UserData)
 
typedef int(__stdcall * PDListComp) (PLIST_ENTRY X, PLIST_ENTRY Y, void *UserData)
 
typedef class SLinkListPSLinkList
 
typedef bool(__stdcall * PSListFunc) (PSINGLE_LIST_ENTRY Entry, void *UserData)
 

Functions

void _InitializeListHead (PLIST_ENTRY ListHead)
 
bool _IsListEmpty (PLIST_ENTRY ListHead)
 
void _InsertTailList (PLIST_ENTRY ListHead, PLIST_ENTRY Entry)
 
void _InsertHeadList (PLIST_ENTRY ListHead, PLIST_ENTRY Entry)
 
void _RemoveEntryList (PLIST_ENTRY Entry)
 
PLIST_ENTRY _RemoveHeadList (PLIST_ENTRY ListHead)
 
PLIST_ENTRY _RemoveTailList (PLIST_ENTRY ListHead)
 
UINT GetListEntryCount (PLIST_ENTRY ListHead)
 
bool ListForEach (PLIST_ENTRY ListHead, bool(__stdcall *Action)(PLIST_ENTRY Entry, void *UserData), void *UserData)
 
void AttachHeadlessList (OUT PLIST_ENTRY Head, IN PLIST_ENTRY Circular)
 
void _InitializeEntryList (PSINGLE_LIST_ENTRY EntryOrHead)
 
void _PushEntryList (PSINGLE_LIST_ENTRY ListHead, PSINGLE_LIST_ENTRY Entry)
 
PSINGLE_LIST_ENTRY _PopEntryList (PSINGLE_LIST_ENTRY ListHead)