winspool.h 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134
  1. /* Definitions for printing
  2. *
  3. * Copyright 1998 Huw Davies, Andreas Mohr
  4. *
  5. * Portions Copyright (c) 1999 Corel Corporation
  6. * (Paul Quinn, Albert Den Haan)
  7. *
  8. * This library is free software; you can redistribute it and/or
  9. * modify it under the terms of the GNU Lesser General Public
  10. * License as published by the Free Software Foundation; either
  11. * version 2.1 of the License, or (at your option) any later version.
  12. *
  13. * This library is distributed in the hope that it will be useful,
  14. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  16. * Lesser General Public License for more details.
  17. *
  18. * You should have received a copy of the GNU Lesser General Public
  19. * License along with this library; if not, write to the Free Software
  20. * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  21. */
  22. #ifndef __WINE_WINSPOOL_H
  23. #define __WINE_WINSPOOL_H
  24. #ifdef __cplusplus
  25. extern "C" {
  26. #endif
  27. /* DEFINES */
  28. #define PRINTER_ATTRIBUTE_QUEUED 0x00000001
  29. #define PRINTER_ATTRIBUTE_DIRECT 0x00000002
  30. #define PRINTER_ATTRIBUTE_DEFAULT 0x00000004
  31. #define PRINTER_ATTRIBUTE_SHARED 0x00000008
  32. #define PRINTER_ATTRIBUTE_NETWORK 0x00000010
  33. #define PRINTER_ATTRIBUTE_HIDDEN 0x00000020
  34. #define PRINTER_ATTRIBUTE_LOCAL 0x00000040
  35. #define PRINTER_ATTRIBUTE_ENABLE_DEVQ 0x00000080
  36. #define PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS 0x00000100
  37. #define PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST 0x00000200
  38. #define PRINTER_ATTRIBUTE_WORK_OFFLINE 0x00000400
  39. #define PRINTER_ATTRIBUTE_ENABLE_BIDI 0x00000800
  40. #define PRINTER_CONTROL_PAUSE 1
  41. #define PRINTER_CONTROL_RESUME 2
  42. #define PRINTER_CONTROL_PURGE 3
  43. #define PRINTER_CONTROL_SET_STATUS 4
  44. #define PRINTER_ENUM_DEFAULT 0x00000001
  45. #define PRINTER_ENUM_LOCAL 0x00000002
  46. #define PRINTER_ENUM_CONNECTIONS 0x00000004
  47. #define PRINTER_ENUM_FAVORITE 0x00000004
  48. #define PRINTER_ENUM_NAME 0x00000008
  49. #define PRINTER_ENUM_REMOTE 0x00000010
  50. #define PRINTER_ENUM_SHARED 0x00000020
  51. #define PRINTER_ENUM_NETWORK 0x00000040
  52. #define PRINTER_ENUM_EXPAND 0x00004000
  53. #define PRINTER_ENUM_CONTAINER 0x00008000
  54. #define PRINTER_ENUM_ICONMASK 0x00ff0000
  55. #define PRINTER_ENUM_ICON1 0x00010000
  56. #define PRINTER_ENUM_ICON2 0x00020000
  57. #define PRINTER_ENUM_ICON3 0x00040000
  58. #define PRINTER_ENUM_ICON4 0x00080000
  59. #define PRINTER_ENUM_ICON5 0x00100000
  60. #define PRINTER_ENUM_ICON6 0x00200000
  61. #define PRINTER_ENUM_ICON7 0x00400000
  62. #define PRINTER_ENUM_ICON8 0x00800000
  63. /* various printer statuses */
  64. #define PRINTER_STATUS_PAUSED 0x00000001
  65. #define PRINTER_STATUS_ERROR 0x00000002
  66. #define PRINTER_STATUS_PENDING_DELETION 0x00000004
  67. #define PRINTER_STATUS_PAPER_JAM 0x00000008
  68. #define PRINTER_STATUS_PAPER_OUT 0x00000010
  69. #define PRINTER_STATUS_MANUAL_FEED 0x00000020
  70. #define PRINTER_STATUS_PAPER_PROBLEM 0x00000040
  71. #define PRINTER_STATUS_OFFLINE 0x00000080
  72. #define PRINTER_STATUS_IO_ACTIVE 0x00000100
  73. #define PRINTER_STATUS_BUSY 0x00000200
  74. #define PRINTER_STATUS_PRINTING 0x00000400
  75. #define PRINTER_STATUS_OUTPUT_BIN_FULL 0x00000800
  76. #define PRINTER_STATUS_NOT_AVAILABLE 0x00001000
  77. #define PRINTER_STATUS_WAITING 0x00002000
  78. #define PRINTER_STATUS_PROCESSING 0x00004000
  79. #define PRINTER_STATUS_INITIALIZING 0x00008000
  80. #define PRINTER_STATUS_WARMING_UP 0x00010000
  81. #define PRINTER_STATUS_TONER_LOW 0x00020000
  82. #define PRINTER_STATUS_NO_TONER 0x00040000
  83. #define PRINTER_STATUS_PAGE_PUNT 0x00080000
  84. #define PRINTER_STATUS_USER_INTERVENTION 0x00100000
  85. #define PRINTER_STATUS_OUT_OF_MEMORY 0x00200000
  86. #define PRINTER_STATUS_DOOR_OPEN 0x00400000
  87. #define PRINTER_STATUS_SERVER_UNKNOWN 0x00800000
  88. #define PRINTER_STATUS_POWER_SAVE 0x01000000
  89. #define NO_PRIORITY 0
  90. #define MAX_PRIORITY 99
  91. #define MIN_PRIORITY 1
  92. #define DEF_PRIORITY 1
  93. #define JOB_CONTROL_PAUSE 1
  94. #define JOB_CONTROL_RESUME 2
  95. #define JOB_CONTROL_CANCEL 3
  96. #define JOB_CONTROL_RESTART 4
  97. #define JOB_CONTROL_DELETE 5
  98. #define JOB_CONTROL_SENT_TO_PRINTER 6
  99. #define JOB_CONTROL_LAST_PAGE_EJECTED 7
  100. #define JOB_STATUS_PAUSED 0x0001
  101. #define JOB_STATUS_ERROR 0x0002
  102. #define JOB_STATUS_DELETING 0x0004
  103. #define JOB_STATUS_SPOOLING 0x0008
  104. #define JOB_STATUS_PRINTING 0x0010
  105. #define JOB_STATUS_OFFLINE 0x0020
  106. #define JOB_STATUS_PAPEROUT 0x0040
  107. #define JOB_STATUS_PRINTED 0x0080
  108. #define JOB_STATUS_DELETED 0x0100
  109. #define JOB_STATUS_BLOCKED_DEVQ 0x0200
  110. #define JOB_STATUS_USER_INTERVENTION 0x0400
  111. #define JOB_POSITION_UNSPECIFIED 1
  112. #define DI_CHANNEL 1
  113. #define DI_READ_SPOOL_JOB 3
  114. #define FORM_USER 0
  115. #define FORM_BUILTIN 1
  116. #define FORM_PRINTER 2
  117. #define PORT_TYPE_WRITE 1
  118. #define PORT_TYPE_READ 2
  119. #define PORT_TYPE_REDIRECTED 4
  120. #define PORT_TYPE_NET_ATTACHED 8
  121. #define PORT_STATUS_TYPE_ERROR 1
  122. #define PORT_STATUS_TYPE_WARNING 2
  123. #define PORT_STATUS_TYPE_INFO 3
  124. #define PORT_STATUS_OFFLINE 1
  125. #define PORT_STATUS_PAPER_JAM 2
  126. #define PORT_STATUS_PAPER_OUT 3
  127. #define PORT_STATUS_OUTPUT_BIN_FULL 4
  128. #define PORT_STATUS_PAPER_PROBLEM 5
  129. #define PORT_STATUS_NO_TONER 6
  130. #define PORT_STATUS_DOOR_OPEN 7
  131. #define PORT_STATUS_USER_INTERVENTION 8
  132. #define PORT_STATUS_OUT_OF_MEMORY 9
  133. #define PORT_STATUS_TONER_LOW 10
  134. #define PORT_STATUS_WARMING_UP 11
  135. #define PORT_STATUS_POWER_SAVE 12
  136. #define PRINTER_NOTIFY_TYPE 0
  137. #define JOB_NOTIFY_TYPE 1
  138. #define PRINTER_NOTIFY_FIELD_SERVER_NAME 0x00
  139. #define PRINTER_NOTIFY_FIELD_PRINTER_NAME 0x01
  140. #define PRINTER_NOTIFY_FIELD_SHARE_NAME 0x02
  141. #define PRINTER_NOTIFY_FIELD_PORT_NAME 0x03
  142. #define PRINTER_NOTIFY_FIELD_DRIVER_NAME 0x04
  143. #define PRINTER_NOTIFY_FIELD_COMMENT 0x05
  144. #define PRINTER_NOTIFY_FIELD_LOCATION 0x06
  145. #define PRINTER_NOTIFY_FIELD_DEVMODE 0x07
  146. #define PRINTER_NOTIFY_FIELD_SEPFILE 0x08
  147. #define PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR 0x09
  148. #define PRINTER_NOTIFY_FIELD_PARAMETERS 0x0a
  149. #define PRINTER_NOTIFY_FIELD_DATATYPE 0x0b
  150. #define PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR 0x0c
  151. #define PRINTER_NOTIFY_FIELD_ATTRIBUTES 0x0d
  152. #define PRINTER_NOTIFY_FIELD_PRIORITY 0x0e
  153. #define PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY 0x0f
  154. #define PRINTER_NOTIFY_FIELD_START_TIME 0x10
  155. #define PRINTER_NOTIFY_FIELD_UNTIL_TIME 0x11
  156. #define PRINTER_NOTIFY_FIELD_STATUS 0x12
  157. #define PRINTER_NOTIFY_FIELD_STATUS_STRING 0x13
  158. #define PRINTER_NOTIFY_FIELD_CJOBS 0x14
  159. #define PRINTER_NOTIFY_FIELD_AVERAGE_PPM 0x15
  160. #define PRINTER_NOTIFY_FIELD_TOTAL_PAGES 0x16
  161. #define PRINTER_NOTIFY_FIELD_PAGES_PRINTED 0x17
  162. #define PRINTER_NOTIFY_FIELD_TOTAL_BYTES 0x18
  163. #define PRINTER_NOTIFY_FIELD_BYTES_PRINTED 0x19
  164. #define JOB_NOTIFY_FIELD_PRINTER_NAME 0x00
  165. #define JOB_NOTIFY_FIELD_MACHINE_NAME 0x01
  166. #define JOB_NOTIFY_FIELD_PORT_NAME 0x02
  167. #define JOB_NOTIFY_FIELD_USER_NAME 0x03
  168. #define JOB_NOTIFY_FIELD_NOTIFY_NAME 0x04
  169. #define JOB_NOTIFY_FIELD_DATATYPE 0x05
  170. #define JOB_NOTIFY_FIELD_PRINT_PROCESSOR 0x06
  171. #define JOB_NOTIFY_FIELD_PARAMETERS 0x07
  172. #define JOB_NOTIFY_FIELD_DRIVER_NAME 0x08
  173. #define JOB_NOTIFY_FIELD_DEVMODE 0x09
  174. #define JOB_NOTIFY_FIELD_STATUS 0x0a
  175. #define JOB_NOTIFY_FIELD_STATUS_STRING 0x0b
  176. #define JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR 0x0c
  177. #define JOB_NOTIFY_FIELD_DOCUMENT 0x0d
  178. #define JOB_NOTIFY_FIELD_PRIORITY 0x0e
  179. #define JOB_NOTIFY_FIELD_POSITION 0x0f
  180. #define JOB_NOTIFY_FIELD_SUBMITTED 0x10
  181. #define JOB_NOTIFY_FIELD_START_TIME 0x11
  182. #define JOB_NOTIFY_FIELD_UNTIL_TIME 0x12
  183. #define JOB_NOTIFY_FIELD_TIME 0x13
  184. #define JOB_NOTIFY_FIELD_TOTAL_PAGES 0x14
  185. #define JOB_NOTIFY_FIELD_PAGES_PRINTED 0x15
  186. #define JOB_NOTIFY_FIELD_TOTAL_BYTES 0x16
  187. #define JOB_NOTIFY_FIELD_BYTES_PRINTED 0x17
  188. #define PRINTER_NOTIFY_OPTIONS_REFRESH 1
  189. #define PRINTER_NOTIFY_INFO_DISCARDED 1
  190. #define PRINTER_CHANGE_ADD_PRINTER 0x00000001
  191. #define PRINTER_CHANGE_SET_PRINTER 0x00000002
  192. #define PRINTER_CHANGE_DELETE_PRINTER 0x00000004
  193. #define PRINTER_CHANGE_FAILED_CONNECTION_PRINTER 0x00000008
  194. #define PRINTER_CHANGE_PRINTER 0x000000ff
  195. #define PRINTER_CHANGE_ADD_JOB 0x00000100
  196. #define PRINTER_CHANGE_SET_JOB 0x00000200
  197. #define PRINTER_CHANGE_DELETE_JOB 0x00000400
  198. #define PRINTER_CHANGE_WRITE_JOB 0x00000800
  199. #define PRINTER_CHANGE_JOB 0x0000ff00
  200. #define PRINTER_CHANGE_ADD_FORM 0x00010000
  201. #define PRINTER_CHANGE_SET_FORM 0x00020000
  202. #define PRINTER_CHANGE_DELETE_FORM 0x00040000
  203. #define PRINTER_CHANGE_FORM 0x00070000
  204. #define PRINTER_CHANGE_ADD_PORT 0x00100000
  205. #define PRINTER_CHANGE_CONFIGURE_PORT 0x00200000
  206. #define PRINTER_CHANGE_DELETE_PORT 0x00400000
  207. #define PRINTER_CHANGE_PORT 0x00700000
  208. #define PRINTER_CHANGE_ADD_PRINT_PROCESSOR 0x01000000
  209. #define PRINTER_CHANGE_DELETE_PRINTER_PROCESSOR 0x04000000
  210. #define PRINTER_CHANGE_PRINT_PROCESSOR 0x07000000
  211. #define PRINTER_CHANGE_ADD_PRINTER_DRIVER 0x10000000
  212. #define PRINTER_CHANGE_SET_PRINTER_DRIVER 0x20000000
  213. #define PRINTER_CHANGE_DELETE_PRINTER_DRIVER 0x40000000
  214. #define PRINTER_CHANGE_PRINTER_DRIVER 0x70000000
  215. #define PRINTER_CHANGE_TIMEOUT 0x80000000
  216. #define PRINTER_CHANGE_ALL 0x7777ffff
  217. #define PRINTER_ERROR_INFORMATION 0x80000000
  218. #define PRINTER_ERROR_WARNING 0x40000000
  219. #define PRINTER_ERROR_SEVERE 0x20000000
  220. #define PRINTER_ERROR_OUTODPAPER 0x00000001
  221. #define PRINTER_ERROR_JAM 0x00000002
  222. #define PRINTER_ERROR_OUTOFTONER 0x00000004
  223. /* TYPES */
  224. typedef struct _PRINTER_DEFAULTSA {
  225. LPSTR pDatatype;
  226. LPDEVMODEA pDevMode;
  227. ACCESS_MASK DesiredAccess;
  228. } PRINTER_DEFAULTSA, *LPPRINTER_DEFAULTSA;
  229. typedef struct _PRINTER_DEFAULTSW {
  230. LPWSTR pDatatype;
  231. LPDEVMODEW pDevMode;
  232. ACCESS_MASK DesiredAccess;
  233. } PRINTER_DEFAULTSW, *LPPRINTER_DEFAULTSW;
  234. DECL_WINELIB_TYPE_AW(PRINTER_DEFAULTS)
  235. DECL_WINELIB_TYPE_AW(LPPRINTER_DEFAULTS)
  236. typedef struct _DRIVER_INFO_1A {
  237. LPSTR pName;
  238. } DRIVER_INFO_1A, *PDRIVER_INFO_1A, *LPDRIVER_INFO_1A;
  239. typedef struct _DRIVER_INFO_1W {
  240. LPWSTR pName;
  241. } DRIVER_INFO_1W, *PDRIVER_INFO_1W, *LPDRIVER_INFO_1W;
  242. DECL_WINELIB_TYPE_AW(DRIVER_INFO_1)
  243. DECL_WINELIB_TYPE_AW(PDRIVER_INFO_1)
  244. DECL_WINELIB_TYPE_AW(LPDRIVER_INFO_1)
  245. typedef struct _DRIVER_INFO_2A {
  246. DWORD cVersion;
  247. LPSTR pName;
  248. LPSTR pEnvironment;
  249. LPSTR pDriverPath;
  250. LPSTR pDataFile;
  251. LPSTR pConfigFile;
  252. } DRIVER_INFO_2A, *PDRIVER_INFO_2A, *LPDRIVER_INFO_2A;
  253. typedef struct _DRIVER_INFO_2W {
  254. DWORD cVersion;
  255. LPWSTR pName;
  256. LPWSTR pEnvironment;
  257. LPWSTR pDriverPath;
  258. LPWSTR pDataFile;
  259. LPWSTR pConfigFile;
  260. } DRIVER_INFO_2W, *PDRIVER_INFO_2W, *LPDRIVER_INFO_2W;
  261. DECL_WINELIB_TYPE_AW(DRIVER_INFO_2)
  262. DECL_WINELIB_TYPE_AW(PDRIVER_INFO_2)
  263. DECL_WINELIB_TYPE_AW(LPDRIVER_INFO_2)
  264. typedef struct _DRIVER_INFO_3A {
  265. DWORD cVersion;
  266. LPSTR pName;
  267. LPSTR pEnvironment;
  268. LPSTR pDriverPath;
  269. LPSTR pDataFile;
  270. LPSTR pConfigFile;
  271. LPSTR pHelpFile;
  272. LPSTR pDependentFiles;
  273. LPSTR pMonitorName;
  274. LPSTR pDefaultDataType;
  275. } DRIVER_INFO_3A, *PDRIVER_INFO_3A, *LPDRIVER_INFO_3A;
  276. typedef struct _DRIVER_INFO_3W {
  277. DWORD cVersion;
  278. LPWSTR pName;
  279. LPWSTR pEnvironment;
  280. LPWSTR pDriverPath;
  281. LPWSTR pDataFile;
  282. LPWSTR pConfigFile;
  283. LPWSTR pHelpFile;
  284. LPWSTR pDependentFiles;
  285. LPWSTR pMonitorName;
  286. LPWSTR pDefaultDataType;
  287. } DRIVER_INFO_3W, *PDRIVER_INFO_3W, *LPDRIVER_INFO_3W;
  288. DECL_WINELIB_TYPE_AW(DRIVER_INFO_3)
  289. DECL_WINELIB_TYPE_AW(PDRIVER_INFO_3)
  290. DECL_WINELIB_TYPE_AW(LPDRIVER_INFO_3)
  291. typedef struct _PRINTER_INFO_1A {
  292. DWORD Flags;
  293. LPSTR pDescription;
  294. LPSTR pName;
  295. LPSTR pComment;
  296. } PRINTER_INFO_1A, *PPRINTER_INFO_1A, *LPPRINTER_INFO_1A;
  297. typedef struct _PRINTER_INFO_1W {
  298. DWORD Flags;
  299. LPWSTR pDescription;
  300. LPWSTR pName;
  301. LPWSTR pComment;
  302. } PRINTER_INFO_1W, *PPRINTER_INFO_1W, *LPPRINTER_INFO_1W;
  303. DECL_WINELIB_TYPE_AW(PRINTER_INFO_1)
  304. DECL_WINELIB_TYPE_AW(PPRINTER_INFO_1)
  305. DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_1)
  306. /* FIXME: winspool.h declares some structure members with the name Status.
  307. * unfortunately <X11/ICE/ICElib.h> #defines Status to the type 'int'
  308. * therefore the following hack */
  309. #ifndef Status
  310. typedef struct _PRINTER_INFO_2A {
  311. LPSTR pServerName;
  312. LPSTR pPrinterName;
  313. LPSTR pShareName;
  314. LPSTR pPortName;
  315. LPSTR pDriverName;
  316. LPSTR pComment;
  317. LPSTR pLocation;
  318. LPDEVMODEA pDevMode;
  319. LPSTR pSepFile;
  320. LPSTR pPrintProcessor;
  321. LPSTR pDatatype;
  322. LPSTR pParameters;
  323. PSECURITY_DESCRIPTOR pSecurityDescriptor;
  324. DWORD Attributes;
  325. DWORD Priority;
  326. DWORD DefaultPriority;
  327. DWORD StartTime;
  328. DWORD UntilTime;
  329. DWORD Status;
  330. DWORD cJobs;
  331. DWORD AveragePPM;
  332. } PRINTER_INFO_2A, *PPRINTER_INFO_2A, *LPPRINTER_INFO_2A;
  333. typedef struct _PRINTER_INFO_2W {
  334. LPWSTR pServerName;
  335. LPWSTR pPrinterName;
  336. LPWSTR pShareName;
  337. LPWSTR pPortName;
  338. LPWSTR pDriverName;
  339. LPWSTR pComment;
  340. LPWSTR pLocation;
  341. LPDEVMODEW pDevMode;
  342. LPWSTR pSepFile;
  343. LPWSTR pPrintProcessor;
  344. LPWSTR pDatatype;
  345. LPWSTR pParameters;
  346. PSECURITY_DESCRIPTOR pSecurityDescriptor;
  347. DWORD Attributes;
  348. DWORD Priority;
  349. DWORD DefaultPriority;
  350. DWORD StartTime;
  351. DWORD UntilTime;
  352. DWORD Status;
  353. DWORD cJobs;
  354. DWORD AveragePPM;
  355. } PRINTER_INFO_2W, *PPRINTER_INFO_2W, *LPPRINTER_INFO_2W;
  356. DECL_WINELIB_TYPE_AW(PRINTER_INFO_2)
  357. DECL_WINELIB_TYPE_AW(PPRINTER_INFO_2)
  358. DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_2)
  359. typedef struct _PRINTER_INFO_3 {
  360. PSECURITY_DESCRIPTOR pSecurityDescriptor;
  361. } PRINTER_INFO_3, *PPRINTER_INFO_3, *LPPRINTER_INFO_3;
  362. typedef struct _PRINTER_INFO_4A {
  363. LPSTR pPrinterName;
  364. LPSTR pServerName;
  365. DWORD Attributes;
  366. } PRINTER_INFO_4A, *PPRINTER_INFO_4A, *LPPRINTER_INFO_4A;
  367. typedef struct _PRINTER_INFO_4W {
  368. LPWSTR pPrinterName;
  369. LPWSTR pServerName;
  370. DWORD Attributes;
  371. } PRINTER_INFO_4W, *PPRINTER_INFO_4W, *LPPRINTER_INFO_4W;
  372. DECL_WINELIB_TYPE_AW(PRINTER_INFO_4)
  373. DECL_WINELIB_TYPE_AW(PPRINTER_INFO_4)
  374. DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_4)
  375. typedef struct _PRINTER_INFO_5A {
  376. LPSTR pPrinterName;
  377. LPSTR pPortName;
  378. DWORD Attributes;
  379. DWORD DeviceNotSelectedTimeout;
  380. DWORD TransmissionRetryTimeout;
  381. } PRINTER_INFO_5A, *PPRINTER_INFO_5A, *LPPRINTER_INFO_5A;
  382. typedef struct _PRINTER_INFO_5W {
  383. LPWSTR pPrinterName;
  384. LPWSTR pPortName;
  385. DWORD Attributes;
  386. DWORD DeviceNotSelectedTimeout;
  387. DWORD TransmissionRetryTimeout;
  388. } PRINTER_INFO_5W, *PPRINTER_INFO_5W, *LPPRINTER_INFO_5W;
  389. DECL_WINELIB_TYPE_AW(PRINTER_INFO_5)
  390. DECL_WINELIB_TYPE_AW(PPRINTER_INFO_5)
  391. DECL_WINELIB_TYPE_AW(LPPRINTER_INFO_5)
  392. typedef struct _PRINTER_INFO_6 {
  393. DWORD dwStatus;
  394. } PRINTER_INFO_6, *PPRINTER_INFO_6, *LPPRINTER_INFO_6;
  395. typedef struct _JOB_INFO_1A {
  396. DWORD JobId;
  397. LPSTR pPrinterName;
  398. LPSTR pMachineName;
  399. LPSTR pUserName;
  400. LPSTR pDocument;
  401. LPSTR pDatatype;
  402. LPSTR pStatus;
  403. DWORD Status;
  404. DWORD Priority;
  405. DWORD Position;
  406. DWORD TotalPages;
  407. DWORD PagesPrinted;
  408. SYSTEMTIME Submitted;
  409. } JOB_INFO_1A, *PJOB_INFO_1A, *LPJOB_INFO_1A;
  410. typedef struct _JOB_INFO_1W {
  411. DWORD JobId;
  412. LPWSTR pPrinterName;
  413. LPWSTR pMachineName;
  414. LPWSTR pUserName;
  415. LPWSTR pDocument;
  416. LPWSTR pDatatype;
  417. LPWSTR pStatus;
  418. DWORD Status;
  419. DWORD Priority;
  420. DWORD Position;
  421. DWORD TotalPages;
  422. DWORD PagesPrinted;
  423. SYSTEMTIME Submitted;
  424. } JOB_INFO_1W, *PJOB_INFO_1W, *LPJOB_INFO_1W;
  425. DECL_WINELIB_TYPE_AW(JOB_INFO_1)
  426. DECL_WINELIB_TYPE_AW(PJOB_INFO_1)
  427. DECL_WINELIB_TYPE_AW(LPJOB_INFO_1)
  428. typedef struct _JOB_INFO_2A {
  429. DWORD JobId;
  430. LPSTR pPrinterName;
  431. LPSTR pMachineName;
  432. LPSTR pUserName;
  433. LPSTR pDocument;
  434. LPSTR pNotifyName;
  435. LPSTR pDatatype;
  436. LPSTR pPrintProcessor;
  437. LPSTR pParameters;
  438. LPSTR pDriverName;
  439. LPDEVMODEA pDevMode;
  440. LPSTR pStatus;
  441. PSECURITY_DESCRIPTOR pSecurityDescriptor;
  442. DWORD Status;
  443. DWORD Priority;
  444. DWORD Position;
  445. DWORD StartTime;
  446. DWORD UntilTime;
  447. DWORD TotalPages;
  448. DWORD Size;
  449. SYSTEMTIME Submitted;
  450. DWORD Time;
  451. DWORD PagesPrinted;
  452. } JOB_INFO_2A, *PJOB_INFO_2A, *LPJOB_INFO_2A;
  453. typedef struct _JOB_INFO_2W {
  454. DWORD JobId;
  455. LPWSTR pPrinterName;
  456. LPWSTR pMachineName;
  457. LPWSTR pUserName;
  458. LPWSTR pDocument;
  459. LPWSTR pNotifyName;
  460. LPWSTR pDatatype;
  461. LPWSTR pPrintProcessor;
  462. LPWSTR pParameters;
  463. LPWSTR pDriverName;
  464. LPDEVMODEW pDevMode;
  465. LPWSTR pStatus;
  466. PSECURITY_DESCRIPTOR pSecurityDescriptor;
  467. DWORD Status;
  468. DWORD Priority;
  469. DWORD Position;
  470. DWORD StartTime;
  471. DWORD UntilTime;
  472. DWORD TotalPages;
  473. DWORD Size;
  474. SYSTEMTIME Submitted;
  475. DWORD Time;
  476. DWORD PagesPrinted;
  477. } JOB_INFO_2W, *PJOB_INFO_2W, *LPJOB_INFO_2W;
  478. DECL_WINELIB_TYPE_AW(JOB_INFO_2)
  479. DECL_WINELIB_TYPE_AW(PJOB_INFO_2)
  480. DECL_WINELIB_TYPE_AW(LPJOB_INFO_2)
  481. typedef struct _JOB_INFO_3 {
  482. DWORD JobId;
  483. DWORD NextJobId;
  484. DWORD Reserved;
  485. } JOB_INFO_3, *PJOB_INFO_3, *LPJOB_INFO_3;
  486. typedef struct _ADDJOB_INFO_1A {
  487. LPSTR Path;
  488. DWORD JobId;
  489. } ADDJOB_INFO_1A, *PADDJOB_INFO_1A, *LPADDJOB_INFO_1A;
  490. typedef struct _ADDJOB_INFO_1W {
  491. LPWSTR Path;
  492. DWORD JobId;
  493. } ADDJOB_INFO_1W, *PADDJOB_INFO_1W, *LPADDJOB_INFO_1W;
  494. DECL_WINELIB_TYPE_AW(ADDJOB_INFO_1)
  495. DECL_WINELIB_TYPE_AW(PADDJOB_INFO_1)
  496. DECL_WINELIB_TYPE_AW(LPADDJOB_INFO_1)
  497. typedef struct _DOC_INFO_1A {
  498. LPSTR pDocName;
  499. LPSTR pOutputFile;
  500. LPSTR pDatatype;
  501. } DOC_INFO_1A, *PDOC_INFO_1A, *LPDOC_INFO_1A;
  502. typedef struct _DOC_INFO_1W {
  503. LPWSTR pDocName;
  504. LPWSTR pOutputFile;
  505. LPWSTR pDatatype;
  506. } DOC_INFO_1W, *PDOC_INFO_1W, *LPDOC_INFO_1W;
  507. DECL_WINELIB_TYPE_AW(DOC_INFO_1)
  508. DECL_WINELIB_TYPE_AW(PDOC_INFO_1)
  509. DECL_WINELIB_TYPE_AW(LPDOC_INFO_1)
  510. typedef struct _DOC_INFO_2A {
  511. LPSTR pDocName;
  512. LPSTR pOutputFile;
  513. LPSTR pDatatype;
  514. DWORD dwMode;
  515. DWORD JobId;
  516. } DOC_INFO_2A, *PDOC_INFO_2A, *LPDOC_INFO_2A;
  517. typedef struct _DOC_INFO_2W {
  518. LPWSTR pDocName;
  519. LPWSTR pOutputFile;
  520. LPWSTR pDatatype;
  521. DWORD dwMode;
  522. DWORD JobId;
  523. } DOC_INFO_2W, *PDOC_INFO_2W, *LPDOC_INFO_2W;
  524. DECL_WINELIB_TYPE_AW(DOC_INFO_2)
  525. DECL_WINELIB_TYPE_AW(PDOC_INFO_2)
  526. DECL_WINELIB_TYPE_AW(LPDOC_INFO_2)
  527. typedef struct _FORM_INFO_1A {
  528. DWORD Flags;
  529. LPSTR pName;
  530. SIZEL Size;
  531. RECTL ImageableArea;
  532. } FORM_INFO_1A, *PFORM_INFO_1A, *LPFORM_INFO_1A;
  533. typedef struct _FORM_INFO_1W {
  534. DWORD Flags;
  535. LPWSTR pName;
  536. SIZEL Size;
  537. RECTL ImageableArea;
  538. } FORM_INFO_1W, *PFORM_INFO_1W, *LPFORM_INFO_1W;
  539. DECL_WINELIB_TYPE_AW(FORM_INFO_1)
  540. DECL_WINELIB_TYPE_AW(PFORM_INFO_1)
  541. DECL_WINELIB_TYPE_AW(LPFORM_INFO_1)
  542. typedef struct _PRINTPROCESSOR_INFO_1A {
  543. LPSTR pName;
  544. } PRINTPROCESSOR_INFO_1A, *PPRINTPROCESSOR_INFO_1A,
  545. *LPPRINTPROCESSOR_INFO_1A;
  546. typedef struct _PRINTPROCESSOR_INFO_1W {
  547. LPWSTR pName;
  548. } PRINTPROCESSOR_INFO_1W, *PPRINTPROCESSOR_INFO_1W,
  549. *LPPRINTPROCESSOR_INFO_1W;
  550. DECL_WINELIB_TYPE_AW(PRINTPROCESSOR_INFO_1)
  551. DECL_WINELIB_TYPE_AW(PPRINTPROCESSOR_INFO_1)
  552. DECL_WINELIB_TYPE_AW(LPPRINTPROCESSOR_INFO_1)
  553. typedef struct _PORT_INFO_1A {
  554. LPSTR pName;
  555. } PORT_INFO_1A, *PPORT_INFO_1A, *LPPORT_INFO_1A;
  556. typedef struct _PORT_INFO_1W {
  557. LPWSTR pName;
  558. } PORT_INFO_1W, *PPORT_INFO_1W, *LPPORT_INFO_1W;
  559. DECL_WINELIB_TYPE_AW(PORT_INFO_1)
  560. DECL_WINELIB_TYPE_AW(PPORT_INFO_1)
  561. DECL_WINELIB_TYPE_AW(LPPORT_INFO_1)
  562. typedef struct _PORT_INFO_2A {
  563. LPSTR pPortName;
  564. LPSTR pMonitorName;
  565. LPSTR pDescription;
  566. DWORD fPortType;
  567. DWORD Reserved;
  568. } PORT_INFO_2A, *PPORT_INFO_2A, *LPPORT_INFO_2A;
  569. typedef struct _PORT_INFO_2W {
  570. LPWSTR pPortName;
  571. LPWSTR pMonitorName;
  572. LPWSTR pDescription;
  573. DWORD fPortType;
  574. DWORD Reserved;
  575. } PORT_INFO_2W, *PPORT_INFO_2W, *LPPORT_INFO_2W;
  576. DECL_WINELIB_TYPE_AW(PORT_INFO_2)
  577. DECL_WINELIB_TYPE_AW(PPORT_INFO_2)
  578. DECL_WINELIB_TYPE_AW(LPPORT_INFO_2)
  579. typedef struct _PORT_INFO_3A {
  580. DWORD dwStatus;
  581. LPSTR pszStatus;
  582. DWORD dwSeverity;
  583. } PORT_INFO_3A, *PPORT_INFO_3A, *LPPORT_INFO_3A;
  584. typedef struct _PORT_INFO_3W {
  585. DWORD dwStatus;
  586. LPWSTR pszStatus;
  587. DWORD dwSeverity;
  588. } PORT_INFO_3W, *PPORT_INFO_3W, *LPPORT_INFO_3W;
  589. DECL_WINELIB_TYPE_AW(PORT_INFO_3)
  590. DECL_WINELIB_TYPE_AW(PPORT_INFO_3)
  591. DECL_WINELIB_TYPE_AW(LPPORT_INFO_3)
  592. typedef struct _MONITOR_INFO_1A {
  593. LPSTR pName;
  594. } MONITOR_INFO_1A, *PMONITOR_INFO_1A, *LPMONITOR_INFO_1A;
  595. typedef struct _MONITOR_INFO_1W {
  596. LPWSTR pName;
  597. } MONITOR_INFO_1W, *PMONITOR_INFO_1W, *LPMONITOR_INFO_1W;
  598. DECL_WINELIB_TYPE_AW(MONITOR_INFO_1)
  599. DECL_WINELIB_TYPE_AW(PMONITOR_INFO_1)
  600. DECL_WINELIB_TYPE_AW(LPMONITOR_INFO_1)
  601. #endif /* Status */
  602. typedef struct _MONITOR_INFO_2A {
  603. LPSTR pName;
  604. LPSTR pEnvironment;
  605. LPSTR pDLLName;
  606. } MONITOR_INFO_2A, *PMONITOR_INFO_2A, *LPMONITOR_INFO_2A;
  607. typedef struct _MONITOR_INFO_2W {
  608. LPWSTR pName;
  609. LPWSTR pEnvironment;
  610. LPWSTR pDLLName;
  611. } MONITOR_INFO_2W, *PMONITOR_INFO_2W, *LPMONITOR_INFO_2W;
  612. DECL_WINELIB_TYPE_AW(MONITOR_INFO_2)
  613. DECL_WINELIB_TYPE_AW(PMONITOR_INFO_2)
  614. DECL_WINELIB_TYPE_AW(LPMONITOR_INFO_2)
  615. typedef struct _DATATYPES_INFO_1A {
  616. LPSTR pName;
  617. } DATATYPES_INFO_1A, *PDATATYPES_INFO_1A, *LPDATATYPES_INFO_1A;
  618. typedef struct _DATATYPES_INFO_1W {
  619. LPWSTR pName;
  620. } DATATYPES_INFO_1W, *PDATATYPES_INFO_1W, *LPDATATYPES_INFO_1W;
  621. DECL_WINELIB_TYPE_AW(DATATYPES_INFO_1)
  622. DECL_WINELIB_TYPE_AW(PDATATYPES_INFO_1)
  623. DECL_WINELIB_TYPE_AW(LPDATATYPES_INFO_1)
  624. typedef struct _PRINTER_NOTIFY_OPTIONS_TYPE {
  625. WORD Type;
  626. WORD Reserved0;
  627. DWORD Reserved1;
  628. DWORD Reserved2;
  629. DWORD Count;
  630. PWORD pFields;
  631. } PRINTER_NOTIFY_OPTIONS_TYPE, *PPRINTER_NOTIFY_OPTIONS_TYPE,
  632. *LPPRINTER_NOTIFY_OPTIONS_TYPE;
  633. typedef struct _PRINTER_NOTIFY_OPTIONS {
  634. DWORD Version;
  635. DWORD Flags;
  636. DWORD Count;
  637. PPRINTER_NOTIFY_OPTIONS_TYPE pTypes;
  638. } PRINTER_NOTIFY_OPTIONS, *PPRINTER_NOTIFY_OPTIONS, *LPPRINTER_NOTIFY_OPTIONS;
  639. typedef struct _PRINTER_NOTIFY_INFO_DATA {
  640. WORD Type;
  641. WORD Field;
  642. DWORD Reserved;
  643. DWORD Id;
  644. union {
  645. DWORD adwData[2];
  646. struct {
  647. DWORD cbBuf;
  648. LPVOID pBuf;
  649. } Data;
  650. } NotifyData;
  651. } PRINTER_NOTIFY_INFO_DATA, *PPRINTER_NOTIFY_INFO_DATA,
  652. *LPPRINTER_NOTIFY_INFO_DATA;
  653. typedef struct _PRINTER_NOTIFY_INFO {
  654. DWORD Version;
  655. DWORD Flags;
  656. DWORD Count;
  657. PRINTER_NOTIFY_INFO_DATA aData[1];
  658. } PRINTER_NOTIFY_INFO, *PPRINTER_NOTIFY_INFO, *LPPRINTER_NOTIFY_INFO;
  659. typedef struct _PROVIDOR_INFO_1A {
  660. LPSTR pName;
  661. LPSTR pEnvironment;
  662. LPSTR pDLLName;
  663. } PROVIDOR_INFO_1A, *PPROVIDOR_INFO_1A, *LPPROVIDOR_INFO_1A;
  664. typedef struct _PROVIDOR_INFO_1W {
  665. LPWSTR pName;
  666. LPWSTR pEnvironment;
  667. LPWSTR pDLLName;
  668. } PROVIDOR_INFO_1W, *PPROVIDOR_INFO_1W, *LPPROVIDOR_INFO_1W;
  669. DECL_WINELIB_TYPE_AW(PROVIDOR_INFO_1)
  670. DECL_WINELIB_TYPE_AW(PPROVIDOR_INFO_1)
  671. DECL_WINELIB_TYPE_AW(LPPROVIDOR_INFO_1)
  672. typedef struct _PRINTER_ENUM_VALUESA {
  673. LPSTR pValueName;
  674. DWORD cbValueName;
  675. DWORD dwType;
  676. LPBYTE pData;
  677. DWORD cbData;
  678. } PRINTER_ENUM_VALUESA, *PPRINTER_ENUM_VALUESA;
  679. typedef struct _PRINTER_ENUM_VALUESW {
  680. LPWSTR pValueName;
  681. DWORD cbValueName;
  682. DWORD dwType;
  683. LPBYTE pData;
  684. DWORD cbData;
  685. } PRINTER_ENUM_VALUESW, *PPRINTER_ENUM_VALUESW;
  686. DECL_WINELIB_TYPE_AW(PRINTER_ENUM_VALUES)
  687. DECL_WINELIB_TYPE_AW(PPRINTER_ENUM_VALUES)
  688. /* DECLARATIONS */
  689. INT WINAPI DeviceCapabilitiesA(LPCSTR pDevice,LPCSTR pPort,WORD fwCapability,
  690. LPSTR pOutput, LPDEVMODEA pDevMode);
  691. INT WINAPI DeviceCapabilitiesW(LPCWSTR pDevice, LPCWSTR pPort,
  692. WORD fwCapability, LPWSTR pOutput,
  693. const DEVMODEW *pDevMode);
  694. #define DeviceCapabilities WINELIB_NAME_AW(DeviceCapabilities)
  695. LONG WINAPI DocumentPropertiesA(HWND hWnd,HANDLE hPrinter,
  696. LPSTR pDeviceName, LPDEVMODEA pDevModeOutput,
  697. LPDEVMODEA pDevModeInput,DWORD fMode );
  698. LONG WINAPI DocumentPropertiesW(HWND hWnd, HANDLE hPrinter,
  699. LPWSTR pDeviceName,
  700. LPDEVMODEW pDevModeOutput,
  701. LPDEVMODEW pDevModeInput, DWORD fMode);
  702. #define DocumentProperties WINELIB_NAME_AW(DocumentProperties)
  703. BOOL WINAPI OpenPrinterA(LPSTR lpPrinterName,HANDLE *phPrinter,
  704. LPPRINTER_DEFAULTSA pDefault);
  705. BOOL WINAPI OpenPrinterW(LPWSTR lpPrinterName,HANDLE *phPrinter,
  706. LPPRINTER_DEFAULTSW pDefault);
  707. #define OpenPrinter WINELIB_NAME_AW(OpenPrinter)
  708. BOOL WINAPI ResetPrinterA(HANDLE hPrinter, LPPRINTER_DEFAULTSA pDefault);
  709. BOOL WINAPI ResetPrinterW(HANDLE hPrinter, LPPRINTER_DEFAULTSW pDefault);
  710. #define ResetPrinter WINELIB_NAME_AW(ResetPrinter)
  711. BOOL WINAPI ClosePrinter (HANDLE phPrinter);
  712. BOOL WINAPI EnumJobsA(HANDLE hPrinter, DWORD FirstJob, DWORD NoJobs,
  713. DWORD Level, LPBYTE pJob, DWORD cbBuf, LPDWORD pcbNeeded,
  714. LPDWORD pcReturned);
  715. BOOL WINAPI EnumJobsW(HANDLE hPrinter, DWORD FirstJob, DWORD NoJobs,
  716. DWORD Level, LPBYTE pJob, DWORD cbBuf, LPDWORD pcbNeeded,
  717. LPDWORD pcReturned);
  718. #define EnumJobs WINELIB_NAME_AW(EnumJobs)
  719. BOOL WINAPI EnumPrintersA(DWORD dwType, LPSTR lpszName,
  720. DWORD dwLevel, LPBYTE lpbPrinters,
  721. DWORD cbBuf, LPDWORD lpdwNeeded,
  722. LPDWORD lpdwReturned);
  723. BOOL WINAPI EnumPrintersW(DWORD dwType, LPWSTR lpszName,
  724. DWORD dwLevel, LPBYTE lpbPrinters,
  725. DWORD cbBuf, LPDWORD lpdwNeeded,
  726. LPDWORD lpdwReturned);
  727. #define EnumPrinters WINELIB_NAME_AW(EnumPrinters)
  728. BOOL WINAPI PrinterProperties(HWND hWnd, HANDLE hPrinter);
  729. BOOL WINAPI GetPrinterDriverDirectoryA(LPSTR,LPSTR,DWORD,LPBYTE,DWORD,LPDWORD);
  730. BOOL WINAPI GetPrinterDriverDirectoryW(LPWSTR,LPWSTR,DWORD,LPBYTE,DWORD,LPDWORD);
  731. #define GetPrinterDriverDirectory WINELIB_NAME_AW(GetPrinterDriverDirectory)
  732. BOOL WINAPI GetPrinterDriverA(HANDLE hPrinter, LPSTR pEnvironment,
  733. DWORD Level, LPBYTE pDriverInfo,
  734. DWORD cbBuf, LPDWORD pcbNeeded);
  735. BOOL WINAPI GetPrinterDriverW(HANDLE hPrinter, LPWSTR pEnvironment,
  736. DWORD Level, LPBYTE pDriverInfo,
  737. DWORD cbBuf, LPDWORD pcbNeeded);
  738. #define GetPrinterDriver WINELIB_NAME_AW(GetPrinterDriver)
  739. BOOL WINAPI SetJobA(HANDLE hPrinter, DWORD JobID, DWORD Level, LPBYTE pJob,
  740. DWORD Command);
  741. BOOL WINAPI SetJobW(HANDLE hPrinter, DWORD JobID, DWORD Level, LPBYTE pJob,
  742. DWORD Command);
  743. #define SetJob WINELIB_NAME_AW(SetJob)
  744. BOOL WINAPI GetJobA(HANDLE hPrinter, DWORD JobID, DWORD Level, LPBYTE pJob,
  745. DWORD cbBuf, LPDWORD pcbNeeded);
  746. BOOL WINAPI GetJobW(HANDLE hPrinter, DWORD JobID, DWORD Level, LPBYTE pJob,
  747. DWORD cbBuf, LPDWORD pcbNeeded);
  748. #define GetJob WINELIB_NAME_AW(GetJob)
  749. HANDLE WINAPI AddPrinterA(LPSTR pName, DWORD Level, LPBYTE pPrinter);
  750. HANDLE WINAPI AddPrinterW(LPWSTR pName, DWORD Level, LPBYTE pPrinter);
  751. #define AddPrinter WINELIB_NAME_AW(AddPrinter)
  752. BOOL WINAPI DeletePrinter(HANDLE hPrinter);
  753. BOOL WINAPI SetPrinterA(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter,
  754. DWORD Command);
  755. BOOL WINAPI SetPrinterW(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter,
  756. DWORD Command);
  757. #define SetPrinter WINELIB_NAME_AW(SetPrinter)
  758. BOOL WINAPI GetPrinterA(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter,
  759. DWORD cbBuf, LPDWORD pcbNeeded);
  760. BOOL WINAPI GetPrinterW(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter,
  761. DWORD cbBuf, LPDWORD pcbNeeded);
  762. #define GetPrinter WINELIB_NAME_AW(GetPrinter)
  763. BOOL WINAPI AddPrinterDriverA(LPSTR pName, DWORD Level, LPBYTE pDriverInfo);
  764. BOOL WINAPI AddPrinterDriverW(LPWSTR pName, DWORD Level, LPBYTE pDriverInfo);
  765. #define AddPrinterDriver WINELIB_NAME_AW(AddPrinterDriver)
  766. BOOL WINAPI EnumPrinterDriversA(LPSTR pName, LPSTR pEnvironment, DWORD Level,
  767. LPBYTE pDriverInfo, DWORD cbBuf,
  768. LPDWORD pcbNeeded, LPDWORD pcbReturned);
  769. BOOL WINAPI EnumPrinterDriversW(LPWSTR pName, LPWSTR pEnvironment, DWORD Level,
  770. LPBYTE pDriverInfo, DWORD cbBuf,
  771. LPDWORD pcbNeeded, LPDWORD pcbReturned);
  772. #define EnumPrinterDrivers WINELIB_NAME_AW(EnumPrinterDrivers)
  773. BOOL WINAPI GetDefaultPrinterA(LPSTR pName, LPDWORD pcbNameSize);
  774. BOOL WINAPI GetDefaultPrinterW(LPWSTR pName, LPDWORD pcbNameSize);
  775. #define GetDefaultPrinter WINELIB_NAME_AW(GetDefaultPrinter)
  776. BOOL WINAPI DeletePrinterDriverA(LPSTR pName, LPSTR pEnvironment,
  777. LPSTR pDriverName);
  778. BOOL WINAPI DeletePrinterDriverW(LPWSTR pName, LPWSTR pEnvironment,
  779. LPWSTR pDriverName);
  780. #define DeletePrinterDriver WINELIB_NAME_AW(DeletePrinterDriver)
  781. BOOL WINAPI AddPrintProcessorA(LPSTR pName, LPSTR pEnvironment,
  782. LPSTR pPathName, LPSTR pPrintProcessorName);
  783. BOOL WINAPI AddPrintProcessorW(LPWSTR pName, LPWSTR pEnvironment,
  784. LPWSTR pPathName, LPWSTR pPrintProcessorName);
  785. #define AddPrintProcessor WINELIB_NAME_AW(AddPrintProcessor)
  786. BOOL WINAPI EnumPrintProcessorsA(LPSTR pName, LPSTR pEnvironment,
  787. DWORD Level, LPBYTE pPrintProcessorInfo,
  788. DWORD cbBuf, LPDWORD pcbNeeded,
  789. LPDWORD pcbReturned);
  790. BOOL WINAPI EnumPrintProcessorsW(LPWSTR pName, LPWSTR pEnvironment,
  791. DWORD Level, LPBYTE pPrintProcessorInfo,
  792. DWORD cbBuf, LPDWORD pcbNeeded,
  793. LPDWORD pcbReturned);
  794. #define EnumPrintProcessors WINELIB_NAME_AW(EnumPrintProcessors)
  795. BOOL WINAPI GetPrintProcessorDirectoryA(LPSTR pName, LPSTR pEnvironment,
  796. DWORD Level,
  797. LPBYTE pPrintProcessorInfo,
  798. DWORD cbBuf, LPDWORD pcbNeeded);
  799. BOOL WINAPI GetPrintProcessorDirectoryW(LPWSTR pName, LPWSTR pEnvironment,
  800. DWORD Level,
  801. LPBYTE pPrintProcessorInfo,
  802. DWORD cbBuf, LPDWORD pcbNeeded);
  803. #define GetPrintProcessorDirectory WINELIB_NAME_AW(GetPrintProcessorDirectory)
  804. BOOL WINAPI EnumPrintProcessorDatatypesA(LPSTR pName,
  805. LPSTR pPrintProcessorName,
  806. DWORD Level, LPBYTE pDatatypes,
  807. DWORD cbBuf, LPDWORD pcbNeeded,
  808. LPDWORD pcbReturned);
  809. BOOL WINAPI EnumPrintProcessorDatatypesW(LPWSTR pName,
  810. LPWSTR pPrintProcessorName,
  811. DWORD Level, LPBYTE pDatatypes,
  812. DWORD cbBuf, LPDWORD pcbNeeded,
  813. LPDWORD pcbReturned);
  814. #define EnumPrintProcessorDatatypes WINELIB_NAME_AW(EnumPrintProcessorDatatypes)
  815. BOOL WINAPI DeletePrintProcessorA(LPSTR pName, LPSTR pEnvironment,
  816. LPSTR pPrintProcessorName);
  817. BOOL WINAPI DeletePrintProcessorW(LPWSTR pName, LPWSTR pEnvironment,
  818. LPWSTR pPrintProcessorName);
  819. #define DeletePrintProcessor WINELIB_NAME_AW(DeletePrintProcessor)
  820. DWORD WINAPI StartDocPrinterA(HANDLE hPrinter, DWORD Level, LPBYTE pDocInfo);
  821. DWORD WINAPI StartDocPrinterW(HANDLE hPrinter, DWORD Level, LPBYTE pDocInfo);
  822. #define StartDocPrinter WINELIB_NAME_AW(StartDocPrinter)
  823. BOOL WINAPI StartPagePrinter(HANDLE hPrinter);
  824. BOOL WINAPI WritePrinter(HANDLE hPrinter, LPVOID pBuf, DWORD cbBuf,
  825. LPDWORD pcWritten);
  826. BOOL WINAPI EndPagePrinter(HANDLE hPrinter);
  827. BOOL WINAPI AbortPrinter(HANDLE hPrinter);
  828. BOOL WINAPI ReadPrinter(HANDLE hPrinter, LPVOID pBuf, DWORD cbBuf,
  829. LPDWORD pNoBytesRead);
  830. BOOL WINAPI EndDocPrinter(HANDLE hPrinter);
  831. BOOL WINAPI AddJobA(HANDLE hPrinter, DWORD Level, LPBYTE pData, DWORD cbBuf,
  832. LPDWORD pcbNeeded);
  833. BOOL WINAPI AddJobW(HANDLE hPrinter, DWORD Level, LPBYTE pData, DWORD cbBuf,
  834. LPDWORD pcbNeeded);
  835. #define AddJob WINELIB_NAME_AW(AddJob)
  836. BOOL WINAPI ScheduleJob(HANDLE hPrinter, DWORD JobID);
  837. LONG WINAPI AdvancedDocumentPropertiesA(HWND hWnd, HANDLE hPrinter,
  838. LPSTR pDeviceName,
  839. PDEVMODEA pDevModeOutput,
  840. PDEVMODEA pDevModeInput);
  841. LONG WINAPI AdvancedDocumentPropertiesW(HWND hWnd, HANDLE hPrinter,
  842. LPWSTR pDeviceName,
  843. PDEVMODEW pDevModeOutput,
  844. PDEVMODEW pDevModeInput);
  845. #define AdvancedDocumentProperties WINELIB_NAME_AW(AdvancedDocumentProperties)
  846. DWORD WINAPI GetPrinterDataA(HANDLE hPrinter, LPSTR pValueName, LPDWORD pType,
  847. LPBYTE pData, DWORD nSize, LPDWORD pcbNeeded);
  848. DWORD WINAPI GetPrinterDataW(HANDLE hPrinter, LPWSTR pValueName, LPDWORD pType,
  849. LPBYTE pData, DWORD nSize, LPDWORD pcbNeeded);
  850. #define GetPrinterData WINELIB_NAME_AW(GetPrinterData)
  851. DWORD WINAPI GetPrinterDataExA(HANDLE hPrinter, LPCSTR pKeyName,
  852. LPCSTR pValueName, LPDWORD pType,
  853. LPBYTE pData, DWORD nSize, LPDWORD pcbNeeded);
  854. DWORD WINAPI GetPrinterDataExW(HANDLE hPrinter, LPCWSTR pKeyName,
  855. LPCWSTR pValueName, LPDWORD pType,
  856. LPBYTE pData, DWORD nSize, LPDWORD pcbNeeded);
  857. #define GetPrinterDataEx WINELIB_NAME_AW(GetPrinterDataEx)
  858. DWORD WINAPI SetPrinterDataA(HANDLE hPrinter, LPSTR pValueName, DWORD Type,
  859. LPBYTE pData, DWORD cbData);
  860. DWORD WINAPI SetPrinterDataW(HANDLE hPrinter, LPWSTR pValueName, DWORD Type,
  861. LPBYTE pData, DWORD cbData);
  862. #define SetPrinterData WINELIB_NAME_AW(SetPrinterData)
  863. DWORD WINAPI SetPrinterDataExA(HANDLE hPrinter, LPCSTR pKeyName,
  864. LPCSTR pValueName, DWORD Type,
  865. LPBYTE pData, DWORD cbData);
  866. DWORD WINAPI SetPrinterDataExW(HANDLE hPrinter, LPCWSTR pKeyName,
  867. LPCWSTR pValueName, DWORD Type,
  868. LPBYTE pData, DWORD cbData);
  869. #define SetPrinterDataEx WINELIB_NAME_AW(SetPrinterDataEx)
  870. DWORD WINAPI WaitForPrinterChange(HANDLE hPrinter, DWORD Flags);
  871. HANDLE WINAPI FindFirstPrinterChangeNotification(HANDLE hPrinter,
  872. DWORD fdwFlags,
  873. DWORD fdwOptions,
  874. LPVOID pPrinterNotifyOptions);
  875. BOOL WINAPI FindNextPrinterChangeNotification(HANDLE hChange,
  876. PDWORD pdwChange,
  877. LPVOID pvReserved,
  878. LPVOID *ppPrinterNotifyInfo);
  879. BOOL WINAPI FreePrinterNotifyInfo(PPRINTER_NOTIFY_INFO pPrinterNotifyInfo);
  880. BOOL WINAPI FindClosePrinterChangeNotification(HANDLE hChange);
  881. DWORD WINAPI PrinterMessageBoxA(HANDLE hPrinter, DWORD Error, HWND hWnd,
  882. LPSTR pText, LPSTR pCaption, DWORD dwType);
  883. DWORD WINAPI PrinterMessageBoxW(HANDLE hPrinter, DWORD Error, HWND hWnd,
  884. LPWSTR pText, LPWSTR pCaption, DWORD dwType);
  885. #define PrinterMessageBox WINELIB_NAME_AW(PrinterMessageBox)
  886. BOOL WINAPI AddFormA(HANDLE hPrinter, DWORD Level, LPBYTE pForm);
  887. BOOL WINAPI AddFormW(HANDLE hPrinter, DWORD Level, LPBYTE pForm);
  888. #define AddForm WINELIB_NAME_AW(AddForm)
  889. BOOL WINAPI DeleteFormA(HANDLE hPrinter, LPSTR pFormName);
  890. BOOL WINAPI DeleteFormW(HANDLE hPrinter, LPWSTR pFormName);
  891. #define DeleteForm WINELIB_NAME_AW(DeleteForm)
  892. BOOL WINAPI GetFormA(HANDLE hPrinter, LPSTR pFormName, DWORD Level,
  893. LPBYTE pForm, DWORD cbBuf, LPDWORD pcbNeeded);
  894. BOOL WINAPI GetFormW(HANDLE hPrinter, LPWSTR pFormName, DWORD Level,
  895. LPBYTE pForm, DWORD cbBuf, LPDWORD pcbNeeded);
  896. #define GetForm WINELIB_NAME_AW(GetForm)
  897. BOOL WINAPI SetFormA(HANDLE hPrinter, LPSTR pFormName, DWORD Level,
  898. LPBYTE pForm);
  899. BOOL WINAPI SetFormW(HANDLE hPrinter, LPWSTR pFormName, DWORD Level,
  900. LPBYTE pForm);
  901. #define SetForm WINELIB_NAME_AW(SetForm)
  902. BOOL WINAPI EnumFormsA(HANDLE hPrinter, DWORD Level, LPBYTE pForm, DWORD cbBuf,
  903. LPDWORD pcbNeeded, LPDWORD pcReturned);
  904. BOOL WINAPI EnumFormsW(HANDLE hPrinter, DWORD Level, LPBYTE pForm, DWORD cbBuf,
  905. LPDWORD pcbNeeded, LPDWORD pcReturned);
  906. #define EnumForms WINELIB_NAME_AW(EnumForms)
  907. BOOL WINAPI EnumMonitorsA(LPSTR pName, DWORD Level, LPBYTE pMonitors,
  908. DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
  909. BOOL WINAPI EnumMonitorsW(LPWSTR pName, DWORD Level, LPBYTE pMonitors,
  910. DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
  911. #define EnumMonitors WINELIB_NAME_AW(EnumMonitors)
  912. BOOL WINAPI AddMonitorA(LPSTR pName, DWORD Level, LPBYTE pMonitors);
  913. BOOL WINAPI AddMonitorW(LPWSTR pName, DWORD Level, LPBYTE pMonitors);
  914. #define AddMonitor WINELIB_NAME_AW(AddMonitor)
  915. BOOL WINAPI DeleteMonitorA(LPSTR pName, LPSTR pEnvironment,
  916. LPSTR pMonitorName);
  917. BOOL WINAPI DeleteMonitorW(LPWSTR pName, LPWSTR pEnvironment,
  918. LPWSTR pMonitorName);
  919. #define DeleteMonitor WINELIB_NAME_AW(DeleteMonitor)
  920. BOOL WINAPI EnumPortsA(LPSTR pName, DWORD Level, LPBYTE pPorts,
  921. DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
  922. BOOL WINAPI EnumPortsW(LPWSTR pName, DWORD Level, LPBYTE pPorts,
  923. DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
  924. #define EnumPorts WINELIB_NAME_AW(EnumPorts)
  925. BOOL WINAPI AddPortA(LPSTR pName, HWND hWnd, LPSTR pMonitorName);
  926. BOOL WINAPI AddPortW(LPWSTR pName, HWND hWnd, LPWSTR pMonitorName);
  927. #define AddPort WINELIB_NAME_AW(AddPort)
  928. BOOL WINAPI ConfigurePortA(LPSTR pName, HWND hWnd, LPSTR pPortName);
  929. BOOL WINAPI ConfigurePortW(LPWSTR pName, HWND hWnd, LPWSTR pPortName);
  930. #define ConfigurePort WINELIB_NAME_AW(ConfigurePort)
  931. BOOL WINAPI DeletePortA(LPSTR pName, HWND hWnd, LPSTR pPortName);
  932. BOOL WINAPI DeletePortW(LPWSTR pName, HWND hWnd, LPWSTR pPortName);
  933. #define DeletePort WINELIB_NAME_AW(DeletePort)
  934. BOOL WINAPI SetPortA(LPSTR pName, LPSTR pPortName, DWORD dwLevel,
  935. LPBYTE pPortInfo);
  936. BOOL WINAPI SetPortW(LPWSTR pName, LPWSTR pPortName, DWORD dwLevel,
  937. LPBYTE pPortInfo);
  938. #define SetPort WINELIB_NAME_AW(SetPort)
  939. BOOL WINAPI AddPrinterConnectionA(LPSTR pName);
  940. BOOL WINAPI AddPrinterConnectionW(LPWSTR pName);
  941. #define AddPrinterConnection WINELIB_NAME_AW(AddPrinterConnection)
  942. BOOL WINAPI DeletePrinterConnectionA(LPSTR pName);
  943. BOOL WINAPI DeletePrinterConnectionW(LPWSTR pName);
  944. #define DeletePrinterConnection WINELIB_NAME_AW(DeletePrinterConnection)
  945. HANDLE WINAPI ConnectToPrinterDlg(HWND hwnd, DWORD Flags);
  946. BOOL WINAPI AddPrintProvidorA(LPSTR pName, DWORD Level, LPBYTE pProvidorInfo);
  947. BOOL WINAPI AddPrintProvidorW(LPWSTR pName, DWORD Level, LPBYTE pProvidorInfo);
  948. #define AddPrintProvidor WINELIB_NAME_AW(AddPrintProvidor)
  949. BOOL WINAPI DeletePrintProvidorA(LPSTR pName, LPSTR pEnvironment,
  950. LPSTR pPrintProvidorName);
  951. BOOL WINAPI DeletePrintProvidorW(LPWSTR pName, LPWSTR pEnvironment,
  952. LPWSTR pPrintProvidorName);
  953. #define DeletePrintProvidor WINELIB_NAME_AW(DeletePrintProvidor)
  954. DWORD WINAPI EnumPrinterDataExA(HANDLE hPrinter, LPCSTR pKeyName,
  955. LPBYTE pEnumValues, DWORD cbEnumValues,
  956. LPDWORD pcbEnumValues, LPDWORD pnEnumValues);
  957. DWORD WINAPI EnumPrinterDataExW(HANDLE hPrinter, LPCWSTR pKeyName,
  958. LPBYTE pEnumValues, DWORD cbEnumValues,
  959. LPDWORD pcbEnumValues, LPDWORD pnEnumValues);
  960. #define EnumPrinterDataEx WINELIB_NAME_AW(EnumPrinterDataEx)
  961. #ifdef __cplusplus
  962. } /* extern "C" */
  963. #endif
  964. #endif /* __WINE_WINSPOOL_H */