spoolss: add spoolss_StringArray2.
[ira/wip.git] / librpc / idl / spoolss.idl
index 04681bf246175c45f97b445f1bcb4c287ab50396..84373aacb948a6fcf1d7292f8618755659daa733 100644 (file)
@@ -368,8 +368,10 @@ import "misc.idl", "security.idl", "winreg.idl";
                DMDITHER_GRAYSCALE      = 0x0000000A
        } spoolss_DeviceModeDitherType;
 
+       const int MAXDEVICENAME = 32;
+
        typedef [public,gensize] struct {
-               [charset(UTF16)] uint16 devicename[32];
+               [charset(UTF16)] uint16 devicename[MAXDEVICENAME];
                spoolss_DeviceModeSpecVersion specversion;
                uint16 driverversion;
                uint16 size;
@@ -388,7 +390,7 @@ import "misc.idl", "security.idl", "winreg.idl";
                uint16 yresolution;
                spoolss_DeviceModeTTOption ttoption;
                spoolss_DeviceModeCollate collate;
-               [charset(UTF16)] uint16 formname[32];
+               [charset(UTF16)] uint16 formname[MAXDEVICENAME];
                uint16 logpixels; /* reserved */
                uint32 bitsperpel; /* reserved */
                uint32 pelswidth; /* reserved */
@@ -978,6 +980,11 @@ 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;
@@ -1527,6 +1534,74 @@ import "misc.idl", "security.idl", "winreg.idl";
                [default,flag(NDR_REMAINING)] DATA_BLOB data;
        } spoolss_PrinterData;
 
+       /* predefined registry key names for printer data */
+
+       const string SPOOL_PRINTERDATA_KEY              = "PrinterDriverData";
+       const string SPOOL_DSSPOOLER_KEY                = "DsSpooler";
+       const string SPOOL_DSDRIVER_KEY                 = "DsDriver";
+       const string SPOOL_DSUSER_KEY                   = "DsUser";
+       const string SPOOL_PNPDATA_KEY                  = "PnPData";
+       const string SPOOL_OID_KEY                      = "OID";
+
+       /* predefined value names for printer data */
+
+       const string SPOOL_REG_ASSETNUMBER              = "assetNumber";
+       const string SPOOL_REG_BYTESPERMINUTE           = "bytesPerMinute";
+       const string SPOOL_REG_DEFAULTPRIORITY          = "defaultPriority";
+       const string SPOOL_REG_DESCRIPTION              = "description";
+       const string SPOOL_REG_DRIVERNAME               = "driverName";
+       const string SPOOL_REG_DRIVERVERSION            = "driverVersion";
+       const string SPOOL_REG_FLAGS                    = "flags";
+       const string SPOOL_REG_LOCATION                 = "location";
+       const string SPOOL_REG_OPERATINGSYSTEM          = "operatingSystem";
+       const string SPOOL_REG_OPERATINGSYSTEMHOTFIX    = "operatingSystemHotfix";
+       const string SPOOL_REG_OPERATINGSYSTEMSERVICEPACK = "operatingSystemServicePack";
+       const string SPOOL_REG_OPERATINGSYSTEMVERSION   = "operatingSystemVersion";
+       const string SPOOL_REG_PORTNAME                 = "portName";
+       const string SPOOL_REG_PRINTATTRIBUTES          = "printAttributes";
+       const string SPOOL_REG_PRINTBINNAMES            = "printBinNames";
+       const string SPOOL_REG_PRINTCOLLATE             = "printCollate";
+       const string SPOOL_REG_PRINTCOLOR               = "printColor";
+       const string SPOOL_REG_PRINTDUPLEXSUPPORTED     = "printDuplexSupported";
+       const string SPOOL_REG_PRINTENDTIME             = "printEndTime";
+       const string SPOOL_REG_PRINTERNAME              = "printerName";
+       const string SPOOL_REG_PRINTFORMNAME            = "printFormName";
+       const string SPOOL_REG_PRINTKEEPPRINTEDJOBS     = "printKeepPrintedJobs";
+       const string SPOOL_REG_PRINTLANGUAGE            = "printLanguage";
+       const string SPOOL_REG_PRINTMACADDRESS          = "printMACAddress";
+       const string SPOOL_REG_PRINTMAXCOPIES           = "printMaxCopies";
+       const string SPOOL_REG_PRINTMAXRESOLUTIONSUPPORTED = "printMaxResolutionSupported";
+       const string SPOOL_REG_PRINTMAXXEXTENT          = "printMaxXExtent";
+       const string SPOOL_REG_PRINTMAXYEXTENT          = "printMaxYExtent";
+       const string SPOOL_REG_PRINTMEDIAREADY          = "printMediaReady";
+       const string SPOOL_REG_PRINTMEDIASUPPORTED      = "printMediaSupported";
+       const string SPOOL_REG_PRINTMEMORY              = "printMemory";
+       const string SPOOL_REG_PRINTMINXEXTENT          = "printMinXExtent";
+       const string SPOOL_REG_PRINTMINYEXTENT          = "printMinYExtent";
+       const string SPOOL_REG_PRINTNETWORKADDRESS      = "printNetworkAddress";
+       const string SPOOL_REG_PRINTNOTIFY              = "printNotify";
+       const string SPOOL_REG_PRINTNUMBERUP            = "printNumberUp";
+       const string SPOOL_REG_PRINTORIENTATIONSSUPPORTED = "printOrientationsSupported";
+       const string SPOOL_REG_PRINTOWNER               = "printOwner";
+       const string SPOOL_REG_PRINTPAGESPERMINUTE      = "printPagesPerMinute";
+       const string SPOOL_REG_PRINTRATE                = "printRate";
+       const string SPOOL_REG_PRINTRATEUNIT            = "printRateUnit";
+       const string SPOOL_REG_PRINTSEPARATORFILE       = "printSeparatorFile";
+       const string SPOOL_REG_PRINTSHARENAME           = "printShareName";
+       const string SPOOL_REG_PRINTSPOOLING            = "printSpooling";
+       const string SPOOL_REGVAL_PRINTWHILESPOOLING    = "PrintWhileSpooling";
+       const string SPOOL_REGVAL_PRINTAFTERSPOOLED     = "PrintAfterSpooled";
+       const string SPOOL_REGVAL_PRINTDIRECT           = "PrintDirect";
+       const string SPOOL_REG_PRINTSTAPLINGSUPPORTED   = "printStaplingSupported";
+       const string SPOOL_REG_PRINTSTARTTIME           = "printStartTime";
+       const string SPOOL_REG_PRINTSTATUS              = "printStatus";
+       const string SPOOL_REG_PRIORITY                 = "priority";
+       const string SPOOL_REG_SERVERNAME               = "serverName";
+       const string SPOOL_REG_SHORTSERVERNAME          = "shortServerName";
+       const string SPOOL_REG_UNCNAME                  = "uNCName";
+       const string SPOOL_REG_URL                      = "url";
+       const string SPOOL_REG_VERSIONNUMBER            = "versionNumber";
+
        [noopnum,noprint,public] WERROR _spoolss_GetPrinterData(
                [in,ref] policy_handle *handle,
                [in]     [string,charset(UTF16)] uint16 value_name[],
@@ -2508,7 +2583,7 @@ import "misc.idl", "security.idl", "winreg.idl";
        [public] WERROR spoolss_EnumPrinterKey(
                [in, ref] policy_handle *handle,
                [in] [string,charset(UTF16)] uint16 key_name[],
-               [out,ref] [subcontext(0),subcontext_size(offered)] nstring_array **key_buffer,
+               [out,ref] [size_is(offered/2)] uint16 *key_buffer,
                [in] uint32 offered,
                [out,ref] uint32 *needed
        );