The allocatetagitems() function can be used to create a new tag array ready for use. The tag array should be passed to freetagitems() when the application is done with it. struct TagItem *tags; ULONG tags_needed; /* Indicate how many tags we need */ tags_needed = 10; /* Allocate a tag array */ if (tags = AllocateTagItems(tags_needed)) { /* ...do something with the array... */ /* Free the array when your done with it */ FreeTagItems (tags); }