Windows2003-3790/sdktools/mep/browser/mbrmake/list.h
2020-09-30 16:53:55 +02:00

42 lines
989 B
C

// list.h
//
// a VM growable array package
VA VaAddList(VA far *vaList, LPV lpvData, WORD cbData, WORD grp);
WORD CItemsList(VA vaList);
WORD CItemsIterate(VA FAR *vaData, VA FAR *vaNext);
#define ENM_LIST(start, type) \
{ \
VA va##type##list = (start); \
VA va##type##s; \
int cnt##type, idx##type; \
while (cnt##type = CItemsIterate(&va##type##s, &va##type##list)) {\
g##type(va##type##s); \
for (idx##type = 0; idx##type < cnt##type; idx##type++, (&c##type)++) {
#define ENM_END } } }
#define ENM_PUT(type) DirtyVa(va##type##s)
#define ENM_VA(type) (va##type##s + sizeof(c##type)*idx##type)
#define ENM_BREAK(type) va##type##list = 0; break;
//
// example use of ENM_LIST
//
//
// ENM_LIST (vaPropList, PROP) {
//
// ... some things using CPROP (like below) ..
//
// printf("%s\n", GetAtomStr(cPROP.vaNameSym));
//
// ... other things using cPROP...
//
// } ENM_END