r3401: Fix IDL for SetForm RPC.
authorTim Potter <tpot@samba.org>
Sun, 31 Oct 2004 03:54:20 +0000 (03:54 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:05:06 +0000 (13:05 -0500)
source/librpc/idl/spoolss.idl
source/scripting/swig/torture/spoolss.py

index 204a7ec96c1fd86c4106e439b7bbc9c280316a4e..486fcc6f947a3e1dc2410c70dfbcfcf7f27c2748 100644 (file)
                [in,out,ref] uint32 *buf_size
        );
 
+       typedef struct {
+               uint32 flags;
+               unistr *formname;
+               uint32 width;
+               uint32 length;
+               uint32 left;
+               uint32 top;
+               uint32 right;
+               uint32 bottom;
+       } spoolss_SetFormInfo1;
+
+       typedef union {
+               [case(1)] spoolss_AddFormInfo1 *info1;
+       } spoolss_SetFormInfo;
+
        /******************/
        /* Function: 0x21 */
        WERROR spoolss_SetForm(
                [in,ref] policy_handle *handle,
                [in] unistr formname,
                [in] uint32 level,
-               [in,switch_is(level)] spoolss_AddFormInfo info
+               [in,switch_is(level)] spoolss_SetFormInfo info
        );
 
        typedef [nodiscriminant,public] union {
index 78c74569f50d59a242a303cd18247f39d8429a85..4c65669d8fdd402c676ec06f559b69687de51c19 100644 (file)
@@ -129,6 +129,26 @@ def test_GetForm(pipe, handle, formname):
     return result['info']['info1']
     
 
+def test_SetForm(pipe, handle, form):
+
+    print 'testing spoolss_SetForm'
+
+    r = {}
+    r['handle'] = handle
+    r['level'] = 1
+    r['formname'] = form['info1']['formname']
+    r['info'] = form
+
+    dcerpc.spoolss_SetForm(pipe, r)
+
+    newform = test_GetForm(pipe, handle, r['formname'])
+
+    if form['info1'] != newform:
+        print 'SetForm: mismatch: %s != %s' % \
+              (r['info']['info1'], f)
+        sys.exit(1)
+
+
 def test_AddForm(pipe, handle):
 
     print 'testing spoolss_AddForm'
@@ -141,13 +161,13 @@ def test_AddForm(pipe, handle):
     r['info'] = {}
     r['info']['info1'] = {}
     r['info']['info1']['formname'] = formname
-    r['info']['info1']['flags'] = 0
-    r['info']['info1']['width'] = 1
-    r['info']['info1']['length'] = 2
-    r['info']['info1']['left'] = 3
-    r['info']['info1']['top'] = 4
-    r['info']['info1']['right'] = 5
-    r['info']['info1']['bottom'] = 6
+    r['info']['info1']['flags'] = 0x0002
+    r['info']['info1']['width'] = 100
+    r['info']['info1']['length'] = 100
+    r['info']['info1']['left'] = 0
+    r['info']['info1']['top'] = 1000
+    r['info']['info1']['right'] = 2000
+    r['info']['info1']['bottom'] = 3000
 
     try:
         result = dcerpc.spoolss_AddForm(pipe, r)
@@ -159,14 +179,13 @@ def test_AddForm(pipe, handle):
     f = test_GetForm(pipe, handle, formname)
 
     if r['info']['info1'] != f:
-        print 'Form type mismatch: %s != %s' % \
+        print 'AddForm: mismatch: %s != %s' % \
               (r['info']['info1'], f)
         sys.exit(1)
 
     r['formname'] = formname
-    r['info']['info1']['unknown'] = 1
 
-    dcerpc.spoolss_SetForm(pipe, r)
+    test_SetForm(pipe, handle, r['info'])
 
     test_DeleteForm(pipe, handle, formname)