Top Description Inners Fields Methods
com.sun.jna.platform.win32

public Interface Winspool

extends StdCallLibrary
Imports
com.sun.jna.Memory, .Native, .Pointer, .Structure, .Structure.FieldOrder, .Union, com.sun.jna.platform.win32.WinBase.SYSTEMTIME, .WinDef.DWORD, .WinDef.DWORDByReference, .WinDef.INT_PTR, .WinDef.LPVOID, .WinNT.HANDLE, .WinNT.HANDLEByReference, com.sun.jna.ptr.IntByReference, .PointerByReference, com.sun.jna.win32.StdCallLibrary, .W32APIOptions

Ported from Winspool.h. Windows SDK 6.0a
Author
dblock[at]dblock.org

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static class
Winspool.JOB_INFO_1

The JOB_INFO_1 structure specifies print-job information such as the job-identifier value, the name of the printer for which the job is spooled, the name of the machine that created the print job, the name of the user that owns the print job, and so on.

public static class
Winspool.LPPRINTER_DEFAULTS

The PRINTER_DEFAULTS structure specifies the default data type, environment, initialization data, and access rights for a printer.

public static class
Winspool.NOTIFY_DATA

A union of data information based on the Type and Field members of PRINTER_NOTIFY_INFO_DATA

public static class
Winspool.NOTIFY_DATA_DATA

A struct containing non-numeric notification data - conditional content of a NOTIFY_DATA union.

public static class
Winspool.PRINTER_INFO_1

The PRINTER_INFO_1 structure specifies general printer information.

public static class
Winspool.PRINTER_INFO_2

The PRINTER_INFO_2 structure specifies detailed printer information.

public static class
Winspool.PRINTER_INFO_4

The PRINTER_INFO_4 structure specifies general printer information.

public static class
Winspool.PRINTER_NOTIFY_INFO

The PRINTER_NOTIFY_INFO structure contains printer information returned by the FindNextPrinterChangeNotification function.

public static class
Winspool.PRINTER_NOTIFY_INFO_DATA

The PRINTER_NOTIFY_INFO_DATA structure identifies a job or printer information field and provides the current data for that field.

public static class
Winspool.PRINTER_NOTIFY_OPTIONS

The PRINTER_NOTIFY_OPTIONS structure specifies options for a change notification object that monitors a printer or print server.

public static class
Winspool.PRINTER_NOTIFY_OPTIONS_TYPE

The PRINTER_NOTIFY_OPTIONS_TYPE structure specifies the set of printer or job information fields to be monitored by a printer change notification object.

Field Summary

Modifier and TypeField and Description
public static final int
public static final Winspool
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final short
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
Inherited from com.sun.jna.win32.StdCallLibrary:
FUNCTION_MAPPERSTDCALL_CONVENTION

Method Summary

Modifier and TypeMethod and Description
public boolean

Returns:

If the function succeeds, the return value is a nonzero value. If the function fails, the return value is zero.
ClosePrinter
(WinNT.HANDLE
A handle to the printer object to be closed. This handle is returned by the OpenPrinter or AddPrinter function.
hPrinter
)

The ClosePrinter function closes the specified printer object.

public boolean

Returns:

If the function succeeds, the return value is a nonzero value. If the function fails, the return value is zero.
EnumJobs
(WinNT.HANDLE
A handle to the printer object whose print jobs the function enumerates. Use the OpenPrinter or AddPrinter function to retrieve a printer handle.
hPrinter
,
int
The zero-based position within the print queue of the first print job to enumerate. For example, a value of 0 specifies that enumeration should begin at the first print job in the print queue; a value of 9 specifies that enumeration should begin at the tenth print job in the print queue.
FirstJob
,
int
The total number of print jobs to enumerate.
NoJobs
,
int
The type of information returned in the pJob buffer.
Level
,
Pointer
A pointer to a buffer that receives an array of JOB_INFO_1, JOB_INFO_2, or JOB_INFO_3 structures. The buffer must be large enough to receive the array of structures and any strings or other data to which the structure members point.
pJob
,
int
The size, in bytes, of the pJob buffer.
cbBuf
,
IntByReference
A pointer to a variable that receives the number of bytes copied if the function succeeds. If the function fails, the variable receives the number of bytes required.
pcbNeeded
,
IntByReference
A pointer to a variable that receives the number of JOB_INFO_1, JOB_INFO_2, or JOB_INFO_3 structures returned in the pJob buffer.
pcReturned
)

The EnumJobs function retrieves information about a specified set of print jobs for a specified printer.

public boolean

Returns:

If the function succeeds, the return value is a nonzero value. If the function fails, the return value is zero.
EnumPrinters
(int
The types of print objects that the function should enumerate.
Flags
,
String
If Level is 1, Flags contains PRINTER_ENUM_NAME, and Name is non-NULL, then Name is a pointer to a null-terminated string that specifies the name of the object to enumerate. This string can be the name of a server, a domain, or a print provider. If Level is 1, Flags contains PRINTER_ENUM_NAME, and Name is NULL, then the function enumerates the available print providers. If Level is 1, Flags contains PRINTER_ENUM_REMOTE, and Name is NULL, then the function enumerates the printers in the user's domain. If Level is 2 or 5,Name is a pointer to a null-terminated string that specifies the name of a server whose printers are to be enumerated. If this string is NULL, then the function enumerates the printers installed on the local computer. If Level is 4, Name should be NULL. The function always queries on the local computer. When Name is NULL, setting Flags to PRINTER_ENUM_LOCAL | PRINTER_ENUM_CONNECTIONS enumerates printers that are installed on the local machine. These printers include those that are physically attached to the local machine as well as remote printers to which it has a network connection. When Name is not NULL, setting Flags to PRINTER_ENUM_LOCAL | PRINTER_ENUM_NAME enumerates the local printers that are installed on the server Name.
Name
,
int
The type of data structures pointed to by pPrinterEnum. Valid values are 1, 2, 4, and 5, which correspond to the PRINTER_INFO_1, PRINTER_INFO_2 , PRINTER_INFO_4, and PRINTER_INFO_5 data structures.
Level
,
Pointer
A pointer to a buffer that receives an array of PRINTER_INFO_1, PRINTER_INFO_2, PRINTER_INFO_4, or PRINTER_INFO_5 structures. Each structure contains data that describes an available print object. If Level is 1, the array contains PRINTER_INFO_1 structures. If Level is 2, the array contains PRINTER_INFO_2 structures. If Level is 4, the array contains PRINTER_INFO_4 structures. If Level is 5, the array contains PRINTER_INFO_5 structures. The buffer must be large enough to receive the array of data structures and any strings or other data to which the structure members point. If the buffer is too small, the pcbNeeded parameter returns the required buffer size.
pPrinterEnum
,
int
The size, in bytes, of the buffer pointed to by pPrinterEnum.
cbBuf
,
IntByReference
A pointer to a value that receives the number of bytes copied if the function succeeds or the number of bytes required if cbBuf is too small.
pcbNeeded
,
IntByReference
A pointer to a value that receives the number of PRINTER_INFO_1, PRINTER_INFO_2 , PRINTER_INFO_4, or PRINTER_INFO_5 structures that the function returns in the array to which pPrinterEnum points.
pcReturned
)

The EnumPrinters function enumerates available printers, print servers, domains, or print providers.

public boolean

Returns:

If the function succeeds, the return value is a nonzero value. If the function fails, the return value is zero.
FindClosePrinterChangeNotification
(WinNT.HANDLE
[in] A handle to the change notification object to be closed. This is a handle created by calling the FindFirstPrinterChangeNotification function.
hChange
)

The FindClosePrinterChangeNotification function closes a change notification object created by calling the FindFirstPrinterChangeNotification function.

public WinNT.HANDLE
FindFirstPrinterChangeNotification(WinNT.HANDLE hPrinter, int fdwFilter, int fdwOptions, WinDef.LPVOID pPrinterNotifyOptions)

Deprecated
public WinNT.HANDLE

Returns:

If the function succeeds, the return value is a handle to a change notification object associated with the specified printer or print server. If the function fails, the return value is INVALID_HANDLE_VALUE.
FindFirstPrinterChangeNotification
(WinNT.HANDLE
[in] A handle to the printer or print server that you want to monitor. Use the OpenPrinter or AddPrinter function to retrieve a printer handle.
hPrinter
,
int
The conditions that will cause the change notification object to enter a signaled state. A change notification occurs when one or more of the specified conditions are met. The fdwFilter parameter can be zero if pPrinterNotifyOptions is non-NULL.
fdwFilter
,
int
Reserved; must be zero.
fdwOptions
,
Winspool.PRINTER_NOTIFY_OPTIONS
[in, optional] A pointer to a PRINTER_NOTIFY_OPTIONS structure. The pTypes member of this structure is an array of one or more PRINTER_NOTIFY_OPTIONS_TYPE structures, each of which specifies a printer information field to monitor. A change notification occurs when one or more of the specified fields changes. When a change occurs, the FindNextPrinterChangeNotification function can retrieve the new printer information. This parameter can be NULL if fdwFilter is nonzero. For a list of fields that can be monitored, see PRINTER_NOTIFY_OPTIONS_TYPE.
pPrinterNotifyOptions
)

The FindFirstPrinterChangeNotification function creates a change notification object and returns a handle to the object.

public boolean
FindNextPrinterChangeNotification(WinNT.HANDLE hChange, WinDef.DWORDByReference pdwChange, WinDef.LPVOID pPrinterNotifyOptions, WinDef.LPVOID ppPrinterNotifyInfo)

Deprecated
public boolean

Returns:

If the function succeeds, the return value is a nonzero value. If the function fails, the return value is zero.
FindNextPrinterChangeNotification
(WinNT.HANDLE
[in] A handle to a change notification object associated with a printer or print server. You obtain such a handle by calling the FindFirstPrinterChangeNotification function. The operating system sets this change notification object to the signaled state when it detects one of the changes specified in the object's change notification filter.
hChange
,
WinDef.DWORDByReference
[out, optional] A pointer to a variable whose bits are set to indicate the changes that occurred to cause the most recent notification. The bit flags that might be set correspond to those specified in the fdwFilter parameter of the FindFirstPrinterChangeNotification call. The system sets one or more of the following bit flags.
pdwChange
,
Winspool.PRINTER_NOTIFY_OPTIONS
[in, optional] A pointer to a PRINTER_NOTIFY_OPTIONS structure. Set the Flags member of this structure to PRINTER_NOTIFY_OPTIONS_REFRESH, to cause the function to return the current data for all monitored printer information fields. The function ignores all other members of the structure. This parameter can be NULL.
pPrinterNotifyOptions
,
PointerByReference
[out, optional] A pointer to a pointer variable that receives a pointer to a system-allocated, read-only buffer. Call the FreePrinterNotifyInfo function to free the buffer when you are finished with it. This parameter can be NULL if no information is required. The buffer contains a PRINTER_NOTIFY_INFO structure, which contains an array of PRINTER_NOTIFY_INFO_DATA structures. Each element of the array contains information about one of the fields specified in the pPrinterNotifyOptions parameter of the FindFirstPrinterChangeNotification call. Typically, the function provides data only for the fields that changed to cause the most recent notification. However, if the structure pointed to by the pPrinterNotifyOptions parameter specifies PRINTER_NOTIFY_OPTIONS_REFRESH, the function provides data for all monitored fields. If the PRINTER_NOTIFY_INFO_DISCARDED bit is set in the Flags member of the PRINTER_NOTIFY_INFO structure, an overflow or error occurred, and notifications may have been lost. In this case, no additional notifications will be sent until you make a second FindNextPrinterChangeNotification call that specifies PRINTER_NOTIFY_OPTIONS_REFRESH.
ppPrinterNotifyInfo
)

The FindNextPrinterChangeNotification function retrieves information about the most recent change notification for a change notification object associated with a printer or print server.

public boolean

Returns:

If the function succeeds, the return value is a nonzero value. If the function fails, the return value is zero.
FreePrinterNotifyInfo
(Pointer
[in] Pointer to a PRINTER_NOTIFY_INFO buffer returned from a call to the FindNextPrinterChangeNotification function. FreePrinterNotifyInfo deallocates this buffer.
pPrinterNotifyInfo
)

The FreePrinterNotifyInfo function frees a system-allocated buffer created by the FindNextPrinterChangeNotification function.

public boolean

Returns:

If the function succeeds, the return value is a nonzero value. If the function fails, the return value is zero.
GetPrinter
(WinNT.HANDLE
A handle to the printer for which the function retrieves information. Use the OpenPrinter or AddPrinter function to retrieve a printer handle.
hPrinter
,
int
The level or type of structure that the function stores into the buffer pointed to by pPrinter. This value can be 1, 2, 3, 4, 5, 6, 7, 8 or 9.
Level
,
Pointer
A pointer to a buffer that receives a structure containing information about the specified printer. The buffer must be large enough to receive the structure and any strings or other data to which the structure members point. If the buffer is too small, the pcbNeeded parameter returns the required buffer size. The type of structure is determined by the value of Level.
pPrinter
,
int
The size, in bytes, of the buffer pointed to by pPrinter.
cbBuf
,
IntByReference
A pointer to a variable that the function sets to the size, in bytes, of the printer information. If cbBuf is smaller than this value, GetPrinter fails, and the value represents the required buffer size. If cbBuf is equal to or greater than this value, GetPrinter succeeds, and the value represents the number of bytes stored in the buffer.
pcbNeeded
)

The GetPrinter function retrieves information about a specified printer.

public boolean

Returns:

If the function succeeds, the return value is a nonzero value. If the function fails, the return value is zero.
OpenPrinter
(String
[in] A pointer to a null-terminated string that specifies the name of the printer or print server, the printer object, the XcvMonitor, or the XcvPort. For a printer object use: PrinterName, Job xxxx. For an XcvMonitor, use: ServerName, XcvMonitor MonitorName. For an XcvPort, use: ServerName, XcvPort PortName. If NULL, it indicates the local printer server.
pPrinterName
,
WinNT.HANDLEByReference
[out] A pointer to a variable that receives a handle (not thread safe) to the open printer or print server object. The phPrinter parameter can return an Xcv handle for use with the XcvData function. For more information about XcvData, see the DDK.
phPrinter
,
Winspool.LPPRINTER_DEFAULTS
[in] A pointer to a PRINTER_DEFAULTS structure. This value can be NULL.
pDefault
)

The OpenPrinter function retrieves a handle to the specified printer or print server or other types of handles in the print subsystem.

public boolean

Returns:

If the function succeeds, the return value is a nonzero value. If the function fails, the return value is zero.
SetJob
(WinNT.HANDLE
[in] A handle to the printer object of interest. Use the OpenPrinter, OpenPrinter2, or AddPrinter function to retrieve a printer handle.
hPrinter
,
int
[in] Identifier that specifies the print job. You obtain a print job identifier by calling the AddJob function or the StartDoc function. If the Level parameter is set to 3, the JobId parameter must match theJobId member of the JOB_INFO_3 structure pointed to by pJob
JobId
,
int
[in] The type of job information structure pointed to by the pJob parameter. All versions of Windows: You can set the Level parameter to 0, 1, or 2. When you set Level to 0, pJob be NULL. Use these values when you are not setting any print job parameters. You can also set the Level parameter to 3. Starting with Windows Vista: You can also set the Level parameter to 4.
Level
,
Pointer
[in] A pointer to a structure that sets the print job parameters. All versions of Windows: pJob can point to a JOB_INFO_1 or JOB_INFO_2 structure. pJob can also point to a JOB_INFO_3 structure. You must have JOB_ACCESS_ADMINISTER access permission for the jobs specified by the JobId and NextJobId members of the JOB_INFO_3 structure. Starting with Windows Vista: pJob can also point to a JOB_INFO_4 structure. If the Level parameter is 0, pJob should be NULL.
pJob
,
int
[in] The print job operation to perform. This parameter can be one of the JOB_CONTROL_XXX values. To cancel a job, do NOT use JOB_CONTROL_CANCEL, intead use JOB_CONTROL_DELETE to delete a job.
Command
)

The SetJob function pauses, resumes, cancels, or restarts a print job on a specified printer.

public boolean

Returns:

If the function succeeds, the return value is a nonzero value. If the function fails, the return value is zero. If Level is 7 and the publish action failed, SetPrinter returns ERROR_IO_PENDING and attempts to complete the action in the background. If Level is 7 and the update action failed, SetPrinter returns ERROR_FILE_NOT_FOUND.
SetPrinter
(WinNT.HANDLE
[in] A handle to the printer. Use the OpenPrinter, OpenPrinter2, or AddPrinter function to retrieve a printer handle.
hPrinter
,
int
[in] The type of data that the function stores into the buffer pointed to by pPrinter. If the Command parameter is not equal to zero, the Level parameter must be zero. This value can be 0, 2, 3, 4, 5, 6, 7, 8, or 9.
Level
,
Pointer
A pointer to a buffer containing data to set for the printer, or containing information for the command specified by the Command parameter. The type of data in the buffer is determined by the value of Level.
pPrinter
,
int
The action to perform. If the Level parameter is nonzero, set the value of this parameter to zero. In this case, the printer retains its current state and the function reconfigures the printer data as specified by the Level and pPrinter parameters. If the Level parameter is zero, set the value of this parameter to one of the PRINTER_CONTROL_XXX values.
Command
)

The SetPrinter function sets the data for a specified printer or sets the state of the specified printer by pausing printing, resuming printing, or clearing all print jobs.