# Automatically generated by make_symbols; DO NOT EDIT!! 
#
# Perl definitions for header file winspool.h
#


package winspool;

use strict;

use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);

require Exporter;

@ISA = qw(Exporter);
@EXPORT = qw(
    DEF_PRIORITY
    DI_CHANNEL
    DI_READ_SPOOL_JOB
    FORM_BUILTIN
    FORM_PRINTER
    FORM_USER
    JOB_CONTROL_CANCEL
    JOB_CONTROL_DELETE
    JOB_CONTROL_LAST_PAGE_EJECTED
    JOB_CONTROL_PAUSE
    JOB_CONTROL_RESTART
    JOB_CONTROL_RESUME
    JOB_CONTROL_SENT_TO_PRINTER
    JOB_NOTIFY_FIELD_BYTES_PRINTED
    JOB_NOTIFY_FIELD_DATATYPE
    JOB_NOTIFY_FIELD_DEVMODE
    JOB_NOTIFY_FIELD_DOCUMENT
    JOB_NOTIFY_FIELD_DRIVER_NAME
    JOB_NOTIFY_FIELD_MACHINE_NAME
    JOB_NOTIFY_FIELD_NOTIFY_NAME
    JOB_NOTIFY_FIELD_PAGES_PRINTED
    JOB_NOTIFY_FIELD_PARAMETERS
    JOB_NOTIFY_FIELD_PORT_NAME
    JOB_NOTIFY_FIELD_POSITION
    JOB_NOTIFY_FIELD_PRINTER_NAME
    JOB_NOTIFY_FIELD_PRINT_PROCESSOR
    JOB_NOTIFY_FIELD_PRIORITY
    JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR
    JOB_NOTIFY_FIELD_START_TIME
    JOB_NOTIFY_FIELD_STATUS
    JOB_NOTIFY_FIELD_STATUS_STRING
    JOB_NOTIFY_FIELD_SUBMITTED
    JOB_NOTIFY_FIELD_TIME
    JOB_NOTIFY_FIELD_TOTAL_BYTES
    JOB_NOTIFY_FIELD_TOTAL_PAGES
    JOB_NOTIFY_FIELD_UNTIL_TIME
    JOB_NOTIFY_FIELD_USER_NAME
    JOB_NOTIFY_TYPE
    JOB_POSITION_UNSPECIFIED
    JOB_STATUS_BLOCKED_DEVQ
    JOB_STATUS_DELETED
    JOB_STATUS_DELETING
    JOB_STATUS_ERROR
    JOB_STATUS_OFFLINE
    JOB_STATUS_PAPEROUT
    JOB_STATUS_PAUSED
    JOB_STATUS_PRINTED
    JOB_STATUS_PRINTING
    JOB_STATUS_SPOOLING
    JOB_STATUS_USER_INTERVENTION
    MAX_PRIORITY
    MIN_PRIORITY
    NO_PRIORITY
    PORT_STATUS_DOOR_OPEN
    PORT_STATUS_NO_TONER
    PORT_STATUS_OFFLINE
    PORT_STATUS_OUTPUT_BIN_FULL
    PORT_STATUS_OUT_OF_MEMORY
    PORT_STATUS_PAPER_JAM
    PORT_STATUS_PAPER_OUT
    PORT_STATUS_PAPER_PROBLEM
    PORT_STATUS_POWER_SAVE
    PORT_STATUS_TONER_LOW
    PORT_STATUS_TYPE_ERROR
    PORT_STATUS_TYPE_INFO
    PORT_STATUS_TYPE_WARNING
    PORT_STATUS_USER_INTERVENTION
    PORT_STATUS_WARMING_UP
    PORT_TYPE_NET_ATTACHED
    PORT_TYPE_READ
    PORT_TYPE_REDIRECTED
    PORT_TYPE_WRITE
    PRINTER_ATTRIBUTE_DEFAULT
    PRINTER_ATTRIBUTE_DIRECT
    PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST
    PRINTER_ATTRIBUTE_ENABLE_BIDI
    PRINTER_ATTRIBUTE_ENABLE_DEVQ
    PRINTER_ATTRIBUTE_HIDDEN
    PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS
    PRINTER_ATTRIBUTE_LOCAL
    PRINTER_ATTRIBUTE_NETWORK
    PRINTER_ATTRIBUTE_QUEUED
    PRINTER_ATTRIBUTE_SHARED
    PRINTER_ATTRIBUTE_WORK_OFFLINE
    PRINTER_CHANGE_ADD_FORM
    PRINTER_CHANGE_ADD_JOB
    PRINTER_CHANGE_ADD_PORT
    PRINTER_CHANGE_ADD_PRINTER
    PRINTER_CHANGE_ADD_PRINTER_DRIVER
    PRINTER_CHANGE_ADD_PRINT_PROCESSOR
    PRINTER_CHANGE_ALL
    PRINTER_CHANGE_CONFIGURE_PORT
    PRINTER_CHANGE_DELETE_FORM
    PRINTER_CHANGE_DELETE_JOB
    PRINTER_CHANGE_DELETE_PORT
    PRINTER_CHANGE_DELETE_PRINTER
    PRINTER_CHANGE_DELETE_PRINTER_DRIVER
    PRINTER_CHANGE_DELETE_PRINTER_PROCESSOR
    PRINTER_CHANGE_FAILED_CONNECTION_PRINTER
    PRINTER_CHANGE_FORM
    PRINTER_CHANGE_JOB
    PRINTER_CHANGE_PORT
    PRINTER_CHANGE_PRINTER
    PRINTER_CHANGE_PRINTER_DRIVER
    PRINTER_CHANGE_PRINT_PROCESSOR
    PRINTER_CHANGE_SET_FORM
    PRINTER_CHANGE_SET_JOB
    PRINTER_CHANGE_SET_PRINTER
    PRINTER_CHANGE_SET_PRINTER_DRIVER
    PRINTER_CHANGE_TIMEOUT
    PRINTER_CHANGE_WRITE_JOB
    PRINTER_CONTROL_PAUSE
    PRINTER_CONTROL_PURGE
    PRINTER_CONTROL_RESUME
    PRINTER_CONTROL_SET_STATUS
    PRINTER_ENUM_CONNECTIONS
    PRINTER_ENUM_CONTAINER
    PRINTER_ENUM_DEFAULT
    PRINTER_ENUM_EXPAND
    PRINTER_ENUM_FAVORITE
    PRINTER_ENUM_ICON1
    PRINTER_ENUM_ICON2
    PRINTER_ENUM_ICON3
    PRINTER_ENUM_ICON4
    PRINTER_ENUM_ICON5
    PRINTER_ENUM_ICON6
    PRINTER_ENUM_ICON7
    PRINTER_ENUM_ICON8
    PRINTER_ENUM_ICONMASK
    PRINTER_ENUM_LOCAL
    PRINTER_ENUM_NAME
    PRINTER_ENUM_NETWORK
    PRINTER_ENUM_REMOTE
    PRINTER_ENUM_SHARED
    PRINTER_ERROR_INFORMATION
    PRINTER_ERROR_JAM
    PRINTER_ERROR_OUTODPAPER
    PRINTER_ERROR_OUTOFTONER
    PRINTER_ERROR_SEVERE
    PRINTER_ERROR_WARNING
    PRINTER_NOTIFY_FIELD_ATTRIBUTES
    PRINTER_NOTIFY_FIELD_AVERAGE_PPM
    PRINTER_NOTIFY_FIELD_BYTES_PRINTED
    PRINTER_NOTIFY_FIELD_CJOBS
    PRINTER_NOTIFY_FIELD_COMMENT
    PRINTER_NOTIFY_FIELD_DATATYPE
    PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY
    PRINTER_NOTIFY_FIELD_DEVMODE
    PRINTER_NOTIFY_FIELD_DRIVER_NAME
    PRINTER_NOTIFY_FIELD_LOCATION
    PRINTER_NOTIFY_FIELD_PAGES_PRINTED
    PRINTER_NOTIFY_FIELD_PARAMETERS
    PRINTER_NOTIFY_FIELD_PORT_NAME
    PRINTER_NOTIFY_FIELD_PRINTER_NAME
    PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR
    PRINTER_NOTIFY_FIELD_PRIORITY
    PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR
    PRINTER_NOTIFY_FIELD_SEPFILE
    PRINTER_NOTIFY_FIELD_SERVER_NAME
    PRINTER_NOTIFY_FIELD_SHARE_NAME
    PRINTER_NOTIFY_FIELD_START_TIME
    PRINTER_NOTIFY_FIELD_STATUS
    PRINTER_NOTIFY_FIELD_STATUS_STRING
    PRINTER_NOTIFY_FIELD_TOTAL_BYTES
    PRINTER_NOTIFY_FIELD_TOTAL_PAGES
    PRINTER_NOTIFY_FIELD_UNTIL_TIME
    PRINTER_NOTIFY_INFO_DISCARDED
    PRINTER_NOTIFY_OPTIONS_REFRESH
    PRINTER_NOTIFY_TYPE
    PRINTER_STATUS_BUSY
    PRINTER_STATUS_DOOR_OPEN
    PRINTER_STATUS_ERROR
    PRINTER_STATUS_INITIALIZING
    PRINTER_STATUS_IO_ACTIVE
    PRINTER_STATUS_MANUAL_FEED
    PRINTER_STATUS_NOT_AVAILABLE
    PRINTER_STATUS_NO_TONER
    PRINTER_STATUS_OFFLINE
    PRINTER_STATUS_OUTPUT_BIN_FULL
    PRINTER_STATUS_OUT_OF_MEMORY
    PRINTER_STATUS_PAGE_PUNT
    PRINTER_STATUS_PAPER_JAM
    PRINTER_STATUS_PAPER_OUT
    PRINTER_STATUS_PAPER_PROBLEM
    PRINTER_STATUS_PAUSED
    PRINTER_STATUS_PENDING_DELETION
    PRINTER_STATUS_POWER_SAVE
    PRINTER_STATUS_PRINTING
    PRINTER_STATUS_PROCESSING
    PRINTER_STATUS_SERVER_UNKNOWN
    PRINTER_STATUS_TONER_LOW
    PRINTER_STATUS_USER_INTERVENTION
    PRINTER_STATUS_WAITING
    PRINTER_STATUS_WARMING_UP
);
@EXPORT_OK = qw();

use constant DEF_PRIORITY => 1;
use constant DI_CHANNEL => 1;
use constant DI_READ_SPOOL_JOB => 3;
use constant FORM_BUILTIN => 1;
use constant FORM_PRINTER => 2;
use constant FORM_USER => 0;
use constant JOB_CONTROL_CANCEL => 3;
use constant JOB_CONTROL_DELETE => 5;
use constant JOB_CONTROL_LAST_PAGE_EJECTED => 7;
use constant JOB_CONTROL_PAUSE => 1;
use constant JOB_CONTROL_RESTART => 4;
use constant JOB_CONTROL_RESUME => 2;
use constant JOB_CONTROL_SENT_TO_PRINTER => 6;
use constant JOB_NOTIFY_FIELD_BYTES_PRINTED => 23;
use constant JOB_NOTIFY_FIELD_DATATYPE => 5;
use constant JOB_NOTIFY_FIELD_DEVMODE => 9;
use constant JOB_NOTIFY_FIELD_DOCUMENT => 13;
use constant JOB_NOTIFY_FIELD_DRIVER_NAME => 8;
use constant JOB_NOTIFY_FIELD_MACHINE_NAME => 1;
use constant JOB_NOTIFY_FIELD_NOTIFY_NAME => 4;
use constant JOB_NOTIFY_FIELD_PAGES_PRINTED => 21;
use constant JOB_NOTIFY_FIELD_PARAMETERS => 7;
use constant JOB_NOTIFY_FIELD_PORT_NAME => 2;
use constant JOB_NOTIFY_FIELD_POSITION => 15;
use constant JOB_NOTIFY_FIELD_PRINTER_NAME => 0;
use constant JOB_NOTIFY_FIELD_PRINT_PROCESSOR => 6;
use constant JOB_NOTIFY_FIELD_PRIORITY => 14;
use constant JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR => 12;
use constant JOB_NOTIFY_FIELD_START_TIME => 17;
use constant JOB_NOTIFY_FIELD_STATUS => 10;
use constant JOB_NOTIFY_FIELD_STATUS_STRING => 11;
use constant JOB_NOTIFY_FIELD_SUBMITTED => 16;
use constant JOB_NOTIFY_FIELD_TIME => 19;
use constant JOB_NOTIFY_FIELD_TOTAL_BYTES => 22;
use constant JOB_NOTIFY_FIELD_TOTAL_PAGES => 20;
use constant JOB_NOTIFY_FIELD_UNTIL_TIME => 18;
use constant JOB_NOTIFY_FIELD_USER_NAME => 3;
use constant JOB_NOTIFY_TYPE => 1;
use constant JOB_POSITION_UNSPECIFIED => 1;
use constant JOB_STATUS_BLOCKED_DEVQ => 512;
use constant JOB_STATUS_DELETED => 256;
use constant JOB_STATUS_DELETING => 4;
use constant JOB_STATUS_ERROR => 2;
use constant JOB_STATUS_OFFLINE => 32;
use constant JOB_STATUS_PAPEROUT => 64;
use constant JOB_STATUS_PAUSED => 1;
use constant JOB_STATUS_PRINTED => 128;
use constant JOB_STATUS_PRINTING => 16;
use constant JOB_STATUS_SPOOLING => 8;
use constant JOB_STATUS_USER_INTERVENTION => 1024;
use constant MAX_PRIORITY => 99;
use constant MIN_PRIORITY => 1;
use constant NO_PRIORITY => 0;
use constant PORT_STATUS_DOOR_OPEN => 7;
use constant PORT_STATUS_NO_TONER => 6;
use constant PORT_STATUS_OFFLINE => 1;
use constant PORT_STATUS_OUTPUT_BIN_FULL => 4;
use constant PORT_STATUS_OUT_OF_MEMORY => 9;
use constant PORT_STATUS_PAPER_JAM => 2;
use constant PORT_STATUS_PAPER_OUT => 3;
use constant PORT_STATUS_PAPER_PROBLEM => 5;
use constant PORT_STATUS_POWER_SAVE => 12;
use constant PORT_STATUS_TONER_LOW => 10;
use constant PORT_STATUS_TYPE_ERROR => 1;
use constant PORT_STATUS_TYPE_INFO => 3;
use constant PORT_STATUS_TYPE_WARNING => 2;
use constant PORT_STATUS_USER_INTERVENTION => 8;
use constant PORT_STATUS_WARMING_UP => 11;
use constant PORT_TYPE_NET_ATTACHED => 8;
use constant PORT_TYPE_READ => 2;
use constant PORT_TYPE_REDIRECTED => 4;
use constant PORT_TYPE_WRITE => 1;
use constant PRINTER_ATTRIBUTE_DEFAULT => 4;
use constant PRINTER_ATTRIBUTE_DIRECT => 2;
use constant PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST => 512;
use constant PRINTER_ATTRIBUTE_ENABLE_BIDI => 2048;
use constant PRINTER_ATTRIBUTE_ENABLE_DEVQ => 128;
use constant PRINTER_ATTRIBUTE_HIDDEN => 32;
use constant PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS => 256;
use constant PRINTER_ATTRIBUTE_LOCAL => 64;
use constant PRINTER_ATTRIBUTE_NETWORK => 16;
use constant PRINTER_ATTRIBUTE_QUEUED => 1;
use constant PRINTER_ATTRIBUTE_SHARED => 8;
use constant PRINTER_ATTRIBUTE_WORK_OFFLINE => 1024;
use constant PRINTER_CHANGE_ADD_FORM => 65536;
use constant PRINTER_CHANGE_ADD_JOB => 256;
use constant PRINTER_CHANGE_ADD_PORT => 1048576;
use constant PRINTER_CHANGE_ADD_PRINTER => 1;
use constant PRINTER_CHANGE_ADD_PRINTER_DRIVER => 268435456;
use constant PRINTER_CHANGE_ADD_PRINT_PROCESSOR => 16777216;
use constant PRINTER_CHANGE_ALL => 2004353023;
use constant PRINTER_CHANGE_CONFIGURE_PORT => 2097152;
use constant PRINTER_CHANGE_DELETE_FORM => 262144;
use constant PRINTER_CHANGE_DELETE_JOB => 1024;
use constant PRINTER_CHANGE_DELETE_PORT => 4194304;
use constant PRINTER_CHANGE_DELETE_PRINTER => 4;
use constant PRINTER_CHANGE_DELETE_PRINTER_DRIVER => 1073741824;
use constant PRINTER_CHANGE_DELETE_PRINTER_PROCESSOR => 67108864;
use constant PRINTER_CHANGE_FAILED_CONNECTION_PRINTER => 8;
use constant PRINTER_CHANGE_FORM => 458752;
use constant PRINTER_CHANGE_JOB => 65280;
use constant PRINTER_CHANGE_PORT => 7340032;
use constant PRINTER_CHANGE_PRINTER => 255;
use constant PRINTER_CHANGE_PRINTER_DRIVER => 1879048192;
use constant PRINTER_CHANGE_PRINT_PROCESSOR => 117440512;
use constant PRINTER_CHANGE_SET_FORM => 131072;
use constant PRINTER_CHANGE_SET_JOB => 512;
use constant PRINTER_CHANGE_SET_PRINTER => 2;
use constant PRINTER_CHANGE_SET_PRINTER_DRIVER => 536870912;
use constant PRINTER_CHANGE_TIMEOUT => -2147483648;
use constant PRINTER_CHANGE_WRITE_JOB => 2048;
use constant PRINTER_CONTROL_PAUSE => 1;
use constant PRINTER_CONTROL_PURGE => 3;
use constant PRINTER_CONTROL_RESUME => 2;
use constant PRINTER_CONTROL_SET_STATUS => 4;
use constant PRINTER_ENUM_CONNECTIONS => 4;
use constant PRINTER_ENUM_CONTAINER => 32768;
use constant PRINTER_ENUM_DEFAULT => 1;
use constant PRINTER_ENUM_EXPAND => 16384;
use constant PRINTER_ENUM_FAVORITE => 4;
use constant PRINTER_ENUM_ICON1 => 65536;
use constant PRINTER_ENUM_ICON2 => 131072;
use constant PRINTER_ENUM_ICON3 => 262144;
use constant PRINTER_ENUM_ICON4 => 524288;
use constant PRINTER_ENUM_ICON5 => 1048576;
use constant PRINTER_ENUM_ICON6 => 2097152;
use constant PRINTER_ENUM_ICON7 => 4194304;
use constant PRINTER_ENUM_ICON8 => 8388608;
use constant PRINTER_ENUM_ICONMASK => 16711680;
use constant PRINTER_ENUM_LOCAL => 2;
use constant PRINTER_ENUM_NAME => 8;
use constant PRINTER_ENUM_NETWORK => 64;
use constant PRINTER_ENUM_REMOTE => 16;
use constant PRINTER_ENUM_SHARED => 32;
use constant PRINTER_ERROR_INFORMATION => -2147483648;
use constant PRINTER_ERROR_JAM => 2;
use constant PRINTER_ERROR_OUTODPAPER => 1;
use constant PRINTER_ERROR_OUTOFTONER => 4;
use constant PRINTER_ERROR_SEVERE => 536870912;
use constant PRINTER_ERROR_WARNING => 1073741824;
use constant PRINTER_NOTIFY_FIELD_ATTRIBUTES => 13;
use constant PRINTER_NOTIFY_FIELD_AVERAGE_PPM => 21;
use constant PRINTER_NOTIFY_FIELD_BYTES_PRINTED => 25;
use constant PRINTER_NOTIFY_FIELD_CJOBS => 20;
use constant PRINTER_NOTIFY_FIELD_COMMENT => 5;
use constant PRINTER_NOTIFY_FIELD_DATATYPE => 11;
use constant PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY => 15;
use constant PRINTER_NOTIFY_FIELD_DEVMODE => 7;
use constant PRINTER_NOTIFY_FIELD_DRIVER_NAME => 4;
use constant PRINTER_NOTIFY_FIELD_LOCATION => 6;
use constant PRINTER_NOTIFY_FIELD_PAGES_PRINTED => 23;
use constant PRINTER_NOTIFY_FIELD_PARAMETERS => 10;
use constant PRINTER_NOTIFY_FIELD_PORT_NAME => 3;
use constant PRINTER_NOTIFY_FIELD_PRINTER_NAME => 1;
use constant PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR => 9;
use constant PRINTER_NOTIFY_FIELD_PRIORITY => 14;
use constant PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR => 12;
use constant PRINTER_NOTIFY_FIELD_SEPFILE => 8;
use constant PRINTER_NOTIFY_FIELD_SERVER_NAME => 0;
use constant PRINTER_NOTIFY_FIELD_SHARE_NAME => 2;
use constant PRINTER_NOTIFY_FIELD_START_TIME => 16;
use constant PRINTER_NOTIFY_FIELD_STATUS => 18;
use constant PRINTER_NOTIFY_FIELD_STATUS_STRING => 19;
use constant PRINTER_NOTIFY_FIELD_TOTAL_BYTES => 24;
use constant PRINTER_NOTIFY_FIELD_TOTAL_PAGES => 22;
use constant PRINTER_NOTIFY_FIELD_UNTIL_TIME => 17;
use constant PRINTER_NOTIFY_INFO_DISCARDED => 1;
use constant PRINTER_NOTIFY_OPTIONS_REFRESH => 1;
use constant PRINTER_NOTIFY_TYPE => 0;
use constant PRINTER_STATUS_BUSY => 512;
use constant PRINTER_STATUS_DOOR_OPEN => 4194304;
use constant PRINTER_STATUS_ERROR => 2;
use constant PRINTER_STATUS_INITIALIZING => 32768;
use constant PRINTER_STATUS_IO_ACTIVE => 256;
use constant PRINTER_STATUS_MANUAL_FEED => 32;
use constant PRINTER_STATUS_NOT_AVAILABLE => 4096;
use constant PRINTER_STATUS_NO_TONER => 262144;
use constant PRINTER_STATUS_OFFLINE => 128;
use constant PRINTER_STATUS_OUTPUT_BIN_FULL => 2048;
use constant PRINTER_STATUS_OUT_OF_MEMORY => 2097152;
use constant PRINTER_STATUS_PAGE_PUNT => 524288;
use constant PRINTER_STATUS_PAPER_JAM => 8;
use constant PRINTER_STATUS_PAPER_OUT => 16;
use constant PRINTER_STATUS_PAPER_PROBLEM => 64;
use constant PRINTER_STATUS_PAUSED => 1;
use constant PRINTER_STATUS_PENDING_DELETION => 4;
use constant PRINTER_STATUS_POWER_SAVE => 16777216;
use constant PRINTER_STATUS_PRINTING => 1024;
use constant PRINTER_STATUS_PROCESSING => 16384;
use constant PRINTER_STATUS_SERVER_UNKNOWN => 8388608;
use constant PRINTER_STATUS_TONER_LOW => 131072;
use constant PRINTER_STATUS_USER_INTERVENTION => 1048576;
use constant PRINTER_STATUS_WAITING => 8192;
use constant PRINTER_STATUS_WARMING_UP => 65536;

1;
