The structures and flags of the IFFParse library are defined in the include files <libraries/iffparse.h> and <libraries/iffparse.i>. IFF files are manipulated through a structure called an IFFHandle. Only some of the fields in the IFFHandle are publicly documented. The rest are managed internally by IFFParse. This handle is passed to all IFFParse functions, and contains the current parse state and position in the file. An IFFHandle is obtained by calling AllocIFF(), and freed through FreeIFF(). This is the only legal way to obtain and dispose of an IFFHandle. The public portion of if IFFHandle is defined as follows: /* * Structure associated with an active IFF stream. * "iff_Stream" is a value used by the client's read/write/seek * functions - it will not be accessed by the library itself and * can have any value (could even be a pointer or a BPTR). */ struct IFFHandle { ULONG iff_Stream; ULONG iff_Flags; LONG iff_Depth; /* Depth of context stack. */ /* There are private fields hiding here. */ };