summaryrefslogtreecommitdiff
path: root/source4/librpc
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2005-04-04 15:19:27 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:11:25 -0500
commit746bb14367f87204baebfcda7f3170e3d9dd6b8f (patch)
treec0fc9a9baedde56f9f5a0de78627b0f34d038ee6 /source4/librpc
parentb46eb7aa17193d87624a4ea0107b6f98652f9e9e (diff)
downloadsamba-746bb14367f87204baebfcda7f3170e3d9dd6b8f.tar.gz
samba-746bb14367f87204baebfcda7f3170e3d9dd6b8f.tar.bz2
samba-746bb14367f87204baebfcda7f3170e3d9dd6b8f.zip
r6194: - fix some spoolss_*Form names and types
- fix GetPrinterData(), look inside the datablob - add idl for RemoteFindFirstChangeNotify(), without meaning yet, just to not return a DCERPC_FAULT when receiving this request metze (This used to be commit 92f3d5bd9c700032612ac20dc7635730c555c4da)
Diffstat (limited to 'source4/librpc')
-rw-r--r--source4/librpc/idl/spoolss.idl100
1 files changed, 73 insertions, 27 deletions
diff --git a/source4/librpc/idl/spoolss.idl b/source4/librpc/idl/spoolss.idl
index d5bfd687ac..5d909b4bed 100644
--- a/source4/librpc/idl/spoolss.idl
+++ b/source4/librpc/idl/spoolss.idl
@@ -316,6 +316,8 @@
typedef [nodiscriminant,public] union {
[case(1)] spoolss_JobInfo1 info1;
+ [case(2)]; /* TODO */
+ [case(3)]; /* TODO */
[default];
} spoolss_JobInfo;
@@ -582,11 +584,26 @@
/******************/
/* Function: 0x1a */
+ const string SPOOLSS_ARCHITECTURE_NT_X86 = "Windows NT x86";
+
+ typedef [v1_enum] enum {
+ SPOOLSS_PRINTER_DATA_TYPE_NULL = 0,
+ SPOOLSS_PRINTER_DATA_TYPE_STRING = 1,
+ SPOOLSS_PRINTER_DATA_TYPE_UINT32 = 4
+ } spoolss_PrinterDataType;
+
+ typedef [nodiscriminant,gensize] union {
+ [case(SPOOLSS_PRINTER_DATA_TYPE_NULL)];
+ [case(SPOOLSS_PRINTER_DATA_TYPE_STRING)] nstring string;
+ [case(SPOOLSS_PRINTER_DATA_TYPE_UINT32)] uint32 value;
+ [default,flag(NDR_REMAINING)] DATA_BLOB data;
+ } spoolss_PrinterData;
+
WERROR spoolss_GetPrinterData(
[in,ref] policy_handle *handle,
[in] unistr value_name,
- [out] uint32 type,
- [out] DATA_BLOB buffer,
+ [out] spoolss_PrinterDataType type,
+ [out,subcontext(4),switch_is(type)] spoolss_PrinterData data,
[in,out,ref] uint32 *buf_size
);
@@ -611,23 +628,37 @@
[in,out,ref] policy_handle *handle
);
+ /******************/
+ /* Function: 0x1e */
+ typedef [v1_enum] enum {
+ SPOOLSS_FORM_USER = 0,
+ SPOOLSS_FORM_BUILTIN = 1,
+ SPOOLSS_FORM_PRINTER = 2
+ } spoolss_FormFlags;
+
typedef struct {
- uint32 flags;
- [relative] unistr *formname;
uint32 width;
- uint32 length;
+ uint32 height;
+ } spoolss_FormSize;
+
+ typedef struct {
uint32 left;
uint32 top;
uint32 right;
uint32 bottom;
+ } spoolss_FormArea;
+
+ typedef struct {
+ spoolss_FormFlags flags;
+ [relative] unistr *form_name;
+ spoolss_FormSize size;
+ spoolss_FormArea area;
} spoolss_AddFormInfo1;
typedef union {
[case(1)] spoolss_AddFormInfo1 *info1;
} spoolss_AddFormInfo;
- /******************/
- /* Function: 0x1e */
WERROR spoolss_AddForm(
[in,ref] policy_handle *handle,
[in] uint32 level,
@@ -638,25 +669,21 @@
/* Function: 0x1f */
WERROR spoolss_DeleteForm(
[in,ref] policy_handle *handle,
- [in] unistr formname
+ [in] unistr form_name
);
/******************/
/* Function: 0x20 */
typedef struct {
- uint32 flags;
- [relative] nstring *formname;
- uint32 width;
- uint32 length;
- uint32 left;
- uint32 top;
- uint32 right;
- uint32 bottom;
+ spoolss_FormFlags flags;
+ [relative] nstring *form_name;
+ spoolss_FormSize size;
+ spoolss_FormArea area;
} spoolss_FormInfo1;
WERROR spoolss_GetForm(
[in,ref] policy_handle *handle,
- [in] unistr formname,
+ [in] unistr form_name,
[in] uint32 level,
[in] DATA_BLOB *buffer,
[out,subcontext(4),switch_is(level)] spoolss_FormInfo *info,
@@ -664,25 +691,21 @@
);
typedef struct {
- uint32 flags;
- unistr *formname;
- uint32 width;
- uint32 length;
- uint32 left;
- uint32 top;
- uint32 right;
- uint32 bottom;
+ spoolss_FormFlags flags;
+ unistr *form_name;
+ spoolss_FormSize size;
+ spoolss_FormArea area;
} spoolss_SetFormInfo1;
typedef union {
- [case(1)] spoolss_AddFormInfo1 *info1;
+ [case(1)] spoolss_SetFormInfo1 *info1;
} spoolss_SetFormInfo;
/******************/
/* Function: 0x21 */
WERROR spoolss_SetForm(
[in,ref] policy_handle *handle,
- [in] unistr formname,
+ [in] unistr form_name,
[in] uint32 level,
[in,switch_is(level)] spoolss_SetFormInfo info
);
@@ -726,6 +749,7 @@
typedef [nodiscriminant,public] union {
[case(1)] spoolss_PortInfo1 info1;
[case(2)] spoolss_PortInfo2 info2;
+ [case(3)]; /* TODO */
[default];
} spoolss_PortInfo;
@@ -926,7 +950,29 @@
/******************/
/* Function: 0x41 */
+ typedef [flag(NDR_PAHEX)] struct {
+ uint16 u1;
+ uint16 u2;
+ uint32 u3;
+ uint32 u4;
+ uint32 count;
+ [size_is(count)] uint16 *array[];
+ } spoolss_RemoteFindFirstPrinterChangeNotifyEx_t2;
+
+ typedef struct {
+ uint32 u1;
+ uint32 u2;
+ uint32 count;
+ [size_is(count)] spoolss_RemoteFindFirstPrinterChangeNotifyEx_t2 *t2[];
+ } spoolss_RemoteFindFirstPrinterChangeNotifyEx_t1;
+
WERROR spoolss_RemoteFindFirstPrinterChangeNotifyEx(
+ [in,ref] policy_handle *handle,
+ [in] uint32 u1,
+ [in] uint32 u2,
+ [in] unistr *str,
+ [in] uint32 u3,
+ [in] spoolss_RemoteFindFirstPrinterChangeNotifyEx_t1 *t1
);
/******************/