home *** CD-ROM | disk | FTP | other *** search
/ PC World 2001 March / PCWorld_2001-03_cd.bin / Software / TemaCD / devc / _SETUP.5 / Group3 / winspool.h < prev    next >
C/C++ Source or Header  |  1999-11-07  |  29KB  |  762 lines

  1. #ifndef _WINSPOOL_H
  2. #define _WINSPOOL_H
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. #define DI_CHANNEL 1
  7. #define DI_CHANNEL_WRITE 2
  8. #define DI_READ_SPOOL_JOB 3
  9. #define    FORM_BUILTIN    1
  10. #define    JOB_CONTROL_PAUSE    1
  11. #define    JOB_CONTROL_RESUME    2
  12. #define    JOB_CONTROL_CANCEL    3
  13. #define    JOB_CONTROL_RESTART    4
  14. #define    JOB_CONTROL_DELETE    5
  15. #define    JOB_STATUS_PAUSED    1
  16. #define    JOB_STATUS_ERROR    2
  17. #define    JOB_STATUS_DELETING    4
  18. #define    JOB_STATUS_SPOOLING    8
  19. #define    JOB_STATUS_PRINTING    16
  20. #define    JOB_STATUS_OFFLINE    32
  21. #define    JOB_STATUS_PAPEROUT    0x40
  22. #define    JOB_STATUS_PRINTED    0x80
  23. #define    JOB_STATUS_DELETED    0x100
  24. #define    JOB_STATUS_BLOCKED_DEVQ    0x200
  25. #define    JOB_STATUS_USER_INTERVENTION    0x400
  26. #define    JOB_POSITION_UNSPECIFIED    0
  27. #define    JOB_NOTIFY_TYPE    1
  28. #define    JOB_NOTIFY_FIELD_PRINTER_NAME    0
  29. #define    JOB_NOTIFY_FIELD_MACHINE_NAME    1
  30. #define    JOB_NOTIFY_FIELD_PORT_NAME    2
  31. #define    JOB_NOTIFY_FIELD_USER_NAME    3
  32. #define    JOB_NOTIFY_FIELD_NOTIFY_NAME    4
  33. #define    JOB_NOTIFY_FIELD_DATATYPE    5
  34. #define    JOB_NOTIFY_FIELD_PRINT_PROCESSOR    6
  35. #define    JOB_NOTIFY_FIELD_PARAMETERS    7
  36. #define    JOB_NOTIFY_FIELD_DRIVER_NAME    8
  37. #define    JOB_NOTIFY_FIELD_DEVMODE    9
  38. #define    JOB_NOTIFY_FIELD_STATUS    10
  39. #define    JOB_NOTIFY_FIELD_STATUS_STRING    11
  40. #define    JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR    12
  41. #define    JOB_NOTIFY_FIELD_DOCUMENT    13
  42. #define    JOB_NOTIFY_FIELD_PRIORITY    14
  43. #define    JOB_NOTIFY_FIELD_POSITION    15
  44. #define    JOB_NOTIFY_FIELD_SUBMITTED    16
  45. #define    JOB_NOTIFY_FIELD_START_TIME    17
  46. #define    JOB_NOTIFY_FIELD_UNTIL_TIME    18
  47. #define    JOB_NOTIFY_FIELD_TIME    19
  48. #define    JOB_NOTIFY_FIELD_TOTAL_PAGES    20
  49. #define    JOB_NOTIFY_FIELD_PAGES_PRINTED    21
  50. #define    JOB_NOTIFY_FIELD_TOTAL_BYTES    22
  51. #define    JOB_NOTIFY_FIELD_BYTES_PRINTED    23
  52. #define    JOB_ACCESS_ADMINISTER    16
  53. #define    JOB_ALL_ACCESS    (STANDARD_RIGHTS_REQUIRED|JOB_ACCESS_ADMINISTER)
  54. #define    JOB_READ    (STANDARD_RIGHTS_READ|    JOB_ACCESS_ADMINISTER)
  55. #define    JOB_WRITE    (STANDARD_RIGHTS_WRITE|JOB_ACCESS_ADMINISTER)
  56. #define    JOB_EXECUTE    (STANDARD_RIGHTS_EXECUTE|JOB_ACCESS_ADMINISTER)
  57. #define    PRINTER_NOTIFY_OPTIONS_REFRESH    1
  58. #define    PRINTER_ACCESS_ADMINISTER    4
  59. #define    PRINTER_ACCESS_USE    8
  60. #define    PRINTER_ERROR_INFORMATION    0x80000000
  61. #define    PRINTER_ERROR_WARNING    0x40000000
  62. #define    PRINTER_ERROR_SEVERE    0x20000000
  63. #define    PRINTER_ERROR_OUTOFPAPER    1
  64. #define    PRINTER_ERROR_JAM    2
  65. #define    PRINTER_ERROR_OUTOFTONER    4
  66. #define    PRINTER_CONTROL_PAUSE    1
  67. #define    PRINTER_CONTROL_RESUME    2
  68. #define    PRINTER_CONTROL_PURGE    3
  69. #define    PRINTER_CONTROL_SET_STATUS    4
  70. #define    PRINTER_STATUS_PAUSED    1
  71. #define    PRINTER_STATUS_ERROR    2
  72. #define    PRINTER_STATUS_PENDING_DELETION    4
  73. #define    PRINTER_STATUS_PAPER_JAM    8
  74. #define    PRINTER_STATUS_PAPER_OUT    0x10
  75. #define    PRINTER_STATUS_MANUAL_FEED    0x20
  76. #define    PRINTER_STATUS_PAPER_PROBLEM    0x40
  77. #define    PRINTER_STATUS_OFFLINE    0x80
  78. #define    PRINTER_STATUS_IO_ACTIVE    0x100
  79. #define    PRINTER_STATUS_BUSY    0x200
  80. #define    PRINTER_STATUS_PRINTING    0x400
  81. #define    PRINTER_STATUS_OUTPUT_BIN_FULL    0x800
  82. #define    PRINTER_STATUS_NOT_AVAILABLE    0x1000
  83. #define    PRINTER_STATUS_WAITING    0x2000
  84. #define    PRINTER_STATUS_PROCESSING    0x4000
  85. #define    PRINTER_STATUS_INITIALIZING    0x8000
  86. #define    PRINTER_STATUS_WARMING_UP    0x10000
  87. #define    PRINTER_STATUS_TONER_LOW    0x20000
  88. #define    PRINTER_STATUS_NO_TONER    0x40000
  89. #define    PRINTER_STATUS_PAGE_PUNT    0x80000
  90. #define    PRINTER_STATUS_USER_INTERVENTION    0x100000
  91. #define    PRINTER_STATUS_OUT_OF_MEMORY    0x200000
  92. #define    PRINTER_STATUS_DOOR_OPEN    0x400000
  93. #define    PRINTER_STATUS_SERVER_UNKNOWN    0x800000
  94. #define    PRINTER_STATUS_POWER_SAVE    0x1000000
  95. #define    PRINTER_ATTRIBUTE_QUEUED    1
  96. #define    PRINTER_ATTRIBUTE_DIRECT    2
  97. #define    PRINTER_ATTRIBUTE_DEFAULT    4
  98. #define    PRINTER_ATTRIBUTE_SHARED    8
  99. #define    PRINTER_ATTRIBUTE_NETWORK    0x10
  100. #define    PRINTER_ATTRIBUTE_HIDDEN    0x20
  101. #define    PRINTER_ATTRIBUTE_LOCAL    0x40
  102. #define    PRINTER_ATTRIBUTE_ENABLE_DEVQ    0x80
  103. #define    PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS    0x100
  104. #define    PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST    0x200
  105. #define    PRINTER_ATTRIBUTE_WORK_OFFLINE    0x400
  106. #define    PRINTER_ATTRIBUTE_ENABLE_BIDI    0x800
  107. #define    PRINTER_ENUM_DEFAULT    1
  108. #define    PRINTER_ENUM_LOCAL    2
  109. #define    PRINTER_ENUM_CONNECTIONS    4
  110. #define    PRINTER_ENUM_FAVORITE    4
  111. #define    PRINTER_ENUM_NAME    8
  112. #define    PRINTER_ENUM_REMOTE    16
  113. #define    PRINTER_ENUM_SHARED    32
  114. #define    PRINTER_ENUM_NETWORK    0x40
  115. #define    PRINTER_ENUM_EXPAND    0x4000
  116. #define    PRINTER_ENUM_CONTAINER    0x8000
  117. #define    PRINTER_ENUM_ICONMASK    0xff0000
  118. #define    PRINTER_ENUM_ICON1    0x10000
  119. #define    PRINTER_ENUM_ICON2    0x20000
  120. #define    PRINTER_ENUM_ICON3    0x40000
  121. #define    PRINTER_ENUM_ICON4    0x80000
  122. #define    PRINTER_ENUM_ICON5    0x100000
  123. #define    PRINTER_ENUM_ICON6    0x200000
  124. #define    PRINTER_ENUM_ICON7    0x400000
  125. #define    PRINTER_ENUM_ICON8    0x800000
  126. #define PRINTER_NOTIFY_TYPE    0
  127. #define PRINTER_NOTIFY_FIELD_SERVER_NAME    0
  128. #define PRINTER_NOTIFY_FIELD_PRINTER_NAME    1
  129. #define PRINTER_NOTIFY_FIELD_SHARE_NAME    2
  130. #define PRINTER_NOTIFY_FIELD_PORT_NAME    3
  131. #define PRINTER_NOTIFY_FIELD_DRIVER_NAME    4
  132. #define PRINTER_NOTIFY_FIELD_COMMENT    5
  133. #define PRINTER_NOTIFY_FIELD_LOCATION    6
  134. #define PRINTER_NOTIFY_FIELD_DEVMODE    7
  135. #define PRINTER_NOTIFY_FIELD_SEPFILE    8
  136. #define PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR    9
  137. #define PRINTER_NOTIFY_FIELD_PARAMETERS    10
  138. #define PRINTER_NOTIFY_FIELD_DATATYPE    11
  139. #define PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR    12
  140. #define PRINTER_NOTIFY_FIELD_ATTRIBUTES    13
  141. #define PRINTER_NOTIFY_FIELD_PRIORITY    14
  142. #define PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY    15
  143. #define PRINTER_NOTIFY_FIELD_START_TIME    16
  144. #define PRINTER_NOTIFY_FIELD_UNTIL_TIME    17
  145. #define PRINTER_NOTIFY_FIELD_STATUS    18
  146. #define PRINTER_NOTIFY_FIELD_STATUS_STRING    19
  147. #define PRINTER_NOTIFY_FIELD_CJOBS    20
  148. #define PRINTER_NOTIFY_FIELD_AVERAGE_PPM    21
  149. #define PRINTER_NOTIFY_FIELD_TOTAL_PAGES    22
  150. #define PRINTER_NOTIFY_FIELD_PAGES_PRINTED    23
  151. #define PRINTER_NOTIFY_FIELD_TOTAL_BYTES    24
  152. #define PRINTER_NOTIFY_FIELD_BYTES_PRINTED    25
  153. #define PRINTER_CHANGE_ADD_PRINTER    1
  154. #define PRINTER_CHANGE_SET_PRINTER    2
  155. #define PRINTER_CHANGE_DELETE_PRINTER    4
  156. #define PRINTER_CHANGE_FAILED_CONNECTION_PRINTER    8
  157. #define PRINTER_CHANGE_PRINTER    0xFF
  158. #define PRINTER_CHANGE_ADD_JOB    0x100
  159. #define PRINTER_CHANGE_SET_JOB    0x200
  160. #define PRINTER_CHANGE_DELETE_JOB    0x400
  161. #define PRINTER_CHANGE_WRITE_JOB    0x800
  162. #define PRINTER_CHANGE_JOB    0xFF00
  163. #define PRINTER_CHANGE_ADD_FORM    0x10000
  164. #define PRINTER_CHANGE_SET_FORM    0x20000
  165. #define PRINTER_CHANGE_DELETE_FORM    0x40000
  166. #define PRINTER_CHANGE_FORM    0x70000
  167. #define PRINTER_CHANGE_ADD_PORT    0x100000
  168. #define PRINTER_CHANGE_CONFIGURE_PORT    0x200000
  169. #define PRINTER_CHANGE_DELETE_PORT    0x400000
  170. #define PRINTER_CHANGE_PORT    0x700000
  171. #define PRINTER_CHANGE_ADD_PRINT_PROCESSOR    0x1000000
  172. #define PRINTER_CHANGE_DELETE_PRINT_PROCESSOR    0x4000000
  173. #define PRINTER_CHANGE_PRINT_PROCESSOR    0x7000000
  174. #define PRINTER_CHANGE_ADD_PRINTER_DRIVER    0x10000000
  175. #define PRINTER_CHANGE_SET_PRINTER_DRIVER    0x20000000
  176. #define PRINTER_CHANGE_DELETE_PRINTER_DRIVER    0x40000000
  177. #define PRINTER_CHANGE_PRINTER_DRIVER    0x70000000
  178. #define PRINTER_CHANGE_TIMEOUT    0x80000000
  179. #define PRINTER_CHANGE_ALL    0x7777FFFF
  180. #define PRINTER_NOTIFY_INFO_DISCARDED    1
  181. #define PRINTER_ALL_ACCESS    (STANDARD_RIGHTS_REQUIRED|PRINTER_ACCESS_ADMINISTER|PRINTER_ACCESS_USE)
  182. #define PRINTER_READ    (STANDARD_RIGHTS_READ|PRINTER_ACCESS_USE)
  183. #define PRINTER_WRITE    (STANDARD_RIGHTS_WRITE|PRINTER_ACCESS_USE)
  184. #define PRINTER_EXECUTE    (STANDARD_RIGHTS_EXECUTE|PRINTER_ACCESS_USE)
  185. #define NO_PRIORITY    0
  186. #define MAX_PRIORITY    99
  187. #define MIN_PRIORITY    1
  188. #define DEF_PRIORITY    1
  189. #define PORT_TYPE_WRITE    1
  190. #define PORT_TYPE_READ    2
  191. #define PORT_TYPE_REDIRECTED    4
  192. #define PORT_TYPE_NET_ATTACHED    8
  193. #define SERVER_ACCESS_ADMINISTER    1
  194. #define SERVER_ACCESS_ENUMERATE    2
  195. #define SERVER_ALL_ACCESS    (STANDARD_RIGHTS_REQUIRED|SERVER_ACCESS_ADMINISTER|SERVER_ACCESS_ENUMERATE)
  196. #define SERVER_READ    (STANDARD_RIGHTS_READ|SERVER_ACCESS_ENUMERATE)
  197. #define SERVER_WRITE    (STANDARD_RIGHTS_WRITE|SERVER_ACCESS_ADMINISTER|SERVER_ACCESS_ENUMERATE)
  198. #define SERVER_EXECUTE    (STANDARD_RIGHTS_EXECUTE|SERVER_ACCESS_ENUMERATE)
  199. #define PORT_STATUS_TYPE_ERROR    1
  200. #define PORT_STATUS_TYPE_WARNING    2
  201. #define PORT_STATUS_TYPE_INFO    3
  202. #define PORT_STATUS_OFFLINE    1
  203. #define PORT_STATUS_PAPER_JAM    2
  204. #define PORT_STATUS_PAPER_OUT    3
  205. #define PORT_STATUS_OUTPUT_BIN_FULL    4
  206. #define PORT_STATUS_PAPER_PROBLEM    5
  207. #define PORT_STATUS_NO_TONER    6
  208. #define PORT_STATUS_DOOR_OPEN    7
  209. #define PORT_STATUS_USER_INTERVENTION    8
  210. #define PORT_STATUS_OUT_OF_MEMORY    9
  211. #define PORT_STATUS_TONER_LOW    10
  212. #define PORT_STATUS_WARMING_UP    11
  213. #define PORT_STATUS_POWER_SAVE    12
  214. typedef struct _ADDJOB_INFO_1A {
  215.     LPSTR Path;
  216.     DWORD JobId;
  217. } ADDJOB_INFO_1A,*PADDJOB_INFO_1A,*LPADDJOB_INFO_1A;
  218. typedef struct _ADDJOB_INFO_1W {
  219.     LPWSTR Path;
  220.     DWORD JobId;
  221. } ADDJOB_INFO_1W,*PADDJOB_INFO_1W,*LPADDJOB_INFO_1W;
  222. typedef struct _DATATYPES_INFO_1A{LPSTR pName;} DATATYPES_INFO_1A,*PDATATYPES_INFO_1A,*LPDATATYPES_INFO_1A;
  223. typedef struct _DATATYPES_INFO_1W{LPWSTR pName;} DATATYPES_INFO_1W,*PDATATYPES_INFO_1W,*LPDATATYPES_INFO_1W;
  224. typedef struct _JOB_INFO_1A {
  225.     DWORD JobId;
  226.     LPSTR pPrinterName;
  227.     LPSTR pMachineName;
  228.     LPSTR pUserName;
  229.     LPSTR pDocument;
  230.     LPSTR pDatatype;
  231.     LPSTR pStatus;
  232.     DWORD Status;
  233.     DWORD Priority;
  234.     DWORD Position;
  235.     DWORD TotalPages;
  236.     DWORD PagesPrinted;
  237.     SYSTEMTIME Submitted;
  238. } JOB_INFO_1A,*PJOB_INFO_1A,*LPJOB_INFO_1A;
  239. typedef struct _JOB_INFO_1W {
  240.     DWORD JobId;
  241.     LPWSTR pPrinterName;
  242.     LPWSTR pMachineName;
  243.     LPWSTR pUserName;
  244.     LPWSTR pDocument;
  245.     LPWSTR pDatatype;
  246.     LPWSTR pStatus;
  247.     DWORD Status;
  248.     DWORD Priority;
  249.     DWORD Position;
  250.     DWORD TotalPages;
  251.     DWORD PagesPrinted;
  252.     SYSTEMTIME Submitted;
  253. } JOB_INFO_1W,*PJOB_INFO_1W,*LPJOB_INFO_1W;
  254. typedef struct _JOB_INFO_2A {
  255.     DWORD JobId;
  256.     LPSTR pPrinterName;
  257.     LPSTR pMachineName;
  258.     LPSTR pUserName;
  259.     LPSTR pDocument;
  260.     LPSTR pNotifyName;
  261.     LPSTR pDatatype;
  262.     LPSTR pPrintProcessor;
  263.     LPSTR pParameters;
  264.     LPSTR pDriverName;
  265.     LPDEVMODEA pDevMode;
  266.     LPSTR pStatus;
  267.     PSECURITY_DESCRIPTOR pSecurityDescriptor;
  268.     DWORD Status;
  269.     DWORD Priority;
  270.     DWORD Position;
  271.     DWORD StartTime;
  272.     DWORD UntilTime;
  273.     DWORD TotalPages;
  274.     DWORD Size;
  275.     SYSTEMTIME Submitted;
  276.     DWORD Time;
  277.     DWORD PagesPrinted;
  278. } JOB_INFO_2A,*PJOB_INFO_2A,*LPJOB_INFO_2A;
  279. typedef struct _JOB_INFO_2W {
  280.     DWORD JobId;
  281.     LPWSTR pPrinterName;
  282.     LPWSTR pMachineName;
  283.     LPWSTR pUserName;
  284.     LPWSTR pDocument;
  285.     LPWSTR pNotifyName;
  286.     LPWSTR pDatatype;
  287.     LPWSTR pPrintProcessor;
  288.     LPWSTR pParameters;
  289.     LPWSTR pDriverName;
  290.     LPDEVMODEW pDevMode;
  291.     LPWSTR pStatus;
  292.     PSECURITY_DESCRIPTOR pSecurityDescriptor;
  293.     DWORD Status;
  294.     DWORD Priority;
  295.     DWORD Position;
  296.     DWORD StartTime;
  297.     DWORD UntilTime;
  298.     DWORD TotalPages;
  299.     DWORD Size;
  300.     SYSTEMTIME Submitted;
  301.     DWORD Time;
  302.     DWORD PagesPrinted;
  303. } JOB_INFO_2W,*PJOB_INFO_2W,*LPJOB_INFO_2W;
  304. typedef struct _DOC_INFO_1A {
  305.     LPSTR pDocName;
  306.     LPSTR pOutputFile;
  307.     LPSTR pDatatype;
  308. } DOC_INFO_1A,*PDOC_INFO_1A,*LPDOC_INFO_1A;
  309. typedef struct _DOC_INFO_1W {
  310.     LPWSTR pDocName;
  311.     LPWSTR pOutputFile;
  312.     LPWSTR pDatatype;
  313. } DOC_INFO_1W,*PDOC_INFO_1W,*LPDOC_INFO_1W;
  314. typedef struct _DOC_INFO_2A {
  315.     LPSTR pDocName;
  316.     LPSTR pOutputFile;
  317.     LPSTR pDatatype;
  318.     DWORD dwMode;
  319.     DWORD JobId;
  320. } DOC_INFO_2A,*PDOC_INFO_2A,*LPDOC_INFO_2A;
  321. typedef struct _DOC_INFO_2W {
  322.     LPWSTR pDocName;
  323.     LPWSTR pOutputFile;
  324.     LPWSTR pDatatype;
  325.     DWORD dwMode;
  326.     DWORD JobId;
  327. } DOC_INFO_2W,*PDOC_INFO_2W,*LPDOC_INFO_2W;
  328. typedef    struct    _DRIVER_INFO_1A    {LPSTR    pName;} DRIVER_INFO_1A,*PDRIVER_INFO_1A,*LPDRIVER_INFO_1A;
  329. typedef    struct    _DRIVER_INFO_1W    {LPWSTR    pName;} DRIVER_INFO_1W,*PDRIVER_INFO_1W,*LPDRIVER_INFO_1W;
  330. typedef    struct    _DRIVER_INFO_2A    {
  331.     DWORD cVersion;
  332.     LPSTR pName;
  333.     LPSTR pEnvironment;
  334.     LPSTR pDriverPath;
  335.     LPSTR pDataFile;
  336.     LPSTR pConfigFile;
  337. } DRIVER_INFO_2A,*PDRIVER_INFO_2A,*LPDRIVER_INFO_2A;
  338. typedef    struct    _DRIVER_INFO_2W    {
  339.     DWORD cVersion;
  340.     LPWSTR pName;
  341.     LPWSTR pEnvironment;
  342.     LPWSTR pDriverPath;
  343.     LPWSTR pDataFile;
  344.     LPWSTR pConfigFile;
  345. }    DRIVER_INFO_2W,*PDRIVER_INFO_2W,*LPDRIVER_INFO_2W;
  346. typedef    struct    _DRIVER_INFO_3A    {
  347.     DWORD cVersion;
  348.     LPSTR pName;
  349.     LPSTR pEnvironment;
  350.     LPSTR pDriverPath;
  351.     LPSTR pDataFile;
  352.     LPSTR pConfigFile;
  353.     LPSTR pHelpFile;
  354.     LPSTR pDependentFiles;
  355.     LPSTR pMonitorName;
  356.     LPSTR pDefaultDataType;
  357. } DRIVER_INFO_3A,*PDRIVER_INFO_3A,*LPDRIVER_INFO_3A;
  358. typedef    struct    _DRIVER_INFO_3W    {
  359.     DWORD cVersion;
  360.     LPWSTR pName;
  361.     LPWSTR pEnvironment;
  362.     LPWSTR pDriverPath;
  363.     LPWSTR pDataFile;
  364.     LPWSTR pConfigFile;
  365.     LPWSTR pHelpFile;
  366.     LPWSTR pDependentFiles;
  367.     LPWSTR pMonitorName;
  368.     LPWSTR pDefaultDataType;
  369. } DRIVER_INFO_3W,*PDRIVER_INFO_3W,*LPDRIVER_INFO_3W;
  370. typedef struct _MONITOR_INFO_1A{LPSTR pName;} MONITOR_INFO_1A,*PMONITOR_INFO_1A,*LPMONITOR_INFO_1A;
  371. typedef struct _MONITOR_INFO_1W{LPWSTR pName;} MONITOR_INFO_1W,*PMONITOR_INFO_1W,*LPMONITOR_INFO_1W;
  372. typedef struct _PORT_INFO_1A {LPSTR pName;} PORT_INFO_1A,*PPORT_INFO_1A,*LPPORT_INFO_1A;
  373. typedef struct _PORT_INFO_1W {LPWSTR pName;} PORT_INFO_1W,*PPORT_INFO_1W,*LPPORT_INFO_1W;
  374. typedef struct _PORT_INFO_2A {
  375.     LPSTR pPortName;
  376.     LPSTR pMonitorName;
  377.     LPSTR pDescription;
  378.     DWORD fPortType;
  379.     DWORD Reserved;
  380. } PORT_INFO_2A,*PPORT_INFO_2A,*LPPORT_INFO_2A;
  381. typedef struct _PORT_INFO_2W {
  382.     LPWSTR pPortName;
  383.     LPWSTR pMonitorName;
  384.     LPWSTR pDescription;
  385.     DWORD fPortType;
  386.     DWORD Reserved;
  387. } PORT_INFO_2W,*PPORT_INFO_2W,*LPPORT_INFO_2W;
  388. typedef struct _PORT_INFO_3A {
  389.     DWORD dwStatus;
  390.     LPSTR pszStatus;
  391.     DWORD dwSeverity;
  392. } PORT_INFO_3A,*PPORT_INFO_3A,*LPPORT_INFO_3A;
  393. typedef struct _PORT_INFO_3W {
  394.     DWORD dwStatus;
  395.     LPWSTR pszStatus;
  396.     DWORD dwSeverity;
  397. } PORT_INFO_3W,*PPORT_INFO_3W,*LPPORT_INFO_3W;
  398. typedef    struct _PRINTER_INFO_1A {
  399.     DWORD Flags;
  400.     LPSTR pDescription;
  401.     LPSTR pName;
  402.     LPSTR pComment;
  403. } PRINTER_INFO_1A,*PPRINTER_INFO_1A,*LPPRINTER_INFO_1A;
  404. typedef    struct _PRINTER_INFO_1W    {
  405.     DWORD Flags;
  406.     LPWSTR pDescription;
  407.     LPWSTR pName;
  408.     LPWSTR pComment;
  409. } PRINTER_INFO_1W,*PPRINTER_INFO_1W,*LPPRINTER_INFO_1W;
  410. typedef    struct _PRINTER_INFO_2A {
  411.     LPSTR pServerName;
  412.     LPSTR pPrinterName;
  413.     LPSTR pShareName;
  414.     LPSTR pPortName;
  415.     LPSTR pDriverName;
  416.     LPSTR pComment;
  417.     LPSTR pLocation;
  418.     LPDEVMODEA pDevMode;
  419.     LPSTR pSepFile;
  420.     LPSTR pPrintProcessor;
  421.     LPSTR pDatatype;
  422.     LPSTR pParameters;
  423.     PSECURITY_DESCRIPTOR pSecurityDescriptor;
  424.     DWORD Attributes;
  425.     DWORD Priority;
  426.     DWORD DefaultPriority;
  427.     DWORD StartTime;
  428.     DWORD UntilTime;
  429.     DWORD Status;
  430.     DWORD cJobs;
  431.     DWORD AveragePPM;
  432. } PRINTER_INFO_2A,*PPRINTER_INFO_2A,*LPPRINTER_INFO_2A;
  433. typedef    struct _PRINTER_INFO_2W {
  434.     LPWSTR pServerName;
  435.     LPWSTR pPrinterName;
  436.     LPWSTR pShareName;
  437.     LPWSTR pPortName;
  438.     LPWSTR pDriverName;
  439.     LPWSTR pComment;
  440.     LPWSTR pLocation;
  441.     LPDEVMODEW pDevMode;
  442.     LPWSTR pSepFile;
  443.     LPWSTR pPrintProcessor;
  444.     LPWSTR pDatatype;
  445.     LPWSTR pParameters;
  446.     PSECURITY_DESCRIPTOR pSecurityDescriptor;
  447.     DWORD Attributes;
  448.     DWORD Priority;
  449.     DWORD DefaultPriority;
  450.     DWORD StartTime;
  451.     DWORD UntilTime;
  452.     DWORD Status;
  453.     DWORD cJobs;
  454.     DWORD AveragePPM;
  455. } PRINTER_INFO_2W,*PPRINTER_INFO_2W,*LPPRINTER_INFO_2W;
  456. typedef    struct _PRINTER_INFO_3    {
  457.     PSECURITY_DESCRIPTOR pSecurityDescriptor;
  458. } PRINTER_INFO_3,*PPRINTER_INFO_3,*LPPRINTER_INFO_3;
  459. typedef    struct _PRINTER_INFO_4A {
  460.     LPSTR pPrinterName;
  461.     LPSTR pServerName;
  462.     DWORD Attributes;
  463. } PRINTER_INFO_4A,*PPRINTER_INFO_4A,*LPPRINTER_INFO_4A;
  464. typedef    struct _PRINTER_INFO_4W    {
  465.     LPWSTR pPrinterName;
  466.     LPWSTR pServerName;
  467.     DWORD Attributes;
  468. } PRINTER_INFO_4W,*PPRINTER_INFO_4W,*LPPRINTER_INFO_4W;
  469. typedef    struct _PRINTER_INFO_5A    {
  470.     LPSTR pPrinterName;
  471.     LPSTR pPortName;
  472.     DWORD Attributes;
  473.     DWORD DeviceNotSelectedTimeout;
  474.     DWORD TransmissionRetryTimeout;
  475. } PRINTER_INFO_5A,*PPRINTER_INFO_5A,*LPPRINTER_INFO_5A;
  476. typedef    struct _PRINTER_INFO_5W    {
  477.     LPWSTR pPrinterName;
  478.     LPWSTR pPortName;
  479.     DWORD Attributes;
  480.     DWORD DeviceNotSelectedTimeout;
  481.     DWORD TransmissionRetryTimeout;
  482. } PRINTER_INFO_5W,*PPRINTER_INFO_5W,*LPPRINTER_INFO_5W;
  483. typedef    struct _PRINTPROCESSOR_INFO_1A {LPSTR pName;} PRINTPROCESSOR_INFO_1A,*PPRINTPROCESSOR_INFO_1A,*LPPRINTPROCESSOR_INFO_1A;
  484. typedef    struct _PRINTPROCESSOR_INFO_1W {LPWSTR pName;} PRINTPROCESSOR_INFO_1W,*PPRINTPROCESSOR_INFO_1W,*LPPRINTPROCESSOR_INFO_1W;
  485. typedef    struct    _PRINTER_NOTIFY_INFO_DATA {
  486.     WORD Type;
  487.     WORD Field;
  488.     DWORD Reserved;
  489.     DWORD Id;
  490.     union {
  491.         DWORD adwData[2];
  492.         struct {
  493.             DWORD cbBuf;
  494.             PVOID pBuf;
  495.         } Data;
  496.     } NotifyData;
  497. } PRINTER_NOTIFY_INFO_DATA,*PPRINTER_NOTIFY_INFO_DATA,*LPPRINTER_NOTIFY_INFO_DATA;
  498. typedef    struct    _PRINTER_NOTIFY_INFO {
  499.     DWORD Version;
  500.     DWORD Flags;
  501.     DWORD Count;
  502.     PRINTER_NOTIFY_INFO_DATA aData[1];
  503. } PRINTER_NOTIFY_INFO,*PPRINTER_NOTIFY_INFO,*LPPRINTER_NOTIFY_INFO;
  504. typedef    struct _FORM_INFO_1A {
  505.     DWORD    Flags;
  506.     LPSTR    pName;
  507.     SIZEL    Size;
  508.     RECTL    ImageableArea;
  509. } FORM_INFO_1A,*PFORM_INFO_1A,*LPFORM_INFO_1A;
  510. typedef    struct _FORM_INFO_1W {
  511.     DWORD    Flags;
  512.     LPWSTR    pName;
  513.     SIZEL    Size;
  514.     RECTL    ImageableArea;
  515. } FORM_INFO_1W,*PFORM_INFO_1W,*LPFORM_INFO_1W;
  516. typedef    struct _PRINTER_DEFAULTSA {
  517.     LPSTR pDatatype;
  518.     LPDEVMODE pDevMode;
  519.     ACCESS_MASK    DesiredAccess;
  520. } PRINTER_DEFAULTSA,*PPRINTER_DEFAULTSA,*LPPRINTER_DEFAULTSA;
  521. typedef    struct _PRINTER_DEFAULTSW {
  522.     LPWSTR pDatatype;
  523.     LPDEVMODE pDevMode;
  524.     ACCESS_MASK DesiredAccess;
  525. } PRINTER_DEFAULTSW,*PPRINTER_DEFAULTSW,*LPPRINTER_DEFAULTSW;
  526.  
  527. BOOL WINAPI AddFormA(HANDLE,DWORD,PBYTE);
  528. BOOL WINAPI AddFormW(HANDLE,DWORD,PBYTE);
  529. BOOL WINAPI AddJobA(HANDLE,DWORD,PBYTE,DWORD,PDWORD);
  530. BOOL WINAPI AddJobW(HANDLE,DWORD,PBYTE,DWORD,PDWORD);
  531. BOOL WINAPI AddMonitorA(LPSTR,DWORD,PBYTE);
  532. BOOL WINAPI AddMonitorW(LPWSTR,DWORD,PBYTE);
  533. BOOL WINAPI AddPortA(LPSTR,HWND,LPSTR);
  534. BOOL WINAPI AddPortW(LPWSTR,HWND,LPWSTR);
  535. HANDLE WINAPI AddPrinterA(LPSTR,DWORD,PBYTE);
  536. HANDLE WINAPI AddPrinterW(LPWSTR,DWORD,PBYTE);
  537. BOOL WINAPI AddPrinterConnectionA(LPSTR);
  538. BOOL WINAPI AddPrinterConnectionW(LPWSTR);
  539. BOOL WINAPI AddPrinterDriverA(LPSTR,DWORD,PBYTE);
  540. BOOL WINAPI AddPrinterDriverW(LPWSTR,DWORD,PBYTE);
  541. BOOL WINAPI AddPrintProcessorA(LPSTR,LPSTR,LPSTR,LPSTR);
  542. BOOL WINAPI AddPrintProcessorW(LPWSTR,LPWSTR,LPWSTR,LPWSTR);
  543. BOOL WINAPI AddPrintProvidorA(LPSTR,DWORD,PBYTE);
  544. BOOL WINAPI AddPrintProvidorW(LPWSTR,DWORD,PBYTE);
  545. LONG WINAPI AdvancedDocumentPropertiesA(HWND,HANDLE,LPSTR,PDEVMODE,PDEVMODEA);
  546. LONG WINAPI AdvancedDocumentPropertiesW(HWND,HANDLE,LPWSTR,PDEVMODE,PDEVMODEW);
  547. BOOL WINAPI ClosePrinter(HANDLE);
  548. BOOL WINAPI ConfigurePortA(LPSTR,HWND,LPSTR);
  549. BOOL WINAPI ConfigurePortW(LPWSTR,HWND,LPWSTR);
  550. HANDLE WINAPI ConnectToPrinterDlg(HWND,DWORD);
  551. BOOL WINAPI DeleteFormA(HANDLE,LPSTR);
  552. BOOL WINAPI DeleteFormW(HANDLE,LPWSTR);
  553. BOOL WINAPI DeleteMonitorA(LPSTR,LPSTR,LPSTR);
  554. BOOL WINAPI DeleteMonitorW(LPWSTR,LPWSTR,LPWSTR);
  555. BOOL WINAPI DeletePortA(LPSTR,HWND,LPSTR);
  556. BOOL WINAPI DeletePortW(LPWSTR,HWND,LPWSTR);
  557. BOOL WINAPI DeletePrinter(HANDLE);
  558. BOOL WINAPI DeletePrinterConnectionA(LPSTR);
  559. BOOL WINAPI DeletePrinterConnectionW(LPWSTR);
  560. DWORD WINAPI DeletePrinterDataA(HANDLE,LPSTR);
  561. DWORD WINAPI DeletePrinterDataW(HANDLE,LPWSTR);
  562. BOOL WINAPI DeletePrinterDriverA(LPSTR,LPSTR,LPSTR);
  563. BOOL WINAPI DeletePrinterDriverW(LPWSTR,LPWSTR,LPWSTR);
  564. BOOL WINAPI DeletePrintProcessorA(LPSTR,LPSTR,LPSTR);
  565. BOOL WINAPI DeletePrintProcessorW(LPWSTR,LPWSTR,LPWSTR);
  566. BOOL WINAPI DeletePrintProvidorA(LPSTR,LPSTR,LPSTR);
  567. BOOL WINAPI DeletePrintProvidorW(LPWSTR,LPWSTR,LPWSTR);
  568. LONG WINAPI DocumentPropertiesA(HWND,HANDLE,LPSTR,PDEVMODEA,PDEVMODEA,DWORD);
  569. LONG WINAPI DocumentPropertiesW(HWND,HANDLE,LPWSTR,PDEVMODEA,PDEVMODEA,DWORD);
  570. BOOL WINAPI EndDocPrinter(HANDLE);
  571. BOOL WINAPI EndPagePrinter(HANDLE);
  572. BOOL WINAPI EnumFormsA(HANDLE,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
  573. BOOL WINAPI EnumFormsW(HANDLE,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
  574. BOOL WINAPI EnumJobsA(HANDLE,DWORD,DWORD,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
  575. BOOL WINAPI EnumJobsW(HANDLE,DWORD,DWORD,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
  576. BOOL WINAPI EnumMonitorsA(LPSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
  577. BOOL WINAPI EnumMonitorsW(LPWSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
  578. BOOL WINAPI EnumPortsA(LPSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
  579. BOOL WINAPI EnumPortsW(LPWSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
  580. DWORD WINAPI EnumPrinterDataA(HANDLE,DWORD,LPSTR,DWORD,PDWORD,PDWORD,PBYTE,DWORD,PDWORD);
  581. DWORD WINAPI EnumPrinterDataW(HANDLE,DWORD,LPWSTR,DWORD,PDWORD,PDWORD,PBYTE,DWORD,PDWORD);
  582. BOOL WINAPI EnumPrinterDriversA(LPSTR,LPSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
  583. BOOL WINAPI EnumPrinterDriversW(LPWSTR,LPWSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
  584. BOOL WINAPI EnumPrintersA(DWORD,LPSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
  585. BOOL WINAPI EnumPrintersW(DWORD,LPWSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
  586. BOOL WINAPI EnumPrintProcessorDatatypesA(LPSTR,LPSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
  587. BOOL WINAPI EnumPrintProcessorDatatypesW(LPWSTR,LPWSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
  588. BOOL WINAPI EnumPrintProcessorsA(LPSTR,LPSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
  589. BOOL WINAPI EnumPrintProcessorsW(LPWSTR,LPWSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD);
  590. BOOL WINAPI FindClosePrinterChangeNotification(HANDLE);
  591. HANDLE WINAPI FindFirstPrinterChangeNotification(HANDLE,DWORD,DWORD,PVOID);
  592. HANDLE WINAPI FindNextPrinterChangeNotification(HANDLE,PDWORD,PVOID,PVOID*);
  593. BOOL WINAPI FreePrinterNotifyInfo(PPRINTER_NOTIFY_INFO);
  594. BOOL WINAPI GetFormA(HANDLE,LPSTR,DWORD,PBYTE,DWORD,PDWORD);
  595. BOOL WINAPI GetFormW(HANDLE,LPWSTR,DWORD,PBYTE,DWORD,PDWORD);
  596. BOOL WINAPI GetJobA(HANDLE,DWORD,DWORD,PBYTE,DWORD,PDWORD);
  597. BOOL WINAPI GetJobW(HANDLE,DWORD,DWORD,PBYTE,DWORD,PDWORD);
  598. BOOL WINAPI GetPrinterA(HANDLE,DWORD,PBYTE,DWORD,PDWORD);
  599. BOOL WINAPI GetPrinterW(HANDLE,DWORD,PBYTE,DWORD,PDWORD);
  600. DWORD WINAPI GetPrinterDataA(HANDLE,LPSTR,PDWORD,PBYTE,DWORD,PDWORD);
  601. DWORD WINAPI GetPrinterDataW(HANDLE,LPWSTR,PDWORD,PBYTE,DWORD,PDWORD);
  602. DWORD WINAPI GetPrinterDriverA(HANDLE,LPSTR,DWORD,PBYTE,DWORD,PDWORD);
  603. DWORD WINAPI GetPrinterDriverW(HANDLE,LPWSTR,DWORD,PBYTE,DWORD,PDWORD);
  604. DWORD WINAPI GetPrinterDriverDirectoryA(LPSTR,LPSTR,DWORD,PBYTE,DWORD,PDWORD);
  605. DWORD WINAPI GetPrinterDriverDirectoryW(LPWSTR,LPWSTR,DWORD,PBYTE,DWORD,PDWORD);
  606. DWORD WINAPI GetPrintProcessorDirectoryA(LPSTR,LPSTR,DWORD,PBYTE,DWORD,PDWORD);
  607. DWORD WINAPI GetPrintProcessorDirectoryW(LPWSTR,LPWSTR,DWORD,PBYTE,DWORD,PDWORD);
  608. BOOL WINAPI OpenPrinterA(LPSTR,PHANDLE,LPPRINTER_DEFAULTSA);
  609. BOOL WINAPI OpenPrinterW(LPWSTR,PHANDLE,LPPRINTER_DEFAULTSW);
  610. DWORD WINAPI PrinterMessageBoxA(HANDLE,DWORD,HWND,LPSTR,LPSTR,DWORD);
  611. DWORD WINAPI PrinterMessageBoxW(HANDLE,DWORD,HWND,LPWSTR,LPWSTR,DWORD);
  612. BOOL WINAPI PrinterProperties(HWND,HANDLE);
  613. BOOL WINAPI ReadPrinter(HANDLE,PVOID,DWORD,PDWORD);
  614. BOOL WINAPI ResetPrinterA(HANDLE,LPPRINTER_DEFAULTSA);
  615. BOOL WINAPI ResetPrinterW(HANDLE,LPPRINTER_DEFAULTSW);
  616. BOOL WINAPI ScheduleJob(HANDLE,DWORD);
  617. BOOL WINAPI SetFormA(HANDLE,LPSTR,DWORD,PBYTE);
  618. BOOL WINAPI SetFormW(HANDLE,LPWSTR,DWORD,PBYTE);
  619. BOOL WINAPI SetJobA(HANDLE,DWORD,DWORD,PBYTE,DWORD);
  620. BOOL WINAPI SetJobW(HANDLE,DWORD,DWORD,PBYTE,DWORD);
  621. BOOL WINAPI SetPrinterA(HANDLE,DWORD,PBYTE,DWORD);
  622. BOOL WINAPI SetPrinterW(HANDLE,DWORD,PBYTE,DWORD);
  623. BOOL WINAPI SetPrinterDataA(HANDLE,LPSTR,DWORD,PBYTE,DWORD);
  624. BOOL WINAPI SetPrinterDataW(HANDLE,LPWSTR,DWORD,PBYTE,DWORD);
  625. DWORD WINAPI StartDocPrinterA(HANDLE,DWORD,PBYTE);
  626. DWORD WINAPI StartDocPrinterW(HANDLE,DWORD,PBYTE);
  627. BOOL WINAPI StartPagePrinter(HANDLE);
  628. DWORD WINAPI WaitForPrinterChange(HANDLE,DWORD);
  629. BOOL WINAPI WritePrinter(HANDLE,PVOID,DWORD,PDWORD);
  630.  
  631. #ifdef UNICODE
  632. typedef JOB_INFO_1W JOB_INFO_1,*PJOB_INFO_1,*LPJOB_INFO_1;
  633. typedef JOB_INFO_2W JOB_INFO_2,*PJOB_INFO_2,*LPJOB_INFO_2;
  634. typedef ADDJOB_INFO_1W ADDJOB_INFO_1,*PADDJOB_INFO_1,*LPADDJOB_INFO_1;
  635. typedef DATATYPES_INFO_1W DATATYPES_INFO_1,*PDATATYPES_INFO_1,*LPDATATYPES_INFO_1;
  636. typedef MONITOR_INFO_1W MONITOR_INFO_1,*PMONITOR_INFO_1,*LPMONITOR_INFO_1;
  637. typedef DOC_INFO_1W DOC_INFO_1,*PDOC_INFO_1,*LPDOC_INFO_1;
  638. typedef DOC_INFO_2W DOC_INFO_2,*PDOC_INFO_2,*LPDOC_INFO_2;
  639. typedef PORT_INFO_1W PORT_INFO_1,*PPORT_INFO_1,*LPPORT_INFO_1;
  640. typedef PORT_INFO_2W PORT_INFO_2,*PPORT_INFO_2,*LPPORT_INFO_2;
  641. typedef PORT_INFO_3W PORT_INFO_3,*PPORT_INFO_3,*LPPORT_INFO_3;
  642. typedef DRIVER_INFO_2W DRIVER_INFO_2,*PDRIVER_INFO_2,*LPDRIVER_INFO_2;
  643. typedef PRINTER_INFO_1W PRINTER_INFO_1,*PPRINTER_INFO_1,*LPPRINTER_INFO_1;
  644. typedef PRINTER_INFO_2W PRINTER_INFO_2,*PPRINTER_INFO_2,*LPPRINTER_INFO_2;
  645. typedef PRINTER_INFO_4W PRINTER_INFO_4,*PPRINTER_INFO_4,*LPPRINTER_INFO_4;
  646. typedef PRINTER_INFO_5W PRINTER_INFO_5,*PPRINTER_INFO_5,*LPPRINTER_INFO_5;
  647. typedef PRINTPROCESSOR_INFO_1W PRINTPROCESSOR_INFO_1,*PPRINTPROCESSOR_INFO_1,*LPPRINTPROCESSOR_INFO_1;
  648. typedef FORM_INFO_1W FORM_INFO_1,*PFORM_INFO_1,*LPFORM_INFO_1;
  649. typedef PRINTER_DEFAULTSW PRINTER_DEFAULTS,*PPRINTER_DEFAULTS,*LPPRINTER_DEFAULTS;
  650. #define AddForm AddFormW
  651. #define AddJob AddJobW
  652. #define AddMonitor AddMonitorW
  653. #define AddPort AddPortW
  654. #define AddPrinter AddPrinterW
  655. #define AddPrinterConnection AddPrinterConnectionW
  656. #define AddPrinterDriver AddPrinterDriverW
  657. #define AddPrintProcessor AddPrintProcessorW
  658. #define AddPrintProvidor AddPrintProvidorW
  659. #define AdvancedDocumentProperties AdvancedDocumentPropertiesW
  660. #define ConfigurePort ConfigurePortW
  661. #define DeleteForm DeleteFormW
  662. #define DeleteMonitor DeleteMonitorW
  663. #define DeletePort DeletePortW
  664. #define DeletePrinterConnection DeletePrinterConnectionW
  665. #define DeletePrinterData DeletePrinterDataW
  666. #define DeletePrinterDriver DeletePrinterDriverW
  667. #define DeletePrintProcessor DeletePrinterProcessorW
  668. #define DeletePrintProvidor DeletePrinterProvidorW
  669. #define DocumentProperties DocumentPropertiesW
  670. #define EnumForms EnumFormsW
  671. #define EnumJobs EnumJobsW
  672. #define EnumMonitors EnumMonitorsW
  673. #define EnumPorts EnumPortsW
  674. #define EnumPrinterData EnumPrinterDataW
  675. #define EnumPrinterDrivers EnumPrinterDriversW
  676. #define EnumPrinters EnumPrintersW
  677. #define EnumPrintProcessorDatatypes EnumPrintProcessorDatatypesW
  678. #define EnumPrintProcessors EnumPrintProcessorsW
  679. #define    GetForm    GetFormW
  680. #define GetJob GetJobW
  681. #define GetPrinter GetPrinterW
  682. #define GetPrinterData GetPrinterDataW
  683. #define GetPrinterDriver GetPrinterDriverW
  684. #define GetPrinterDriverDirectory GetPrinterDriverDirectoryW
  685. #define GetPrintProcessorDirectory GetPrintProcessorDirectoryW
  686. #define OpenPrinter OpenPrinterW
  687. #define PrinterMessageBox PrinterMessageBoxW
  688. #define ResetPrinter ResetPrinterW
  689. #define SetForm SetFormW
  690. #define SetJob SetJobW
  691. #define SetPrinter SetPrinterW
  692. #define SetPrinterData SetPrinterDataW
  693. #define StartDocPrinter StartDocPrinterW
  694. #else
  695. typedef JOB_INFO_1A JOB_INFO_1,*PJOB_INFO_1,*LPJOB_INFO_1;
  696. typedef JOB_INFO_2A JOB_INFO_2,*PJOB_INFO_2,*LPJOB_INFO_2;
  697. typedef ADDJOB_INFO_1A ADDJOB_INFO_1,*PADDJOB_INFO_1,*LPADDJOB_INFO_1;
  698. typedef DATATYPES_INFO_1A DATATYPES_INFO_1,*PDATATYPES_INFO_1,*LPDATATYPES_INFO_1;
  699. typedef MONITOR_INFO_1A MONITOR_INFO_1,*PMONITOR_INFO_1,*LPMONITOR_INFO_1;
  700. typedef DOC_INFO_1A DOC_INFO_1,*PDOC_INFO_1,*LPDOC_INFO_1;
  701. typedef DOC_INFO_2A DOC_INFO_2,*PDOC_INFO_2,*LPDOC_INFO_2;
  702. typedef PORT_INFO_1A PORT_INFO_1,*PPORT_INFO_1,*LPPORT_INFO_1;
  703. typedef PORT_INFO_2A PORT_INFO_2,*PPORT_INFO_2,*LPPORT_INFO_2;
  704. typedef PORT_INFO_3A PORT_INFO_3,*PPORT_INFO_3,*LPPORT_INFO_3;
  705. typedef DRIVER_INFO_2A DRIVER_INFO_2,*PDRIVER_INFO_2,*LPDRIVER_INFO_2;
  706. typedef PRINTER_INFO_1A PRINTER_INFO_1,*PPRINTER_INFO_1,*LPPRINTER_INFO_1;
  707. typedef PRINTER_INFO_2A PRINTER_INFO_2,*PPRINTER_INFO_2,*LPPRINTER_INFO_2;
  708. typedef PRINTER_INFO_4A PRINTER_INFO_4,*PPRINTER_INFO_4,*LPPRINTER_INFO_4;
  709. typedef PRINTER_INFO_5A PRINTER_INFO_5,*PPRINTER_INFO_5,*LPPRINTER_INFO_5;
  710. typedef PRINTPROCESSOR_INFO_1A PRINTPROCESSOR_INFO_1,*PPRINTPROCESSOR_INFO_1,*LPPRINTPROCESSOR_INFO_1;
  711. typedef FORM_INFO_1A FORM_INFO_1,*PFORM_INFO_1,*LPFORM_INFO_1;
  712. typedef PRINTER_DEFAULTSA PRINTER_DEFAULTS,*PPRINTER_DEFAULTS,*LPPRINTER_DEFAULTS;
  713. #define AddForm AddFormA
  714. #define AddJob AddJobA
  715. #define AddMonitor AddMonitorA
  716. #define AddPort AddPortA
  717. #define AddPrinter AddPrinterA
  718. #define AddPrinterConnection AddPrinterConnectionA
  719. #define AddPrinterDriver AddPrinterDriverA
  720. #define AddPrintProcessor AddPrintProcessorA
  721. #define AddPrintProvidor AddPrintProvidorA
  722. #define AdvancedDocumentProperties AdvancedDocumentPropertiesA
  723. #define ConfigurePort ConfigurePortA
  724. #define DeleteForm DeleteFormA
  725. #define DeleteMonitor DeleteMonitorA
  726. #define DeletePort DeletePortA
  727. #define DeletePrinterConnection DeletePrinterConnectionA
  728. #define DeletePrinterData DeletePrinterDataA
  729. #define DeletePrinterDriver DeletePrinterDriverA
  730. #define DeletePrintProcessor DeletePrinterProcessorA
  731. #define DeletePrintProvidor DeletePrinterProvidorA
  732. #define DocumentProperties DocumentPropertiesA
  733. #define EnumForms EnumFormsA
  734. #define EnumJobs EnumJobsA
  735. #define EnumMonitors EnumMonitorsA
  736. #define EnumPorts EnumPortsA
  737. #define EnumPrinterData EnumPrinterDataA
  738. #define EnumPrinterDrivers EnumPrinterDriversA
  739. #define EnumPrinters EnumPrintersA
  740. #define EnumPrintProcessorDatatypes EnumPrintProcessorDatatypesA
  741. #define EnumPrintProcessors EnumPrintProcessorsA
  742. #define    GetForm    GetFormA
  743. #define GetJob GetJobA
  744. #define GetPrinter GetPrinterA
  745. #define GetPrinterData GetPrinterDataA
  746. #define GetPrinterDriver GetPrinterDriverA
  747. #define GetPrinterDriverDirectory GetPrinterDriverDirectoryA
  748. #define GetPrintProcessorDirectory GetPrintProcessorDirectoryA
  749. #define OpenPrinter OpenPrinterA
  750. #define PrinterMessageBox PrinterMessageBoxA
  751. #define ResetPrinter ResetPrinterA
  752. #define SetForm SetFormA
  753. #define SetJob SetJobA
  754. #define SetPrinter SetPrinterA
  755. #define SetPrinterData SetPrinterDataA
  756. #define StartDocPrinter StartDocPrinterA
  757. #endif
  758. #ifdef __cplusplus
  759. }
  760. #endif
  761. #endif
  762.