diff options
Diffstat (limited to 'source4')
-rw-r--r-- | source4/librpc/idl/spoolss.idl | 20 | ||||
-rw-r--r-- | source4/torture/rpc/spoolss.c | 20 |
2 files changed, 39 insertions, 1 deletions
diff --git a/source4/librpc/idl/spoolss.idl b/source4/librpc/idl/spoolss.idl index 2c318ce4a1..593ea3f202 100644 --- a/source4/librpc/idl/spoolss.idl +++ b/source4/librpc/idl/spoolss.idl @@ -304,9 +304,27 @@ [in,out,ref] policy_handle *handle ); + typedef struct { + uint32 flags; + [relative] unistr *name; + uint32 width; + uint32 length; + uint32 left; + uint32 top; + uint32 right; + uint32 bottom; + } spoolss_AddFormInfo1; + + typedef union { + [case(1)] spoolss_AddFormInfo1 *info1; + } spoolss_AddFormInfo; + /******************/ /* Function: 0x1e */ - WERROR spoolss_1e( + WERROR spoolss_AddForm( + [in,ref] policy_handle *handle, + [in] uint32 level, + [in,switch_is(level)] spoolss_AddFormInfo info ); /******************/ diff --git a/source4/torture/rpc/spoolss.c b/source4/torture/rpc/spoolss.c index 6913290d1a..268288880c 100644 --- a/source4/torture/rpc/spoolss.c +++ b/source4/torture/rpc/spoolss.c @@ -122,6 +122,26 @@ BOOL test_GetForm(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, printf("No form info returned"); return False; } + + { + struct spoolss_AddForm af; + struct spoolss_AddFormInfo1 form; + + af.in.handle = handle; + af.in.level = 1; + form.flags = 2; + form.name = "testform3"; + form.width = r.out.info->info1.width; + form.length = r.out.info->info1.length; + form.left = r.out.info->info1.left; + form.top = r.out.info->info1.top; + form.right = r.out.info->info1.right; + form.bottom = r.out.info->info1.bottom; + af.in.info.info1 = &form; + + status = dcerpc_spoolss_AddForm( + p, mem_ctx, &af); + } } return True; |