| /* Definitions for printing | 
 |  * | 
 |  * Copyright 1998 Huw Davies, Andreas Mohr | 
 |  * | 
 |  * Portions Copyright (c) 1999 Corel Corporation | 
 |  *                             (Paul Quinn, Albert Den Haan) | 
 |  * | 
 |  * This library is free software; you can redistribute it and/or | 
 |  * modify it under the terms of the GNU Lesser General Public | 
 |  * License as published by the Free Software Foundation; either | 
 |  * version 2.1 of the License, or (at your option) any later version. | 
 |  * | 
 |  * This library is distributed in the hope that it will be useful, | 
 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | 
 |  * Lesser General Public License for more details. | 
 |  * | 
 |  * You should have received a copy of the GNU Lesser General Public | 
 |  * License along with this library; if not, write to the Free Software | 
 |  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA | 
 |  */ | 
 | #ifndef __WINE_WINSPOOL_H | 
 | #define __WINE_WINSPOOL_H | 
 |  | 
 | #ifdef __cplusplus | 
 | extern "C" { | 
 | #endif | 
 |  | 
 | /* DEFINES */ | 
 |  | 
 | #define PRINTER_ATTRIBUTE_QUEUED            0x00000001 | 
 | #define PRINTER_ATTRIBUTE_DIRECT            0x00000002 | 
 | #define PRINTER_ATTRIBUTE_DEFAULT           0x00000004 | 
 | #define PRINTER_ATTRIBUTE_SHARED            0x00000008 | 
 | #define PRINTER_ATTRIBUTE_NETWORK           0x00000010 | 
 | #define PRINTER_ATTRIBUTE_HIDDEN            0x00000020 | 
 | #define PRINTER_ATTRIBUTE_LOCAL             0x00000040 | 
 | #define PRINTER_ATTRIBUTE_ENABLE_DEVQ       0x00000080 | 
 | #define PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS   0x00000100 | 
 | #define PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST 0x00000200 | 
 | #define PRINTER_ATTRIBUTE_WORK_OFFLINE      0x00000400 | 
 | #define PRINTER_ATTRIBUTE_ENABLE_BIDI       0x00000800 | 
 | #define PRINTER_ATTRIBUTE_RAW_ONLY          0x00001000 | 
 | #define PRINTER_ATTRIBUTE_PUBLISHED         0x00002000 | 
 |  | 
 | #define PRINTER_CONTROL_PAUSE      1 | 
 | #define PRINTER_CONTROL_RESUME     2 | 
 | #define PRINTER_CONTROL_PURGE      3 | 
 | #define PRINTER_CONTROL_SET_STATUS 4 | 
 |  | 
 | #define PRINTER_ENUM_DEFAULT     0x00000001 | 
 | #define PRINTER_ENUM_LOCAL       0x00000002 | 
 | #define PRINTER_ENUM_CONNECTIONS 0x00000004 | 
 | #define PRINTER_ENUM_FAVORITE    0x00000004 | 
 | #define PRINTER_ENUM_NAME        0x00000008 | 
 | #define PRINTER_ENUM_REMOTE      0x00000010 | 
 | #define PRINTER_ENUM_SHARED      0x00000020 | 
 | #define PRINTER_ENUM_NETWORK     0x00000040 | 
 |  | 
 | #define PRINTER_ENUM_EXPAND      0x00004000 | 
 | #define PRINTER_ENUM_CONTAINER   0x00008000 | 
 |  | 
 | #define PRINTER_ENUM_ICONMASK    0x00ff0000 | 
 | #define PRINTER_ENUM_ICON1       0x00010000 | 
 | #define PRINTER_ENUM_ICON2       0x00020000 | 
 | #define PRINTER_ENUM_ICON3       0x00040000 | 
 | #define PRINTER_ENUM_ICON4       0x00080000 | 
 | #define PRINTER_ENUM_ICON5       0x00100000 | 
 | #define PRINTER_ENUM_ICON6       0x00200000 | 
 | #define PRINTER_ENUM_ICON7       0x00400000 | 
 | #define PRINTER_ENUM_ICON8       0x00800000 | 
 | #define PRINTER_ENUM_HIDE        0x01000000 | 
 |  | 
 |  | 
 | /* various printer statuses */ | 
 | #define PRINTER_STATUS_PAUSED            0x00000001 | 
 | #define PRINTER_STATUS_ERROR             0x00000002 | 
 | #define PRINTER_STATUS_PENDING_DELETION  0x00000004 | 
 | #define PRINTER_STATUS_PAPER_JAM         0x00000008 | 
 | #define PRINTER_STATUS_PAPER_OUT         0x00000010 | 
 | #define PRINTER_STATUS_MANUAL_FEED       0x00000020 | 
 | #define PRINTER_STATUS_PAPER_PROBLEM     0x00000040 | 
 | #define PRINTER_STATUS_OFFLINE           0x00000080 | 
 | #define PRINTER_STATUS_IO_ACTIVE         0x00000100 | 
 | #define PRINTER_STATUS_BUSY              0x00000200 | 
 | #define PRINTER_STATUS_PRINTING          0x00000400 | 
 | #define PRINTER_STATUS_OUTPUT_BIN_FULL   0x00000800 | 
 | #define PRINTER_STATUS_NOT_AVAILABLE     0x00001000 | 
 | #define PRINTER_STATUS_WAITING           0x00002000 | 
 | #define PRINTER_STATUS_PROCESSING        0x00004000 | 
 | #define PRINTER_STATUS_INITIALIZING      0x00008000 | 
 | #define PRINTER_STATUS_WARMING_UP        0x00010000 | 
 | #define PRINTER_STATUS_TONER_LOW         0x00020000 | 
 | #define PRINTER_STATUS_NO_TONER          0x00040000 | 
 | #define PRINTER_STATUS_PAGE_PUNT         0x00080000 | 
 | #define PRINTER_STATUS_USER_INTERVENTION 0x00100000 | 
 | #define PRINTER_STATUS_OUT_OF_MEMORY     0x00200000 | 
 | #define PRINTER_STATUS_DOOR_OPEN         0x00400000 | 
 | #define PRINTER_STATUS_SERVER_UNKNOWN    0x00800000 | 
 | #define PRINTER_STATUS_POWER_SAVE        0x01000000 | 
 |  | 
 | #define NO_PRIORITY  0 | 
 | #define MAX_PRIORITY 99 | 
 | #define MIN_PRIORITY 1 | 
 | #define DEF_PRIORITY 1 | 
 |  | 
 | #define JOB_CONTROL_PAUSE             1 | 
 | #define JOB_CONTROL_RESUME            2 | 
 | #define JOB_CONTROL_CANCEL            3 | 
 | #define JOB_CONTROL_RESTART           4 | 
 | #define JOB_CONTROL_DELETE            5 | 
 | #define JOB_CONTROL_SENT_TO_PRINTER   6 | 
 | #define JOB_CONTROL_LAST_PAGE_EJECTED 7 | 
 |  | 
 | #define JOB_STATUS_PAUSED       0x0001 | 
 | #define JOB_STATUS_ERROR        0x0002 | 
 | #define JOB_STATUS_DELETING     0x0004 | 
 | #define JOB_STATUS_SPOOLING     0x0008 | 
 | #define JOB_STATUS_PRINTING     0x0010 | 
 | #define JOB_STATUS_OFFLINE      0x0020 | 
 | #define JOB_STATUS_PAPEROUT     0x0040 | 
 | #define JOB_STATUS_PRINTED      0x0080 | 
 | #define JOB_STATUS_DELETED      0x0100 | 
 | #define JOB_STATUS_BLOCKED_DEVQ 0x0200 | 
 | #define JOB_STATUS_USER_INTERVENTION 0x0400 | 
 |  | 
 | #define JOB_POSITION_UNSPECIFIED 1 | 
 |  | 
 | #define DI_CHANNEL 1 | 
 | #define DI_READ_SPOOL_JOB 3 | 
 |  | 
 | #define FORM_USER    0 | 
 | #define FORM_BUILTIN 1 | 
 | #define FORM_PRINTER 2 | 
 |  | 
 | #define PORT_TYPE_WRITE        1 | 
 | #define PORT_TYPE_READ         2 | 
 | #define PORT_TYPE_REDIRECTED   4 | 
 | #define PORT_TYPE_NET_ATTACHED 8 | 
 |  | 
 | #define PORT_STATUS_TYPE_ERROR   1 | 
 | #define PORT_STATUS_TYPE_WARNING 2 | 
 | #define PORT_STATUS_TYPE_INFO    3 | 
 |  | 
 | #define PORT_STATUS_OFFLINE           1 | 
 | #define PORT_STATUS_PAPER_JAM         2 | 
 | #define PORT_STATUS_PAPER_OUT         3 | 
 | #define PORT_STATUS_OUTPUT_BIN_FULL   4 | 
 | #define PORT_STATUS_PAPER_PROBLEM     5 | 
 | #define PORT_STATUS_NO_TONER          6 | 
 | #define PORT_STATUS_DOOR_OPEN         7 | 
 | #define PORT_STATUS_USER_INTERVENTION 8 | 
 | #define PORT_STATUS_OUT_OF_MEMORY     9 | 
 | #define PORT_STATUS_TONER_LOW         10 | 
 | #define PORT_STATUS_WARMING_UP        11 | 
 | #define PORT_STATUS_POWER_SAVE        12 | 
 |  | 
 | #define PRINTER_NOTIFY_TYPE 0 | 
 | #define JOB_NOTIFY_TYPE     1 | 
 |  | 
 | #define PRINTER_NOTIFY_FIELD_SERVER_NAME     0x00 | 
 | #define PRINTER_NOTIFY_FIELD_PRINTER_NAME    0x01 | 
 | #define PRINTER_NOTIFY_FIELD_SHARE_NAME      0x02 | 
 | #define PRINTER_NOTIFY_FIELD_PORT_NAME       0x03 | 
 | #define PRINTER_NOTIFY_FIELD_DRIVER_NAME     0x04 | 
 | #define PRINTER_NOTIFY_FIELD_COMMENT         0x05 | 
 | #define PRINTER_NOTIFY_FIELD_LOCATION        0x06 | 
 | #define PRINTER_NOTIFY_FIELD_DEVMODE         0x07 | 
 | #define PRINTER_NOTIFY_FIELD_SEPFILE         0x08 | 
 | #define PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR 0x09 | 
 | #define PRINTER_NOTIFY_FIELD_PARAMETERS      0x0a | 
 | #define PRINTER_NOTIFY_FIELD_DATATYPE        0x0b | 
 | #define PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR 0x0c | 
 | #define PRINTER_NOTIFY_FIELD_ATTRIBUTES      0x0d | 
 | #define PRINTER_NOTIFY_FIELD_PRIORITY        0x0e | 
 | #define PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY 0x0f | 
 | #define PRINTER_NOTIFY_FIELD_START_TIME      0x10 | 
 | #define PRINTER_NOTIFY_FIELD_UNTIL_TIME      0x11 | 
 | #define PRINTER_NOTIFY_FIELD_STATUS          0x12 | 
 | #define PRINTER_NOTIFY_FIELD_STATUS_STRING   0x13 | 
 | #define PRINTER_NOTIFY_FIELD_CJOBS           0x14 | 
 | #define PRINTER_NOTIFY_FIELD_AVERAGE_PPM     0x15 | 
 | #define PRINTER_NOTIFY_FIELD_TOTAL_PAGES     0x16 | 
 | #define PRINTER_NOTIFY_FIELD_PAGES_PRINTED   0x17 | 
 | #define PRINTER_NOTIFY_FIELD_TOTAL_BYTES     0x18 | 
 | #define PRINTER_NOTIFY_FIELD_BYTES_PRINTED   0x19 | 
 |  | 
 | #define JOB_NOTIFY_FIELD_PRINTER_NAME    0x00 | 
 | #define JOB_NOTIFY_FIELD_MACHINE_NAME    0x01 | 
 | #define JOB_NOTIFY_FIELD_PORT_NAME       0x02 | 
 | #define JOB_NOTIFY_FIELD_USER_NAME       0x03 | 
 | #define JOB_NOTIFY_FIELD_NOTIFY_NAME     0x04 | 
 | #define JOB_NOTIFY_FIELD_DATATYPE        0x05 | 
 | #define JOB_NOTIFY_FIELD_PRINT_PROCESSOR 0x06 | 
 | #define JOB_NOTIFY_FIELD_PARAMETERS      0x07 | 
 | #define JOB_NOTIFY_FIELD_DRIVER_NAME     0x08 | 
 | #define JOB_NOTIFY_FIELD_DEVMODE         0x09 | 
 | #define JOB_NOTIFY_FIELD_STATUS          0x0a | 
 | #define JOB_NOTIFY_FIELD_STATUS_STRING   0x0b | 
 | #define JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR 0x0c | 
 | #define JOB_NOTIFY_FIELD_DOCUMENT        0x0d | 
 | #define JOB_NOTIFY_FIELD_PRIORITY        0x0e | 
 | #define JOB_NOTIFY_FIELD_POSITION        0x0f | 
 | #define JOB_NOTIFY_FIELD_SUBMITTED       0x10 | 
 | #define JOB_NOTIFY_FIELD_START_TIME      0x11 | 
 | #define JOB_NOTIFY_FIELD_UNTIL_TIME      0x12 | 
 | #define JOB_NOTIFY_FIELD_TIME            0x13 | 
 | #define JOB_NOTIFY_FIELD_TOTAL_PAGES     0x14 | 
 | #define JOB_NOTIFY_FIELD_PAGES_PRINTED   0x15 | 
 | #define JOB_NOTIFY_FIELD_TOTAL_BYTES     0x16 | 
 | #define JOB_NOTIFY_FIELD_BYTES_PRINTED   0x17 | 
 |  | 
 | #define PRINTER_NOTIFY_OPTIONS_REFRESH   1 | 
 | #define PRINTER_NOTIFY_INFO_DISCARDED    1 | 
 |  | 
 | #define PRINTER_CHANGE_ADD_PRINTER               0x00000001 | 
 | #define PRINTER_CHANGE_SET_PRINTER               0x00000002 | 
 | #define PRINTER_CHANGE_DELETE_PRINTER            0x00000004 | 
 | #define PRINTER_CHANGE_FAILED_CONNECTION_PRINTER 0x00000008 | 
 | #define PRINTER_CHANGE_PRINTER                   0x000000ff | 
 | #define PRINTER_CHANGE_ADD_JOB                   0x00000100 | 
 | #define PRINTER_CHANGE_SET_JOB                   0x00000200 | 
 | #define PRINTER_CHANGE_DELETE_JOB                0x00000400 | 
 | #define PRINTER_CHANGE_WRITE_JOB                 0x00000800 | 
 | #define PRINTER_CHANGE_JOB                       0x0000ff00 | 
 | #define PRINTER_CHANGE_ADD_FORM                  0x00010000 | 
 | #define PRINTER_CHANGE_SET_FORM                  0x00020000 | 
 | #define PRINTER_CHANGE_DELETE_FORM               0x00040000 | 
 | #define PRINTER_CHANGE_FORM                      0x00070000 | 
 | #define PRINTER_CHANGE_ADD_PORT                  0x00100000 | 
 | #define PRINTER_CHANGE_CONFIGURE_PORT            0x00200000 | 
 | #define PRINTER_CHANGE_DELETE_PORT               0x00400000 | 
 | #define PRINTER_CHANGE_PORT                      0x00700000 | 
 | #define PRINTER_CHANGE_ADD_PRINT_PROCESSOR       0x01000000 | 
 | #define PRINTER_CHANGE_DELETE_PRINTER_PROCESSOR  0x04000000 | 
 | #define PRINTER_CHANGE_PRINT_PROCESSOR           0x07000000 | 
 | #define PRINTER_CHANGE_ADD_PRINTER_DRIVER        0x10000000 | 
 | #define PRINTER_CHANGE_SET_PRINTER_DRIVER        0x20000000 | 
 | #define PRINTER_CHANGE_DELETE_PRINTER_DRIVER     0x40000000 | 
 | #define PRINTER_CHANGE_PRINTER_DRIVER            0x70000000 | 
 | #define PRINTER_CHANGE_TIMEOUT                   0x80000000 | 
 | #define PRINTER_CHANGE_ALL                       0x7777ffff | 
 |  | 
 | #define PRINTER_ERROR_INFORMATION   0x80000000 | 
 | #define PRINTER_ERROR_WARNING       0x40000000 | 
 | #define PRINTER_ERROR_SEVERE        0x20000000 | 
 |  | 
 | #define PRINTER_ERROR_OUTODPAPER    0x00000001 | 
 | #define PRINTER_ERROR_JAM           0x00000002 | 
 | #define PRINTER_ERROR_OUTOFTONER    0x00000004 | 
 |  | 
 | /* Access Rights for Printserver, Printers and Printjobs */ | 
 | #define SERVER_ACCESS_ADMINISTER    0x00000001 | 
 | #define SERVER_ACCESS_ENUMERATE     0x00000002 | 
 | #define SERVER_READ        (STANDARD_RIGHTS_READ | SERVER_ACCESS_ENUMERATE) | 
 | #define SERVER_WRITE       (STANDARD_RIGHTS_WRITE | \ | 
 |                             SERVER_ACCESS_ADMINISTER | SERVER_ACCESS_ENUMERATE) | 
 | #define SERVER_EXECUTE     (STANDARD_RIGHTS_EXECUTE |  SERVER_ACCESS_ENUMERATE) | 
 | #define SERVER_ALL_ACCESS  (STANDARD_RIGHTS_REQUIRED | \ | 
 |                             SERVER_ACCESS_ADMINISTER | SERVER_ACCESS_ENUMERATE) | 
 |  | 
 | #define PRINTER_ACCESS_ADMINISTER   0x00000004 | 
 | #define PRINTER_ACCESS_USE          0x00000008 | 
 | #define PRINTER_READ        (STANDARD_RIGHTS_READ | PRINTER_ACCESS_USE) | 
 | #define PRINTER_WRITE       (STANDARD_RIGHTS_WRITE | PRINTER_ACCESS_USE) | 
 | #define PRINTER_EXECUTE     (STANDARD_RIGHTS_EXECUTE | PRINTER_ACCESS_USE) | 
 | #define PRINTER_ALL_ACCESS  (STANDARD_RIGHTS_REQUIRED | \ | 
 |                              PRINTER_ACCESS_ADMINISTER | PRINTER_ACCESS_USE) | 
 |  | 
 | #define JOB_ACCESS_ADMINISTER       0x00000010 | 
 | #define JOB_READ            (STANDARD_RIGHTS_READ | JOB_ACCESS_ADMINISTER) | 
 | #define JOB_WRITE           (STANDARD_RIGHTS_WRITE | JOB_ACCESS_ADMINISTER) | 
 | #define JOB_EXECUTE         (STANDARD_RIGHTS_EXECUTE | JOB_ACCESS_ADMINISTER) | 
 | #define JOB_ALL_ACCESS      (STANDARD_RIGHTS_REQUIRED | JOB_ACCESS_ADMINISTER) | 
 |  | 
 | /* TYPES */ | 
 | typedef struct _PRINTER_DEFAULTSA { | 
 |   LPSTR        pDatatype; | 
 |   LPDEVMODEA pDevMode; | 
 |   ACCESS_MASK  DesiredAccess; | 
 | } PRINTER_DEFAULTSA, *LPPRINTER_DEFAULTSA; | 
 |  | 
 | typedef struct _PRINTER_DEFAULTSW { | 
 |   LPWSTR       pDatatype; | 
 |   LPDEVMODEW pDevMode; | 
 |   ACCESS_MASK  DesiredAccess; | 
 | } PRINTER_DEFAULTSW, *LPPRINTER_DEFAULTSW; | 
 |  | 
 | DECL_WINELIB_TYPE_AW(PRINTER_DEFAULTS) | 
 | DECL_WINELIB_TYPE_AW(LPPRINTER_DEFAULTS) | 
 |  | 
 | typedef struct _DRIVER_INFO_1A { | 
 |   LPSTR     pName; | 
 | } DRIVER_INFO_1A, *PDRIVER_INFO_1A, *LPDRIVER_INFO_1A; | 
 |  | 
 | typedef struct _DRIVER_INFO_1W { | 
 |   LPWSTR    pName; | 
 | } DRIVER_INFO_1W, *PDRIVER_INFO_1W, *LPDRIVER_INFO_1W; | 
 |  | 
 | DECL_WINELIB_TYPE_AW(DRIVER_INFO_1) | 
 | DECL_WINELIB_TYPE_AW(PDRIVER_INFO_1) | 
 | DECL_WINELIB_TYPE_AW(LPDRIVER_INFO_1) | 
 |  | 
 | typedef struct _DRIVER_INFO_2A { | 
 |   DWORD     cVersion; | 
 |   LPSTR     pName; | 
 |   LPSTR     pEnvironment; | 
 |   LPSTR     pDriverPath; | 
 |   LPSTR     pDataFile; | 
 |   LPSTR     pConfigFile; | 
 | } DRIVER_INFO_2A, *PDRIVER_INFO_2A, *LPDRIVER_INFO_2A; | 
 |  | 
 | typedef struct _DRIVER_INFO_2W { | 
 |   DWORD     cVersion; | 
 |   LPWSTR    pName; | 
 |   LPWSTR    pEnvironment; | 
 |   LPWSTR    pDriverPath; | 
 |   LPWSTR    pDataFile; | 
 |   LPWSTR    pConfigFile; | 
 | } DRIVER_INFO_2W, *PDRIVER_INFO_2W, *LPDRIVER_INFO_2W; | 
 |  | 
 | DECL_WINELIB_TYPE_AW(DRIVER_INFO_2) | 
 | DECL_WINELIB_TYPE_AW(PDRIVER_INFO_2) | 
 | DECL_WINELIB_TYPE_AW(LPDRIVER_INFO_2) | 
 |  | 
 | typedef struct _DRIVER_INFO_3A { | 
 |   DWORD cVersion; | 
 |   LPSTR pName; | 
 |   LPSTR pEnvironment; | 
 |   LPSTR pDriverPath; | 
 |   LPSTR pDataFile; | 
 |   LPSTR pConfigFile; | 
 |   LPSTR pHelpFile; | 
 |   LPSTR pDependentFiles; | 
 |   LPSTR pMonitorName; | 
 |   LPSTR pDefaultDataType; | 
 | } DRIVER_INFO_3A, *PDRIVER_INFO_3A, *LPDRIVER_INFO_3A; | 
 |  | 
 | typedef struct _DRIVER_INFO_3W { | 
 |   DWORD cVersion; | 
 |   LPWSTR pName; | 
 |   LPWSTR pEnvironment; | 
 |   LPWSTR pDriverPath; | 
 |   LPWSTR pDataFile; | 
 |   LPWSTR pConfigFile; | 
 |   LPWSTR pHelpFile; | 
 |   LPWSTR pDependentFiles; | 
 |   LPWSTR pMonitorName; | 
 |   LPWSTR pDefaultDataType; | 
 | } DRIVER_INFO_3W, *PDRIVER_INFO_3W, *LPDRIVER_INFO_3W; | 
 |  | 
 | DECL_WINELIB_TYPE_AW(DRIVER_INFO_3) | 
 | DECL_WINELIB_TYPE_AW(PDRIVER_INFO_3) | 
 | DECL_WINELIB_TYPE_AW(LPDRIVER_INFO_3) | 
 |  | 
 | typedef struct _DRIVER_INFO_4A { | 
 |   DWORD cVersion; | 
 |   LPSTR pName; | 
 |   LPSTR pEnvironment; | 
 |   LPSTR pDriverPath; | 
 |   LPSTR pDataFile; | 
 |   LPSTR pConfigFile; | 
 |   LPSTR pHelpFile; | 
 |   LPSTR pDependentFiles; | 
 |   LPSTR pMonitorName; | 
 |   LPSTR pDefaultDataType; | 
 |   LPSTR pszzPreviousNames; | 
 | } DRIVER_INFO_4A, *PDRIVER_INFO_4A, *LPDRIVER_INFO_4A; | 
 |  | 
 | typedef struct _DRIVER_INFO_4W { | 
 |   DWORD cVersion; | 
 |   LPWSTR pName; | 
 |   LPWSTR pEnvironment; | 
 |   LPWSTR pDriverPath; | 
 |   LPWSTR pDataFile; | 
 |   LPWSTR pConfigFile; | 
 |   LPWSTR pHelpFile; | 
 |   LPWSTR pDependentFiles; | 
 |   LPWSTR pMonitorName; | 
 |   LPWSTR pDefaultDataType; | 
 |   LPWSTR pszzPreviousNames; | 
 | } DRIVER_INFO_4W, *PDRIVER_INFO_4W, *LPDRIVER_INFO_4W; | 
 |  | 
 | DECL_WINELIB_TYPE_AW(DRIVER_INFO_4) | 
 | DECL_WINELIB_TYPE_AW(PDRIVER_INFO_4) | 
 | DECL_WINELIB_TYPE_AW(LPDRIVER_INFO_4) | 
 |  | 
 |  | 
 | typedef struct _DRIVER_INFO_5A { | 
 |   DWORD cVersion; | 
 |   LPSTR pName; | 
 |   LPSTR pEnvironment; | 
 |   LPSTR pDriverPath; | 
 |   LPSTR pDataFile; | 
 |   LPSTR pConfigFile; | 
 |   DWORD dwDriverAttributes; | 
 |   DWORD dwConfigVersion; | 
 |   DWORD dwDriverVersion; | 
 | } DRIVER_INFO_5A, *PDRIVER_INFO_5A, *LPDRIVER_INFO_5A; | 
 |  | 
 | typedef struct _DRIVER_INFO_5W { | 
 |   DWORD  cVersion; | 
 |   LPWSTR pName; | 
 |   LPWSTR pEnvironment; | 
 |   LPWSTR pDriverPath; | 
 |   LPWSTR pDataFile; | 
 |   LPWSTR pConfigFile; | 
 |   DWORD  dwDriverAttributes; | 
 |   DWORD  dwConfigVersion; | 
 |   DWORD  dwDriverVersion; | 
 | } DRIVER_INFO_5W, *PDRIVER_INFO_5W, *LPDRIVER_INFO_5W; | 
 |  | 
 | DECL_WINELIB_TYPE_AW(DRIVER_INFO_5) | 
 | DECL_WINELIB_TYPE_AW(PDRIVER_INFO_5) | 
 | DECL_WINELIB_TYPE_AW(LPDRIVER_INFO_5) | 
 |  | 
 | typedef struct _DRIVER_INFO_6A { | 
 |   DWORD     cVersion; | 
 |   LPSTR     pName; | 
 |   LPSTR     pEnvironment; | 
 |   LPSTR     pDriverPath; | 
 |   LPSTR     pDataFile; | 
 |   LPSTR     pConfigFile; | 
 |   LPSTR     pHelpFile; | 
 |   LPSTR     pDependentFiles; | 
 |   LPSTR     pMonitorName; | 
 |   LPSTR     pDefaultDataType; | 
 |   LPSTR     pszzPreviousNames; | 
 |   FILETIME  ftDriverDate; | 
 |   DWORDLONG dwlDriverVersion; | 
 |   LPSTR     pszMfgName; | 
 |   LPSTR     pszOEMUrl; | 
 |   LPSTR     pszHardwareID; | 
 |   LPSTR     pszProvider; | 
 | } DRIVER_INFO_6A, *PDRIVER_INFO_6A, *LPDRIVER_INFO_6A; | 
 |  | 
 | typedef struct _DRIVER_INFO_6W { | 
 |   DWORD     cVersion; | 
 |   LPWSTR    pName; | 
 |   LPWSTR    pEnvironment; | 
 |   LPWSTR    pDriverPath; | 
 |   LPWSTR    pDataFile; | 
 |   LPWSTR    pConfigFile; | 
 |   LPWSTR    pHelpFile; | 
 |   LPWSTR    pDependentFiles; | 
 |   LPWSTR    pMonitorName; | 
 |   LPWSTR    pDefaultDataType; | 
 |   LPWSTR    pszzPreviousNames; | 
 |   FILETIME  ftDriverDate; | 
 |   DWORDLONG dwlDriverVersion; | 
 |   LPWSTR    pszMfgName; | 
 |   LPWSTR    pszOEMUrl; | 
 |   LPWSTR    pszHardwareID; | 
 |   LPWSTR    pszProvider; | 
 | } DRIVER_INFO_6W, *PDRIVER_INFO_6W, *LPDRIVER_INFO_6W; | 
 |  | 
 | DECL_WINELIB_TYPE_AW(DRIVER_INFO_6) | 
 | DECL_WINELIB_TYPE_AW(PDRIVER_INFO_6) | 
 | DECL_WINELIB_TYPE_AW(LPDRIVER_INFO_6) | 
 |  | 
 |  | 
 | typedef struct _PRINTER_INFO_1A { | 
 |   DWORD   Flags; | 
 |   LPSTR   pDescription; | 
 |   LPSTR   pName; | 
 |   LPSTR   pComment; | 
 | } PRINTER_INFO_1A, *PPRINTER_INFO_1A, *LPPRINTER_INFO_1A; | 
 |  | 
 | typedef struct _PRINTER_INFO_1W { | 
 |   DWORD   Flags; | 
 |   LPWSTR  pDescription; | 
 |   LPWSTR  pName; | 
 |   LPWSTR  pComment; | 
 | } PRINTER_INFO_1W, *PPRINTER_INFO_1W, *LPPRINTER_INFO_1W; | 
 |  | 
 | DECL_WINELIB_TYPE_AW(PRINTER_INFO_1) | 
 | DECL_WINELIB_TYPE_AW(PPRINTER_INFO_1) | 
 | DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_1) | 
 |  | 
 | /* FIXME: winspool.h declares some structure members with the name Status. | 
 |  * unfortunately <X11/ICE/ICElib.h> #defines Status to the type 'int' | 
 |  * therefore the following hack */ | 
 | #ifndef Status | 
 |  | 
 | typedef struct _PRINTER_INFO_2A { | 
 |   LPSTR     pServerName; | 
 |   LPSTR     pPrinterName; | 
 |   LPSTR     pShareName; | 
 |   LPSTR     pPortName; | 
 |   LPSTR     pDriverName; | 
 |   LPSTR     pComment; | 
 |   LPSTR     pLocation; | 
 |   LPDEVMODEA pDevMode; | 
 |   LPSTR     pSepFile; | 
 |   LPSTR     pPrintProcessor; | 
 |   LPSTR     pDatatype; | 
 |   LPSTR     pParameters; | 
 |   PSECURITY_DESCRIPTOR pSecurityDescriptor; | 
 |   DWORD   Attributes; | 
 |   DWORD   Priority; | 
 |   DWORD   DefaultPriority; | 
 |   DWORD   StartTime; | 
 |   DWORD   UntilTime; | 
 |   DWORD   Status; | 
 |   DWORD   cJobs; | 
 |   DWORD   AveragePPM; | 
 | } PRINTER_INFO_2A, *PPRINTER_INFO_2A, *LPPRINTER_INFO_2A; | 
 |  | 
 | typedef struct _PRINTER_INFO_2W { | 
 |   LPWSTR    pServerName; | 
 |   LPWSTR    pPrinterName; | 
 |   LPWSTR    pShareName; | 
 |   LPWSTR    pPortName; | 
 |   LPWSTR    pDriverName; | 
 |   LPWSTR    pComment; | 
 |   LPWSTR    pLocation; | 
 |   LPDEVMODEW pDevMode; | 
 |   LPWSTR    pSepFile; | 
 |   LPWSTR    pPrintProcessor; | 
 |   LPWSTR    pDatatype; | 
 |   LPWSTR    pParameters; | 
 |   PSECURITY_DESCRIPTOR pSecurityDescriptor; | 
 |   DWORD   Attributes; | 
 |   DWORD   Priority; | 
 |   DWORD   DefaultPriority; | 
 |   DWORD   StartTime; | 
 |   DWORD   UntilTime; | 
 |   DWORD   Status; | 
 |   DWORD   cJobs; | 
 |   DWORD   AveragePPM; | 
 | } PRINTER_INFO_2W, *PPRINTER_INFO_2W, *LPPRINTER_INFO_2W; | 
 |  | 
 | DECL_WINELIB_TYPE_AW(PRINTER_INFO_2) | 
 | DECL_WINELIB_TYPE_AW(PPRINTER_INFO_2) | 
 | DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_2) | 
 |  | 
 | typedef struct _PRINTER_INFO_3 { | 
 |   PSECURITY_DESCRIPTOR pSecurityDescriptor; | 
 | } PRINTER_INFO_3, *PPRINTER_INFO_3, *LPPRINTER_INFO_3; | 
 |  | 
 | typedef struct _PRINTER_INFO_4A { | 
 |   LPSTR     pPrinterName; | 
 |   LPSTR     pServerName; | 
 |   DWORD     Attributes; | 
 | } PRINTER_INFO_4A, *PPRINTER_INFO_4A, *LPPRINTER_INFO_4A; | 
 |  | 
 | typedef struct _PRINTER_INFO_4W { | 
 |   LPWSTR     pPrinterName; | 
 |   LPWSTR     pServerName; | 
 |   DWORD     Attributes; | 
 | } PRINTER_INFO_4W, *PPRINTER_INFO_4W, *LPPRINTER_INFO_4W; | 
 |  | 
 | DECL_WINELIB_TYPE_AW(PRINTER_INFO_4) | 
 | DECL_WINELIB_TYPE_AW(PPRINTER_INFO_4) | 
 | DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_4) | 
 |  | 
 | typedef struct _PRINTER_INFO_5A { | 
 |   LPSTR     pPrinterName; | 
 |   LPSTR     pPortName; | 
 |   DWORD     Attributes; | 
 |   DWORD     DeviceNotSelectedTimeout; | 
 |   DWORD     TransmissionRetryTimeout; | 
 | } PRINTER_INFO_5A, *PPRINTER_INFO_5A, *LPPRINTER_INFO_5A; | 
 |  | 
 | typedef struct _PRINTER_INFO_5W { | 
 |   LPWSTR    pPrinterName; | 
 |   LPWSTR    pPortName; | 
 |   DWORD     Attributes; | 
 |   DWORD     DeviceNotSelectedTimeout; | 
 |   DWORD     TransmissionRetryTimeout; | 
 | } PRINTER_INFO_5W, *PPRINTER_INFO_5W, *LPPRINTER_INFO_5W; | 
 |  | 
 | DECL_WINELIB_TYPE_AW(PRINTER_INFO_5) | 
 | DECL_WINELIB_TYPE_AW(PPRINTER_INFO_5) | 
 | DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_5) | 
 |  | 
 | typedef struct _PRINTER_INFO_6 { | 
 |   DWORD dwStatus; | 
 | } PRINTER_INFO_6, *PPRINTER_INFO_6, *LPPRINTER_INFO_6; | 
 |  | 
 | typedef struct _PRINTER_INFO_7A { | 
 |   LPSTR     pszObjectGUID; | 
 |   DWORD     dwAction; | 
 | } PRINTER_INFO_7A, *PPRINTER_INFO_7A, *LPPRINTER_INFO_7A; | 
 |  | 
 | typedef struct _PRINTER_INFO_7W { | 
 |   LPWSTR    pszObjectGUID; | 
 |   DWORD     dwAction; | 
 | } PRINTER_INFO_7W, *PPRINTER_INFO_7W, *LPPRINTER_INFO_7W; | 
 |  | 
 | DECL_WINELIB_TYPE_AW(PRINTER_INFO_7) | 
 | DECL_WINELIB_TYPE_AW(PPRINTER_INFO_7) | 
 | DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_7) | 
 |  | 
 | typedef struct _PRINTER_INFO_8A { | 
 |   LPDEVMODEA pDevMode; | 
 | } PRINTER_INFO_8A, *PPRINTER_INFO_8A, *LPPRINTER_INFO_8A; | 
 |  | 
 | typedef struct _PRINTER_INFO_8W { | 
 |   LPDEVMODEW pDevMode; | 
 | } PRINTER_INFO_8W, *PPRINTER_INFO_8W, *LPPRINTER_INFO_8W; | 
 |  | 
 | DECL_WINELIB_TYPE_AW(PRINTER_INFO_8) | 
 | DECL_WINELIB_TYPE_AW(PPRINTER_INFO_8) | 
 | DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_8) | 
 |  | 
 | typedef struct _PRINTER_INFO_9A { | 
 |   LPDEVMODEA pDevMode; | 
 | } PRINTER_INFO_9A, *PPRINTER_INFO_9A, *LPPRINTER_INFO_9A; | 
 |  | 
 | typedef struct _PRINTER_INFO_9W { | 
 |   LPDEVMODEW pDevMode; | 
 | } PRINTER_INFO_9W, *PPRINTER_INFO_9W, *LPPRINTER_INFO_9W; | 
 |  | 
 | DECL_WINELIB_TYPE_AW(PRINTER_INFO_9) | 
 | DECL_WINELIB_TYPE_AW(PPRINTER_INFO_9) | 
 | DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_9) | 
 |  | 
 |  | 
 | typedef struct _JOB_INFO_1A { | 
 |   DWORD JobId; | 
 |   LPSTR pPrinterName; | 
 |   LPSTR pMachineName; | 
 |   LPSTR pUserName; | 
 |   LPSTR pDocument; | 
 |   LPSTR pDatatype; | 
 |   LPSTR pStatus; | 
 |   DWORD Status; | 
 |   DWORD Priority; | 
 |   DWORD Position; | 
 |   DWORD TotalPages; | 
 |   DWORD PagesPrinted; | 
 |   SYSTEMTIME Submitted; | 
 | } JOB_INFO_1A, *PJOB_INFO_1A, *LPJOB_INFO_1A; | 
 |  | 
 | typedef struct _JOB_INFO_1W { | 
 |   DWORD JobId; | 
 |   LPWSTR pPrinterName; | 
 |   LPWSTR pMachineName; | 
 |   LPWSTR pUserName; | 
 |   LPWSTR pDocument; | 
 |   LPWSTR pDatatype; | 
 |   LPWSTR pStatus; | 
 |   DWORD Status; | 
 |   DWORD Priority; | 
 |   DWORD Position; | 
 |   DWORD TotalPages; | 
 |   DWORD PagesPrinted; | 
 |   SYSTEMTIME Submitted; | 
 | } JOB_INFO_1W, *PJOB_INFO_1W, *LPJOB_INFO_1W; | 
 |  | 
 | DECL_WINELIB_TYPE_AW(JOB_INFO_1) | 
 | DECL_WINELIB_TYPE_AW(PJOB_INFO_1) | 
 | DECL_WINELIB_TYPE_AW(LPJOB_INFO_1) | 
 |  | 
 | typedef struct _JOB_INFO_2A { | 
 |   DWORD JobId; | 
 |   LPSTR pPrinterName; | 
 |   LPSTR pMachineName; | 
 |   LPSTR pUserName; | 
 |   LPSTR pDocument; | 
 |   LPSTR pNotifyName; | 
 |   LPSTR pDatatype; | 
 |   LPSTR pPrintProcessor; | 
 |   LPSTR pParameters; | 
 |   LPSTR pDriverName; | 
 |   LPDEVMODEA pDevMode; | 
 |   LPSTR pStatus; | 
 |   PSECURITY_DESCRIPTOR pSecurityDescriptor; | 
 |   DWORD Status; | 
 |   DWORD Priority; | 
 |   DWORD Position; | 
 |   DWORD StartTime; | 
 |   DWORD UntilTime; | 
 |   DWORD TotalPages; | 
 |   DWORD Size; | 
 |   SYSTEMTIME Submitted; | 
 |   DWORD Time; | 
 |   DWORD PagesPrinted; | 
 | } JOB_INFO_2A, *PJOB_INFO_2A, *LPJOB_INFO_2A; | 
 |  | 
 | typedef struct _JOB_INFO_2W { | 
 |   DWORD JobId; | 
 |   LPWSTR pPrinterName; | 
 |   LPWSTR pMachineName; | 
 |   LPWSTR pUserName; | 
 |   LPWSTR pDocument; | 
 |   LPWSTR pNotifyName; | 
 |   LPWSTR pDatatype; | 
 |   LPWSTR pPrintProcessor; | 
 |   LPWSTR pParameters; | 
 |   LPWSTR pDriverName; | 
 |   LPDEVMODEW pDevMode; | 
 |   LPWSTR pStatus; | 
 |   PSECURITY_DESCRIPTOR pSecurityDescriptor; | 
 |   DWORD Status; | 
 |   DWORD Priority; | 
 |   DWORD Position; | 
 |   DWORD StartTime; | 
 |   DWORD UntilTime; | 
 |   DWORD TotalPages; | 
 |   DWORD Size; | 
 |   SYSTEMTIME Submitted; | 
 |   DWORD Time; | 
 |   DWORD PagesPrinted; | 
 | } JOB_INFO_2W, *PJOB_INFO_2W, *LPJOB_INFO_2W; | 
 |  | 
 | DECL_WINELIB_TYPE_AW(JOB_INFO_2) | 
 | DECL_WINELIB_TYPE_AW(PJOB_INFO_2) | 
 | DECL_WINELIB_TYPE_AW(LPJOB_INFO_2) | 
 |  | 
 | typedef struct _JOB_INFO_3 { | 
 |   DWORD JobId; | 
 |   DWORD NextJobId; | 
 |   DWORD Reserved; | 
 | } JOB_INFO_3, *PJOB_INFO_3, *LPJOB_INFO_3; | 
 |  | 
 | typedef struct _ADDJOB_INFO_1A { | 
 |   LPSTR Path; | 
 |   DWORD JobId; | 
 | } ADDJOB_INFO_1A, *PADDJOB_INFO_1A, *LPADDJOB_INFO_1A; | 
 |  | 
 | typedef struct _ADDJOB_INFO_1W { | 
 |   LPWSTR Path; | 
 |   DWORD  JobId; | 
 | } ADDJOB_INFO_1W, *PADDJOB_INFO_1W, *LPADDJOB_INFO_1W; | 
 |  | 
 | DECL_WINELIB_TYPE_AW(ADDJOB_INFO_1) | 
 | DECL_WINELIB_TYPE_AW(PADDJOB_INFO_1) | 
 | DECL_WINELIB_TYPE_AW(LPADDJOB_INFO_1) | 
 |  | 
 | typedef struct _DOC_INFO_1A { | 
 |   LPSTR pDocName; | 
 |   LPSTR pOutputFile; | 
 |   LPSTR pDatatype; | 
 | } DOC_INFO_1A, *PDOC_INFO_1A, *LPDOC_INFO_1A; | 
 |  | 
 | typedef struct _DOC_INFO_1W { | 
 |   LPWSTR pDocName; | 
 |   LPWSTR pOutputFile; | 
 |   LPWSTR pDatatype; | 
 | } DOC_INFO_1W, *PDOC_INFO_1W, *LPDOC_INFO_1W; | 
 |  | 
 | DECL_WINELIB_TYPE_AW(DOC_INFO_1) | 
 | DECL_WINELIB_TYPE_AW(PDOC_INFO_1) | 
 | DECL_WINELIB_TYPE_AW(LPDOC_INFO_1) | 
 |  | 
 | typedef struct _DOC_INFO_2A { | 
 |   LPSTR pDocName; | 
 |   LPSTR pOutputFile; | 
 |   LPSTR pDatatype; | 
 |   DWORD dwMode; | 
 |   DWORD JobId; | 
 | } DOC_INFO_2A, *PDOC_INFO_2A, *LPDOC_INFO_2A; | 
 |  | 
 | typedef struct _DOC_INFO_2W { | 
 |   LPWSTR pDocName; | 
 |   LPWSTR pOutputFile; | 
 |   LPWSTR pDatatype; | 
 |   DWORD dwMode; | 
 |   DWORD JobId; | 
 | } DOC_INFO_2W, *PDOC_INFO_2W, *LPDOC_INFO_2W; | 
 |  | 
 | DECL_WINELIB_TYPE_AW(DOC_INFO_2) | 
 | DECL_WINELIB_TYPE_AW(PDOC_INFO_2) | 
 | DECL_WINELIB_TYPE_AW(LPDOC_INFO_2) | 
 |  | 
 | typedef struct _FORM_INFO_1A { | 
 |   DWORD Flags; | 
 |   LPSTR pName; | 
 |   SIZEL Size; | 
 |   RECTL ImageableArea; | 
 | } FORM_INFO_1A, *PFORM_INFO_1A, *LPFORM_INFO_1A; | 
 |  | 
 | typedef struct _FORM_INFO_1W { | 
 |   DWORD Flags; | 
 |   LPWSTR pName; | 
 |   SIZEL Size; | 
 |   RECTL ImageableArea; | 
 | } FORM_INFO_1W, *PFORM_INFO_1W, *LPFORM_INFO_1W; | 
 |  | 
 | DECL_WINELIB_TYPE_AW(FORM_INFO_1) | 
 | DECL_WINELIB_TYPE_AW(PFORM_INFO_1) | 
 | DECL_WINELIB_TYPE_AW(LPFORM_INFO_1) | 
 |  | 
 | typedef struct _PRINTPROCESSOR_INFO_1A { | 
 |   LPSTR pName; | 
 | } PRINTPROCESSOR_INFO_1A, *PPRINTPROCESSOR_INFO_1A, | 
 |   *LPPRINTPROCESSOR_INFO_1A; | 
 |  | 
 | typedef struct _PRINTPROCESSOR_INFO_1W { | 
 |   LPWSTR pName; | 
 | } PRINTPROCESSOR_INFO_1W, *PPRINTPROCESSOR_INFO_1W, | 
 |   *LPPRINTPROCESSOR_INFO_1W; | 
 |  | 
 | DECL_WINELIB_TYPE_AW(PRINTPROCESSOR_INFO_1) | 
 | DECL_WINELIB_TYPE_AW(PPRINTPROCESSOR_INFO_1) | 
 | DECL_WINELIB_TYPE_AW(LPPRINTPROCESSOR_INFO_1) | 
 |  | 
 | typedef struct _PORT_INFO_1A { | 
 |   LPSTR pName; | 
 | } PORT_INFO_1A, *PPORT_INFO_1A, *LPPORT_INFO_1A; | 
 |  | 
 | typedef struct _PORT_INFO_1W { | 
 |   LPWSTR pName; | 
 | } PORT_INFO_1W, *PPORT_INFO_1W, *LPPORT_INFO_1W; | 
 |  | 
 | DECL_WINELIB_TYPE_AW(PORT_INFO_1) | 
 | DECL_WINELIB_TYPE_AW(PPORT_INFO_1) | 
 | DECL_WINELIB_TYPE_AW(LPPORT_INFO_1) | 
 |  | 
 | typedef struct _PORT_INFO_2A { | 
 |   LPSTR pPortName; | 
 |   LPSTR pMonitorName; | 
 |   LPSTR pDescription; | 
 |   DWORD fPortType; | 
 |   DWORD Reserved; | 
 | } PORT_INFO_2A, *PPORT_INFO_2A, *LPPORT_INFO_2A; | 
 |  | 
 | typedef struct _PORT_INFO_2W { | 
 |   LPWSTR pPortName; | 
 |   LPWSTR pMonitorName; | 
 |   LPWSTR pDescription; | 
 |   DWORD  fPortType; | 
 |   DWORD  Reserved; | 
 | } PORT_INFO_2W, *PPORT_INFO_2W, *LPPORT_INFO_2W; | 
 |  | 
 | DECL_WINELIB_TYPE_AW(PORT_INFO_2) | 
 | DECL_WINELIB_TYPE_AW(PPORT_INFO_2) | 
 | DECL_WINELIB_TYPE_AW(LPPORT_INFO_2) | 
 |  | 
 | typedef struct _PORT_INFO_3A { | 
 |   DWORD dwStatus; | 
 |   LPSTR pszStatus; | 
 |   DWORD dwSeverity; | 
 | } PORT_INFO_3A, *PPORT_INFO_3A, *LPPORT_INFO_3A; | 
 |  | 
 | typedef struct _PORT_INFO_3W { | 
 |   DWORD  dwStatus; | 
 |   LPWSTR pszStatus; | 
 |   DWORD  dwSeverity; | 
 | } PORT_INFO_3W, *PPORT_INFO_3W, *LPPORT_INFO_3W; | 
 |  | 
 | DECL_WINELIB_TYPE_AW(PORT_INFO_3) | 
 | DECL_WINELIB_TYPE_AW(PPORT_INFO_3) | 
 | DECL_WINELIB_TYPE_AW(LPPORT_INFO_3) | 
 |  | 
 | typedef struct _MONITOR_INFO_1A { | 
 |   LPSTR pName; | 
 | } MONITOR_INFO_1A, *PMONITOR_INFO_1A, *LPMONITOR_INFO_1A; | 
 |  | 
 | typedef struct _MONITOR_INFO_1W { | 
 |   LPWSTR pName; | 
 | } MONITOR_INFO_1W, *PMONITOR_INFO_1W, *LPMONITOR_INFO_1W; | 
 |  | 
 | DECL_WINELIB_TYPE_AW(MONITOR_INFO_1) | 
 | DECL_WINELIB_TYPE_AW(PMONITOR_INFO_1) | 
 | DECL_WINELIB_TYPE_AW(LPMONITOR_INFO_1) | 
 |  | 
 | #endif /* Status */ | 
 |  | 
 |  | 
 | typedef struct _MONITOR_INFO_2A { | 
 |   LPSTR pName; | 
 |   LPSTR pEnvironment; | 
 |   LPSTR pDLLName; | 
 | } MONITOR_INFO_2A, *PMONITOR_INFO_2A, *LPMONITOR_INFO_2A; | 
 |  | 
 | typedef struct _MONITOR_INFO_2W { | 
 |   LPWSTR pName; | 
 |   LPWSTR pEnvironment; | 
 |   LPWSTR pDLLName; | 
 | } MONITOR_INFO_2W, *PMONITOR_INFO_2W, *LPMONITOR_INFO_2W; | 
 |  | 
 | DECL_WINELIB_TYPE_AW(MONITOR_INFO_2) | 
 | DECL_WINELIB_TYPE_AW(PMONITOR_INFO_2) | 
 | DECL_WINELIB_TYPE_AW(LPMONITOR_INFO_2) | 
 |  | 
 | typedef struct _DATATYPES_INFO_1A { | 
 |   LPSTR pName; | 
 | } DATATYPES_INFO_1A, *PDATATYPES_INFO_1A, *LPDATATYPES_INFO_1A; | 
 |  | 
 | typedef struct _DATATYPES_INFO_1W { | 
 |   LPWSTR pName; | 
 | } DATATYPES_INFO_1W, *PDATATYPES_INFO_1W, *LPDATATYPES_INFO_1W; | 
 |  | 
 | DECL_WINELIB_TYPE_AW(DATATYPES_INFO_1) | 
 | DECL_WINELIB_TYPE_AW(PDATATYPES_INFO_1) | 
 | DECL_WINELIB_TYPE_AW(LPDATATYPES_INFO_1) | 
 |  | 
 | typedef struct _PRINTER_NOTIFY_OPTIONS_TYPE { | 
 |   WORD  Type; | 
 |   WORD  Reserved0; | 
 |   DWORD Reserved1; | 
 |   DWORD Reserved2; | 
 |   DWORD Count; | 
 |   PWORD pFields; | 
 | } PRINTER_NOTIFY_OPTIONS_TYPE, *PPRINTER_NOTIFY_OPTIONS_TYPE, | 
 | *LPPRINTER_NOTIFY_OPTIONS_TYPE; | 
 |  | 
 | typedef struct _PRINTER_NOTIFY_OPTIONS { | 
 |   DWORD Version; | 
 |   DWORD Flags; | 
 |   DWORD Count; | 
 |   PPRINTER_NOTIFY_OPTIONS_TYPE pTypes; | 
 | } PRINTER_NOTIFY_OPTIONS, *PPRINTER_NOTIFY_OPTIONS, *LPPRINTER_NOTIFY_OPTIONS; | 
 |  | 
 | typedef struct _PRINTER_NOTIFY_INFO_DATA { | 
 |   WORD Type; | 
 |   WORD Field; | 
 |   DWORD Reserved; | 
 |   DWORD Id; | 
 |   union { | 
 |     DWORD adwData[2]; | 
 |     struct { | 
 |       DWORD cbBuf; | 
 |       LPVOID pBuf; | 
 |     } Data; | 
 |   } NotifyData; | 
 | } PRINTER_NOTIFY_INFO_DATA, *PPRINTER_NOTIFY_INFO_DATA, | 
 | *LPPRINTER_NOTIFY_INFO_DATA; | 
 |  | 
 | typedef struct _PRINTER_NOTIFY_INFO { | 
 |   DWORD Version; | 
 |   DWORD Flags; | 
 |   DWORD Count; | 
 |   PRINTER_NOTIFY_INFO_DATA aData[1]; | 
 | } PRINTER_NOTIFY_INFO, *PPRINTER_NOTIFY_INFO, *LPPRINTER_NOTIFY_INFO; | 
 |  | 
 | typedef struct _PROVIDOR_INFO_1A { | 
 |   LPSTR pName; | 
 |   LPSTR pEnvironment; | 
 |   LPSTR pDLLName; | 
 | } PROVIDOR_INFO_1A, *PPROVIDOR_INFO_1A, *LPPROVIDOR_INFO_1A; | 
 |  | 
 | typedef struct _PROVIDOR_INFO_1W { | 
 |   LPWSTR pName; | 
 |   LPWSTR pEnvironment; | 
 |   LPWSTR pDLLName; | 
 | } PROVIDOR_INFO_1W, *PPROVIDOR_INFO_1W, *LPPROVIDOR_INFO_1W; | 
 |  | 
 | DECL_WINELIB_TYPE_AW(PROVIDOR_INFO_1) | 
 | DECL_WINELIB_TYPE_AW(PPROVIDOR_INFO_1) | 
 | DECL_WINELIB_TYPE_AW(LPPROVIDOR_INFO_1) | 
 |  | 
 | typedef struct _PRINTER_ENUM_VALUESA { | 
 |   LPSTR	 pValueName; | 
 |   DWORD  cbValueName; | 
 |   DWORD  dwType; | 
 |   LPBYTE pData; | 
 |   DWORD  cbData; | 
 | } PRINTER_ENUM_VALUESA, *PPRINTER_ENUM_VALUESA; | 
 |  | 
 | typedef struct _PRINTER_ENUM_VALUESW { | 
 |   LPWSTR pValueName; | 
 |   DWORD  cbValueName; | 
 |   DWORD  dwType; | 
 |   LPBYTE pData; | 
 |   DWORD  cbData; | 
 | } PRINTER_ENUM_VALUESW, *PPRINTER_ENUM_VALUESW; | 
 |  | 
 | DECL_WINELIB_TYPE_AW(PRINTER_ENUM_VALUES) | 
 | DECL_WINELIB_TYPE_AW(PPRINTER_ENUM_VALUES) | 
 |  | 
 | typedef enum { | 
 |  BIDI_NULL = 0, | 
 |  BIDI_INT, | 
 |  BIDI_FLOAT, | 
 |  BIDI_BOOL, | 
 |  BIDI_STRING, | 
 |  BIDI_TEXT, | 
 |  BIDI_ENUM, | 
 |  BIDI_BLOB | 
 | } BIDI_TYPE; | 
 |  | 
 | typedef struct _BINARY_CONTAINER { | 
 |  DWORD  cbBuf; | 
 |  LPBYTE pData; | 
 | } BINARY_CONTAINER, *PBINARY_CONTAINER; | 
 |  | 
 | typedef struct _BIDI_DATA { | 
 |  DWORD  dwBidiType; | 
 |  union | 
 |  { | 
 |    BOOL             bData; | 
 |    INT              iData; | 
 |    LPWSTR           sData; | 
 |    FLOAT            fData; | 
 |    BINARY_CONTAINER biData; | 
 |  } u; | 
 | } BIDI_DATA, *LPBIDI_DATA, *PBIDI_DATA; | 
 |  | 
 | typedef struct _BIDI_REQUEST_DATA { | 
 |  DWORD      dwReqNumber; | 
 |  LPWSTR     pSchema; | 
 |  BIDI_DATA  data; | 
 | } BIDI_REQUEST_DATA, *LPBIDI_REQUEST_DATA, *PBIDI_REQUEST_DATA; | 
 |  | 
 | typedef struct _BIDI_REQUEST_CONTAINER { | 
 |  DWORD              Version; | 
 |  DWORD              Flags; | 
 |  DWORD              Count; | 
 |  BIDI_REQUEST_DATA  aData[1]; | 
 | } BIDI_REQUEST_CONTAINER, *LPBIDI_REQUEST_CONTAINER, *PBIDI_REQUEST_CONTAINER; | 
 |  | 
 | typedef struct _BIDI_RESPONSE_DATA { | 
 |  DWORD      dwResult; | 
 |  DWORD      dwReqNumber; | 
 |  LPWSTR     pSchema; | 
 |  BIDI_DATA  data; | 
 | } BIDI_RESPONSE_DATA, *LPBIDI_RESPONSE_DATA, *PBIDI_RESPONSE_DATA; | 
 |  | 
 | typedef struct _BIDI_RESPONSE_CONTAINER { | 
 |  DWORD              Version; | 
 |  DWORD              Flags; | 
 |  DWORD              Count; | 
 |  BIDI_RESPONSE_DATA aData[1]; | 
 | } BIDI_RESPONSE_CONTAINER, *LPBIDI_RESPONSE_CONTAINER, *PBIDI_RESPONSE_CONTAINER; | 
 |  | 
 | /* DECLARATIONS */ | 
 | INT WINAPI DeviceCapabilitiesA(LPCSTR pDevice,LPCSTR pPort,WORD fwCapability, | 
 | 			       LPSTR pOutput, LPDEVMODEA pDevMode); | 
 | INT WINAPI DeviceCapabilitiesW(LPCWSTR pDevice, LPCWSTR pPort, | 
 | 			       WORD fwCapability, LPWSTR pOutput, | 
 | 			       const DEVMODEW *pDevMode); | 
 |  | 
 | #define DeviceCapabilities WINELIB_NAME_AW(DeviceCapabilities) | 
 |  | 
 | LONG WINAPI DocumentPropertiesA(HWND hWnd,HANDLE hPrinter, | 
 |                                 LPSTR pDeviceName, LPDEVMODEA pDevModeOutput, | 
 | 				LPDEVMODEA pDevModeInput,DWORD fMode ); | 
 | LONG WINAPI DocumentPropertiesW(HWND hWnd, HANDLE hPrinter, | 
 | 				LPWSTR pDeviceName, | 
 | 				LPDEVMODEW pDevModeOutput, | 
 | 				LPDEVMODEW pDevModeInput, DWORD fMode); | 
 |  | 
 | #define DocumentProperties WINELIB_NAME_AW(DocumentProperties) | 
 |  | 
 | BOOL WINAPI OpenPrinterA(LPSTR lpPrinterName,HANDLE *phPrinter, | 
 | 			     LPPRINTER_DEFAULTSA pDefault); | 
 | BOOL WINAPI OpenPrinterW(LPWSTR lpPrinterName,HANDLE *phPrinter, | 
 | 			     LPPRINTER_DEFAULTSW pDefault); | 
 |  | 
 | #define OpenPrinter WINELIB_NAME_AW(OpenPrinter) | 
 |  | 
 | BOOL WINAPI ResetPrinterA(HANDLE hPrinter, LPPRINTER_DEFAULTSA pDefault); | 
 | BOOL WINAPI ResetPrinterW(HANDLE hPrinter, LPPRINTER_DEFAULTSW pDefault); | 
 | #define ResetPrinter WINELIB_NAME_AW(ResetPrinter) | 
 |  | 
 | BOOL WINAPI ClosePrinter (HANDLE phPrinter); | 
 |  | 
 | BOOL WINAPI EnumJobsA(HANDLE hPrinter, DWORD FirstJob, DWORD NoJobs, | 
 | 		      DWORD Level, LPBYTE pJob, DWORD cbBuf, LPDWORD pcbNeeded, | 
 | 		      LPDWORD pcReturned); | 
 | BOOL WINAPI EnumJobsW(HANDLE hPrinter, DWORD FirstJob, DWORD NoJobs, | 
 | 		      DWORD Level, LPBYTE pJob, DWORD cbBuf, LPDWORD pcbNeeded, | 
 | 		      LPDWORD pcReturned); | 
 | #define EnumJobs WINELIB_NAME_AW(EnumJobs) | 
 |  | 
 | BOOL  WINAPI EnumPrintersA(DWORD dwType, LPSTR lpszName, | 
 | 			       DWORD dwLevel, LPBYTE lpbPrinters, | 
 | 			       DWORD cbBuf, LPDWORD lpdwNeeded, | 
 | 			       LPDWORD lpdwReturned); | 
 | BOOL  WINAPI EnumPrintersW(DWORD dwType, LPWSTR lpszName, | 
 | 			       DWORD dwLevel, LPBYTE lpbPrinters, | 
 | 			       DWORD cbBuf, LPDWORD lpdwNeeded, | 
 | 			       LPDWORD lpdwReturned); | 
 | #define EnumPrinters WINELIB_NAME_AW(EnumPrinters) | 
 |  | 
 | BOOL WINAPI PrinterProperties(HWND hWnd, HANDLE hPrinter); | 
 |  | 
 | BOOL WINAPI GetPrinterDriverDirectoryA(LPSTR,LPSTR,DWORD,LPBYTE,DWORD,LPDWORD); | 
 | BOOL WINAPI GetPrinterDriverDirectoryW(LPWSTR,LPWSTR,DWORD,LPBYTE,DWORD,LPDWORD); | 
 | #define GetPrinterDriverDirectory WINELIB_NAME_AW(GetPrinterDriverDirectory) | 
 |  | 
 | BOOL WINAPI GetPrinterDriverA(HANDLE hPrinter, LPSTR pEnvironment, | 
 | 			      DWORD Level, LPBYTE pDriverInfo, | 
 | 			      DWORD cbBuf, LPDWORD pcbNeeded); | 
 | BOOL WINAPI GetPrinterDriverW(HANDLE hPrinter, LPWSTR pEnvironment, | 
 | 			      DWORD Level, LPBYTE pDriverInfo, | 
 | 			      DWORD cbBuf, LPDWORD pcbNeeded); | 
 | #define GetPrinterDriver WINELIB_NAME_AW(GetPrinterDriver) | 
 |  | 
 | BOOL WINAPI SetJobA(HANDLE hPrinter, DWORD JobID, DWORD Level, LPBYTE pJob, | 
 | 		    DWORD Command); | 
 | BOOL WINAPI SetJobW(HANDLE hPrinter, DWORD JobID, DWORD Level, LPBYTE pJob, | 
 | 		    DWORD Command); | 
 | #define SetJob WINELIB_NAME_AW(SetJob) | 
 |  | 
 | BOOL WINAPI GetJobA(HANDLE hPrinter, DWORD JobID, DWORD Level, LPBYTE pJob, | 
 | 		    DWORD cbBuf, LPDWORD pcbNeeded); | 
 | BOOL WINAPI GetJobW(HANDLE hPrinter, DWORD JobID, DWORD Level, LPBYTE pJob, | 
 | 		    DWORD cbBuf, LPDWORD pcbNeeded); | 
 | #define GetJob WINELIB_NAME_AW(GetJob) | 
 |  | 
 | HANDLE WINAPI AddPrinterA(LPSTR pName, DWORD Level, LPBYTE pPrinter); | 
 | HANDLE WINAPI AddPrinterW(LPWSTR pName, DWORD Level, LPBYTE pPrinter); | 
 | #define AddPrinter WINELIB_NAME_AW(AddPrinter) | 
 |  | 
 | BOOL WINAPI DeletePrinter(HANDLE hPrinter); | 
 |  | 
 | BOOL WINAPI SetPrinterA(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter, | 
 | 			DWORD Command); | 
 | BOOL WINAPI SetPrinterW(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter, | 
 | 			DWORD Command); | 
 | #define SetPrinter WINELIB_NAME_AW(SetPrinter) | 
 |  | 
 | BOOL WINAPI GetPrinterA(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter, | 
 | 			DWORD cbBuf, LPDWORD pcbNeeded); | 
 | BOOL WINAPI GetPrinterW(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter, | 
 | 			DWORD cbBuf, LPDWORD pcbNeeded); | 
 | #define GetPrinter WINELIB_NAME_AW(GetPrinter) | 
 |  | 
 | BOOL WINAPI AddPrinterDriverA(LPSTR pName, DWORD Level, LPBYTE pDriverInfo); | 
 | BOOL WINAPI AddPrinterDriverW(LPWSTR pName, DWORD Level, LPBYTE pDriverInfo); | 
 | #define AddPrinterDriver WINELIB_NAME_AW(AddPrinterDriver) | 
 |  | 
 | BOOL WINAPI AddPrinterDriverExA(LPSTR pName, DWORD Level, LPBYTE pDriverInfo, | 
 |                                 DWORD dwFileCopyFlags); | 
 | BOOL WINAPI AddPrinterDriverExW(LPWSTR pName, DWORD Level, LPBYTE pDriverInfo, | 
 |                                 DWORD dwFileCopyFlags); | 
 | #define AddPrinterDriverEx WINELIB_NAME_AW(AddPrinterDriverEx) | 
 |  | 
 | BOOL WINAPI EnumPrinterDriversA(LPSTR pName, LPSTR pEnvironment, DWORD Level, | 
 | 				LPBYTE pDriverInfo, DWORD cbBuf, | 
 | 				LPDWORD pcbNeeded, LPDWORD pcbReturned); | 
 | BOOL WINAPI EnumPrinterDriversW(LPWSTR pName, LPWSTR pEnvironment, DWORD Level, | 
 | 				LPBYTE pDriverInfo, DWORD cbBuf, | 
 | 				LPDWORD pcbNeeded, LPDWORD pcbReturned); | 
 | #define EnumPrinterDrivers WINELIB_NAME_AW(EnumPrinterDrivers) | 
 |  | 
 | BOOL WINAPI GetDefaultPrinterA(LPSTR pName, LPDWORD pcbNameSize); | 
 | BOOL WINAPI GetDefaultPrinterW(LPWSTR pName, LPDWORD pcbNameSize); | 
 | #define GetDefaultPrinter WINELIB_NAME_AW(GetDefaultPrinter) | 
 |  | 
 | BOOL WINAPI DeletePrinterDriverA(LPSTR pName, LPSTR pEnvironment, | 
 | 				 LPSTR pDriverName); | 
 | BOOL WINAPI DeletePrinterDriverW(LPWSTR pName, LPWSTR pEnvironment, | 
 | 				 LPWSTR pDriverName); | 
 | #define DeletePrinterDriver WINELIB_NAME_AW(DeletePrinterDriver) | 
 |  | 
 | BOOL WINAPI DeletePrinterDriverExA(LPSTR pName, LPSTR pEnvironment, | 
 |                                    LPSTR pDriverName, DWORD dwDeleteFlag, DWORD dwVersionFlag); | 
 | BOOL WINAPI DeletePrinterDriverExW(LPWSTR pName, LPWSTR pEnvironment, | 
 |                                    LPWSTR pDriverName, DWORD dwDeleteFlag, DWORD dwVersionFlag); | 
 | #define DeletePrinterDriverEx WINELIB_NAME_AW(DeletePrinterDriverEx) | 
 |  | 
 | BOOL WINAPI AddPrintProcessorA(LPSTR pName, LPSTR pEnvironment, | 
 | 			       LPSTR pPathName, LPSTR pPrintProcessorName); | 
 | BOOL WINAPI AddPrintProcessorW(LPWSTR pName, LPWSTR pEnvironment, | 
 | 			       LPWSTR pPathName, LPWSTR pPrintProcessorName); | 
 | #define AddPrintProcessor WINELIB_NAME_AW(AddPrintProcessor) | 
 |  | 
 | BOOL WINAPI EnumPrintProcessorsA(LPSTR pName, LPSTR pEnvironment, | 
 | 				 DWORD Level, LPBYTE pPrintProcessorInfo, | 
 | 				 DWORD cbBuf, LPDWORD pcbNeeded, | 
 | 				 LPDWORD pcbReturned); | 
 | BOOL WINAPI EnumPrintProcessorsW(LPWSTR pName, LPWSTR pEnvironment, | 
 | 				 DWORD Level, LPBYTE pPrintProcessorInfo, | 
 | 				 DWORD cbBuf, LPDWORD pcbNeeded, | 
 | 				 LPDWORD pcbReturned); | 
 | #define EnumPrintProcessors WINELIB_NAME_AW(EnumPrintProcessors) | 
 |  | 
 | BOOL WINAPI GetPrintProcessorDirectoryA(LPSTR pName, LPSTR pEnvironment, | 
 | 					DWORD Level, | 
 | 					LPBYTE pPrintProcessorInfo, | 
 | 					DWORD cbBuf, LPDWORD pcbNeeded); | 
 |  | 
 | BOOL WINAPI GetPrintProcessorDirectoryW(LPWSTR pName, LPWSTR pEnvironment, | 
 | 					DWORD Level, | 
 | 					LPBYTE pPrintProcessorInfo, | 
 | 					DWORD cbBuf, LPDWORD pcbNeeded); | 
 | #define GetPrintProcessorDirectory WINELIB_NAME_AW(GetPrintProcessorDirectory) | 
 |  | 
 | BOOL WINAPI EnumPrintProcessorDatatypesA(LPSTR pName, | 
 | 					 LPSTR pPrintProcessorName, | 
 | 					 DWORD Level, LPBYTE pDatatypes, | 
 | 					 DWORD cbBuf, LPDWORD pcbNeeded, | 
 | 					 LPDWORD pcbReturned); | 
 | BOOL WINAPI EnumPrintProcessorDatatypesW(LPWSTR pName, | 
 | 					 LPWSTR pPrintProcessorName, | 
 | 					 DWORD Level, LPBYTE pDatatypes, | 
 | 					 DWORD cbBuf, LPDWORD pcbNeeded, | 
 | 					 LPDWORD pcbReturned); | 
 | #define EnumPrintProcessorDatatypes WINELIB_NAME_AW(EnumPrintProcessorDatatypes) | 
 |  | 
 | BOOL WINAPI DeletePrintProcessorA(LPSTR pName, LPSTR pEnvironment, | 
 | 				  LPSTR pPrintProcessorName); | 
 | BOOL WINAPI DeletePrintProcessorW(LPWSTR pName, LPWSTR pEnvironment, | 
 | 				  LPWSTR pPrintProcessorName); | 
 | #define DeletePrintProcessor WINELIB_NAME_AW(DeletePrintProcessor) | 
 |  | 
 | DWORD WINAPI StartDocPrinterA(HANDLE hPrinter, DWORD Level, LPBYTE pDocInfo); | 
 | DWORD WINAPI StartDocPrinterW(HANDLE hPrinter, DWORD Level, LPBYTE pDocInfo); | 
 | #define StartDocPrinter WINELIB_NAME_AW(StartDocPrinter) | 
 |  | 
 | BOOL WINAPI StartPagePrinter(HANDLE hPrinter); | 
 | BOOL WINAPI WritePrinter(HANDLE hPrinter, LPVOID pBuf, DWORD cbBuf, | 
 | 			 LPDWORD pcWritten); | 
 | BOOL WINAPI EndPagePrinter(HANDLE hPrinter); | 
 | BOOL WINAPI AbortPrinter(HANDLE hPrinter); | 
 | BOOL WINAPI ReadPrinter(HANDLE hPrinter, LPVOID pBuf, DWORD cbBuf, | 
 | 			LPDWORD pNoBytesRead); | 
 | BOOL WINAPI EndDocPrinter(HANDLE hPrinter); | 
 |  | 
 | BOOL WINAPI AddJobA(HANDLE hPrinter, DWORD Level, LPBYTE pData, DWORD cbBuf, | 
 | 		    LPDWORD pcbNeeded); | 
 | BOOL WINAPI AddJobW(HANDLE hPrinter, DWORD Level, LPBYTE pData, DWORD cbBuf, | 
 | 		    LPDWORD pcbNeeded); | 
 | #define AddJob WINELIB_NAME_AW(AddJob) | 
 |  | 
 | BOOL WINAPI ScheduleJob(HANDLE hPrinter, DWORD JobID); | 
 |  | 
 | LONG WINAPI AdvancedDocumentPropertiesA(HWND hWnd, HANDLE hPrinter, | 
 | 					LPSTR pDeviceName, | 
 | 					PDEVMODEA pDevModeOutput, | 
 | 					PDEVMODEA pDevModeInput); | 
 | LONG WINAPI AdvancedDocumentPropertiesW(HWND hWnd, HANDLE hPrinter, | 
 | 					LPWSTR pDeviceName, | 
 | 					PDEVMODEW pDevModeOutput, | 
 | 					PDEVMODEW pDevModeInput); | 
 | #define AdvancedDocumentProperties WINELIB_NAME_AW(AdvancedDocumentProperties) | 
 |  | 
 | DWORD WINAPI GetPrinterDataA(HANDLE hPrinter, LPSTR pValueName, LPDWORD pType, | 
 | 			     LPBYTE pData, DWORD nSize, LPDWORD pcbNeeded); | 
 | DWORD WINAPI GetPrinterDataW(HANDLE hPrinter, LPWSTR pValueName, LPDWORD pType, | 
 | 			     LPBYTE pData, DWORD nSize, LPDWORD pcbNeeded); | 
 | #define GetPrinterData WINELIB_NAME_AW(GetPrinterData) | 
 |  | 
 | DWORD WINAPI GetPrinterDataExA(HANDLE hPrinter, LPCSTR pKeyName, | 
 | 			       LPCSTR pValueName, LPDWORD pType, | 
 | 			       LPBYTE pData, DWORD nSize, LPDWORD pcbNeeded); | 
 | DWORD WINAPI GetPrinterDataExW(HANDLE hPrinter, LPCWSTR pKeyName, | 
 | 			       LPCWSTR pValueName, LPDWORD pType, | 
 | 			       LPBYTE pData, DWORD nSize, LPDWORD pcbNeeded); | 
 | #define GetPrinterDataEx WINELIB_NAME_AW(GetPrinterDataEx) | 
 |  | 
 | DWORD WINAPI DeletePrinterDataExA(HANDLE hPrinter, LPCSTR pKeyName, | 
 |                                   LPCSTR pValueName); | 
 | DWORD WINAPI DeletePrinterDataExW(HANDLE hPrinter, LPCWSTR pKeyName, | 
 |                                   LPCWSTR pValueName); | 
 | #define DeletePrinterDataEx WINELIB_NAME_AW(DeletePrinterDataEx) | 
 |  | 
 | DWORD WINAPI SetPrinterDataA(HANDLE hPrinter, LPSTR pValueName, DWORD Type, | 
 | 			     LPBYTE pData, DWORD cbData); | 
 | DWORD WINAPI SetPrinterDataW(HANDLE hPrinter, LPWSTR pValueName, DWORD Type, | 
 | 			     LPBYTE pData, DWORD cbData); | 
 | #define SetPrinterData WINELIB_NAME_AW(SetPrinterData) | 
 |  | 
 | DWORD WINAPI SetPrinterDataExA(HANDLE hPrinter, LPCSTR pKeyName, | 
 | 			       LPCSTR pValueName, DWORD Type, | 
 | 			       LPBYTE pData, DWORD cbData); | 
 | DWORD WINAPI SetPrinterDataExW(HANDLE hPrinter, LPCWSTR pKeyName, | 
 | 			       LPCWSTR pValueName, DWORD Type, | 
 | 			       LPBYTE pData, DWORD cbData); | 
 | #define SetPrinterDataEx WINELIB_NAME_AW(SetPrinterDataEx) | 
 |  | 
 | DWORD WINAPI WaitForPrinterChange(HANDLE hPrinter, DWORD Flags); | 
 | HANDLE WINAPI FindFirstPrinterChangeNotification(HANDLE hPrinter, | 
 | 						 DWORD fdwFlags, | 
 | 						 DWORD fdwOptions, | 
 | 						 LPVOID pPrinterNotifyOptions); | 
 | BOOL WINAPI FindNextPrinterChangeNotification(HANDLE hChange, | 
 | 					      PDWORD pdwChange, | 
 | 					      LPVOID pvReserved, | 
 | 					      LPVOID *ppPrinterNotifyInfo); | 
 | BOOL WINAPI FreePrinterNotifyInfo(PPRINTER_NOTIFY_INFO pPrinterNotifyInfo); | 
 | BOOL WINAPI FindClosePrinterChangeNotification(HANDLE hChange); | 
 |  | 
 | DWORD WINAPI PrinterMessageBoxA(HANDLE hPrinter, DWORD Error, HWND hWnd, | 
 | 				LPSTR pText, LPSTR pCaption, DWORD dwType); | 
 | DWORD WINAPI PrinterMessageBoxW(HANDLE hPrinter, DWORD Error, HWND hWnd, | 
 | 				LPWSTR pText, LPWSTR pCaption, DWORD dwType); | 
 | #define PrinterMessageBox WINELIB_NAME_AW(PrinterMessageBox) | 
 |  | 
 | BOOL WINAPI AddFormA(HANDLE hPrinter, DWORD Level, LPBYTE pForm); | 
 | BOOL WINAPI AddFormW(HANDLE hPrinter, DWORD Level, LPBYTE pForm); | 
 | #define AddForm WINELIB_NAME_AW(AddForm) | 
 |  | 
 | BOOL WINAPI DeleteFormA(HANDLE hPrinter, LPSTR pFormName); | 
 | BOOL WINAPI DeleteFormW(HANDLE hPrinter, LPWSTR pFormName); | 
 | #define DeleteForm WINELIB_NAME_AW(DeleteForm) | 
 |  | 
 | BOOL WINAPI GetFormA(HANDLE hPrinter, LPSTR pFormName, DWORD Level, | 
 | 		     LPBYTE pForm, DWORD cbBuf, LPDWORD pcbNeeded); | 
 | BOOL WINAPI GetFormW(HANDLE hPrinter, LPWSTR pFormName, DWORD Level, | 
 | 		     LPBYTE pForm, DWORD cbBuf, LPDWORD pcbNeeded); | 
 | #define GetForm WINELIB_NAME_AW(GetForm) | 
 |  | 
 | BOOL WINAPI SetFormA(HANDLE hPrinter, LPSTR pFormName, DWORD Level, | 
 | 		     LPBYTE pForm); | 
 | BOOL WINAPI SetFormW(HANDLE hPrinter, LPWSTR pFormName, DWORD Level, | 
 | 		     LPBYTE pForm); | 
 | #define SetForm WINELIB_NAME_AW(SetForm) | 
 |  | 
 | BOOL WINAPI EnumFormsA(HANDLE hPrinter, DWORD Level, LPBYTE pForm, DWORD cbBuf, | 
 | 		       LPDWORD pcbNeeded, LPDWORD pcReturned); | 
 | BOOL WINAPI EnumFormsW(HANDLE hPrinter, DWORD Level, LPBYTE pForm, DWORD cbBuf, | 
 | 		       LPDWORD pcbNeeded, LPDWORD pcReturned); | 
 | #define EnumForms WINELIB_NAME_AW(EnumForms) | 
 |  | 
 | BOOL WINAPI EnumMonitorsA(LPSTR pName, DWORD Level, LPBYTE pMonitors, | 
 | 			  DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned); | 
 | BOOL WINAPI EnumMonitorsW(LPWSTR pName, DWORD Level, LPBYTE pMonitors, | 
 | 			  DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned); | 
 | #define EnumMonitors WINELIB_NAME_AW(EnumMonitors) | 
 |  | 
 | DWORD WINAPI EnumPrinterDataA( HANDLE hPrinter, DWORD dwIndex, LPSTR pValueName, | 
 |     DWORD cbValueName, LPDWORD pcbValueName, LPDWORD pType, LPBYTE pData, | 
 |     DWORD cbData, LPDWORD pcbData ); | 
 | DWORD WINAPI EnumPrinterDataW( HANDLE hPrinter, DWORD dwIndex, LPWSTR pValueName, | 
 |     DWORD cbValueName, LPDWORD pcbValueName, LPDWORD pType, LPBYTE pData, | 
 |     DWORD cbData, LPDWORD pcbData ); | 
 | #define EnumPrinterData WINELIB_NAME_AW(EnumPrinterData) | 
 |  | 
 | BOOL WINAPI AddMonitorA(LPSTR pName, DWORD Level, LPBYTE pMonitors); | 
 | BOOL WINAPI AddMonitorW(LPWSTR pName, DWORD Level, LPBYTE pMonitors); | 
 | #define AddMonitor WINELIB_NAME_AW(AddMonitor) | 
 |  | 
 | BOOL WINAPI DeleteMonitorA(LPSTR pName, LPSTR pEnvironment, | 
 | 			   LPSTR pMonitorName); | 
 | BOOL WINAPI DeleteMonitorW(LPWSTR pName, LPWSTR pEnvironment, | 
 | 			   LPWSTR pMonitorName); | 
 | #define DeleteMonitor WINELIB_NAME_AW(DeleteMonitor) | 
 |  | 
 | BOOL WINAPI EnumPortsA(LPSTR pName, DWORD Level, LPBYTE pPorts, | 
 | 		       DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned); | 
 | BOOL WINAPI EnumPortsW(LPWSTR pName, DWORD Level, LPBYTE pPorts, | 
 | 		       DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned); | 
 | #define EnumPorts WINELIB_NAME_AW(EnumPorts) | 
 |  | 
 | BOOL WINAPI AddPortA(LPSTR pName, HWND hWnd, LPSTR pMonitorName); | 
 | BOOL WINAPI AddPortW(LPWSTR pName, HWND hWnd, LPWSTR pMonitorName); | 
 | #define AddPort WINELIB_NAME_AW(AddPort) | 
 |  | 
 | BOOL WINAPI AddPortExA(HANDLE hMonitor, LPSTR pName, DWORD Level, | 
 |                        LPBYTE lpBuffer, LPSTR lpMonitorName); | 
 | BOOL WINAPI AddPortExW(HANDLE hMonitor, LPWSTR pName, DWORD Level, | 
 |                        LPBYTE lpBuffer, LPWSTR lpMonitorName); | 
 | #define AddPortEx WINELIB_NAME_AW(AddPortEx) | 
 |  | 
 | BOOL WINAPI ConfigurePortA(LPSTR pName, HWND hWnd, LPSTR pPortName); | 
 | BOOL WINAPI ConfigurePortW(LPWSTR pName, HWND hWnd, LPWSTR pPortName); | 
 | #define ConfigurePort WINELIB_NAME_AW(ConfigurePort) | 
 |  | 
 | BOOL WINAPI DeletePortA(LPSTR pName, HWND hWnd, LPSTR pPortName); | 
 | BOOL WINAPI DeletePortW(LPWSTR pName, HWND hWnd, LPWSTR pPortName); | 
 | #define DeletePort WINELIB_NAME_AW(DeletePort) | 
 |  | 
 | BOOL WINAPI SetPortA(LPSTR pName, LPSTR pPortName, DWORD dwLevel, | 
 | 		     LPBYTE pPortInfo); | 
 | BOOL WINAPI SetPortW(LPWSTR pName, LPWSTR pPortName, DWORD dwLevel, | 
 | 		     LPBYTE pPortInfo); | 
 | #define SetPort WINELIB_NAME_AW(SetPort) | 
 |  | 
 | BOOL WINAPI AddPrinterConnectionA(LPSTR pName); | 
 | BOOL WINAPI AddPrinterConnectionW(LPWSTR pName); | 
 | #define AddPrinterConnection WINELIB_NAME_AW(AddPrinterConnection) | 
 |  | 
 | BOOL WINAPI DeletePrinterConnectionA(LPSTR pName); | 
 | BOOL WINAPI DeletePrinterConnectionW(LPWSTR pName); | 
 | #define DeletePrinterConnection WINELIB_NAME_AW(DeletePrinterConnection) | 
 |  | 
 | HANDLE WINAPI ConnectToPrinterDlg(HWND hwnd, DWORD Flags); | 
 |  | 
 | BOOL WINAPI AddPrintProvidorA(LPSTR pName, DWORD Level, LPBYTE pProvidorInfo); | 
 | BOOL WINAPI AddPrintProvidorW(LPWSTR pName, DWORD Level, LPBYTE pProvidorInfo); | 
 | #define AddPrintProvidor WINELIB_NAME_AW(AddPrintProvidor) | 
 |  | 
 | BOOL WINAPI DeletePrintProvidorA(LPSTR pName, LPSTR pEnvironment, | 
 | 				 LPSTR pPrintProvidorName); | 
 | BOOL WINAPI DeletePrintProvidorW(LPWSTR pName, LPWSTR pEnvironment, | 
 | 				 LPWSTR pPrintProvidorName); | 
 | #define DeletePrintProvidor WINELIB_NAME_AW(DeletePrintProvidor) | 
 |  | 
 | DWORD WINAPI EnumPrinterDataExA(HANDLE hPrinter, LPCSTR pKeyName, | 
 | 				LPBYTE pEnumValues, DWORD cbEnumValues, | 
 | 				LPDWORD pcbEnumValues, LPDWORD pnEnumValues); | 
 | DWORD WINAPI EnumPrinterDataExW(HANDLE hPrinter, LPCWSTR pKeyName, | 
 | 				LPBYTE pEnumValues, DWORD cbEnumValues, | 
 | 				LPDWORD pcbEnumValues, LPDWORD pnEnumValues); | 
 | #define EnumPrinterDataEx WINELIB_NAME_AW(EnumPrinterDataEx) | 
 |  | 
 | LONG WINAPI ExtDeviceMode( HWND hWnd, HANDLE hInst, LPDEVMODEA pDevModeOutput, | 
 |     LPSTR pDeviceName, LPSTR pPort, LPDEVMODEA pDevModeInput, LPSTR pProfile, | 
 |     DWORD fMode); | 
 |  | 
 | LPSTR WINAPI StartDocDlgA(HANDLE hPrinter, DOCINFOA *doc); | 
 | LPWSTR WINAPI StartDocDlgW(HANDLE hPrinter, DOCINFOW *doc); | 
 | #define StartDocDlg WINELIB_NAME_AW(StartDocDlg) | 
 |  | 
 | #ifdef __cplusplus | 
 | } /* extern "C" */ | 
 | #endif | 
 |  | 
 | #endif  /* __WINE_WINSPOOL_H */ |