spoolss: add spoolss_StringArray2.
[ira/wip.git] / librpc / idl / spoolss.idl
index bb517a10e12fe345f4c682a879b63f8f0c726aab..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;