SetForm function

The SetForm function sets the form information for the specified printer.

Syntax

BOOL SetForm(
  _In_ HANDLE hPrinter,
  _In_ LPTSTR pFormName,
  _In_ DWORD  Level,
  _In_ LPTSTR pForm
);

Parameters

hPrinter [in]

A handle to the printer for which the form information is set. Use the OpenPrinter or AddPrinter function to retrieve a printer handle.

pFormName [in]

A pointer to a null-terminated string that specifies the form name for which the form information is set.

Level [in]

The version of the structure to which pForm points. This value must be 1 or 2.

pForm [in]

A pointer to a FORM_INFO_1 or FORM_INFO_2 structure.

Return value

If the function succeeds, the return value is a nonzero value.

If the function fails, the return value is zero.

Remarks

Note

This is a blocking or synchronous function and might not return immediately. How quickly this function returns depends on run-time factors such as network status, print server configuration, and printer driver implementation factors that are difficult to predict when writing an application. Calling this function from a thread that manages interaction with the user interface could make the application appear to be unresponsive.

SetForm can be called multiple times for an existing FORM_INFO_2, each call adding additional pairs of pDisplayName and wLangId values. All languages versions of the form will get the Size and ImageableArea values of the FORM_INFO_2 in the most recent call to SetForm.

If the caller is remote and the Level is 2, the StringType value of the FORM_INFO_2 cannot be STRING_MUIDLL.

Requirements

Requirement Value
Minimum supported client
Windows 2000 Professional [desktop apps only]
Minimum supported server
Windows 2000 Server [desktop apps only]
Header
Winspool.h (include Windows.h)
Library
Winspool.lib
DLL
Winspool.drv
Unicode and ANSI names
SetFormW (Unicode) and SetFormA (ANSI)

See also

Printing

Print Spooler API Functions

GetForm

OpenPrinter

FORM_INFO_1

FORM_INFO_2