spoolss: trivial fix for spoolss_FormInfo2 IDL.
[ira/wip.git] / librpc / gen_ndr / spoolss.h
index af7536b36f274159247ce3fc2f5d5ddd2f08ec7d..146dde5e2d47fad01c4a723035da0abebbd3bbc0 100644 (file)
@@ -12,6 +12,7 @@
 
 #define PRINTER_STATUS_OK      ( 0x00000000 )
 #define JOB_STATUS_QUEUED      ( 0x0000 )
+#define MAXDEVICENAME  ( 32 )
 #define PRINTER_ENUM_ICONMASK  ( (PRINTER_ENUM_ICON1|PRINTER_ENUM_ICON2|PRINTER_ENUM_ICON3|PRINTER_ENUM_ICON4|PRINTER_ENUM_ICON5|PRINTER_ENUM_ICON6|PRINTER_ENUM_ICON7|PRINTER_ENUM_ICON8) )
 #define SPL_ARCH_WIN40 ( "WIN40" )
 #define SPL_ARCH_W32X86        ( "W32X86" )
 #define SPL_ARCH_W32PPC        ( "W32PPC" )
 #define SPL_ARCH_IA64  ( "IA64" )
 #define SPL_ARCH_X64   ( "x64" )
-#define SPOOLSS_ARCHITECTURE_ALL       ( "all" )
+#define SPOOLSS_ARCHITECTURE_ALL       ( "All" )
+#define SPOOLSS_ARCHITECTURE_ALL_CLUSTER       ( "AllCluster" )
 #define SPOOLSS_ARCHITECTURE_NT_X86    ( "Windows NT x86" )
+#define SPOOLSS_ARCHITECTURE_IA_64     ( "Windows IA64" )
+#define SPOOLSS_ARCHITECTURE_x64       ( "Windows x64" )
+#define SPOOLSS_ARCHITECTURE_4_0       ( "Windows 4.0" )
 #define SPOOLSS_DEFAULT_SERVER_PATH    ( "C:\\WINDOWS\\system32\\spool" )
+#define SPOOL_PRINTERDATA_KEY  ( "PrinterDriverData" )
+#define SPOOL_DSSPOOLER_KEY    ( "DsSpooler" )
+#define SPOOL_DSDRIVER_KEY     ( "DsDriver" )
+#define SPOOL_DSUSER_KEY       ( "DsUser" )
+#define SPOOL_PNPDATA_KEY      ( "PnPData" )
+#define SPOOL_OID_KEY  ( "OID" )
+#define SPOOL_REG_ASSETNUMBER  ( "assetNumber" )
+#define SPOOL_REG_BYTESPERMINUTE       ( "bytesPerMinute" )
+#define SPOOL_REG_DEFAULTPRIORITY      ( "defaultPriority" )
+#define SPOOL_REG_DESCRIPTION  ( "description" )
+#define SPOOL_REG_DRIVERNAME   ( "driverName" )
+#define SPOOL_REG_DRIVERVERSION        ( "driverVersion" )
+#define SPOOL_REG_FLAGS        ( "flags" )
+#define SPOOL_REG_LOCATION     ( "location" )
+#define SPOOL_REG_OPERATINGSYSTEM      ( "operatingSystem" )
+#define SPOOL_REG_OPERATINGSYSTEMHOTFIX        ( "operatingSystemHotfix" )
+#define SPOOL_REG_OPERATINGSYSTEMSERVICEPACK   ( "operatingSystemServicePack" )
+#define SPOOL_REG_OPERATINGSYSTEMVERSION       ( "operatingSystemVersion" )
+#define SPOOL_REG_PORTNAME     ( "portName" )
+#define SPOOL_REG_PRINTATTRIBUTES      ( "printAttributes" )
+#define SPOOL_REG_PRINTBINNAMES        ( "printBinNames" )
+#define SPOOL_REG_PRINTCOLLATE ( "printCollate" )
+#define SPOOL_REG_PRINTCOLOR   ( "printColor" )
+#define SPOOL_REG_PRINTDUPLEXSUPPORTED ( "printDuplexSupported" )
+#define SPOOL_REG_PRINTENDTIME ( "printEndTime" )
+#define SPOOL_REG_PRINTERNAME  ( "printerName" )
+#define SPOOL_REG_PRINTFORMNAME        ( "printFormName" )
+#define SPOOL_REG_PRINTKEEPPRINTEDJOBS ( "printKeepPrintedJobs" )
+#define SPOOL_REG_PRINTLANGUAGE        ( "printLanguage" )
+#define SPOOL_REG_PRINTMACADDRESS      ( "printMACAddress" )
+#define SPOOL_REG_PRINTMAXCOPIES       ( "printMaxCopies" )
+#define SPOOL_REG_PRINTMAXRESOLUTIONSUPPORTED  ( "printMaxResolutionSupported" )
+#define SPOOL_REG_PRINTMAXXEXTENT      ( "printMaxXExtent" )
+#define SPOOL_REG_PRINTMAXYEXTENT      ( "printMaxYExtent" )
+#define SPOOL_REG_PRINTMEDIAREADY      ( "printMediaReady" )
+#define SPOOL_REG_PRINTMEDIASUPPORTED  ( "printMediaSupported" )
+#define SPOOL_REG_PRINTMEMORY  ( "printMemory" )
+#define SPOOL_REG_PRINTMINXEXTENT      ( "printMinXExtent" )
+#define SPOOL_REG_PRINTMINYEXTENT      ( "printMinYExtent" )
+#define SPOOL_REG_PRINTNETWORKADDRESS  ( "printNetworkAddress" )
+#define SPOOL_REG_PRINTNOTIFY  ( "printNotify" )
+#define SPOOL_REG_PRINTNUMBERUP        ( "printNumberUp" )
+#define SPOOL_REG_PRINTORIENTATIONSSUPPORTED   ( "printOrientationsSupported" )
+#define SPOOL_REG_PRINTOWNER   ( "printOwner" )
+#define SPOOL_REG_PRINTPAGESPERMINUTE  ( "printPagesPerMinute" )
+#define SPOOL_REG_PRINTRATE    ( "printRate" )
+#define SPOOL_REG_PRINTRATEUNIT        ( "printRateUnit" )
+#define SPOOL_REG_PRINTSEPARATORFILE   ( "printSeparatorFile" )
+#define SPOOL_REG_PRINTSHARENAME       ( "printShareName" )
+#define SPOOL_REG_PRINTSPOOLING        ( "printSpooling" )
+#define SPOOL_REGVAL_PRINTWHILESPOOLING        ( "PrintWhileSpooling" )
+#define SPOOL_REGVAL_PRINTAFTERSPOOLED ( "PrintAfterSpooled" )
+#define SPOOL_REGVAL_PRINTDIRECT       ( "PrintDirect" )
+#define SPOOL_REG_PRINTSTAPLINGSUPPORTED       ( "printStaplingSupported" )
+#define SPOOL_REG_PRINTSTARTTIME       ( "printStartTime" )
+#define SPOOL_REG_PRINTSTATUS  ( "printStatus" )
+#define SPOOL_REG_PRIORITY     ( "priority" )
+#define SPOOL_REG_SERVERNAME   ( "serverName" )
+#define SPOOL_REG_SHORTSERVERNAME      ( "shortServerName" )
+#define SPOOL_REG_UNCNAME      ( "uNCName" )
+#define SPOOL_REG_URL  ( "url" )
+#define SPOOL_REG_VERSIONNUMBER        ( "versionNumber" )
 #define SPL_LOCAL_PORT ( "Local Port" )
 #define SPL_TCPIP_PORT ( "Standard TCP/IP Port" )
 #define SPL_XCV_MONITOR_LOCALMON       ( ",XcvMonitor Local Port" )
@@ -1366,9 +1433,9 @@ struct spoolss_DriverInfo8 {
        const char * data_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
        const char * config_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
        const char * help_file;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
+       const char ** dependent_files;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
        const char * monitor_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
        const char * default_datatype;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
-       const char ** dependent_files;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
        const char ** previous_names;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
        NTTIME driver_date;
        uint64_t driver_version;
@@ -1553,7 +1620,8 @@ struct spoolss_FormInfo2 {
        const char * mui_dll;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
        uint32_t ressource_id;
        const char * display_name;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
-       uint32_t lang_id;
+       uint16_t lang_id;
+       uint16_t unused;
 }/* [gensize,public] */;
 
 union spoolss_FormInfo {
@@ -1986,6 +2054,10 @@ struct spoolss_PrinterEnumValues {
        uint32_t data_length;/* [value(ndr_size_spoolss_PrinterData(data,type,ndr->iconv_convenience,ndr->flags))] */
 }/* [relative_base,gensize,public] */;
 
+union spoolss_KeyNames {
+       const char ** string_array;/* [default,flag(LIBNDR_FLAG_STR_NULLTERM)] */
+}/* [nodiscriminant] */;
+
 /* bitmap spoolss_DeleteDriverFlags */
 #define DPD_DELETE_UNUSED_FILES ( 0x00000001 )
 #define DPD_DELETE_SPECIFIC_VERSION ( 0x00000002 )
@@ -3400,23 +3472,82 @@ struct spoolss_4c {
 };
 
 
+struct _spoolss_SetPrinterDataEx {
+       struct {
+               struct policy_handle *handle;/* [ref] */
+               const char *key_name;/* [charset(UTF16)] */
+               const char *value_name;/* [charset(UTF16)] */
+               enum winreg_Type type;
+               DATA_BLOB data;
+               uint32_t _offered;
+       } in;
+
+       struct {
+               WERROR result;
+       } out;
+
+};
+
+
+struct __spoolss_SetPrinterDataEx {
+       struct {
+               enum winreg_Type type;
+       } in;
+
+       struct {
+               union spoolss_PrinterData *data;/* [ref,switch_is(type)] */
+       } out;
+
+};
+
+
 struct spoolss_SetPrinterDataEx {
        struct {
                struct policy_handle *handle;/* [ref] */
                const char *key_name;/* [charset(UTF16)] */
                const char *value_name;/* [charset(UTF16)] */
                enum winreg_Type type;
-               uint8_t *buffer;/* [ref,size_is(offered)] */
+               union spoolss_PrinterData data;/* [subcontext(4),switch_is(type)] */
+               uint32_t _offered;/* [value(ndr_size_spoolss_PrinterData(&data,type,ndr->iconv_convenience,flags))] */
+       } in;
+
+       struct {
+               WERROR result;
+       } out;
+
+};
+
+
+struct _spoolss_GetPrinterDataEx {
+       struct {
+               struct policy_handle *handle;/* [ref] */
+               const char *key_name;/* [charset(UTF16)] */
+               const char *value_name;/* [charset(UTF16)] */
                uint32_t offered;
        } in;
 
        struct {
+               enum winreg_Type *type;/* [ref] */
+               DATA_BLOB *data;/* [ref] */
+               uint32_t *needed;/* [ref] */
                WERROR result;
        } out;
 
 };
 
 
+struct __spoolss_GetPrinterDataEx {
+       struct {
+               enum winreg_Type type;
+       } in;
+
+       struct {
+               union spoolss_PrinterData *data;/* [ref,switch_is(type)] */
+       } out;
+
+};
+
+
 struct spoolss_GetPrinterDataEx {
        struct {
                struct policy_handle *handle;/* [ref] */
@@ -3427,7 +3558,7 @@ struct spoolss_GetPrinterDataEx {
 
        struct {
                enum winreg_Type *type;/* [ref] */
-               uint8_t *buffer;/* [ref,size_is(offered)] */
+               union spoolss_PrinterData *data;/* [subcontext_size(offered),ref,subcontext(4),switch_is(*type)] */
                uint32_t *needed;/* [ref] */
                WERROR result;
        } out;
@@ -3489,7 +3620,8 @@ struct spoolss_EnumPrinterKey {
        } in;
 
        struct {
-               uint16_t *key_buffer;/* [ref,size_is(offered/2)] */
+               uint32_t *_ndr_size;/* [ref] */
+               union spoolss_KeyNames *key_buffer;/* [subcontext_size(*_ndr_size*2),ref,subcontext(0),switch_is(*_ndr_size)] */
                uint32_t *needed;/* [ref] */
                WERROR result;
        } out;