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 3 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, see <http://www.gnu.org/licenses/>.
21 #define unistr [string] wchar_t *
25 uuid(60a15ec5-4de8-11d7-a637-005056a20182),
30 // Add one to an integer
35 // Echo an array of bytes back at the caller
38 [in] [size_is(len)] char in_data[],
39 [out] [size_is(len)] char out_data[]
41 // Sink data to the server
44 [in] [size_is(len)] char in_data[]
46 // Source data from server
49 [out] [size_is(len)] char out_data[]
51 const long myconstant = 42;
59 /* test some alignment issues */
92 [case(1)] echo_info1 info1;
93 [case(2)] echo_info2 info2;
94 [case(3)] echo_info3 info3;
95 [case(4)] echo_info4 info4;
96 [case(5)] echo_info5 info5;
97 [case(6)] echo_info6 info6;
98 [case(7)] echo_info7 info7;
103 [out,switch_is(level)] echo_Info **info
115 typedef [v1_enum] enum {
126 [case(ECHO_ENUM1)] echo_Enum1 e1;
127 [case(ECHO_ENUM2)] echo_Enum2 e2;
131 [in,out,ref] echo_Enum1 *foo1,
132 [in,out,ref] echo_Enum2 *foo2,
133 [in,out,ref,switch_is(*foo1)] echo_Enum3 *foo3
138 [size_is(x)] short surrounding[*];
141 void echo_TestSurrounding(
142 [in,out,ref] echo_Surrounding *data
145 short echo_TestDoublePointer([in] short ***data);