Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

787 lines
21 KiB

  1. /*++
  2. Copyright (c) 1991-1993 Microsoft Corporation
  3. Module Name:
  4. RxPrint.h
  5. Abstract:
  6. This contains prototypes for the RxPrint routines.
  7. Author:
  8. Dave Snipp (DaveSn) 16-Apr-1991
  9. Environment:
  10. Notes:
  11. All of the RxPrint APIs are wide-character APIs, regardless of
  12. whether or not UNICODE is defined. This allows the net/dosprint/dosprint.c
  13. code to use the winspool APIs (which are currently ANSI APIs, despite their
  14. prototypes using LPTSTR in some places).
  15. Revision History:
  16. 22-Apr-1991 JohnRo
  17. Use constants from <lmcons.h>.
  18. 14-May-1991 JohnRo
  19. Change WORD to DWORD in all parameter lists. Similarly, change
  20. PWORD to LPDWORD and PUSHORT to LPDWORD.
  21. 18-May-1991 JohnRo
  22. Changed SPLERR to be defined as NET_API_STATUS.
  23. 22-May-1991 CliffV
  24. Added local definitions of PDLEN and DTLEN since they are no longer
  25. in lmcons.h.
  26. 26-May-1991 JohnRo
  27. Use IN, OUT, OPTIONAL, LPVOID, LPTSTR, etc.
  28. 18-Jun-1991 JohnRo
  29. Deleted RxPrintJobGetId, as it will be an IOCTL rather than a remoted
  30. API.
  31. 26-Jun-1991 CliffV
  32. Used LM2.0 versions of CNLEN, UNLEN, and QNLEN.
  33. 16-Jul-1991 JohnRo
  34. Estimate bytes needed for print APIs.
  35. 16-Jun-1992 JohnRo
  36. RAID 10324: net print vs. UNICODE.
  37. 08-Feb-1993 JohnRo
  38. RAID 10164: Data misalignment error during XsDosPrintQGetInfo().
  39. 07-Apr-1993 JohnRo
  40. RAID 5670: "NET PRINT \\server\share" gives err 124 (bad level) on NT.
  41. --*/
  42. #ifndef _RXPRINT_
  43. #define _RXPRINT_
  44. #include <windef.h> // DWORD, LPVOID, LPTSTR, TCHAR, etc.
  45. #include <lmcons.h> // LM20_CNLEN, IN, NET_API_STATUS, etc.
  46. #define SPLENTRY pascal far
  47. /* length for character arrays in structures (excluding zero terminator) */
  48. #define PDLEN 8 /* Print destination length */
  49. #define DTLEN 9 /* Spool file data type */
  50. // /* e.g. PM_Q_STD,PM_Q_RAW */
  51. #define QP_DATATYPE_SIZE 15 /* returned by SplQpQueryDt */
  52. #define DRIV_DEVICENAME_SIZE 31 /* see DRIVDATA struc */
  53. #define DRIV_NAME_SIZE 8 /* name of device driver */
  54. #define PRINTERNAME_SIZE 32 /* max printer name length */
  55. #define FORMNAME_SIZE 31 /* max form name length */
  56. // #define MAXCOMMENTSZ 48 /* queue comment length */
  57. /**INTERNAL_ONLY**/
  58. /* IOctl for RxPrintJobGetId */
  59. #define SPOOL_LMCAT 83
  60. #define SPOOL_LMGetPrintId 0x60
  61. // Used in remdef.h for structure definition to marshall data
  62. #define MAX_DEPENDENT_FILES 64
  63. /**END_INTERNAL**/
  64. typedef NET_API_STATUS SPLERR; /* err */
  65. typedef struct _PRJINFOA { /* prj1 */
  66. WORD uJobId;
  67. CHAR szUserName[LM20_UNLEN+1];
  68. CHAR pad_1;
  69. CHAR szNotifyName[LM20_CNLEN+1];
  70. CHAR szDataType[DTLEN+1];
  71. LPSTR pszParms;
  72. WORD uPosition;
  73. WORD fsStatus;
  74. LPSTR pszStatus;
  75. DWORD ulSubmitted;
  76. DWORD ulSize;
  77. LPSTR pszComment;
  78. } PRJINFOA;
  79. typedef struct _PRJINFOW { /* prj1 */
  80. WORD uJobId;
  81. WCHAR szUserName[LM20_UNLEN+1];
  82. WCHAR pad_1;
  83. WCHAR szNotifyName[LM20_CNLEN+1];
  84. WCHAR szDataType[DTLEN+1];
  85. LPWSTR pszParms;
  86. WORD uPosition;
  87. WORD fsStatus;
  88. LPWSTR pszStatus;
  89. DWORD ulSubmitted;
  90. DWORD ulSize;
  91. LPWSTR pszComment;
  92. } PRJINFOW;
  93. #ifdef UNICODE
  94. typedef PRJINFOW PRJINFO;
  95. #else
  96. typedef PRJINFOA PRJINFO;
  97. #endif // UNICODE
  98. typedef PRJINFOA far *PPRJINFOA;
  99. typedef PRJINFOW far *PPRJINFOW;
  100. #ifdef UNICODE
  101. typedef PPRJINFOW PPRJINFO;
  102. #else
  103. typedef PPRJINFOA PPRJINFO;
  104. #endif // UNICODE
  105. typedef PRJINFOA near *NPPRJINFOA;
  106. typedef PRJINFOW near *NPPRJINFOW;
  107. #ifdef UNICODE
  108. typedef NPPRJINFOW NPPRJINFO;
  109. #else
  110. typedef NPPRJINFOA NPPRJINFO;
  111. #endif // UNICODE
  112. typedef struct _PRJINFO2A { /* prj2 */
  113. WORD uJobId;
  114. WORD uPriority;
  115. LPSTR pszUserName;
  116. WORD uPosition;
  117. WORD fsStatus;
  118. DWORD ulSubmitted;
  119. DWORD ulSize;
  120. LPSTR pszComment;
  121. LPSTR pszDocument;
  122. } PRJINFO2A;
  123. typedef struct _PRJINFO2W { /* prj2 */
  124. WORD uJobId;
  125. WORD uPriority;
  126. LPWSTR pszUserName;
  127. WORD uPosition;
  128. WORD fsStatus;
  129. DWORD ulSubmitted;
  130. DWORD ulSize;
  131. LPWSTR pszComment;
  132. LPWSTR pszDocument;
  133. } PRJINFO2W;
  134. #ifdef UNICODE
  135. typedef PRJINFO2W PRJINFO2;
  136. #else
  137. typedef PRJINFO2A PRJINFO2;
  138. #endif // UNICODE
  139. typedef PRJINFO2A far *PPRJINFO2A;
  140. typedef PRJINFO2W far *PPRJINFO2W;
  141. #ifdef UNICODE
  142. typedef PPRJINFO2W PPRJINFO2;
  143. #else
  144. typedef PPRJINFO2A PPRJINFO2;
  145. #endif // UNICODE
  146. typedef PRJINFO2A near *NPPRJINFO2A;
  147. typedef PRJINFO2W near *NPPRJINFO2W;
  148. #ifdef UNICODE
  149. typedef NPPRJINFO2W NPPRJINFO2;
  150. #else
  151. typedef NPPRJINFO2A NPPRJINFO2;
  152. #endif // UNICODE
  153. typedef struct _PRJINFO3A { /* prj */
  154. WORD uJobId;
  155. WORD uPriority;
  156. LPSTR pszUserName;
  157. WORD uPosition;
  158. WORD fsStatus;
  159. DWORD ulSubmitted;
  160. DWORD ulSize;
  161. LPSTR pszComment;
  162. LPSTR pszDocument;
  163. LPSTR pszNotifyName;
  164. LPSTR pszDataType;
  165. LPSTR pszParms;
  166. LPSTR pszStatus;
  167. LPSTR pszQueue;
  168. LPSTR pszQProcName;
  169. LPSTR pszQProcParms;
  170. LPSTR pszDriverName;
  171. LPVOID pDriverData;
  172. LPSTR pszPrinterName;
  173. } PRJINFO3A;
  174. typedef struct _PRJINFO3W { /* prj */
  175. WORD uJobId;
  176. WORD uPriority;
  177. LPWSTR pszUserName;
  178. WORD uPosition;
  179. WORD fsStatus;
  180. DWORD ulSubmitted;
  181. DWORD ulSize;
  182. LPWSTR pszComment;
  183. LPWSTR pszDocument;
  184. LPWSTR pszNotifyName;
  185. LPWSTR pszDataType;
  186. LPWSTR pszParms;
  187. LPWSTR pszStatus;
  188. LPWSTR pszQueue;
  189. LPWSTR pszQProcName;
  190. LPWSTR pszQProcParms;
  191. LPWSTR pszDriverName;
  192. LPVOID pDriverData;
  193. LPWSTR pszPrinterName;
  194. } PRJINFO3W;
  195. #ifdef UNICODE
  196. typedef PRJINFO3W PRJINFO3;
  197. #else
  198. typedef PRJINFO3A PRJINFO3;
  199. #endif // UNICODE
  200. typedef PRJINFO3A far *PPRJINFO3A;
  201. typedef PRJINFO3W far *PPRJINFO3W;
  202. #ifdef UNICODE
  203. typedef PPRJINFO3W PPRJINFO3;
  204. #else
  205. typedef PPRJINFO3A PPRJINFO3;
  206. #endif // UNICODE
  207. typedef PRJINFO3A near *NPPRJINFO3A;
  208. typedef PRJINFO3W near *NPPRJINFO3W;
  209. #ifdef UNICODE
  210. typedef NPPRJINFO3W NPPRJINFO3;
  211. #else
  212. typedef NPPRJINFO3A NPPRJINFO3;
  213. #endif // UNICODE
  214. typedef struct _PRDINFOA { /* prd1 */
  215. CHAR szName[PDLEN+1];
  216. CHAR szUserName[LM20_UNLEN+1];
  217. WORD uJobId;
  218. WORD fsStatus;
  219. LPSTR pszStatus;
  220. WORD time;
  221. } PRDINFOA;
  222. typedef struct _PRDINFOW { /* prd1 */
  223. WCHAR szName[PDLEN+1];
  224. WCHAR szUserName[LM20_UNLEN+1];
  225. WORD uJobId;
  226. WORD fsStatus;
  227. LPWSTR pszStatus;
  228. WORD time;
  229. } PRDINFOW;
  230. #ifdef UNICODE
  231. typedef PRDINFOW PRDINFO;
  232. #else
  233. typedef PRDINFOA PRDINFO;
  234. #endif // UNICODE
  235. typedef PRDINFOA far *PPRDINFOA;
  236. typedef PRDINFOW far *PPRDINFOW;
  237. #ifdef UNICODE
  238. typedef PPRDINFOW PPRDINFO;
  239. #else
  240. typedef PPRDINFOA PPRDINFO;
  241. #endif // UNICODE
  242. typedef PRDINFOA near *NPPRDINFOA;
  243. typedef PRDINFOW near *NPPRDINFOW;
  244. #ifdef UNICODE
  245. typedef NPPRDINFOW NPPRDINFO;
  246. #else
  247. typedef NPPRDINFOA NPPRDINFO;
  248. #endif // UNICODE
  249. typedef struct _PRDINFO3A { /* prd */
  250. LPSTR pszPrinterName;
  251. LPSTR pszUserName;
  252. LPSTR pszLogAddr;
  253. WORD uJobId;
  254. WORD fsStatus;
  255. LPSTR pszStatus;
  256. LPSTR pszComment;
  257. LPSTR pszDrivers;
  258. WORD time;
  259. WORD pad1;
  260. } PRDINFO3A;
  261. typedef struct _PRDINFO3W { /* prd */
  262. LPWSTR pszPrinterName;
  263. LPWSTR pszUserName;
  264. LPWSTR pszLogAddr;
  265. WORD uJobId;
  266. WORD fsStatus;
  267. LPWSTR pszStatus;
  268. LPWSTR pszComment;
  269. LPWSTR pszDrivers;
  270. WORD time;
  271. WORD pad1;
  272. } PRDINFO3W;
  273. #ifdef UNICODE
  274. typedef PRDINFO3W PRDINFO3;
  275. #else
  276. typedef PRDINFO3A PRDINFO3;
  277. #endif // UNICODE
  278. typedef PRDINFO3A far *PPRDINFO3A;
  279. typedef PRDINFO3W far *PPRDINFO3W;
  280. #ifdef UNICODE
  281. typedef PPRDINFO3W PPRDINFO3;
  282. #else
  283. typedef PPRDINFO3A PPRDINFO3;
  284. #endif // UNICODE
  285. typedef PRDINFO3A near *NPPRDINFO3A;
  286. typedef PRDINFO3W near *NPPRDINFO3W;
  287. #ifdef UNICODE
  288. typedef NPPRDINFO3W NPPRDINFO3;
  289. #else
  290. typedef NPPRDINFO3A NPPRDINFO3;
  291. #endif // UNICODE
  292. typedef struct _PRQINFOA { /* prq1 */
  293. CHAR szName[LM20_QNLEN+1];
  294. CHAR pad_1;
  295. WORD uPriority;
  296. WORD uStartTime;
  297. WORD uUntilTime;
  298. LPSTR pszSepFile;
  299. LPSTR pszPrProc;
  300. LPSTR pszDestinations;
  301. LPSTR pszParms;
  302. LPSTR pszComment;
  303. WORD fsStatus;
  304. WORD cJobs;
  305. } PRQINFOA;
  306. typedef struct _PRQINFOW { /* prq1 */
  307. WCHAR szName[LM20_QNLEN+1];
  308. WCHAR pad_1;
  309. WORD uPriority;
  310. WORD uStartTime;
  311. WORD uUntilTime;
  312. LPWSTR pszSepFile;
  313. LPWSTR pszPrProc;
  314. LPWSTR pszDestinations;
  315. LPWSTR pszParms;
  316. LPWSTR pszComment;
  317. WORD fsStatus;
  318. WORD cJobs;
  319. } PRQINFOW;
  320. #ifdef UNICODE
  321. typedef PRQINFOW PRQINFO;
  322. #else
  323. typedef PRQINFOA PRQINFO;
  324. #endif // UNICODE
  325. typedef PRQINFOA far *PPRQINFOA;
  326. typedef PRQINFOW far *PPRQINFOW;
  327. #ifdef UNICODE
  328. typedef PPRQINFOW PPRQINFO;
  329. #else
  330. typedef PPRQINFOA PPRQINFO;
  331. #endif // UNICODE
  332. typedef PRQINFOA near *NPPRQINFOA;
  333. typedef PRQINFOW near *NPPRQINFOW;
  334. #ifdef UNICODE
  335. typedef NPPRQINFOW NPPRQINFO;
  336. #else
  337. typedef NPPRQINFOA NPPRQINFO;
  338. #endif // UNICODE
  339. typedef struct _PRQINFO3A { /* prq */
  340. LPSTR pszName;
  341. WORD uPriority;
  342. WORD uStartTime;
  343. WORD uUntilTime;
  344. WORD pad1;
  345. LPSTR pszSepFile;
  346. LPSTR pszPrProc;
  347. LPSTR pszParms;
  348. LPSTR pszComment;
  349. WORD fsStatus;
  350. WORD cJobs;
  351. LPSTR pszPrinters;
  352. LPSTR pszDriverName;
  353. LPVOID pDriverData;
  354. } PRQINFO3A;
  355. typedef struct _PRQINFO3W { /* prq */
  356. LPWSTR pszName;
  357. WORD uPriority;
  358. WORD uStartTime;
  359. WORD uUntilTime;
  360. WORD pad1;
  361. LPWSTR pszSepFile;
  362. LPWSTR pszPrProc;
  363. LPWSTR pszParms;
  364. LPWSTR pszComment;
  365. WORD fsStatus;
  366. WORD cJobs;
  367. LPWSTR pszPrinters;
  368. LPWSTR pszDriverName;
  369. LPVOID pDriverData;
  370. } PRQINFO3W;
  371. #ifdef UNICODE
  372. typedef PRQINFO3W PRQINFO3;
  373. #else
  374. typedef PRQINFO3A PRQINFO3;
  375. #endif // UNICODE
  376. typedef PRQINFO3A far *PPRQINFO3A;
  377. typedef PRQINFO3W far *PPRQINFO3W;
  378. #ifdef UNICODE
  379. typedef PPRQINFO3W PPRQINFO3;
  380. #else
  381. typedef PPRQINFO3A PPRQINFO3;
  382. #endif // UNICODE
  383. typedef PRQINFO3A near *NPPRQINFO3A;
  384. typedef PRQINFO3W near *NPPRQINFO3W;
  385. #ifdef UNICODE
  386. typedef NPPRQINFO3W NPPRQINFO3;
  387. #else
  388. typedef NPPRQINFO3A NPPRQINFO3;
  389. #endif // UNICODE
  390. typedef struct _PRQINFO52A { /* prq */
  391. WORD uVersion;
  392. LPSTR pszModelName;
  393. LPSTR pszDriverName;
  394. LPSTR pszDataFileName;
  395. LPSTR pszMonitorName;
  396. LPSTR pszDriverPath;
  397. LPSTR pszDefaultDataType;
  398. LPSTR pszHelpFile;
  399. LPSTR pszConfigFile;
  400. WORD cDependentNames;
  401. LPSTR pszDependentNames[MAX_DEPENDENT_FILES];
  402. } PRQINFO52A;
  403. typedef struct _PRQINFO52W { /* prq */
  404. WORD uVersion;
  405. LPWSTR pszModelName;
  406. LPWSTR pszDriverName;
  407. LPWSTR pszDataFileName;
  408. LPWSTR pszMonitorName;
  409. LPWSTR pszDriverPath;
  410. LPWSTR pszDefaultDataType;
  411. LPWSTR pszHelpFile;
  412. LPWSTR pszConfigFile;
  413. WORD cDependentNames;
  414. LPWSTR pszDependentNames[MAX_DEPENDENT_FILES];
  415. } PRQINFO52W;
  416. #ifdef UNICODE
  417. typedef PRQINFO52W PRQINFO52;
  418. #else
  419. typedef PRQINFO52A PRQINFO52;
  420. #endif // UNICODE
  421. typedef PRQINFO52A far *PPRQINFO52A;
  422. typedef PRQINFO52W far *PPRQINFO52W;
  423. #ifdef UNICODE
  424. typedef PPRQINFO52W PPRQINFO52;
  425. #else
  426. typedef PPRQINFO52A PPRQINFO52;
  427. #endif // UNICODE
  428. typedef PRQINFO52A near *NPPRQINFO52A;
  429. typedef PRQINFO52W near *NPPRQINFO52W;
  430. #ifdef UNICODE
  431. typedef NPPRQINFO52W NPPRQINFO52;
  432. #else
  433. typedef NPPRQINFO52A NPPRQINFO52;
  434. #endif // UNICODE
  435. /*
  436. * structure for RxPrintJobGetId
  437. */
  438. typedef struct _PRIDINFOA { /* prjid */
  439. WORD uJobId;
  440. CHAR szServer[LM20_CNLEN + 1];
  441. CHAR szQName[LM20_QNLEN+1];
  442. CHAR pad_1;
  443. } PRIDINFOA;
  444. /*
  445. * structure for RxPrintJobGetId
  446. */
  447. typedef struct _PRIDINFOW { /* prjid */
  448. WORD uJobId;
  449. WCHAR szServer[LM20_CNLEN + 1];
  450. WCHAR szQName[LM20_QNLEN+1];
  451. CHAR pad_1;
  452. } PRIDINFOW;
  453. #ifdef UNICODE
  454. typedef PRIDINFOW PRIDINFO;
  455. #else
  456. typedef PRIDINFOA PRIDINFO;
  457. #endif // UNICODE
  458. typedef PRIDINFOA far *PPRIDINFOA;
  459. typedef PRIDINFOW far *PPRIDINFOW;
  460. #ifdef UNICODE
  461. typedef PPRIDINFOW PPRIDINFO;
  462. #else
  463. typedef PPRIDINFOA PPRIDINFO;
  464. #endif // UNICODE
  465. typedef PRIDINFOA near *NPPRIDINFOA;
  466. typedef PRIDINFOW near *NPPRIDINFOW;
  467. #ifdef UNICODE
  468. typedef NPPRIDINFOW NPPRIDINFO;
  469. #else
  470. typedef NPPRIDINFOA NPPRIDINFO;
  471. #endif // UNICODE
  472. /****************************************************************
  473. * *
  474. * Function prototypes *
  475. * *
  476. ****************************************************************/
  477. SPLERR SPLENTRY RxPrintDestEnum(
  478. IN LPTSTR pszServer,
  479. IN DWORD uLevel,
  480. OUT LPBYTE pbBuf,
  481. IN DWORD cbBuf,
  482. IN LPDWORD pcReturned,
  483. OUT LPDWORD pcTotal
  484. );
  485. SPLERR SPLENTRY RxPrintDestControl(
  486. IN LPTSTR pszServer,
  487. IN LPTSTR pszDevName,
  488. IN DWORD uControl
  489. );
  490. SPLERR SPLENTRY RxPrintDestGetInfo(
  491. IN LPTSTR pszServer,
  492. IN LPTSTR pszName,
  493. IN DWORD uLevel,
  494. OUT LPBYTE pbBuf,
  495. IN DWORD cbBuf,
  496. OUT LPDWORD pcbNeeded // estimated (probably too large).
  497. );
  498. SPLERR SPLENTRY RxPrintDestAdd(
  499. IN LPTSTR pszServer,
  500. IN DWORD uLevel,
  501. IN LPBYTE pbBuf,
  502. IN DWORD cbBuf
  503. );
  504. SPLERR SPLENTRY RxPrintDestSetInfo(
  505. IN LPTSTR pszServer,
  506. IN LPTSTR pszName,
  507. IN DWORD uLevel,
  508. IN LPBYTE pbBuf,
  509. IN DWORD cbBuf,
  510. IN DWORD uParmNum
  511. );
  512. SPLERR SPLENTRY RxPrintDestDel(
  513. IN LPTSTR pszServer,
  514. IN LPTSTR pszPrinterName
  515. );
  516. SPLERR SPLENTRY RxPrintQEnum(
  517. IN LPTSTR pszServer,
  518. IN DWORD uLevel,
  519. OUT LPBYTE pbBuf,
  520. IN DWORD cbBuf,
  521. OUT LPDWORD pcReturned,
  522. OUT LPDWORD pcTotal
  523. );
  524. SPLERR SPLENTRY RxPrintQGetInfo(
  525. IN LPTSTR pszServer,
  526. IN LPTSTR pszQueueName,
  527. IN DWORD uLevel,
  528. OUT LPBYTE pbBuf,
  529. IN DWORD cbBuf,
  530. OUT LPDWORD pcbNeeded // estimated (probably too large).
  531. );
  532. SPLERR SPLENTRY RxPrintQSetInfo(
  533. IN LPTSTR pszServer,
  534. IN LPTSTR pszQueueName,
  535. IN DWORD uLevel,
  536. IN LPBYTE pbBuf,
  537. IN DWORD cbBuf,
  538. IN DWORD uParmNum
  539. );
  540. SPLERR SPLENTRY RxPrintQPause(
  541. IN LPTSTR pszServer,
  542. IN LPTSTR pszQueueName
  543. );
  544. SPLERR SPLENTRY RxPrintQContinue(
  545. IN LPTSTR pszServer,
  546. IN LPTSTR pszQueueName
  547. );
  548. SPLERR SPLENTRY RxPrintQPurge(
  549. IN LPTSTR pszServer,
  550. IN LPTSTR pszQueueName
  551. );
  552. SPLERR SPLENTRY RxPrintQAdd(
  553. IN LPTSTR pszServer,
  554. IN DWORD uLevel,
  555. IN LPBYTE pbBuf,
  556. IN DWORD cbBuf
  557. );
  558. SPLERR SPLENTRY RxPrintQDel(
  559. IN LPTSTR pszServer,
  560. IN LPTSTR pszQueueName
  561. );
  562. SPLERR SPLENTRY RxPrintJobGetInfo(
  563. IN LPTSTR pszServer,
  564. IN DWORD uJobId,
  565. IN DWORD uLevel,
  566. OUT LPBYTE pbBuf,
  567. IN DWORD cbBuf,
  568. OUT LPDWORD pcbNeeded // estimated (probably too large).
  569. );
  570. SPLERR SPLENTRY RxPrintJobSetInfo(
  571. IN LPTSTR pszServer,
  572. IN DWORD uJobId,
  573. IN DWORD uLevel,
  574. IN LPBYTE pbBuf,
  575. IN DWORD cbBuf,
  576. IN DWORD uParmNum
  577. );
  578. SPLERR SPLENTRY RxPrintJobPause(
  579. IN LPTSTR pszServer,
  580. IN DWORD uJobId
  581. );
  582. SPLERR SPLENTRY RxPrintJobContinue(
  583. IN LPTSTR pszServer,
  584. IN DWORD uJobId
  585. );
  586. SPLERR SPLENTRY RxPrintJobDel(
  587. IN LPTSTR pszServer,
  588. IN DWORD uJobId
  589. );
  590. SPLERR SPLENTRY RxPrintJobEnum(
  591. IN LPTSTR pszServer,
  592. IN LPTSTR pszQueueName,
  593. IN DWORD uLevel,
  594. OUT LPBYTE pbBuf,
  595. IN DWORD cbBuf,
  596. OUT LPDWORD pcReturned,
  597. OUT LPDWORD pcTotal
  598. );
  599. /*
  600. * Values for parmnum in RxPrintQSetInfo.
  601. */
  602. #define PRQ_PRIORITY_PARMNUM 2
  603. #define PRQ_STARTTIME_PARMNUM 3
  604. #define PRQ_UNTILTIME_PARMNUM 4
  605. #define PRQ_SEPARATOR_PARMNUM 5
  606. #define PRQ_PROCESSOR_PARMNUM 6
  607. #define PRQ_DESTINATIONS_PARMNUM 7
  608. #define PRQ_PARMS_PARMNUM 8
  609. #define PRQ_COMMENT_PARMNUM 9
  610. #define PRQ_PRINTERS_PARMNUM 12
  611. #define PRQ_DRIVERNAME_PARMNUM 13
  612. #define PRQ_DRIVERDATA_PARMNUM 14
  613. #define PRQ_MAXPARMNUM 14
  614. /*
  615. * Print Queue Priority
  616. */
  617. #define PRQ_MAX_PRIORITY 1 /* highest priority */
  618. #define PRQ_DEF_PRIORITY 5
  619. #define PRQ_MIN_PRIORITY 9 /* lowest priority */
  620. #define PRQ_NO_PRIORITY 0
  621. /*
  622. * Print queue status bitmask and values.
  623. */
  624. #define PRQ_STATUS_MASK 3
  625. #define PRQ_ACTIVE 0
  626. #define PRQ_PAUSED 1
  627. #define PRQ_ERROR 2
  628. #define PRQ_PENDING 3
  629. /*
  630. * Print queue status bits for level 3
  631. */
  632. #define PRQ3_PAUSED 0x1
  633. #define PRQ3_PENDING 0x2
  634. /*
  635. * Values for parmnum in RxPrintJobSetInfo.
  636. */
  637. #define PRJ_NOTIFYNAME_PARMNUM 3
  638. #define PRJ_DATATYPE_PARMNUM 4
  639. #define PRJ_PARMS_PARMNUM 5
  640. #define PRJ_POSITION_PARMNUM 6
  641. #define PRJ_COMMENT_PARMNUM 11
  642. #define PRJ_DOCUMENT_PARMNUM 12
  643. #define PRJ_PRIORITY_PARMNUM 14
  644. #define PRJ_PROCPARMS_PARMNUM 16
  645. #define PRJ_DRIVERDATA_PARMNUM 18
  646. #define PRJ_MAXPARMNUM 18
  647. /*
  648. * Bitmap masks for status field of PRJINFO.
  649. */
  650. /* 2-7 bits also used in device status */
  651. #define PRJ_QSTATUS 0x0003 /* Bits 0,1 */
  652. #define PRJ_DEVSTATUS 0x0ffc /* 2-11 bits */
  653. #define PRJ_COMPLETE 0x0004 /* Bit 2 */
  654. #define PRJ_INTERV 0x0008 /* Bit 3 */
  655. #define PRJ_ERROR 0x0010 /* Bit 4 */
  656. #define PRJ_DESTOFFLINE 0x0020 /* Bit 5 */
  657. #define PRJ_DESTPAUSED 0x0040 /* Bit 6 */
  658. #define PRJ_NOTIFY 0x0080 /* Bit 7 */
  659. #define PRJ_DESTNOPAPER 0x0100 /* Bit 8 */
  660. #define PRJ_DESTFORMCHG 0x0200 /* BIT 9 */
  661. #define PRJ_DESTCRTCHG 0x0400 /* BIT 10 */
  662. #define PRJ_DESTPENCHG 0x0800 /* BIT 11 */
  663. #define PRJ_DELETED 0x8000 /* Bit 15 */
  664. /*
  665. * Values of PRJ_QSTATUS bits in fsStatus field of PRJINFO.
  666. */
  667. #define PRJ_QS_QUEUED 0
  668. #define PRJ_QS_PAUSED 1
  669. #define PRJ_QS_SPOOLING 2
  670. #define PRJ_QS_PRINTING 3
  671. /*
  672. * Print Job Priority
  673. */
  674. #define PRJ_MAX_PRIORITY 99 /* lowest priority */
  675. #define PRJ_MIN_PRIORITY 1 /* highest priority */
  676. #define PRJ_NO_PRIORITY 0
  677. /*
  678. * Bitmap masks for status field of PRDINFO.
  679. * see PRJ_... for bits 2-11
  680. */
  681. #define PRD_STATUS_MASK 0x0003 /* Bits 0,1 */
  682. #define PRD_DEVSTATUS 0x0ffc /* 2-11 bits */
  683. /*
  684. * Values of PRD_STATUS_MASK bits in fsStatus field of PRDINFO.
  685. */
  686. #define PRD_ACTIVE 0
  687. #define PRD_PAUSED 1
  688. /*
  689. * Control codes used in RxPrintDestControl.
  690. */
  691. #define PRD_DELETE 0
  692. #define PRD_PAUSE 1
  693. #define PRD_CONT 2
  694. #define PRD_RESTART 3
  695. /*
  696. * Values for parmnum in RxPrintDestSetInfo.
  697. */
  698. #define PRD_LOGADDR_PARMNUM 3
  699. #define PRD_COMMENT_PARMNUM 7
  700. #define PRD_DRIVERS_PARMNUM 8
  701. #endif // ndef _RXPRINT_