spoolss: trivial fix for spoolss_FormInfo2 IDL.
[ira/wip.git] / librpc / idl / spoolss.idl
index 84373aacb948a6fcf1d7292f8618755659daa733..14ddba8173d6d58b8f53ba1791eb054ade5ff41b 100644 (file)
@@ -980,11 +980,6 @@ import "misc.idl", "security.idl", "winreg.idl";
                /*[subcontext(0),subcontext_size(_ndr_size*2)]*/ nstring_array string;
        } spoolss_StringArray;
 
-       typedef [public] struct {
-               [value((ndr_size_spoolss_StringArray2(r, ndr->iconv_convenience, ndr->flags)-4)/2)] uint32 _ndr_size;
-               [subcontext(0),subcontext_size(_ndr_size*2)] nstring_array string;
-       } spoolss_StringArray2;
-
        typedef struct {
                [string,charset(UTF16)] uint16 *driver_name;
        } spoolss_AddDriverInfo1;
@@ -1204,9 +1199,9 @@ import "misc.idl", "security.idl", "winreg.idl";
                [relative] nstring *data_file;
                [relative] nstring *config_file;
                [relative] nstring *help_file;
+               [relative] nstring_array *dependent_files;
                [relative] nstring *monitor_name;
                [relative] nstring *default_datatype;
-               [relative] nstring_array *dependent_files;
                [relative] nstring_array *previous_names;
                NTTIME driver_date;
                hyper driver_version;
@@ -1498,8 +1493,12 @@ import "misc.idl", "security.idl", "winreg.idl";
        const string SPL_ARCH_IA64              = "IA64";
        const string SPL_ARCH_X64               = "x64";
 
-       const string SPOOLSS_ARCHITECTURE_ALL                   = "all";
+       const string SPOOLSS_ARCHITECTURE_ALL                   = "All";
+       const string SPOOLSS_ARCHITECTURE_ALL_CLUSTER           = "AllCluster";
        const string SPOOLSS_ARCHITECTURE_NT_X86                = "Windows NT x86";
+       const string SPOOLSS_ARCHITECTURE_IA_64                 = "Windows IA64";
+       const string SPOOLSS_ARCHITECTURE_x64                   = "Windows x64";
+       const string SPOOLSS_ARCHITECTURE_4_0                   = "Windows 4.0";
        const string SPOOLSS_DEFAULT_SERVER_PATH                = "C:\\WINDOWS\\system32\\spool";
 
        typedef [public,gensize] struct {
@@ -1698,7 +1697,8 @@ import "misc.idl", "security.idl", "winreg.idl";
                [relative] nstring *mui_dll;
                uint32 ressource_id;
                [relative] nstring *display_name;
-               uint32 lang_id;
+               uint16 lang_id;
+               uint16 unused;
        } spoolss_FormInfo2;
 
        typedef [nodiscriminant,relative_base,public,gensize] union {
@@ -2525,24 +2525,49 @@ import "misc.idl", "security.idl", "winreg.idl";
 
        /******************/
        /* Function: 0x4d */
-       WERROR spoolss_SetPrinterDataEx(
+       [noopnum,nopull,noprint,public] WERROR _spoolss_SetPrinterDataEx(
                [in,ref] policy_handle *handle,
-               [in]     [string,charset(UTF16)] uint16 key_name[],
-               [in]     [string,charset(UTF16)] uint16 value_name[],
-               [in]     winreg_Type type,
-               [in,ref] [size_is(offered)] uint8 *buffer,
-               [in]     uint32 offered
+               [in] [string,charset(UTF16)] uint16 key_name[],
+               [in] [string,charset(UTF16)] uint16 value_name[],
+               [in] winreg_Type type,
+               [in] DATA_BLOB data,
+               [in] uint32 _offered
+       );
+       [noopnum,nopull,noprint,public] void __spoolss_SetPrinterDataEx(
+               [in] winreg_Type type,
+               [out,ref,switch_is(type)] spoolss_PrinterData *data
+       );
+       [nopush] WERROR spoolss_SetPrinterDataEx(
+               [in,ref] policy_handle *handle,
+               [in] [string,charset(UTF16)] uint16 key_name[],
+               [in] [string,charset(UTF16)] uint16 value_name[],
+               [in] winreg_Type type,
+               [in,subcontext(4),switch_is(type)] spoolss_PrinterData data,
+               [in,value(ndr_size_spoolss_PrinterData(&data,type,ndr->iconv_convenience,flags))] uint32 _offered
        );
 
        /******************/
        /* Function: 0x4e */
-       WERROR spoolss_GetPrinterDataEx(
+       [noopnum,noprint,public] WERROR _spoolss_GetPrinterDataEx(
                [in,ref] policy_handle *handle,
                [in]     [string,charset(UTF16)] uint16 key_name[],
                [in]     [string,charset(UTF16)] uint16 value_name[],
+               [in]     uint32 offered,
                [out,ref] winreg_Type *type,
-               [out,ref] [size_is(offered)] uint8 *buffer,
+               [out,ref] DATA_BLOB *data,
+               [out,ref] uint32 *needed
+       );
+       [noopnum,noprint,public] void __spoolss_GetPrinterDataEx(
+               [in] winreg_Type type,
+               [out,ref,switch_is(type)] spoolss_PrinterData *data
+       );
+       [nopull,nopush,public] WERROR spoolss_GetPrinterDataEx(
+               [in,ref] policy_handle *handle,
+               [in]     [string,charset(UTF16)] uint16 key_name[],
+               [in]     [string,charset(UTF16)] uint16 value_name[],
                [in]     uint32 offered,
+               [out,ref] winreg_Type *type,
+               [out,ref,subcontext(4),subcontext_size(offered),switch_is(*type)] spoolss_PrinterData *data,
                [out,ref] uint32 *needed
        );
 
@@ -2578,12 +2603,19 @@ import "misc.idl", "security.idl", "winreg.idl";
                [out,ref] uint32 *needed
        );
 
+       typedef [nodiscriminant] union {
+               [case(0)];
+               [case(1)];
+               [default] nstring_array string_array;
+       } spoolss_KeyNames;
+
        /******************/
        /* Function: 0x50 */
        [public] WERROR spoolss_EnumPrinterKey(
                [in, ref] policy_handle *handle,
                [in] [string,charset(UTF16)] uint16 key_name[],
-               [out,ref] [size_is(offered/2)] uint16 *key_buffer,
+               [out,ref] uint32 *_ndr_size,
+               [out,ref,subcontext(0),subcontext_size(*_ndr_size*2),switch_is(*_ndr_size)] spoolss_KeyNames *key_buffer,
                [in] uint32 offered,
                [out,ref] uint32 *needed
        );