Listing 3 An example of how the size field can save a recompile

int GetSystemInfo (SYSTEM_INFO *sinfo)
{
    sinfo->num_displays = _getNumDisplays ();
    sinfo->num_printers = _getNumPrinters();
    sinfo->num_drives =   _getNumDrives();
    if (sinfo->size == sizeof (oSYSTEM_INFO))
    {
         /* don't touch extended fields */
    }
    if (sinfo->size == sizeof (SYSTEM_INFO))
    {
         /* fill extended fields */
         sinfo->num_tapes =   _getNumTapes();
    }
    return 0;
}

/* End of File */