home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / the25.zip / thesrc251.zip / therexx.h < prev    next >
Text File  |  1998-07-29  |  15KB  |  455 lines

  1. /*
  2.  * THE - The Hessling Editor. A text editor similar to VM/CMS xedit.
  3.  * Copyright (C) 1991-1997 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                 Email:             M.Hessling@qut.edu.au
  30.  * PO Box 203                    Phone:                    +617 3802 0800
  31.  * Bellara                       http://www.gu.edu.au/gext/the/markh.html
  32.  * QLD 4507                      **** Maintainer PDCurses & REXX/SQL ****
  33.  * Australia                     ************* Author of THE ************
  34.  */
  35.  
  36. /*
  37. $Id: rexx.h 2.1 1995/06/24 16:31:06 MH Rel MH $
  38. */
  39.  
  40. #if defined(OS2)
  41. # if defined(USE_REGINA)
  42. #  include <rexxsaa.h>
  43. # else
  44. #  if !defined(__EMX__)
  45. #   include <rexxsaa.h>
  46. #  endif
  47. # endif
  48. #endif
  49.  
  50. #if defined(UNIX)
  51. # if defined(USE_REGINA)
  52. #  include <rexxsaa.h>
  53. # endif
  54. # if defined(USE_REXXIMC)
  55. #  include <rexxsaa.h>
  56. # endif
  57. # if defined(USE_REXX6000)
  58. #  include <rexxsaa.h>
  59. # endif
  60. # if defined(USE_OREXX)
  61. #  include <rexx.h>
  62. # endif
  63. # if defined(USE_UNIREXX)
  64. #  include <rexxsaa.h>
  65. #  if defined(HAVE_PROTO) && !defined(ORXXPrototype)
  66. #   define ORXXPrototype
  67. #  endif
  68. # endif
  69. #endif
  70.  
  71. #if defined(DOS)
  72. # if defined(USE_REGINA)
  73. #  include <rexxsaa.h>
  74. # endif
  75. #endif
  76.  
  77. #if defined(MSWIN)
  78. # if !defined(NOREXX)
  79. typedef signed short int SHORT;
  80. typedef char CHAR;
  81. typedef CHAR *PCH;
  82. #  include <windows.h>
  83. #  include <wrexx.h>
  84. #  define RXTHE_PSZ        LPCSTR
  85. #  define ULONG            DWORD
  86. #  define PUSHORT          LPWORD
  87. #  define RXTHE_PFN        FARPROC
  88. #  define RXTHE_PUCHAR     LPBYTE
  89. #  define RXTHE_PRXSUBCOM  FARPROC
  90. #  define RXTHE_PRXEXIT    FARPROC
  91. # endif
  92. #endif
  93.  
  94. #if defined(WIN32)
  95. # if defined(USE_REGINA)
  96. #  include <rexxsaa.h>
  97. # endif
  98. # if defined(USE_OREXX)
  99. #  include <rexx.h>
  100. # endif
  101. # if defined(USE_QUERCUS)
  102. #  include <windows.h>
  103. #  include <wrexx32.h>
  104. # endif
  105. # if defined(USE_WINREXX)
  106. #  include <windows.h>
  107. #  include <wrexx32.h>
  108. # endif
  109. # if defined(USE_UNIREXX)
  110. #  include <windows.h>
  111. #  include <rexxsaa.h>
  112. #  if defined(HAVE_PROTO) && !defined(ORXXPrototype)
  113. #   define ORXXPrototype
  114. #  endif
  115. # endif
  116. #endif
  117. /*
  118.  * The following abbreviations are used as prefixes for the following
  119.  * #defines:
  120.  *
  121.  * RFH   - RexxFunctionHandler
  122.  * RRFE  - RexxRegisterFuntionExe
  123.  * RDF   - RexxDeregisterFuntion
  124.  *
  125.  * REH   - RexxExitHandler
  126.  * RREE  - RexxRegisterExitExe
  127.  * RDE   - RexxDeregisterExit
  128.  *
  129.  * RSH   - RexxSubcomHandler
  130.  * RRSE  - RexxRegisterSubcomExe
  131.  * RDS   - RexxDeregisterSubcom
  132.  *
  133.  * RS    - RexxStart
  134.  */
  135. #if defined(USE_REXX6000)
  136. # define RXSTRING_STRPTR_TYPE PUCHAR  /* PRXFUNC - RexxFunctionHandler */
  137. # define RFH_RETURN_TYPE      USHORT
  138. # define RFH_ARG0_TYPE        PSZ
  139. # define RFH_ARG1_TYPE        ULONG
  140. # define RFH_ARG2_TYPE        PRXSTRING
  141. # define RFH_ARG3_TYPE        PSZ
  142. # define RFH_ARG4_TYPE        PRXSTRING
  143. # define RRFE_ARG0_TYPE       PSZ
  144. # define RRFE_ARG1_TYPE       PRXFUNC
  145. # define RRFE_ARG2_TYPE       PUCHAR
  146. # define RDF_ARG0_TYPE        PSZ
  147. # define REH_RETURN_TYPE      LONG
  148. # define REH_ARG0_TYPE        LONG
  149. # define REH_ARG1_TYPE        LONG
  150. # define REH_ARG2_TYPE        PEXIT
  151. # define RSH_RETURN_TYPE      LONG /* PRXSUBCOM - RexxSubcomHandler */
  152. # define RSH_ARG0_TYPE        PRXSTRING
  153. # define RSH_ARG1_TYPE        PUSHORT
  154. # define RSH_ARG2_TYPE        PRXSTRING
  155. # define RRSE_ARG0_TYPE       PSZ
  156. # define RRSE_ARG1_TYPE       PRXSUBCOM
  157. # define RRSE_ARG2_TYPE       PUCHAR
  158. # define RDS_ARG0_TYPE        PSZ
  159. # define RS_ARG0_TYPE         LONG
  160. # define RS_ARG1_TYPE         PRXSTRING
  161. # define RS_ARG2_TYPE         PSZ
  162. # define RS_ARG3_TYPE         PRXSTRING
  163. # define RS_ARG4_TYPE         PSZ
  164. # define RS_ARG5_TYPE         LONG
  165. # define RS_ARG6_TYPE         PRXSYSEXIT
  166. # define RS_ARG7_TYPE         PLONG
  167. # define RS_ARG8_TYPE         PRXSTRING
  168.  
  169. #elif defined(USE_OS2REXX)
  170. # define RXSTRING_STRPTR_TYPE PCH
  171. # define RFH_RETURN_TYPE      ULONG
  172. # define RFH_ARG0_TYPE        PUCHAR
  173. # define RFH_ARG1_TYPE        ULONG
  174. # define RFH_ARG2_TYPE        PRXSTRING
  175. # define RFH_ARG3_TYPE        PSZ
  176. # define RFH_ARG4_TYPE        PRXSTRING
  177. # define RRFE_ARG0_TYPE       PSZ
  178. # define RRFE_ARG1_TYPE       PFN
  179. # define RDF_ARG0_TYPE        PSZ
  180. # define REH_RETURN_TYPE      LONG
  181. # define REH_ARG0_TYPE        LONG
  182. # define REH_ARG1_TYPE        LONG
  183. # define REH_ARG2_TYPE        PEXIT
  184. # define RREE_ARG0_TYPE       PSZ
  185. # define RREE_ARG1_TYPE       PFN
  186. # define RREE_ARG2_TYPE       PUCHAR
  187. # define RSH_RETURN_TYPE      ULONG
  188. # define RSH_ARG0_TYPE        PRXSTRING
  189. # define RSH_ARG1_TYPE        PUSHORT
  190. # define RSH_ARG2_TYPE        PRXSTRING
  191. # define RRSE_ARG0_TYPE       PSZ
  192. # define RRSE_ARG1_TYPE       PFN
  193. # define RRSE_ARG2_TYPE       PUCHAR
  194. # define RDE_ARG0_TYPE        PSZ
  195. # define RDE_ARG1_TYPE        PSZ
  196. # define RDS_ARG0_TYPE        PSZ
  197. # define RDS_ARG1_TYPE        PSZ
  198. # define RS_ARG0_TYPE         LONG
  199. # define RS_ARG1_TYPE         PRXSTRING
  200. # define RS_ARG2_TYPE         PSZ
  201. # define RS_ARG3_TYPE         PRXSTRING
  202. # define RS_ARG4_TYPE         PSZ
  203. # define RS_ARG5_TYPE         LONG
  204. # define RS_ARG6_TYPE         PRXSYSEXIT
  205. # define RS_ARG7_TYPE         PSHORT
  206. # define RS_ARG8_TYPE         PRXSTRING
  207.  
  208. #elif defined(USE_REGINA)
  209. # define RXSTRING_STRPTR_TYPE char *
  210. # define RFH_RETURN_TYPE      APIRET APIENTRY
  211. # define RFH_ARG0_TYPE        PUCHAR
  212. # define RFH_ARG1_TYPE        ULONG
  213. # define RFH_ARG2_TYPE        PRXSTRING
  214. # define RFH_ARG3_TYPE        PSZ
  215. # define RFH_ARG4_TYPE        PRXSTRING
  216. # define RRFE_ARG0_TYPE       PSZ
  217. # define RRFE_ARG1_TYPE       PFN
  218. # define RDF_ARG0_TYPE        PSZ
  219. # define REH_RETURN_TYPE      LONG APIENTRY
  220. # define REH_ARG0_TYPE        LONG
  221. # define REH_ARG1_TYPE        LONG
  222. # define REH_ARG2_TYPE        PEXIT
  223. # define RREE_ARG0_TYPE       PSZ
  224. # define RREE_ARG1_TYPE       PFN
  225. # define RREE_ARG2_TYPE       PUCHAR
  226. # define RSH_RETURN_TYPE      APIRET APIENTRY
  227. # define RSH_ARG0_TYPE        PRXSTRING
  228. # define RSH_ARG1_TYPE        PUSHORT
  229. # define RSH_ARG2_TYPE        PRXSTRING
  230. # define RRSE_ARG0_TYPE       PSZ
  231. # define RRSE_ARG1_TYPE       PFN
  232. # define RRSE_ARG2_TYPE       PUCHAR
  233. # define RDE_ARG0_TYPE        PSZ
  234. # define RDE_ARG1_TYPE        PSZ
  235. # define RDS_ARG0_TYPE        PSZ
  236. # define RDS_ARG1_TYPE        PSZ
  237. # define RS_ARG0_TYPE         LONG
  238. # define RS_ARG1_TYPE         PRXSTRING
  239. # define RS_ARG2_TYPE         PSZ
  240. # define RS_ARG3_TYPE         PRXSTRING
  241. # define RS_ARG4_TYPE         PSZ
  242. # define RS_ARG5_TYPE         LONG
  243. # define RS_ARG6_TYPE         PRXSYSEXIT
  244. # define RS_ARG7_TYPE         PSHORT
  245. # define RS_ARG8_TYPE         PRXSTRING
  246.  
  247. #elif defined(USE_REXXIMC)
  248. # define RXSTRING_STRPTR_TYPE char *
  249. # define RFH_RETURN_TYPE      ULONG
  250. # define RFH_ARG0_TYPE        PSZ
  251. # define RFH_ARG1_TYPE        ULONG
  252. # define RFH_ARG2_TYPE        PRXSTRING
  253. # define RFH_ARG3_TYPE        PSZ
  254. # define RFH_ARG4_TYPE        PRXSTRING
  255. # define RRFE_ARG0_TYPE       PSZ
  256. # define RRFE_ARG1_TYPE       RexxFunctionHandler *
  257. # define RDF_ARG0_TYPE        PSZ
  258. # define REH_RETURN_TYPE      LONG
  259. # define REH_ARG0_TYPE        LONG
  260. # define REH_ARG1_TYPE        LONG
  261. # define REH_ARG2_TYPE        PEXIT
  262. # define RREE_ARG0_TYPE       PSZ
  263. # define RREE_ARG1_TYPE       RexxExitHandler *
  264. # define RREE_ARG2_TYPE       PUCHAR
  265. # define RSH_RETURN_TYPE      ULONG
  266. # define RSH_ARG0_TYPE        PRXSTRING
  267. # define RSH_ARG1_TYPE        PUSHORT
  268. # define RSH_ARG2_TYPE        PRXSTRING
  269. # define RRSE_ARG0_TYPE       PSZ
  270. # define RRSE_ARG1_TYPE       RexxSubcomHandler *
  271. # define RRSE_ARG2_TYPE       PUCHAR
  272. # define RDE_ARG0_TYPE        PSZ
  273. # define RDE_ARG1_TYPE        PSZ
  274. # define RDS_ARG0_TYPE        PSZ
  275. # define RDS_ARG1_TYPE        PSZ
  276. # define RS_ARG0_TYPE         long
  277. # define RS_ARG1_TYPE         PRXSTRING
  278. # define RS_ARG2_TYPE         char *
  279. # define RS_ARG3_TYPE         PRXSTRING
  280. # define RS_ARG4_TYPE         PSZ
  281. # define RS_ARG5_TYPE         long
  282. # define RS_ARG6_TYPE         PRXSYSEXIT
  283. # define RS_ARG7_TYPE         short *
  284. # define RS_ARG8_TYPE         PRXSTRING
  285.  
  286. #elif defined(USE_OREXX)
  287. # define RXSTRING_STRPTR_TYPE PCH
  288. # define RFH_RETURN_TYPE      ULONG APIENTRY
  289. # define RFH_ARG0_TYPE        PUCHAR
  290. # define RFH_ARG1_TYPE        ULONG
  291. # define RFH_ARG2_TYPE        PRXSTRING
  292. # define RFH_ARG3_TYPE        PSZ
  293. # define RFH_ARG4_TYPE        PRXSTRING
  294. # define RRFE_ARG0_TYPE       PSZ
  295. # define RRFE_ARG1_TYPE       PFN
  296. # define RDF_ARG0_TYPE        PSZ
  297. # define REH_RETURN_TYPE      LONG APIENTRY
  298. # define REH_ARG0_TYPE        LONG
  299. # define REH_ARG1_TYPE        LONG
  300. # define REH_ARG2_TYPE        PEXIT
  301. # define RREE_ARG0_TYPE       PSZ
  302. # define RREE_ARG1_TYPE       PFN
  303. # define RREE_ARG2_TYPE       PUCHAR
  304. # define RSH_RETURN_TYPE      APIRET APIENTRY
  305. # define RSH_ARG0_TYPE        PRXSTRING
  306. # define RSH_ARG1_TYPE        PUSHORT
  307. # define RSH_ARG2_TYPE        PRXSTRING
  308. # define RRSE_ARG0_TYPE       PSZ
  309. # define RRSE_ARG1_TYPE       PFN
  310. # define RRSE_ARG2_TYPE       PUCHAR
  311. # define RDE_ARG0_TYPE        PSZ
  312. # define RDE_ARG1_TYPE        PSZ
  313. # define RDS_ARG0_TYPE        PSZ
  314. # define RDS_ARG1_TYPE        PSZ
  315. # define RS_ARG0_TYPE         LONG
  316. # define RS_ARG1_TYPE         PRXSTRING
  317. # define RS_ARG2_TYPE         PSZ
  318. # define RS_ARG3_TYPE         PRXSTRING
  319. # define RS_ARG4_TYPE         PSZ
  320. # define RS_ARG5_TYPE         LONG
  321. # define RS_ARG6_TYPE         PRXSYSEXIT
  322. # define RS_ARG7_TYPE         PSHORT
  323. # define RS_ARG8_TYPE         PRXSTRING
  324.  
  325. #elif defined(USE_QUERCUS)
  326. # define RXSTRING_STRPTR_TYPE LPBYTE
  327. # define RFH_RETURN_TYPE      DWORD
  328. # define RFH_ARG0_TYPE        LPCSTR
  329. # define RFH_ARG1_TYPE        DWORD
  330. # define RFH_ARG2_TYPE        PRXSTRING
  331. # define RFH_ARG3_TYPE        LPCSTR
  332. # define RFH_ARG4_TYPE        PRXSTRING
  333. # define RRFE_ARG0_TYPE       LPCSTR
  334. # define RRFE_ARG1_TYPE       FARPROC
  335. # define RDF_ARG0_TYPE        LPCSTR
  336. # define REH_RETURN_TYPE      LONG
  337. # define REH_ARG0_TYPE        LONG
  338. # define REH_ARG1_TYPE        LONG
  339. # define REH_ARG2_TYPE        PEXIT
  340. # define RREE_ARG0_TYPE       LPCSTR
  341. # define RREE_ARG1_TYPE       FARPROC
  342. # define RREE_ARG2_TYPE       LPBYTE
  343. # define RDE_ARG0_TYPE        LPCSTR
  344. # define RDE_ARG1_TYPE        LPCSTR
  345. # define RSH_RETURN_TYPE      DWORD
  346. # define RSH_ARG0_TYPE        PRXSTRING
  347. # define RSH_ARG1_TYPE        LPWORD
  348. # define RSH_ARG2_TYPE        PRXSTRING
  349. # define RRSE_ARG0_TYPE       LPCSTR
  350. # define RRSE_ARG1_TYPE       FARPROC
  351. # define RRSE_ARG2_TYPE       LPBYTE
  352. # define RDS_ARG0_TYPE        LPCSTR
  353. # define RDS_ARG1_TYPE        LPCSTR
  354. # define RS_ARG0_TYPE         int
  355. # define RS_ARG1_TYPE         PRXSTRING
  356. # define RS_ARG2_TYPE         LPCSTR
  357. # define RS_ARG3_TYPE         PRXSTRING
  358. # define RS_ARG4_TYPE         LPCSTR
  359. # define RS_ARG5_TYPE         int
  360. # define RS_ARG6_TYPE         PRXSYSEXIT
  361. # define RS_ARG7_TYPE         LPSHORT
  362. # define RS_ARG8_TYPE         PRXSTRING
  363.  
  364. #elif defined(USE_WINREXX)
  365. # define RXSTRING_STRPTR_TYPE LPBYTE
  366. # define RFH_RETURN_TYPE      int APIENTRY
  367. # define RFH_ARG0_TYPE        LPCSTR
  368. # define RFH_ARG1_TYPE        UINT
  369. # define RFH_ARG2_TYPE        PRXSTRING
  370. # define RFH_ARG3_TYPE        LPCSTR
  371. # define RFH_ARG4_TYPE        PRXSTRING
  372. # define RRFE_ARG0_TYPE       LPCSTR
  373. # define RRFE_ARG1_TYPE       FARPROC
  374. # define RDF_ARG0_TYPE        LPCSTR
  375. # define REH_RETURN_TYPE      int APIENTRY
  376. # define REH_ARG0_TYPE        int
  377. # define REH_ARG1_TYPE        int
  378. # define REH_ARG2_TYPE        PEXIT
  379. # define RREE_ARG0_TYPE       LPCSTR
  380. # define RREE_ARG1_TYPE       FARPROC
  381. # define RREE_ARG2_TYPE       LPBYTE
  382. # define RDE_ARG0_TYPE        LPCSTR
  383. # define RDE_ARG1_TYPE        LPCSTR
  384. # define RSH_RETURN_TYPE      int APIENTRY
  385. # define RSH_ARG0_TYPE        PRXSTRING
  386. # define RSH_ARG1_TYPE        LPWORD
  387. # define RSH_ARG2_TYPE        PRXSTRING
  388. # define RRSE_ARG0_TYPE       LPCSTR
  389. # define RRSE_ARG1_TYPE       FARPROC
  390. # define RRSE_ARG2_TYPE       LPBYTE
  391. # define RDS_ARG0_TYPE        LPCSTR
  392. # define RDS_ARG1_TYPE        LPCSTR
  393. # define RS_ARG0_TYPE         int
  394. # define RS_ARG1_TYPE         PRXSTRING
  395. # define RS_ARG2_TYPE         LPCSTR
  396. # define RS_ARG3_TYPE         PRXSTRING
  397. # define RS_ARG4_TYPE         LPCSTR
  398. # define RS_ARG5_TYPE         int
  399. # define RS_ARG6_TYPE         PRXSYSEXIT
  400. # define RS_ARG7_TYPE         LPSHORT
  401. # define RS_ARG8_TYPE         PRXSTRING
  402.  
  403. #elif defined(USE_UNIREXX)
  404. # define RXSTRING_STRPTR_TYPE PCH
  405. #ifdef WIN32
  406. #  define RFH_RETURN_TYPE     ULONG ORXXCDecl ORXXLoadDS
  407. # else
  408. #  define RFH_RETURN_TYPE     ULONG
  409. #endif
  410. # define RFH_ARG0_TYPE        PUCHAR
  411. # define RFH_ARG1_TYPE        ULONG
  412. # define RFH_ARG2_TYPE        PRXSTRING
  413. # define RFH_ARG3_TYPE        PSZ
  414. # define RFH_ARG4_TYPE        PRXSTRING
  415. # define RRFE_ARG0_TYPE       PSZ
  416. # define RRFE_ARG1_TYPE       PFN
  417. # define RDF_ARG0_TYPE        PSZ
  418. # ifdef WIN32
  419. #  define REH_RETURN_TYPE     LONG ORXXCDecl ORXXLoadDS
  420. # else
  421. #  define REH_RETURN_TYPE     LONG
  422. #endif
  423. # define REH_ARG0_TYPE        LONG
  424. # define REH_ARG1_TYPE        LONG
  425. # define REH_ARG2_TYPE        PEXIT
  426. # define RREE_ARG0_TYPE       PSZ
  427. # define RREE_ARG1_TYPE       PFN
  428. # define RREE_ARG2_TYPE       PUCHAR
  429. # ifdef WIN32
  430. #  define RSH_RETURN_TYPE     ULONG ORXXCDecl ORXXLoadDS
  431. # else
  432. #  define RSH_RETURN_TYPE     ULONG
  433. #endif
  434. # define RSH_ARG0_TYPE        PRXSTRING
  435. # define RSH_ARG1_TYPE        PUSHORT
  436. # define RSH_ARG2_TYPE        PRXSTRING
  437. # define RRSE_ARG0_TYPE       PSZ
  438. # define RRSE_ARG1_TYPE       PFN
  439. # define RRSE_ARG2_TYPE       PUCHAR
  440. # define RDE_ARG0_TYPE        PSZ
  441. # define RDE_ARG1_TYPE        PSZ
  442. # define RDS_ARG0_TYPE        PSZ
  443. # define RDS_ARG1_TYPE        PSZ
  444. # define RS_ARG0_TYPE         LONG
  445. # define RS_ARG1_TYPE         PRXSTRING
  446. # define RS_ARG2_TYPE         PSZ
  447. # define RS_ARG3_TYPE         PRXSTRING
  448. # define RS_ARG4_TYPE         PSZ
  449. # define RS_ARG5_TYPE         LONG
  450. # define RS_ARG6_TYPE         PRXSYSEXIT
  451. # define RS_ARG7_TYPE         PSHORT
  452. # define RS_ARG8_TYPE         PRXSTRING
  453. #endif
  454.  
  455.