The EnumForms function enumerates the forms supported by the specified printer.
BOOL EnumForms(
  HANDLE hPrinter,    // handle to printer object
  DWORD Level,        // data-structure level
  LPBYTE pForm,       // points to buffer that receives form info. 
                      // structure array
  DWORD cbBuf,        // count of bytes in buffer
  LPDWORD pcbNeeded,  // points to variable to receive count of 
                      // bytes copied or required
  LPDWORD pcReturned  // points to variable to receive count of 
                      // structures copied
);
 If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call GetLastError.
The printer-object handle hPrinter is normally obtained by calling the OpenPrinter function. The AddPrinter function can also be used.
  Windows NT: Requires version 3.1 or later.
  Windows: Unsupported.
  Windows CE: Unsupported.
  Header: Declared in winspool.h.
  Import Library: Use winspool.lib.
  Unicode: Implemented as Unicode and ANSI versions on Windows NT.
Printing and Print Spooler Overview, Printing and Print Spooler Functions, AddPrinter, FORM_INFO_1, OpenPrinter