4 Copyright (C) Tim Potter 2003
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
22 /*uuid(60a15ec5-4de8-11d7-a637-005056a20182),
24 uuid("e3514235-4b06-11d1-ab04-00c04fc2dcd2"),
26 pointer_default(unique)
30 #define unistr [string] wchar_t *
35 // Add one to an integer
41 // Echo an array of bytes back at the caller
44 [in] [size_is(len)] char in_data[],
45 [out] [size_is(len)] char out_data[]
47 // Sink data to the server
50 [in] [size_is(len)] char in_data[]
52 // Source data from server
55 [out] [size_is(len)] char out_data[]
58 const long myconstant = 42;
67 /* test some alignment issues */
100 [case(1)] echo_info1 info1;
101 [case(2)] echo_info2 info2;
102 [case(3)] echo_info3 info3;
103 [case(4)] echo_info4 info4;
104 [case(5)] echo_info5 info5;
105 [case(6)] echo_info6 info6;
106 [case(7)] echo_info7 info7;
111 [out,switch_is(level)] echo_Info **info
118 typedef pipe byte BYTE_PIPE;
131 typedef [v1_enum] enum {
142 [case(ECHO_ENUM1)] echo_Enum1 e1;
143 [case(ECHO_ENUM2)] echo_Enum2 e2;
147 [in,out,ref] echo_Enum1 *foo1,
148 [in,out,ref] echo_Enum2 *foo2,
149 [in,out,ref,switch_is(*foo1)] echo_Enum3 *foo3
154 [size_is(x)] uint16 surrounding[*];
157 void echo_TestSurrounding(
158 [in,out,ref] echo_Surrounding *data
161 uint16 echo_TestDoublePointer([in,ref] uint16 ***data);