1 /*
2  * THE - The Hessling Editor. A text editor similar to VM/CMS xedit.
3  * Copyright (C) 1991-2001 Mark Hessling
4  *
5  * This program is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU General Public License as
7  * published by the Free Software Foundation; either version 2 of
8  * the License, or any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to:
17  *
18  *    The Free Software Foundation, Inc.
19  *    675 Mass Ave,
20  *    Cambridge, MA 02139 USA.
21  *
22  *
23  * If you make modifications to this software that you feel increases
24  * it usefulness for the rest of the community, please email the
25  * changes, enhancements, bug fixes as well as any and all ideas to me.
26  * This software is going to be maintained and enhanced as deemed
27  * necessary by the community.
28  *
29  * Mark Hessling,  M.Hessling@qut.edu.au  http://www.lightlink.com/hessling/
30  */
31 
32 /*
33 $Id: therexx.h,v 1.9 2013/04/01 01:27:34 mark Exp $
34 */
35 
36 #if defined(OS2)
37 # if defined(USE_REGINA)
38 #  include <rexxsaa.h>
39 # endif
40 # if defined(USE_OS2REXX) && !defined(__EMX__)
41 #  include <rexxsaa.h>
42 # endif
43 #endif
44 
45 #if defined(UNIX)
46 # if defined(USE_REGINA)
47 #  include <rexxsaa.h>
48 # endif
49 # if defined(USE_REXXIMC)
50 #  include <rexxsaa.h>
51 # endif
52 # if defined(USE_REXX6000)
53 #  include <rexxsaa.h>
54 # endif
55 # if defined(USE_OREXX) || defined(USE_OOREXX)
56 #  include <rexx.h>
57 # endif
58 # if defined(USE_REXXTRANS)
59 #  include <rexxtrans.h>
60 # endif
61 # if defined(USE_UNIREXX)
62 #  include <rexxsaa.h>
63 #  if defined(HAVE_PROTO) && !defined(ORXXPrototype)
64 #   define ORXXPrototype
65 #  endif
66 # endif
67 #endif
68 
69 #if defined(DOS)
70 # if defined(USE_REGINA)
71 #  include <rexxsaa.h>
72 # endif
73 #endif
74 
75 #if defined(MSWIN)
76 # if !defined(NOREXX)
77 typedef signed short int SHORT;
78 typedef char CHAR;
79 typedef CHAR *PCH;
80 #  include <windows.h>
81 #  include <wrexx.h>
82 #  define RXTHE_PSZ        LPCSTR
83 #  define ULONG            DWORD
84 #  define PUSHORT          LPWORD
85 #  define RXTHE_PFN        FARPROC
86 #  define RXTHE_PUCHAR     LPBYTE
87 #  define RXTHE_PRXSUBCOM  FARPROC
88 #  define RXTHE_PRXEXIT    FARPROC
89 # endif
90 #endif
91 
92 #if defined(WIN32)
93 # if defined(USE_REGINA)
94 #  include <rexxsaa.h>
95 # endif
96 # if defined(USE_OREXX) || defined(USE_OOREXX)
97 #  include <rexx.h>
98 # endif
99 # if defined(USE_QUERCUS)
100 #  include <windows.h>
101 #  include <wrexx32.h>
102 # endif
103 # if defined(USE_WINREXX)
104 #  include <windows.h>
105 #  include <wrexx32.h>
106 # endif
107 # if defined(USE_REXXTRANS)
108 #  include <rexxtrans.h>
109 # endif
110 # if defined(USE_UNIREXX)
111 #  include <windows.h>
112 #  include <rexxsaa.h>
113 #  if defined(HAVE_PROTO) && !defined(ORXXPrototype)
114 #   define ORXXPrototype
115 #  endif
116 # endif
117 #endif
118 
119 #if defined(AMIGA)
120 # if defined(USE_REGINA)
121 #  include <rexxsaa.h>
122 # endif
123 #endif
124 
125 /*
126  * The following abbreviations are used as prefixes for the following
127  * #defines:
128  *
129  * RFH   - RexxFunctionHandler
130  * RRFE  - RexxRegisterFuntionExe
131  * RDF   - RexxDeregisterFuntion
132  *
133  * REH   - RexxExitHandler
134  * RREE  - RexxRegisterExitExe
135  * RDE   - RexxDeregisterExit
136  *
137  * RSH   - RexxSubcomHandler
138  * RRSE  - RexxRegisterSubcomExe
139  * RDS   - RexxDeregisterSubcom
140  *
141  * RS    - RexxStart
142  */
143 #if defined(USE_REXX6000)
144 # define RXSTRING_STRPTR_TYPE PUCHAR  /* PRXFUNC - RexxFunctionHandler */
145 # define RFH_RETURN_TYPE      USHORT
146 # define RFH_ARG0_TYPE        PSZ
147 # define RFH_ARG1_TYPE        ULONG
148 # define RFH_ARG2_TYPE        PRXSTRING
149 # define RFH_ARG3_TYPE        PSZ
150 # define RFH_ARG4_TYPE        PRXSTRING
151 # define RRFE_ARG0_TYPE       PSZ
152 # define RRFE_ARG1_TYPE       PRXFUNC
153 # define RRFE_ARG2_TYPE       PUCHAR
154 # define RDF_ARG0_TYPE        PSZ
155 # define REH_RETURN_TYPE      LONG
156 # define REH_ARG0_TYPE        LONG
157 # define REH_ARG1_TYPE        LONG
158 # define REH_ARG2_TYPE        PEXIT
159 # define RSH_RETURN_TYPE      LONG /* PRXSUBCOM - RexxSubcomHandler */
160 # define RSH_ARG0_TYPE        PRXSTRING
161 # define RSH_ARG1_TYPE        PUSHORT
162 # define RSH_ARG2_TYPE        PRXSTRING
163 # define RRSE_ARG0_TYPE       PSZ
164 # define RRSE_ARG1_TYPE       PRXSUBCOM
165 # define RRSE_ARG2_TYPE       PUCHAR
166 # define RDS_ARG0_TYPE        PSZ
167 # define RS_ARG0_TYPE         LONG
168 # define RS_ARG1_TYPE         PRXSTRING
169 # define RS_ARG2_TYPE         PSZ
170 # define RS_ARG3_TYPE         PRXSTRING
171 # define RS_ARG4_TYPE         PSZ
172 # define RS_ARG5_TYPE         LONG
173 # define RS_ARG6_TYPE         PRXSYSEXIT
174 # define RS_ARG7_TYPE         PLONG
175 # define RS_ARG8_TYPE         PRXSTRING
176 
177 #elif defined(USE_OS2REXX)
178 # if defined(__EMX__)
179 #  define RXSTRING_STRPTR_TYPE PCH
180 #  define RFH_RETURN_TYPE      ULONG
181 #  define RFH_ARG0_TYPE        PCSZ
182 #  define RFH_ARG1_TYPE        ULONG
183 #  define RFH_ARG2_TYPE        PRXSTRING
184 #  define RFH_ARG3_TYPE        PCSZ
185 #  define RFH_ARG4_TYPE        PRXSTRING
186 #  define RRFE_ARG0_TYPE       PSZ
187 #  define RRFE_ARG1_TYPE       RexxFunctionHandler *
188 #  define RDF_ARG0_TYPE        PSZ
189 #  define REH_RETURN_TYPE      LONG
190 #  define REH_ARG0_TYPE        LONG
191 #  define REH_ARG1_TYPE        LONG
192 #  define REH_ARG2_TYPE        PEXIT
193 #  define RREE_ARG0_TYPE       PSZ
194 #  define RREE_ARG1_TYPE       PFN
195 #  define RREE_ARG2_TYPE       PUCHAR
196 #  define RSH_RETURN_TYPE      ULONG
197 #  define RSH_ARG0_TYPE        PRXSTRING
198 #  define RSH_ARG1_TYPE        PUSHORT
199 #  define RSH_ARG2_TYPE        PRXSTRING
200 #  define RRSE_ARG0_TYPE       PSZ
201 #  define RRSE_ARG1_TYPE       PFN
202 #  define RRSE_ARG2_TYPE       PUCHAR
203 #  define RDE_ARG0_TYPE        PSZ
204 #  define RDE_ARG1_TYPE        PSZ
205 #  define RDS_ARG0_TYPE        PSZ
206 #  define RDS_ARG1_TYPE        PSZ
207 #  define RS_ARG0_TYPE         LONG
208 #  define RS_ARG1_TYPE         PRXSTRING
209 #  define RS_ARG2_TYPE         PSZ
210 #  define RS_ARG3_TYPE         PRXSTRING
211 #  define RS_ARG4_TYPE         PSZ
212 #  define RS_ARG5_TYPE         LONG
213 #  define RS_ARG6_TYPE         PRXSYSEXIT
214 #  define RS_ARG7_TYPE         PSHORT
215 #  define RS_ARG8_TYPE         PRXSTRING
216 # else
217 #  define RXSTRING_STRPTR_TYPE PCH
218 #  define RFH_RETURN_TYPE      ULONG
219 #  define RFH_ARG0_TYPE        PUCHAR
220 #  define RFH_ARG1_TYPE        ULONG
221 #  define RFH_ARG2_TYPE        PRXSTRING
222 #  define RFH_ARG3_TYPE        PSZ
223 #  define RFH_ARG4_TYPE        PRXSTRING
224 #  define RRFE_ARG0_TYPE       PSZ
225 #  define RRFE_ARG1_TYPE       PFN
226 #  define RDF_ARG0_TYPE        PSZ
227 #  define REH_RETURN_TYPE      LONG
228 #  define REH_ARG0_TYPE        LONG
229 #  define REH_ARG1_TYPE        LONG
230 #  define REH_ARG2_TYPE        PEXIT
231 #  define RREE_ARG0_TYPE       PSZ
232 #  define RREE_ARG1_TYPE       PFN
233 #  define RREE_ARG2_TYPE       PUCHAR
234 #  define RSH_RETURN_TYPE      ULONG
235 #  define RSH_ARG0_TYPE        PRXSTRING
236 #  define RSH_ARG1_TYPE        PUSHORT
237 #  define RSH_ARG2_TYPE        PRXSTRING
238 #  define RRSE_ARG0_TYPE       PSZ
239 #  define RRSE_ARG1_TYPE       PFN
240 #  define RRSE_ARG2_TYPE       PUCHAR
241 #  define RDE_ARG0_TYPE        PSZ
242 #  define RDE_ARG1_TYPE        PSZ
243 #  define RDS_ARG0_TYPE        PSZ
244 #  define RDS_ARG1_TYPE        PSZ
245 #  define RS_ARG0_TYPE         LONG
246 #  define RS_ARG1_TYPE         PRXSTRING
247 #  define RS_ARG2_TYPE         PSZ
248 #  define RS_ARG3_TYPE         PRXSTRING
249 #  define RS_ARG4_TYPE         PSZ
250 #  define RS_ARG5_TYPE         LONG
251 #  define RS_ARG6_TYPE         PRXSYSEXIT
252 #  define RS_ARG7_TYPE         PSHORT
253 #  define RS_ARG8_TYPE         PRXSTRING
254 # endif
255 
256 #elif defined(USE_REGINA)
257 # if defined(CONST)
258 #  define C_PSZ  PCSZ
259 # else
260 #  define C_PSZ  PSZ
261 # endif
262 # define RXSTRING_STRPTR_TYPE char *
263 # define RFH_RETURN_TYPE      APIRET APIENTRY
264 # define RFH_ARG0_TYPE        C_PSZ
265 # define RFH_ARG1_TYPE        ULONG
266 # define RFH_ARG2_TYPE        PRXSTRING
267 # define RFH_ARG3_TYPE        C_PSZ
268 # define RFH_ARG4_TYPE        PRXSTRING
269 # define RRFE_ARG0_TYPE       C_PSZ
270 # define RRFE_ARG1_TYPE       RexxFunctionHandler*
271 # define RDF_ARG0_TYPE        C_PSZ
272 # define REH_RETURN_TYPE      LONG APIENTRY
273 # define REH_ARG0_TYPE        LONG
274 # define REH_ARG1_TYPE        LONG
275 # define REH_ARG2_TYPE        PEXIT
276 # define RREE_ARG0_TYPE       C_PSZ
277 # define RREE_ARG1_TYPE       RexxExitHandler *
278 # define RREE_ARG2_TYPE       PUCHAR
279 # define RSH_RETURN_TYPE      APIRET APIENTRY
280 # define RSH_ARG0_TYPE        PRXSTRING
281 # define RSH_ARG1_TYPE        PUSHORT
282 # define RSH_ARG2_TYPE        PRXSTRING
283 # define RRSE_ARG0_TYPE       C_PSZ
284 # define RRSE_ARG1_TYPE       RexxSubcomHandler *
285 # define RRSE_ARG2_TYPE       PUCHAR
286 # define RDE_ARG0_TYPE        C_PSZ
287 # define RDE_ARG1_TYPE        C_PSZ
288 # define RDS_ARG0_TYPE        C_PSZ
289 # define RDS_ARG1_TYPE        C_PSZ
290 # define RS_ARG0_TYPE         LONG
291 # define RS_ARG1_TYPE         PRXSTRING
292 # define RS_ARG2_TYPE         C_PSZ
293 # define RS_ARG3_TYPE         PRXSTRING
294 # define RS_ARG4_TYPE         C_PSZ
295 # define RS_ARG5_TYPE         LONG
296 # define RS_ARG6_TYPE         PRXSYSEXIT
297 # define RS_ARG7_TYPE         PSHORT
298 # define RS_ARG8_TYPE         PRXSTRING
299 
300 #elif defined(USE_REXXIMC)
301 # define RXSTRING_STRPTR_TYPE char *
302 # define RFH_RETURN_TYPE      ULONG
303 # define RFH_ARG0_TYPE        PSZ
304 # define RFH_ARG1_TYPE        ULONG
305 # define RFH_ARG2_TYPE        PRXSTRING
306 # define RFH_ARG3_TYPE        PSZ
307 # define RFH_ARG4_TYPE        PRXSTRING
308 # define RRFE_ARG0_TYPE       PSZ
309 # define RRFE_ARG1_TYPE       RexxFunctionHandler*
310 # define RDF_ARG0_TYPE        PSZ
311 # define REH_RETURN_TYPE      LONG
312 # define REH_ARG0_TYPE        LONG
313 # define REH_ARG1_TYPE        LONG
314 # define REH_ARG2_TYPE        PEXIT
315 # define RREE_ARG0_TYPE       PSZ
316 # define RREE_ARG1_TYPE       RexxExitHandler*
317 # define RREE_ARG2_TYPE       PUCHAR
318 # define RSH_RETURN_TYPE      ULONG
319 # define RSH_ARG0_TYPE        PRXSTRING
320 # define RSH_ARG1_TYPE        PUSHORT
321 # define RSH_ARG2_TYPE        PRXSTRING
322 # define RRSE_ARG0_TYPE       PSZ
323 # define RRSE_ARG1_TYPE       RexxSubcomHandler *
324 # define RRSE_ARG2_TYPE       PUCHAR
325 # define RDE_ARG0_TYPE        PSZ
326 # define RDE_ARG1_TYPE        PSZ
327 # define RDS_ARG0_TYPE        PSZ
328 # define RDS_ARG1_TYPE        PSZ
329 # define RS_ARG0_TYPE         long
330 # define RS_ARG1_TYPE         PRXSTRING
331 # define RS_ARG2_TYPE         char *
332 # define RS_ARG3_TYPE         PRXSTRING
333 # define RS_ARG4_TYPE         PSZ
334 # define RS_ARG5_TYPE         long
335 # define RS_ARG6_TYPE         PRXSYSEXIT
336 # define RS_ARG7_TYPE         short *
337 # define RS_ARG8_TYPE         PRXSTRING
338 
339 #elif defined(OOREXX_40) && defined(USE_OOREXX)
340 typedef char CHAR;
341 typedef short int SHORT;
342 typedef char * PSZ;
343 typedef unsigned long ULONG;
344 typedef long LONG;
345 # define RXSTRING_STRPTR_TYPE   char *
346 # define RFH_RETURN_TYPE        size_t REXXENTRY
347 # define RFH_ARG0_TYPE          CONSTANT_STRING
348 # define RFH_ARG1_TYPE          size_t
349 # define RFH_ARG2_TYPE          PCONSTRXSTRING
350 # define RFH_ARG3_TYPE          CONSTANT_STRING
351 # define RFH_ARG4_TYPE          PRXSTRING
352 # define RRFE_ARG0_TYPE         CONSTANT_STRING
353 # define RRFE_ARG1_TYPE         REXXPFN
354 # define RDF_ARG0_TYPE          CONSTANT_STRING
355 # define REH_RETURN_TYPE        RexxReturnCode REXXENTRY
356 # define REH_ARG0_TYPE          int
357 # define REH_ARG1_TYPE          int
358 # define REH_ARG2_TYPE          PEXIT
359 # define RREE_ARG0_TYPE         CONSTANT_STRING
360 # define RREE_ARG1_TYPE         REXXPFN
361 # define RREE_ARG2_TYPE         CONSTANT_STRING
362 # define RSH_RETURN_TYPE        RexxReturnCode REXXENTRY
363 # define RSH_ARG0_TYPE          PCONSTRXSTRING
364 # define RSH_ARG1_TYPE          unsigned short *
365 # define RSH_ARG2_TYPE          PRXSTRING
366 # define RRSE_ARG0_TYPE         CONSTANT_STRING
367 # define RRSE_ARG1_TYPE         REXXPFN
368 # define RRSE_ARG2_TYPE         CONSTANT_STRING
369 # define RDE_ARG0_TYPE          CONSTANT_STRING
370 # define RDE_ARG1_TYPE          CONSTANT_STRING
371 # define RDS_ARG0_TYPE          CONSTANT_STRING
372 # define RDS_ARG1_TYPE          CONSTANT_STRING
373 # define RS_ARG0_TYPE           size_t
374 # define RS_ARG1_TYPE           PCONSTRXSTRING
375 # define RS_ARG2_TYPE           CONSTANT_STRING
376 # define RS_ARG3_TYPE           PRXSTRING
377 # define RS_ARG4_TYPE           CONSTANT_STRING
378 # define RS_ARG5_TYPE           int
379 # define RS_ARG6_TYPE           PRXSYSEXIT
380 # define RS_ARG7_TYPE           short *
381 # define RS_ARG8_TYPE           PRXSTRING
382 
383 #elif defined(USE_OREXX) || defined(USE_OOREXX)
384 # define RXSTRING_STRPTR_TYPE PCH
385 # define RFH_RETURN_TYPE      ULONG APIENTRY
386 # define RFH_ARG0_TYPE        PUCHAR
387 # define RFH_ARG1_TYPE        ULONG
388 # define RFH_ARG2_TYPE        PRXSTRING
389 # define RFH_ARG3_TYPE        PSZ
390 # define RFH_ARG4_TYPE        PRXSTRING
391 # define RRFE_ARG0_TYPE       PSZ
392 # define RRFE_ARG1_TYPE       PFN
393 # define RDF_ARG0_TYPE        PSZ
394 # define REH_RETURN_TYPE      LONG APIENTRY
395 # define REH_ARG0_TYPE        LONG
396 # define REH_ARG1_TYPE        LONG
397 # define REH_ARG2_TYPE        PEXIT
398 # define RREE_ARG0_TYPE       PSZ
399 # define RREE_ARG1_TYPE       PFN
400 # define RREE_ARG2_TYPE       PUCHAR
401 # define RSH_RETURN_TYPE      APIRET APIENTRY
402 # define RSH_ARG0_TYPE        PRXSTRING
403 # define RSH_ARG1_TYPE        PUSHORT
404 # define RSH_ARG2_TYPE        PRXSTRING
405 # define RRSE_ARG0_TYPE       PSZ
406 # define RRSE_ARG1_TYPE       PFN
407 # define RRSE_ARG2_TYPE       PUCHAR
408 # define RDE_ARG0_TYPE        PSZ
409 # define RDE_ARG1_TYPE        PSZ
410 # define RDS_ARG0_TYPE        PSZ
411 # define RDS_ARG1_TYPE        PSZ
412 # define RS_ARG0_TYPE         LONG
413 # define RS_ARG1_TYPE         PRXSTRING
414 # define RS_ARG2_TYPE         PSZ
415 # define RS_ARG3_TYPE         PRXSTRING
416 # define RS_ARG4_TYPE         PSZ
417 # define RS_ARG5_TYPE         LONG
418 # define RS_ARG6_TYPE         PRXSYSEXIT
419 # define RS_ARG7_TYPE         PSHORT
420 # define RS_ARG8_TYPE         PRXSTRING
421 
422 #elif defined(USE_QUERCUS)
423 # define RXSTRING_STRPTR_TYPE LPBYTE
424 # define RFH_RETURN_TYPE      DWORD
425 # define RFH_ARG0_TYPE        LPCSTR
426 # define RFH_ARG1_TYPE        DWORD
427 # define RFH_ARG2_TYPE        PRXSTRING
428 # define RFH_ARG3_TYPE        LPCSTR
429 # define RFH_ARG4_TYPE        PRXSTRING
430 # define RRFE_ARG0_TYPE       LPCSTR
431 # define RRFE_ARG1_TYPE       FARPROC
432 # define RDF_ARG0_TYPE        LPCSTR
433 # define REH_RETURN_TYPE      LONG
434 # define REH_ARG0_TYPE        LONG
435 # define REH_ARG1_TYPE        LONG
436 # define REH_ARG2_TYPE        PEXIT
437 # define RREE_ARG0_TYPE       LPCSTR
438 # define RREE_ARG1_TYPE       FARPROC
439 # define RREE_ARG2_TYPE       LPBYTE
440 # define RDE_ARG0_TYPE        LPCSTR
441 # define RDE_ARG1_TYPE        LPCSTR
442 # define RSH_RETURN_TYPE      DWORD
443 # define RSH_ARG0_TYPE        PRXSTRING
444 # define RSH_ARG1_TYPE        LPWORD
445 # define RSH_ARG2_TYPE        PRXSTRING
446 # define RRSE_ARG0_TYPE       LPCSTR
447 # define RRSE_ARG1_TYPE       FARPROC
448 # define RRSE_ARG2_TYPE       LPBYTE
449 # define RDS_ARG0_TYPE        LPCSTR
450 # define RDS_ARG1_TYPE        LPCSTR
451 # define RS_ARG0_TYPE         int
452 # define RS_ARG1_TYPE         PRXSTRING
453 # define RS_ARG2_TYPE         LPCSTR
454 # define RS_ARG3_TYPE         PRXSTRING
455 # define RS_ARG4_TYPE         LPCSTR
456 # define RS_ARG5_TYPE         int
457 # define RS_ARG6_TYPE         PRXSYSEXIT
458 # define RS_ARG7_TYPE         LPSHORT
459 # define RS_ARG8_TYPE         PRXSTRING
460 
461 #elif defined(USE_WINREXX)
462 # define RXSTRING_STRPTR_TYPE LPBYTE
463 # define RFH_RETURN_TYPE      int APIENTRY
464 # define RFH_ARG0_TYPE        LPCSTR
465 # define RFH_ARG1_TYPE        UINT
466 # define RFH_ARG2_TYPE        PRXSTRING
467 # define RFH_ARG3_TYPE        LPCSTR
468 # define RFH_ARG4_TYPE        PRXSTRING
469 # define RRFE_ARG0_TYPE       LPCSTR
470 # define RRFE_ARG1_TYPE       FARPROC
471 # define RDF_ARG0_TYPE        LPCSTR
472 # define REH_RETURN_TYPE      int APIENTRY
473 # define REH_ARG0_TYPE        int
474 # define REH_ARG1_TYPE        int
475 # define REH_ARG2_TYPE        PEXIT
476 # define RREE_ARG0_TYPE       LPCSTR
477 # define RREE_ARG1_TYPE       FARPROC
478 # define RREE_ARG2_TYPE       LPBYTE
479 # define RDE_ARG0_TYPE        LPCSTR
480 # define RDE_ARG1_TYPE        LPCSTR
481 # define RSH_RETURN_TYPE      int APIENTRY
482 # define RSH_ARG0_TYPE        PRXSTRING
483 # define RSH_ARG1_TYPE        LPWORD
484 # define RSH_ARG2_TYPE        PRXSTRING
485 # define RRSE_ARG0_TYPE       LPCSTR
486 # define RRSE_ARG1_TYPE       FARPROC
487 # define RRSE_ARG2_TYPE       LPBYTE
488 # define RDS_ARG0_TYPE        LPCSTR
489 # define RDS_ARG1_TYPE        LPCSTR
490 # define RS_ARG0_TYPE         int
491 # define RS_ARG1_TYPE         PRXSTRING
492 # define RS_ARG2_TYPE         LPCSTR
493 # define RS_ARG3_TYPE         PRXSTRING
494 # define RS_ARG4_TYPE         LPCSTR
495 # define RS_ARG5_TYPE         int
496 # define RS_ARG6_TYPE         PRXSYSEXIT
497 # define RS_ARG7_TYPE         LPSHORT
498 # define RS_ARG8_TYPE         PRXSTRING
499 
500 #elif defined(USE_REXXTRANS)
501 # if defined(__EMX__)
502 #  define RXSTRING_STRPTR_TYPE PCH
503 #  define RFH_RETURN_TYPE      ULONG
504 #  define RFH_ARG0_TYPE        PCSZ
505 #  define RFH_ARG1_TYPE        ULONG
506 #  define RFH_ARG2_TYPE        PRXSTRING
507 #  define RFH_ARG3_TYPE        PCSZ
508 #  define RFH_ARG4_TYPE        PRXSTRING
509 #  define RRFE_ARG0_TYPE       PSZ
510 #  define RRFE_ARG1_TYPE       RexxFunctionHandler *
511 #  define RDF_ARG0_TYPE        PSZ
512 #  define REH_RETURN_TYPE      LONG
513 #  define REH_ARG0_TYPE        LONG
514 #  define REH_ARG1_TYPE        LONG
515 #  define REH_ARG2_TYPE        PEXIT
516 #  define RREE_ARG0_TYPE       PSZ
517 #  define RREE_ARG1_TYPE       PFN
518 #  define RREE_ARG2_TYPE       PUCHAR
519 #  define RSH_RETURN_TYPE      ULONG
520 #  define RSH_ARG0_TYPE        PRXSTRING
521 #  define RSH_ARG1_TYPE        PUSHORT
522 #  define RSH_ARG2_TYPE        PRXSTRING
523 #  define RRSE_ARG0_TYPE       PSZ
524 #  define RRSE_ARG1_TYPE       PFN
525 #  define RRSE_ARG2_TYPE       PUCHAR
526 #  define RDE_ARG0_TYPE        PSZ
527 #  define RDE_ARG1_TYPE        PSZ
528 #  define RDS_ARG0_TYPE        PSZ
529 #  define RDS_ARG1_TYPE        PSZ
530 #  define RS_ARG0_TYPE         LONG
531 #  define RS_ARG1_TYPE         PRXSTRING
532 #  define RS_ARG2_TYPE         PSZ
533 #  define RS_ARG3_TYPE         PRXSTRING
534 #  define RS_ARG4_TYPE         PSZ
535 #  define RS_ARG5_TYPE         LONG
536 #  define RS_ARG6_TYPE         PRXSYSEXIT
537 #  define RS_ARG7_TYPE         PSHORT
538 #  define RS_ARG8_TYPE         PRXSTRING
539 # else
540 #  define RXSTRING_STRPTR_TYPE char *
541 #  define RFH_RETURN_TYPE      APIRET APIENTRY
542 #  define RFH_ARG0_TYPE        PUCHAR
543 #  define RFH_ARG1_TYPE        ULONG
544 #  define RFH_ARG2_TYPE        PRXSTRING
545 #  define RFH_ARG3_TYPE        PSZ
546 #  define RFH_ARG4_TYPE        PRXSTRING
547 #  define RRFE_ARG0_TYPE       PSZ
548 #  define RRFE_ARG1_TYPE       PFN
549 #  define RDF_ARG0_TYPE        PSZ
550 #  define REH_RETURN_TYPE      LONG APIENTRY
551 #  define REH_ARG0_TYPE        LONG
552 #  define REH_ARG1_TYPE        LONG
553 #  define REH_ARG2_TYPE        PEXIT
554 #  define RREE_ARG0_TYPE       PSZ
555 #  define RREE_ARG1_TYPE       PFN
556 #  define RREE_ARG2_TYPE       PUCHAR
557 #  define RSH_RETURN_TYPE      APIRET APIENTRY
558 #  define RSH_ARG0_TYPE        PRXSTRING
559 #  define RSH_ARG1_TYPE        PUSHORT
560 #  define RSH_ARG2_TYPE        PRXSTRING
561 #  define RRSE_ARG0_TYPE       PSZ
562 #  define RRSE_ARG1_TYPE       PFN
563 #  define RRSE_ARG2_TYPE       PUCHAR
564 #  define RDE_ARG0_TYPE        PSZ
565 #  define RDE_ARG1_TYPE        PSZ
566 #  define RDS_ARG0_TYPE        PSZ
567 #  define RDS_ARG1_TYPE        PSZ
568 #  define RS_ARG0_TYPE         LONG
569 #  define RS_ARG1_TYPE         PRXSTRING
570 #  define RS_ARG2_TYPE         PSZ
571 #  define RS_ARG3_TYPE         PRXSTRING
572 #  define RS_ARG4_TYPE         PSZ
573 #  define RS_ARG5_TYPE         LONG
574 #  define RS_ARG6_TYPE         PRXSYSEXIT
575 #  define RS_ARG7_TYPE         PSHORT
576 #  define RS_ARG8_TYPE         PRXSTRING
577 # endif
578 
579 #elif defined(USE_UNIREXX)
580 # define RXSTRING_STRPTR_TYPE PCH
581 #ifdef WIN32
582 #  define RFH_RETURN_TYPE     ULONG ORXXCDecl ORXXLoadDS
583 # else
584 #  define RFH_RETURN_TYPE     ULONG
585 #endif
586 # define RFH_ARG0_TYPE        PUCHAR
587 # define RFH_ARG1_TYPE        ULONG
588 # define RFH_ARG2_TYPE        PRXSTRING
589 # define RFH_ARG3_TYPE        PSZ
590 # define RFH_ARG4_TYPE        PRXSTRING
591 # define RRFE_ARG0_TYPE       PSZ
592 # define RRFE_ARG1_TYPE       PFN
593 # define RDF_ARG0_TYPE        PSZ
594 # ifdef WIN32
595 #  define REH_RETURN_TYPE     LONG ORXXCDecl ORXXLoadDS
596 # else
597 #  define REH_RETURN_TYPE     LONG
598 #endif
599 # define REH_ARG0_TYPE        LONG
600 # define REH_ARG1_TYPE        LONG
601 # define REH_ARG2_TYPE        PEXIT
602 # define RREE_ARG0_TYPE       PSZ
603 # define RREE_ARG1_TYPE       PFN
604 # define RREE_ARG2_TYPE       PUCHAR
605 # ifdef WIN32
606 #  define RSH_RETURN_TYPE     ULONG ORXXCDecl ORXXLoadDS
607 # else
608 #  define RSH_RETURN_TYPE     ULONG
609 #endif
610 # define RSH_ARG0_TYPE        PRXSTRING
611 # define RSH_ARG1_TYPE        PUSHORT
612 # define RSH_ARG2_TYPE        PRXSTRING
613 # define RRSE_ARG0_TYPE       PSZ
614 # define RRSE_ARG1_TYPE       PFN
615 # define RRSE_ARG2_TYPE       PUCHAR
616 # define RDE_ARG0_TYPE        PSZ
617 # define RDE_ARG1_TYPE        PSZ
618 # define RDS_ARG0_TYPE        PSZ
619 # define RDS_ARG1_TYPE        PSZ
620 # define RS_ARG0_TYPE         LONG
621 # define RS_ARG1_TYPE         PRXSTRING
622 # define RS_ARG2_TYPE         PSZ
623 # define RS_ARG3_TYPE         PRXSTRING
624 # define RS_ARG4_TYPE         PSZ
625 # define RS_ARG5_TYPE         LONG
626 # define RS_ARG6_TYPE         PRXSYSEXIT
627 # define RS_ARG7_TYPE         PSHORT
628 # define RS_ARG8_TYPE         PRXSTRING
629 
630 #endif
631 
632