diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 16:49:04 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 16:49:04 +0000 |
commit | 16f504a9dca3fe3b70568f67b7d41241ae485288 (patch) | |
tree | c60f36ada0496ba928b7161059ba5ab1ab224f9d /src/VBox/Devices/Graphics/shaderlib/wine/include/winspool.h | |
parent | Initial commit. (diff) | |
download | virtualbox-upstream.tar.xz virtualbox-upstream.zip |
Adding upstream version 7.0.6-dfsg.upstream/7.0.6-dfsgupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/VBox/Devices/Graphics/shaderlib/wine/include/winspool.h')
-rw-r--r-- | src/VBox/Devices/Graphics/shaderlib/wine/include/winspool.h | 1822 |
1 files changed, 1822 insertions, 0 deletions
diff --git a/src/VBox/Devices/Graphics/shaderlib/wine/include/winspool.h b/src/VBox/Devices/Graphics/shaderlib/wine/include/winspool.h new file mode 100644 index 00000000..fae9a3f2 --- /dev/null +++ b/src/VBox/Devices/Graphics/shaderlib/wine/include/winspool.h @@ -0,0 +1,1822 @@ +/* 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 + */ + +/* + * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice + * other than GPL or LGPL is available it will apply instead, Oracle elects to use only + * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where + * a choice of LGPL license versions is made available with the language indicating + * that LGPLv2 or any later version may be used, or where a choice of which version + * of the LGPL is applied is otherwise unspecified. + */ + +#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 PRINTER_STATUS_SERVER_OFFLINE 0x02000000 +#define PRINTER_STATUS_DRIVER_UPDATE_NEEDED 0x04000000 + +#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) + + +/* Flags for printer drivers */ +#define DRIVER_KERNELMODE 0x00000001 +#define DRIVER_USERMODE 0x00000002 + +#define APD_STRICT_UPGRADE 0x00000001 +#define APD_STRICT_DOWNGRADE 0x00000002 +#define APD_COPY_ALL_FILES 0x00000004 +#define APD_COPY_NEW_FILES 0x00000008 +#define APD_COPY_FROM_DIRECTORY 0x00000010 + +#define DPD_DELETE_UNUSED_FILES 0x00000001 +#define DPD_DELETE_SPECIFIC_VERSION 0x00000002 +#define DPD_DELETE_ALL_FILES 0x00000004 + +/* dwAction for PRINTER_INFO_7 */ +#define DSPRINT_PUBLISH 0x00000001 +#define DSPRINT_UPDATE 0x00000002 +#define DSPRINT_UNPUBLISH 0x00000004 +#define DSPRINT_REPUBLISH 0x00000008 +#define DSPRINT_PENDING 0x80000000 + +/* ##################################### */ + +/* 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) + +/* DRIVER_INFO_7 is not defined in native winspool.h and not found in the www */ + +typedef struct _DRIVER_INFO_8A { + 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; + LPSTR pszPrintProcessor; + LPSTR pszVendorSetup; + LPSTR pszzColorProfiles; + LPSTR pszInfPath; + DWORD dwPrinterDriverAttributes; + LPSTR pszzCoreDriverDependencies; + FILETIME ftMinInboxDriverVerDate; + DWORDLONG dwlMinInboxDriverVerVersion; +} DRIVER_INFO_8A, *PDRIVER_INFO_8A, *LPDRIVER_INFO_8A; + +typedef struct _DRIVER_INFO_8W { + 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; + LPWSTR pszPrintProcessor; + LPWSTR pszVendorSetup; + LPWSTR pszzColorProfiles; + LPWSTR pszInfPath; + DWORD dwPrinterDriverAttributes; + LPWSTR pszzCoreDriverDependencies; + FILETIME ftMinInboxDriverVerDate; + DWORDLONG dwlMinInboxDriverVerVersion; +} DRIVER_INFO_8W, *PDRIVER_INFO_8W, *LPDRIVER_INFO_8W; + +DECL_WINELIB_TYPE_AW(DRIVER_INFO_8) +DECL_WINELIB_TYPE_AW(PDRIVER_INFO_8) +DECL_WINELIB_TYPE_AW(LPDRIVER_INFO_8) + + +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 _FORM_INFO_2A { + DWORD Flags; + LPSTR pName; + SIZEL Size; + RECTL ImageableArea; + LPCSTR pKeyword; + DWORD StringType; + LPSTR pMuiDll; + DWORD dwResourceId; + LPSTR pDisplayName; + LANGID wLangId; +} FORM_INFO_2A, *PFORM_INFO_2A, *LPFORM_INFO_2A; + +typedef struct _FORM_INFO_2W { + DWORD Flags; + LPWSTR pName; + SIZEL Size; + RECTL ImageableArea; + LPCSTR pKeyword; + DWORD StringType; + LPWSTR pMuiDll; + DWORD dwResourceId; + LPWSTR pDisplayName; + LANGID wLangId; +} FORM_INFO_2W, *PFORM_INFO_2W, *LPFORM_INFO_2W; + +DECL_WINELIB_TYPE_AW(FORM_INFO_2) +DECL_WINELIB_TYPE_AW(PFORM_INFO_2) +DECL_WINELIB_TYPE_AW(LPFORM_INFO_2) + +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; + +/* string constants */ + +#define SPLREG_DEFAULT_SPOOL_DIRECTORYA "DefaultSpoolDirectory" +#ifdef _MSC_VER +#define SPLREG_DEFAULT_SPOOL_DIRECTORYW L"DefaultSpoolDirectory" +#elif defined(__GNUC__) +#define SPLREG_DEFAULT_SPOOL_DIRECTORYW (const WCHAR[]){'D','e','f','a','u','l','t','S','p','o','o','l','D','i','r','e','c','t','o','r','y',0} +#else +static const WCHAR SPLREG_DEFAULT_SPOOL_DIRECTORYW[] = {'D','e','f','a','u','l','t','S','p','o','o','l','D','i','r','e','c','t','o','r','y',0}; +#endif +#define SPLREG_DEFAULT_SPOOL_DIRECTORY WINELIB_NAME_AW(SPLREG_DEFAULT_SPOOL_DIRECTORY) + +#define SPLREG_PORT_THREAD_PRIORITY_DEFAULTA "PortThreadPriorityDefault" +#ifdef _MSC_VER +#define SPLREG_PORT_THREAD_PRIORITY_DEFAULTW L"PortThreadPriorityDefault" +#elif defined(__GNUC__) +#define SPLREG_PORT_THREAD_PRIORITY_DEFAULTW (const WCHAR[]){'P','o','r','t','T','h','r','e','a','d','P','r','i','o','r','i','t','y','D','e','f','a','u','l','t',0} +#else +static const WCHAR SPLREG_PORT_THREAD_PRIORITY_DEFAULTW[] = {'P','o','r','t','T','h','r','e','a','d','P','r','i','o','r','i','t','y','D','e','f','a','u','l','t',0}; +#endif +#define SPLREG_PORT_THREAD_PRIORITY_DEFAULT WINELIB_NAME_AW(SPLREG_PORT_THREAD_PRIORITY_DEFAULT) + +#define SPLREG_PORT_THREAD_PRIORITYA "PortThreadPriority" +#ifdef _MSC_VER +#define SPLREG_PORT_THREAD_PRIORITYW L"PortThreadPriority" +#elif defined(__GNUC__) +#define SPLREG_PORT_THREAD_PRIORITYW (const WCHAR[]){'P','o','r','t','T','h','r','e','a','d','P','r','i','o','r','i','t','y',0} +#else +static const WCHAR SPLREG_PORT_THREAD_PRIORITYW[] = {'P','o','r','t','T','h','r','e','a','d','P','r','i','o','r','i','t','y',0}; +#endif +#define SPLREG_PORT_THREAD_PRIORITY WINELIB_NAME_AW(SPLREG_PORT_THREAD_PRIORITY) + +#define SPLREG_SCHEDULER_THREAD_PRIORITY_DEFAULTA "SchedulerThreadPriorityDefault" +#ifdef _MSC_VER +#define SPLREG_SCHEDULER_THREAD_PRIORITY_DEFAULTW L"SchedulerThreadPriorityDefault" +#elif defined(__GNUC__) +#define SPLREG_SCHEDULER_THREAD_PRIORITY_DEFAULTW (const WCHAR[]){'S','c','h','e','d','u','l','e','r','T','h','r','e','a','d','P','r','i','o','r','i','t','y','D','e','f','a','u','l','t',0} +#else +static const WCHAR SPLREG_SCHEDULER_THREAD_PRIORITY_DEFAULTW[] = {'S','c','h','e','d','u','l','e','r','T','h','r','e','a','d','P','r','i','o','r','i','t','y','D','e','f','a','u','l','t',0}; +#endif +#define SPLREG_SCHEDULER_THREAD_PRIORITY_DEFAULT WINELIB_NAME_AW(SPLREG_SCHEDULER_THREAD_PRIORITY_DEFAULT) + +#define SPLREG_SCHEDULER_THREAD_PRIORITYA "SchedulerThreadPriority" +#ifdef _MSC_VER +#define SPLREG_SCHEDULER_THREAD_PRIORITYW L"SchedulerThreadPriority" +#elif defined(__GNUC__) +#define SPLREG_SCHEDULER_THREAD_PRIORITYW (const WCHAR[]){'S','c','h','e','d','u','l','e','r','T','h','r','e','a','d','P','r','i','o','r','i','t','y',0} +#else +static const WCHAR SPLREG_SCHEDULER_THREAD_PRIORITYW[] = {'S','c','h','e','d','u','l','e','r','T','h','r','e','a','d','P','r','i','o','r','i','t','y',0}; +#endif +#define SPLREG_SCHEDULER_THREAD_PRIORITY WINELIB_NAME_AW(SPLREG_SCHEDULER_THREAD_PRIORITY) + +#define SPLREG_BEEP_ENABLEDA "BeepEnabled" +#ifdef _MSC_VER +#define SPLREG_BEEP_ENABLEDW L"BeepEnabled" +#elif defined(__GNUC__) +#define SPLREG_BEEP_ENABLEDW (const WCHAR[]){'B','e','e','p','E','n','a','b','l','e','d',0} +#else +static const WCHAR SPLREG_BEEP_ENABLEDW[] = {'B','e','e','p','E','n','a','b','l','e','d',0}; +#endif +#define SPLREG_BEEP_ENABLED WINELIB_NAME_AW(SPLREG_BEEP_ENABLED) + +#define SPLREG_NET_POPUPA "NetPopup" +#ifdef _MSC_VER +#define SPLREG_NET_POPUPW L"NetPopup" +#elif defined(__GNUC__) +#define SPLREG_NET_POPUPW (const WCHAR[]){'N','e','t','P','o','p','u','p',0} +#else +static const WCHAR SPLREG_NET_POPUPW[] = {'N','e','t','P','o','p','u','p',0}; +#endif +#define SPLREG_NET_POPUP WINELIB_NAME_AW(SPLREG_NET_POPUP) + +#define SPLREG_RETRY_POPUPA "RetryPopup" +#ifdef _MSC_VER +#define SPLREG_RETRY_POPUPW L"RetryPopup" +#elif defined(__GNUC__) +#define SPLREG_RETRY_POPUPW (const WCHAR[]){'R','e','t','r','y','P','o','p','u','p',0} +#else +static const WCHAR SPLREG_RETRY_POPUPW[] = {'R','e','t','r','y','P','o','p','u','p',0}; +#endif +#define SPLREG_RETRY_POPUP WINELIB_NAME_AW(SPLREG_RETRY_POPUP) + +#define SPLREG_NET_POPUP_TO_COMPUTERA "NetPopupToComputer" +#ifdef _MSC_VER +#define SPLREG_NET_POPUP_TO_COMPUTERW L"NetPopupToComputer" +#elif defined(__GNUC__) +#define SPLREG_NET_POPUP_TO_COMPUTERW (const WCHAR[]){'N','e','t','P','o','p','u','p','T','o','C','o','m','p','u','t','e','r',0} +#else +static const WCHAR SPLREG_NET_POPUP_TO_COMPUTERW[] = {'N','e','t','P','o','p','u','p','T','o','C','o','m','p','u','t','e','r',0}; +#endif +#define SPLREG_NET_POPUP_TO_COMPUTER WINELIB_NAME_AW(SPLREG_NET_POPUP_TO_COMPUTER) + +#define SPLREG_EVENT_LOGA "EventLog" +#ifdef _MSC_VER +#define SPLREG_EVENT_LOGW L"EventLog" +#elif defined(__GNUC__) +#define SPLREG_EVENT_LOGW (const WCHAR[]){'E','v','e','n','t','L','o','g',0} +#else +static const WCHAR SPLREG_EVENT_LOGW[] = {'E','v','e','n','t','L','o','g',0}; +#endif +#define SPLREG_EVENT_LOG WINELIB_NAME_AW(SPLREG_EVENT_LOG) + +#define SPLREG_MAJOR_VERSIONA "MajorVersion" +#ifdef _MSC_VER +#define SPLREG_MAJOR_VERSIONW L"MajorVersion" +#elif defined(__GNUC__) +#define SPLREG_MAJOR_VERSIONW (const WCHAR[]){'M','a','j','o','r','V','e','r','s','i','o','n',0} +#else +static const WCHAR SPLREG_MAJOR_VERSIONW[] = {'M','a','j','o','r','V','e','r','s','i','o','n',0}; +#endif +#define SPLREG_MAJOR_VERSION WINELIB_NAME_AW(SPLREG_MAJOR_VERSION) + +#define SPLREG_MINOR_VERSIONA "MinorVersion" +#ifdef _MSC_VER +#define SPLREG_MINOR_VERSIONW L"MinorVersion" +#elif defined(__GNUC__) +#define SPLREG_MINOR_VERSIONW (const WCHAR[]){'M','i','n','o','r','V','e','r','s','i','o','n',0} +#else +static const WCHAR SPLREG_MINOR_VERSIONW[] = {'M','i','n','o','r','V','e','r','s','i','o','n',0}; +#endif +#define SPLREG_MINOR_VERSION WINELIB_NAME_AW(SPLREG_MINOR_VERSION) + +#define SPLREG_ARCHITECTUREA "Architecture" +#ifdef _MSC_VER +#define SPLREG_ARCHITECTUREW L"Architecture" +#elif defined(__GNUC__) +#define SPLREG_ARCHITECTUREW (const WCHAR[]){'A','r','c','h','i','t','e','c','t','u','r','e',0} +#else +static const WCHAR SPLREG_ARCHITECTUREW[] = {'A','r','c','h','i','t','e','c','t','u','r','e',0}; +#endif +#define SPLREG_ARCHITECTURE WINELIB_NAME_AW(SPLREG_ARCHITECTURE) + +#define SPLREG_OS_VERSIONA "OSVersion" +#ifdef _MSC_VER +#define SPLREG_OS_VERSIONW L"OSVersion" +#elif defined(__GNUC__) +#define SPLREG_OS_VERSIONW (const WCHAR[]){'O','S','V','e','r','s','i','o','n',0} +#else +static const WCHAR SPLREG_OS_VERSIONW[] = {'O','S','V','e','r','s','i','o','n',0}; +#endif +#define SPLREG_OS_VERSION WINELIB_NAME_AW(SPLREG_OS_VERSION) + +#define SPLREG_OS_VERSIONEXA "OSVersionEx" +#ifdef _MSC_VER +#define SPLREG_OS_VERSIONEXW L"OSVersionEx" +#elif defined(__GNUC__) +#define SPLREG_OS_VERSIONEXW (const WCHAR[]){'O','S','V','e','r','s','i','o','n','E','x',0} +#else +static const WCHAR SPLREG_OS_VERSIONEXW[] = {'O','S','V','e','r','s','i','o','n','E','x',0}; +#endif +#define SPLREG_OS_VERSIONEX WINELIB_NAME_AW(SPLREG_OS_VERSIONEX) + +#define SPLREG_DS_PRESENTA "DsPresent" +#ifdef _MSC_VER +#define SPLREG_DS_PRESENTW L"DsPresent" +#elif defined(__GNUC__) +#define SPLREG_DS_PRESENTW (const WCHAR[]){'D','s','P','r','e','s','e','n','t',0} +#else +static const WCHAR SPLREG_DS_PRESENTW[] = {'D','s','P','r','e','s','e','n','t',0}; +#endif +#define SPLREG_DS_PRESENT WINELIB_NAME_AW(SPLREG_DS_PRESENT) + +#define SPLREG_DS_PRESENT_FOR_USERA "DsPresentForUser" +#ifdef _MSC_VER +#define SPLREG_DS_PRESENT_FOR_USERW L"DsPresentForUser" +#elif defined(__GNUC__) +#define SPLREG_DS_PRESENT_FOR_USERW (const WCHAR[]){'D','s','P','r','e','s','e','n','t','F','o','r','U','s','e','r',0} +#else +static const WCHAR SPLREG_DS_PRESENT_FOR_USERW[] = {'D','s','P','r','e','s','e','n','t','F','o','r','U','s','e','r',0}; +#endif +#define SPLREG_DS_PRESENT_FOR_USER WINELIB_NAME_AW(SPLREG_DS_PRESENT_FOR_USER) + +#define SPLREG_REMOTE_FAXA "RemoteFax" +#ifdef _MSC_VER +#define SPLREG_REMOTE_FAXW L"RemoteFax" +#elif defined(__GNUC__) +#define SPLREG_REMOTE_FAXW (const WCHAR[]){'R','e','m','o','t','e','F','a','x',0} +#else +static const WCHAR SPLREG_REMOTE_FAXW[] = {'R','e','m','o','t','e','F','a','x',0}; +#endif +#define SPLREG_REMOTE_FAX WINELIB_NAME_AW(SPLREG_REMOTE_FAX) + +#define SPLREG_RESTART_JOB_ON_POOL_ERRORA "RestartJobOnPoolError" +#ifdef _MSC_VER +#define SPLREG_RESTART_JOB_ON_POOL_ERRORW L"RestartJobOnPoolError" +#elif defined(__GNUC__) +#define SPLREG_RESTART_JOB_ON_POOL_ERRORW (const WCHAR[]){'R','e','s','t','a','r','t','J','o','b','O','n','P','o','o','l','E','r','r','o','r',0} +#else +static const WCHAR SPLREG_RESTART_JOB_ON_POOL_ERRORW[] = {'R','e','s','t','a','r','t','J','o','b','O','n','P','o','o','l','E','r','r','o','r',0}; +#endif +#define SPLREG_RESTART_JOB_ON_POOL_ERROR WINELIB_NAME_AW(SPLREG_RESTART_JOB_ON_POOL_ERROR) + +#define SPLREG_RESTART_JOB_ON_POOL_ENABLEDA "RestartJobOnPoolEnabled" +#ifdef _MSC_VER +#define SPLREG_RESTART_JOB_ON_POOL_ENABLEDW L"RestartJobOnPoolEnabled" +#elif defined(__GNUC__) +#define SPLREG_RESTART_JOB_ON_POOL_ENABLEDW (const WCHAR[]){'R','e','s','t','a','r','t','J','o','b','O','n','P','o','o','l','E','n','a','b','l','e','d',0} +#else +static const WCHAR SPLREG_RESTART_JOB_ON_POOL_ENABLEDW[] = {'R','e','s','t','a','r','t','J','o','b','O','n','P','o','o','l','E','n','a','b','l','e','d',0}; +#endif +#define SPLREG_RESTART_JOB_ON_POOL_ENABLED WINELIB_NAME_AW(SPLREG_RESTART_JOB_ON_POOL_ENABLED) + +#define SPLREG_DNS_MACHINE_NAMEA "DNSMachineName" +#ifdef _MSC_VER +#define SPLREG_DNS_MACHINE_NAMEW L"DNSMachineName" +#elif defined(__GNUC__) +#define SPLREG_DNS_MACHINE_NAMEW (const WCHAR[]){'D','N','S','M','a','c','h','i','n','e','N','a','m','e',0} +#else +static const WCHAR SPLREG_DNS_MACHINE_NAMEW[] = {'D','N','S','M','a','c','h','i','n','e','N','a','m','e',0}; +#endif +#define SPLREG_DNS_MACHINE_NAME WINELIB_NAME_AW(SPLREG_DNS_MACHINE_NAME) + +#define SPLREG_ALLOW_USER_MANAGEFORMSA "AllowUserManageForms" +#ifdef _MSC_VER +#define SPLREG_ALLOW_USER_MANAGEFORMSW L"AllowUserManageForms" +#elif defined(__GNUC__) +#define SPLREG_ALLOW_USER_MANAGEFORMSW (const WCHAR[]){'A','l','l','o','w','U','s','e','r','M','a','n','a','g','e','F','o','r','m','s',0} +#else +static const WCHAR SPLREG_ALLOW_USER_MANAGEFORMSW[] = {'A','l','l','o','w','U','s','e','r','M','a','n','a','g','e','F','o','r','m','s',0}; +#endif +#define SPLREG_ALLOW_USER_MANAGEFORMS WINELIB_NAME_AW(SPLREG_ALLOW_USER_MANAGEFORMS) + +#define SPLREG_WEBSHAREMGMTA "WebShareMgmt" +#ifdef _MSC_VER +#define SPLREG_WEBSHAREMGMTW L"WebShareMgmt" +#elif defined(__GNUC__) +#define SPLREG_WEBSHAREMGMTW (const WCHAR[]){'W','e','b','S','h','a','r','e','M','g','m','t',0} +#else +static const WCHAR SPLREG_WEBSHAREMGMTW[] = {'W','e','b','S','h','a','r','e','M','g','m','t',0}; +#endif +#define SPLREG_WEBSHAREMGMT WINELIB_NAME_AW(SPLREG_WEBSHAREMGMT) + +#define SPLREG_PRINT_DRIVER_ISOLATION_GROUPSA "PrintDriverIsolationGroups" +#ifdef _MSC_VER +#define SPLREG_PRINT_DRIVER_ISOLATION_GROUPSW L"PrintDriverIsolationGroups" +#elif defined(__GNUC__) +#define SPLREG_PRINT_DRIVER_ISOLATION_GROUPSW (const WCHAR[]){'P','r','i','n','t','D','r','i','v','e','r','I','s','o','l','a','t','i','o','n','G','r','o','u','p','s',0} +#else +static const WCHAR SPLREG_PRINT_DRIVER_ISOLATION_GROUPSW[] = {'P','r','i','n','t','D','r','i','v','e','r','I','s','o','l','a','t','i','o','n','G','r','o','u','p','s',0}; +#endif +#define SPLREG_PRINT_DRIVER_ISOLATION_GROUPS WINELIB_NAME_AW(SPLREG_PRINT_DRIVER_ISOLATION_GROUPS) + +#define SPLREG_PRINT_DRIVER_ISOLATION_TIME_BEFORE_RECYCLEA "PrintDriverIsolationTimeBeforeRecycle" +#ifdef _MSC_VER +#define SPLREG_PRINT_DRIVER_ISOLATION_TIME_BEFORE_RECYCLEW L"PrintDriverIsolationTimeBeforeRecycle" +#elif defined(__GNUC__) +#define SPLREG_PRINT_DRIVER_ISOLATION_TIME_BEFORE_RECYCLEW (const WCHAR[]){'P','r','i','n','t','D','r','i','v','e','r','I','s','o','l','a','t','i','o','n','T','i','m','e','B','e','f','o','r','e','R','e','c','y','c','l','e',0} +#else +static const WCHAR SPLREG_PRINT_DRIVER_ISOLATION_TIME_BEFORE_RECYCLEW[] = {'P','r','i','n','t','D','r','i','v','e','r','I','s','o','l','a','t','i','o','n','T','i','m','e','B','e','f','o','r','e','R','e','c','y','c','l','e',0}; +#endif +#define SPLREG_PRINT_DRIVER_ISOLATION_TIME_BEFORE_RECYCLE WINELIB_NAME_AW(SPLREG_PRINT_DRIVER_ISOLATION_TIME_BEFORE_RECYCLE) + +#define SPLREG_PRINT_DRIVER_ISOLATION_MAX_OBJECTS_BEFORE_RECYCLEA "PrintDriverIsolationMaxobjsBeforeRecycle" +#ifdef _MSC_VER +#define SPLREG_PRINT_DRIVER_ISOLATION_MAX_OBJECTS_BEFORE_RECYCLEW L"PrintDriverIsolationMaxobjsBeforeRecycle" +#elif defined(__GNUC__) +#define SPLREG_PRINT_DRIVER_ISOLATION_MAX_OBJECTS_BEFORE_RECYCLEW (const WCHAR[]){'P','r','i','n','t','D','r','i','v','e','r','I','s','o','l','a','t','i','o','n','M','a','x','o','b','j','s','B','e','f','o','r','e','R','e','c','y','c','l','e',0} +#else +static const WCHAR SPLREG_PRINT_DRIVER_ISOLATION_MAX_OBJECTS_BEFORE_RECYCLEW[] = {'P','r','i','n','t','D','r','i','v','e','r','I','s','o','l','a','t','i','o','n','M','a','x','o','b','j','s','B','e','f','o','r','e','R','e','c','y','c','l','e',0}; +#endif +#define SPLREG_PRINT_DRIVER_ISOLATION_MAX_OBJECTS_BEFORE_RECYCLE WINELIB_NAME_AW(SPLREG_PRINT_DRIVER_ISOLATION_MAX_OBJECTS_BEFORE_RECYCLE) + +#define SPLREG_PRINT_DRIVER_ISOLATION_IDLE_TIMEOUTA "PrintDriverIsolationIdleTimeout" +#ifdef _MSC_VER +#define SPLREG_PRINT_DRIVER_ISOLATION_IDLE_TIMEOUTW L"PrintDriverIsolationIdleTimeout" +#elif defined(__GNUC__) +#define SPLREG_PRINT_DRIVER_ISOLATION_IDLE_TIMEOUTW (const WCHAR[]){'P','r','i','n','t','D','r','i','v','e','r','I','s','o','l','a','t','i','o','n','I','d','l','e','T','i','m','e','o','u','t',0} +#else +static const WCHAR SPLREG_PRINT_DRIVER_ISOLATION_IDLE_TIMEOUTW[] = {'P','r','i','n','t','D','r','i','v','e','r','I','s','o','l','a','t','i','o','n','I','d','l','e','T','i','m','e','o','u','t',0}; +#endif +#define SPLREG_PRINT_DRIVER_ISOLATION_IDLE_TIMEOUT WINELIB_NAME_AW(SPLREG_PRINT_DRIVER_ISOLATION_IDLE_TIMEOUT) + +#define SPLREG_PRINT_DRIVER_ISOLATION_EXECUTION_POLICYA "PrintDriverIsolationExecutionPolicy" +#ifdef _MSC_VER +#define SPLREG_PRINT_DRIVER_ISOLATION_EXECUTION_POLICYW L"PrintDriverIsolationExecutionPolicy" +#elif defined(__GNUC__) +#define SPLREG_PRINT_DRIVER_ISOLATION_EXECUTION_POLICYW (const WCHAR[]){'P','r','i','n','t','D','r','i','v','e','r','I','s','o','l','a','t','i','o','n','E','x','e','c','u','t','i','o','n','P','o','l','i','c','y',0} +#else +static const WCHAR SPLREG_PRINT_DRIVER_ISOLATION_EXECUTION_POLICYW[] = {'P','r','i','n','t','D','r','i','v','e','r','I','s','o','l','a','t','i','o','n','E','x','e','c','u','t','i','o','n','P','o','l','i','c','y',0}; +#endif +#define SPLREG_PRINT_DRIVER_ISOLATION_EXECUTION_POLICY WINELIB_NAME_AW(SPLREG_PRINT_DRIVER_ISOLATION_EXECUTION_POLICY) + +#define SPLREG_PRINT_DRIVER_ISOLATION_OVERRIDE_POLICYA "PrintDriverIsolationOverrideCompat" +#ifdef _MSC_VER +#define SPLREG_PRINT_DRIVER_ISOLATION_OVERRIDE_POLICYW L"PrintDriverIsolationOverrideCompat" +#elif defined(__GNUC__) +#define SPLREG_PRINT_DRIVER_ISOLATION_OVERRIDE_POLICYW (const WCHAR[]){'P','r','i','n','t','D','r','i','v','e','r','I','s','o','l','a','t','i','o','n','O','v','e','r','r','i','d','e','C','o','m','p','a','t',0} +#else +static const WCHAR SPLREG_PRINT_DRIVER_ISOLATION_OVERRIDE_POLICYW[] = {'P','r','i','n','t','D','r','i','v','e','r','I','s','o','l','a','t','i','o','n','O','v','e','r','r','i','d','e','C','o','m','p','a','t',0}; +#endif +#define SPLREG_PRINT_DRIVER_ISOLATION_OVERRIDE_POLICY WINELIB_NAME_AW(SPLREG_PRINT_DRIVER_ISOLATION_OVERRIDE_POLICY) + +/* 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 SetDefaultPrinterA(LPCSTR); +BOOL WINAPI SetDefaultPrinterW(LPCWSTR); +#define SetDefaultPrinter WINELIB_NAME_AW(SetDefaultPrinter) + +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(LPSTR, DWORD, LPBYTE, LPSTR); +BOOL WINAPI AddPortExW(LPWSTR, DWORD, LPBYTE, LPWSTR); +#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) + +BOOL WINAPI XcvDataW(HANDLE hXcv, LPCWSTR pszDataName, PBYTE pInputData, + DWORD cbInputData, PBYTE pOutputData, DWORD cbOutputData, + PDWORD pcbOutputNeeded, PDWORD pdwStatus); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* __WINE_WINSPOOL_H */ |