EngEnumForms

BOOL EngEnumForms(

    HANDLE  hPrinter,
   DWORD  dwLevel,
   LPBYTE  lpbForms,
   DWORD  cbBuf,
   LPDWORD  pcbNeeded,
   LPDWORD  pcbReturned
  );

EngEnumForms enumerates the forms supported by the specified printer.

Parameters

hPrinter

PDEV handle of the printer for which the forms should be enumerated. This is the handle that is passed as the hDriver parameter of DrvEnablePDEV.

dwLevel

Specifies the version of the structure pointed to by lpbForms. This value must be 1, which indicates that the enumerated forms are to be returned in FORM_1_INFO structures.

lpbForms

Pointer to an array of bytes in which the enumerated FORM_INFO_1 structures are written.

cbBuf

Specifies the size, in bytes, of lpbForms.

pcbNeeded

Address of the value that specifies the number of bytes copied into lpbForm if the copy is completed successfully. If lpbForms is too small to contain all the enumerated forms’ data, this parameter specifies the number of bytes required.

pcbReturned

Address of the value that specifies the number of FORM_INFO_1 structures copied into lpbForms.

Return Value

EngEnumForms returns TRUE if all parameters are valid and the enumerated form data is successfully copied into lpbForms. Otherwise, it returns FALSE and an error message is logged. To get error information, call EngGetLastError.

Comments

A printer driver can call EngEnumForms to have GDI obtain the list of forms supported by a particular printer. The enumerated information is returned as an array of FORM_INFO_1 structures pointed to by lpbForms. If the array pointed to by lpbForms is not large enough to hold the enumerated data, the requisite array size is instead returned in pcbNeeded.

See Also

DrvEnablePDEV, EngGetLastError