VFP baseclass

Specifies the base class of the created wrapper class, either Exception or Relation. Exception is the class with the least overhead available in VFP 9.

Character set

For many windows api functions there are actually 2 implementations, one uses the Ansi character set and the other one uses the Unicode character set.
There are several generic string types, e.g. LPTSTR, which map either to a Ansi or Unicode string, this setting specifies how these types are interpreted.

Pragma pack

The Pragma pack option controls the packing alignment for structures and unions.
For structures and unions in the windows api this option rarely needs to be adjusted.
Just try the default first, if you encounter problems when passing the struct to the C function
you can check if the correct offset for the individual members is computed by comparing the ouput
of Generate offset list with the output of the compiled C program generated by Generate C offset code.

Buffered

This option is a special case of memory managment for the structure.
Many windows api functions expect you to pass one big memory block into which the function then stores an array of a specific struct including all data these structs reference.
Check this option if you intend to use such a function e.g. EnumServicesStatusEx, EnumDependentServices.
This option also makes the struct read only.

Array indexing

This option adds special code to allow you to easily loop over arrays of the structure.
If you set the option Buffered it's highly likely that you also need to set this one.

Treat type BYTE as

Specifies how to want to read and write any members of type BYTE in the structure.

ReadOnly

Produces only Access methods for the members of the struct or union.

Assertions

If checked ASSERT statements in each Assign method are generated which validate the datatype and range of the assigned value.

Memory allocator

Specifies which memory allocation functions should be used.
The FLL Allocator option will produce code that uses the custom FLL heap functions: AllocMem, ReAllocMem, FreeMem.
The Global Allocator option will produce code that uses the FLL global heap functions: AllocHGlobal, ReAllocHGlobal, FreeHGlobal which wrap the GlobalAlloc, GlobalReAlloc and GlobalFree windows api functions.

Memory management

This option specifies how the generated wrapper class handles memory.
responsible produces code in the generated class to allocate and free the needed memory.
not responsible does not produce any memory management code, use this for structures which are only used as part of other structures.
context dependet produces code for both of the above cases. A prime example for this use case is the RECT structure,
which is often used inside other structures but also needs to be passed individually in many api functions.