r5505: make usage of bitmap's :-)
[samba.git] / source4 / librpc / idl / spoolss.idl
index a14f9dd8248640a1835acb9aa389aef61ab1fdd9..aff4f25664ba3f94b9f60a1bfaf0548c0e14dd07 100644 (file)
 
        /******************/
        /* Function: 0x00 */
-       WERROR spoolss_EnumPrinters(
-               [in]         uint32 flags,
-               [in]         unistr *server,
-               [in]         uint32 level,
-               [in,out]     DATA_BLOB *buffer,
+       [noprint,nopull,nopush] WERROR spoolss_EnumPrinters(
+               [in] uint32 flags,
+               [in] unistr *server,
+               [in] uint32 level,
+               [in] DATA_BLOB *buffer,
+               /* [out,subcontext(4),switch_is(level)] spoolss_PrinterInfo *info[count],*/
+               [out,subcontext(4),switch_is(level)] spoolss_PrinterInfo **info,
                [in,out,ref] uint32 *buf_size,
-               [out]        uint32 count
+               [out] uint32 count
        );
 
        /******************/
        /* Function: 0x01 */
+       typedef struct {
+               uint32 foo;
+       } spoolss_Devmode;
+
+       typedef struct {
+               uint32 size;
+               spoolss_Devmode *devmode;
+       } spoolss_DevmodeContainer;
+
        WERROR spoolss_OpenPrinter(
-               [in]        unistr *server,
-               [in]        unistr *printer,
-               [in]        DATA_BLOB *buffer,
-               [in]        uint32 access_mask,
-               [out,ref]   policy_handle *handle
+               [in] unistr *printername,
+               [in] unistr *datatype,
+               [in] spoolss_DevmodeContainer devmode_ctr,
+               [in] uint32 access_mask,
+               [out,ref] policy_handle *handle
        );
 
        /******************/
 
        /******************/
        /* Function: 0x04 */
-       WERROR spoolss_EnumJobs(
+       [noprint,nopull,nopush] WERROR spoolss_EnumJobs(
                [in,ref] policy_handle *handle,
                [in]     uint32 firstjob,
                [in]     uint32 numjobs,
                [in]     uint32 level,
-               [in,out]     DATA_BLOB *buffer,
+               [in]     DATA_BLOB *buffer,
+               /* [out,subcontext(4),switch_is(level)] spoolss_JobInfo *info[count],*/
+               [out,subcontext(4),switch_is(level)] spoolss_JobInfo **info,
                [in,out,ref] uint32 *buf_size,
                [out]    uint32 count
        );
 
        /******************/
        /* Function: 0x0a */
-       WERROR spoolss_EnumPrinterDrivers(
+       [noprint,nopull,nopush] WERROR spoolss_EnumPrinterDrivers(
                [in] unistr *server,
                [in] unistr *environment,
                [in] uint32 level,
-               [in,out] DATA_BLOB *buffer,
+               [in] DATA_BLOB *buffer,
+               /* [out,subcontext(4),switch_is(level)] spoolss_DriverInfo *info[count],*/
+               [out,subcontext(4),switch_is(level)] spoolss_DriverInfo **info,
                [in,out,ref] uint32 *buf_size,
                [out] uint32 count
        );
 
        /******************/
        /* Function: 0x22 */
-       WERROR spoolss_EnumForms(
+       [noprint,nopull,nopush] WERROR spoolss_EnumForms(
                [in,ref] policy_handle *handle,
                [in] uint32 level,
-               [in,out] DATA_BLOB *buffer,
+               [in] DATA_BLOB *buffer,
+               /* [out,subcontext(4),switch_is(level)] spoolss_FormInfo *info[count],*/
+               [out,subcontext(4),switch_is(level)] spoolss_FormInfo **info,
                [in,out,ref] uint32 *buf_size,
                [out] uint32 count
        );
                [relative] nstring *port_name;
        } spoolss_PortInfo1;
 
+       typedef bitmap {
+               SPOOLSS_PORT_TYPE_WRITE         = 0x00000001,
+               SPOOLSS_PORT_TYPE_READ          = 0x00000002,
+               SPOOLSS_PORT_TYPE_REDIRECTED    = 0x00000004,
+               SPOOLSS_PORT_TYPE_NET_ATTACHED  = 0x00000008
+       } spoolss_PortType;
+
        typedef struct {
                [relative] nstring *port_name;
                [relative] nstring *monitor_name;
                [relative] nstring *description;
-               uint32 port_type;
+               spoolss_PortType port_type;
                uint32 reserved;
        } spoolss_PortInfo2;
 
 
        /******************/
        /* Function: 0x23 */
-       WERROR spoolss_EnumPorts(
+       [noprint,nopull,nopush] WERROR spoolss_EnumPorts(
                [in] unistr *servername,
                [in] uint32 level,
-               [in,out] DATA_BLOB *buffer,
+               [in] DATA_BLOB *buffer,
+               /* [out,subcontext(4),switch_is(level)] spoolss_PortInfo *info[count], */
+               [out,subcontext(4),switch_is(level)] spoolss_PortInfo **info,
                [in,out,ref] uint32 *buf_size,
                [out] uint32 count
        );
        WERROR spoolss_44(
        );
 
-       typedef struct {
-               uint32 foo;
-       } spoolss_Devmode;
-
-       typedef struct {
-               uint32 size;
-               spoolss_Devmode *devmode;
-       } spoolss_DevmodeContainer;
-
        typedef struct {
                uint32 size;
                unistr *client;