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),
27 // Add one to an integer
32 // Echo an array of bytes back at the caller
35 [in] [size_is(len)] char in_data[],
36 [out] [size_is(len)] char out_data[]
38 // Sink data to the server
41 [in] [size_is(len)] char in_data[]
43 // Source data from server
46 [out] [size_is(len)] char out_data[]
49 #define unistr [string] wchar_t *
55 const long myconstant = 42;
64 /* test some alignment issues */
97 [case(1)] echo_info1 info1;
98 [case(2)] echo_info2 info2;
99 [case(3)] echo_info3 info3;
100 [case(4)] echo_info4 info4;
101 [case(5)] echo_info5 info5;
102 [case(6)] echo_info6 info6;
103 [case(7)] echo_info7 info7;
108 [out,switch_is(level)] echo_Info **info
120 typedef [v1_enum] enum {
131 [case(ECHO_ENUM1)] echo_Enum1 e1;
132 [case(ECHO_ENUM2)] echo_Enum2 e2;
136 [in,out,ref] echo_Enum1 *foo1,
137 [in,out,ref] echo_Enum2 *foo2,
138 [in,out,ref,switch_is(*foo1)] echo_Enum3 *foo3
143 [size_is(x)] uint16 surrounding[*];
146 void echo_TestSurrounding(
147 [in,out,ref] echo_Surrounding *data