summaryrefslogtreecommitdiff
path: root/source3/include
diff options
context:
space:
mode:
authorJean-François Micouleau <jfm@samba.org>1999-07-27 10:46:44 +0000
committerJean-François Micouleau <jfm@samba.org>1999-07-27 10:46:44 +0000
commit4bff2675746518af740e475e4e996247ac21d817 (patch)
tree86cf0e3697c4091909be7dd9466bf213acc2964b /source3/include
parentf2e0bbffb5e40df4850b6bd0eae73a8fb0edc6d7 (diff)
downloadsamba-4bff2675746518af740e475e4e996247ac21d817.tar.gz
samba-4bff2675746518af740e475e4e996247ac21d817.tar.bz2
samba-4bff2675746518af740e475e4e996247ac21d817.zip
- enumprintprocessors and enumprintmonitors added.
- getjob (level 1 and 2) done. - better handling of getprinterdriver (level 2). - added workaround to print PCL files. Now the spoolss code should be compliant with all kind of printers :-) Jean Francois (This used to be commit bf9b639bf9162d61eb152af506dc2c1a7e8a4c85)
Diffstat (limited to 'source3/include')
-rw-r--r--source3/include/proto.h4
-rwxr-xr-xsource3/include/rpc_spoolss.h50
2 files changed, 50 insertions, 4 deletions
diff --git a/source3/include/proto.h b/source3/include/proto.h
index 04b002ae57..2c7b386ac2 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -2868,6 +2868,8 @@ void spoolss_io_r_getprinterdriverdir(char *desc, SPOOL_R_GETPRINTERDRIVERDIR *r
void spoolss_io_q_getprinterdriverdir(char *desc, SPOOL_Q_GETPRINTERDRIVERDIR *q_u, prs_struct *ps, int depth);
void spoolss_io_r_enumprintprocessors(char *desc, SPOOL_R_ENUMPRINTPROCESSORS *r_u, prs_struct *ps, int depth);
void spoolss_io_q_enumprintprocessors(char *desc, SPOOL_Q_ENUMPRINTPROCESSORS *q_u, prs_struct *ps, int depth);
+void spoolss_io_r_enumprintmonitors(char *desc, SPOOL_R_ENUMPRINTMONITORS *r_u, prs_struct *ps, int depth);
+void spoolss_io_q_enumprintmonitors(char *desc, SPOOL_Q_ENUMPRINTMONITORS *q_u, prs_struct *ps, int depth);
void spoolss_io_r_enumprinterdata(char *desc, SPOOL_R_ENUMPRINTERDATA *r_u, prs_struct *ps, int depth);
void spoolss_io_q_enumprinterdata(char *desc, SPOOL_Q_ENUMPRINTERDATA *q_u, prs_struct *ps, int depth);
void spoolss_io_q_setprinterdata(char *desc, SPOOL_Q_SETPRINTERDATA *q_u, prs_struct *ps, int depth);
@@ -2877,6 +2879,8 @@ void spoolss_io_q_addform(char *desc, SPOOL_Q_ADDFORM *q_u, prs_struct *ps, int
void spoolss_io_r_addform(char *desc, SPOOL_R_ADDFORM *r_u, prs_struct *ps, int depth);
void spoolss_io_q_setform(char *desc, SPOOL_Q_SETFORM *q_u, prs_struct *ps, int depth);
void spoolss_io_r_setform(char *desc, SPOOL_R_SETFORM *r_u, prs_struct *ps, int depth);
+void spoolss_io_r_getjob(char *desc, SPOOL_R_GETJOB *r_u, prs_struct *ps, int depth);
+void spoolss_io_q_getjob(char *desc, SPOOL_Q_GETJOB *q_u, prs_struct *ps, int depth);
/*The following definitions come from rpc_parse/parse_srv.c */
diff --git a/source3/include/rpc_spoolss.h b/source3/include/rpc_spoolss.h
index 8476ad7691..a8f934fc47 100755
--- a/source3/include/rpc_spoolss.h
+++ b/source3/include/rpc_spoolss.h
@@ -29,7 +29,6 @@
/* spoolss pipe: this are the calls which are not implemented ...
#define SPOOLSS_OPENPRINTER 0x01
-#define SPOOLSS_GETJOB 0x03
#define SPOOLSS_DELETEPRINTER 0x06
#define SPOOLSS_GETPRINTERDRIVER 0x0b
#define SPOOLSS_DELETEPRINTERDRIVER 0x0d
@@ -40,7 +39,6 @@
#define SPOOLSS_WAITFORPRINTERCHANGE 0x1c
#define SPOOLSS_DELETEFORM 0x1f
#define SPOOLSS_GETFORM 0x20
-#define SPOOLSS_ENUMMONITORS 0x24
#define SPOOLSS_ADDPORT 0x25
#define SPOOLSS_CONFIGUREPORT 0x26
#define SPOOLSS_DELETEPORT 0x27
@@ -73,6 +71,7 @@
#define SPOOLSS_ENUMPRINTERS 0x00
#define SPOOLSS_SETJOB 0x02
+#define SPOOLSS_GETJOB 0x03
#define SPOOLSS_ENUMJOBS 0x04
#define SPOOLSS_ADDPRINTER 0x05
#define SPOOLSS_SETPRINTER 0x07
@@ -95,6 +94,7 @@
#define SPOOLSS_SETFORM 0x21
#define SPOOLSS_ENUMFORMS 0x22
#define SPOOLSS_ENUMPORTS 0x23
+#define SPOOLSS_ENUMMONITORS 0x24
#define SPOOLSS_ENUMPRINTPROCESSORDATATYPES 0x33
#define SPOOLSS_GETPRINTERDRIVER2 0x35
/* find close printer notification */
@@ -891,7 +891,7 @@ typedef struct driver_info_3
UNISTR datafile;
UNISTR configfile;
UNISTR helpfile;
- UNISTR dependentfiles;
+ UNISTR **dependentfiles;
UNISTR monitorname;
UNISTR defaultdatatype;
} DRIVER_INFO_3;
@@ -977,7 +977,7 @@ typedef struct s_job_info_2
UNISTR printprocessor;
UNISTR parameters;
UNISTR drivername;
- DEVICEMODE devmode;
+ DEVICEMODE *devmode;
UNISTR text_status;
/* SEC_DESC sec_desc;*/
uint32 status;
@@ -1369,6 +1369,28 @@ typedef struct spool_r_enumprintprocessordatatypes
uint32 status;
} SPOOL_R_ENUMPRINTPROCESSORDATATYPES;
+typedef struct spool_q_enumprintmonitors
+{
+ UNISTR2 name;
+ uint32 level;
+ BUFFER buffer;
+ uint32 buf_size;
+} SPOOL_Q_ENUMPRINTMONITORS;
+
+typedef struct printmonitor_1
+{
+ UNISTR name;
+} PRINTMONITOR_1;
+
+typedef struct spool_r_enumprintmonitors
+{
+ uint32 level;
+ PRINTMONITOR_1 *info_1;
+ uint32 offered;
+ uint32 numofprintmonitors;
+ uint32 status;
+} SPOOL_R_ENUMPRINTMONITORS;
+
typedef struct spool_q_enumprinterdata
{
PRINTER_HND handle;
@@ -1445,6 +1467,26 @@ typedef struct spool_r_setform
uint32 status;
} SPOOL_R_SETFORM;
+typedef struct spool_q_getjob
+{
+ PRINTER_HND handle;
+ uint32 jobid;
+ uint32 level;
+ BUFFER buffer;
+ uint32 buf_size;
+} SPOOL_Q_GETJOB;
+
+typedef struct spool_r_getjob
+{
+ uint32 level;
+ union {
+ JOB_INFO_1 *job_info_1;
+ JOB_INFO_2 *job_info_2;
+ } job;
+ uint32 offered;
+ uint32 status;
+} SPOOL_R_GETJOB;
+
#define PRINTER_DRIVER_VERSION 2
#define PRINTER_DRIVER_ARCHITECTURE "Windows NT x86"