Fix the build on Win32, and use NEGOTIATE security (to allow kerberos)
[kai/samba.git] / testprogs / win32 / rpcecho / rpcecho.idl
index deb07e2528615d9d777c707139c620adacecbf03..b0ddb81a3829b8bc701dbea14f7c03844b00b631 100644 (file)
@@ -5,7 +5,7 @@
    
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
    
    This program is distributed in the hope that it will be useful,
    GNU General Public License for more details.
    
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
+#ifndef __PIDL__
+#define unistr [string] wchar_t *
+#endif
+
 [
 uuid(60a15ec5-4de8-11d7-a637-005056a20182),
 version(1.0)
@@ -45,13 +48,6 @@ interface rpcecho
                [in] int len,
                [out] [size_is(len)] char out_data[]
        );
-
-#define unistr [string] wchar_t *
-#define uint8 char
-#define uint16 short
-#define uint32 long
-#define HYPER_T hyper
-
        const long myconstant = 42;
 
        /* test strings */
@@ -60,36 +56,35 @@ interface rpcecho
                [out]  unistr *s2
                );
 
-
        /* test some alignment issues */
        typedef struct {
-               uint8 v;
+               char v;
        } echo_info1;
 
        typedef struct {
-               uint16 v;
+               short v;
        } echo_info2;
 
        typedef struct {
-               uint32 v;
+               long v;
        } echo_info3;
 
        typedef struct {
-               HYPER_T v;
+               hyper v;
        } echo_info4;
 
        typedef struct {
-               uint8 v1;
-               HYPER_T v2;
+               char v1;
+               hyper v2;
        } echo_info5;
 
        typedef struct {
-               uint8 v1;
+               char v1;
                echo_info1 info1;
        } echo_info6;
 
        typedef struct {
-               uint8 v1;
+               char v1;
                echo_info4 info4;
        } echo_info7;
 
@@ -104,7 +99,7 @@ interface rpcecho
        } echo_Info;
 
        long TestCall2 (
-               [in]                     uint16 level,
+               [in]                     short level,
                [out,switch_is(level)]   echo_Info **info
                );
 
@@ -138,4 +133,14 @@ interface rpcecho
                [in,out,ref,switch_is(*foo1)] echo_Enum3 *foo3
                );
 
+       typedef struct {
+               long x;
+               [size_is(x)] short surrounding[*];
+       } echo_Surrounding;
+
+       void echo_TestSurrounding(
+               [in,out,ref] echo_Surrounding *data
+       );
+
+       short echo_TestDoublePointer([in] short ***data);
 }