From 842383552178751c46d6f2dbe8cd7cbd38c034f7 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Mon, 6 Jun 2005 12:08:05 +0000 Subject: r7331: fix parsing of spoolss_SetPrinter() metze (This used to be commit b0e7092bc585912882d06c56fd7a536c9b8936d6) --- source4/librpc/idl/spoolss.idl | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) (limited to 'source4') diff --git a/source4/librpc/idl/spoolss.idl b/source4/librpc/idl/spoolss.idl index 201226d548..2560a10524 100644 --- a/source4/librpc/idl/spoolss.idl +++ b/source4/librpc/idl/spoolss.idl @@ -278,13 +278,9 @@ /******************/ /* Function: 0x01 */ - typedef struct { - uint32 foo; - } spoolss_Devmode; - typedef struct { uint32 size; - spoolss_Devmode *devmode; + [subcontext(4),subcontext_size(size)] spoolss_DeviceMode *devmode; } spoolss_DevmodeContainer; WERROR spoolss_OpenPrinter( @@ -387,13 +383,32 @@ /******************/ /* Function: 0x07 */ + typedef [switch_type(uint32)] union { + [case(0)] spoolss_PrinterInfo0 *info0; + [case(1)] spoolss_PrinterInfo1 *info1; + [case(2)] spoolss_PrinterInfo2 *info2; + [case(3)] spoolss_PrinterInfo3 *info3; + [case(4)] spoolss_PrinterInfo4 *info4; + [case(5)] spoolss_PrinterInfo5 *info5; + [case(6)] spoolss_PrinterInfo6 *info6; + [case(7)] spoolss_PrinterInfo7 *info7; + [case(8)] spoolss_DeviceModeInfo *info8; + [case(9)] spoolss_DeviceModeInfo *info9; + [default]; + } spoolss_SetPrinterInfo; + + typedef struct { + uint32 size; + [subcontext(4),subcontext_size(size)] security_descriptor *sd; + } spoolss_SecDescContainer; + WERROR spoolss_SetPrinter( [in,ref] policy_handle *handle, - [in] uint32 level, - [in,subcontext(4),switch_is(level)] spoolss_PrinterInfo *info, - [in] spoolss_DevmodeContainer devmode_ctr, - [in,relative,subcontext(0)] security_descriptor *secdesc, - [in] spoolss_PrinterControl command + [in] uint32 level, + [in,switch_is(level)] spoolss_SetPrinterInfo info, + [in] spoolss_DevmodeContainer devmode_ctr, + [in] spoolss_SecDescContainer secdesc_ctr, + [in] spoolss_PrinterControl command ); /******************/ -- cgit