home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 18 REXX / 18-REXX.zip / rexxtr.zip / rxextras.inf (.txt) < prev    next >
OS/2 Help File  |  1996-04-04  |  120KB  |  4,674 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. Introduction ΓòÉΓòÉΓòÉ
  3.  
  4.       About... 
  5.       Installation 
  6.       REXX Registration 
  7.       REXX Deregistration 
  8.       REXX Registration Tips 
  9.  
  10.  
  11. ΓòÉΓòÉΓòÉ 1.1. About... ΓòÉΓòÉΓòÉ
  12.  
  13. This is version 1.G of RxExtras, released in April, 1996 
  14.  
  15. RxExtras is a set of functions to enhance OS/2's REXX programming language, and 
  16. is accompanied by additional functions to be used by other PM Rexx-based 
  17. software (VisPro/Rexx and VX-Rexx, among others).  Some of the functions 
  18. provided by RxExtras can be accomplished by various other means using "pure" 
  19. OS/2 REXX code, but RxExtras provides an easier interface and more efficient 
  20. processing. 
  21.  
  22. Take the RxSort() function as an example.  You can certainly write REXX code to 
  23. write a stem to a file, run the external SORT program, and read the sorted data 
  24. back into a stem.  The RxSort() function of RxExtras saves a lot of disk I/O; 
  25.  
  26.        1. writing the stem to disk. 
  27.        2. the SORT program reading the file from disk. 
  28.        3. the SORT program writing the file back to disk. 
  29.        4. reading the sorted file back into a stem. 
  30.  
  31.  Plus, with RxSort(), you only need 1 line of code to accomplish the entire 
  32.  task! 
  33.  
  34.  Once RxExtras is registered to your REXX interpreter, you can take advantage 
  35.  of any RxExtras functions in your existing and future REXX-based programs. 
  36.  
  37.  
  38. ΓòÉΓòÉΓòÉ 1.2. Installation ΓòÉΓòÉΓòÉ
  39.  
  40. To install RxExtras, place the RxExtras.DLL file in any subdirectory which is 
  41. part of your LIBPATH statement (LIBPATH is found in your CONFIG.SYS file). 
  42.  
  43. For example, you could place RxExtras.DLL in your x:\OS2\DLL subdirectory (by 
  44. default, x:\OS2\DLL is part of your LIBPATH when you install OS/2). However, it 
  45. is recommended that you place RxExtras.DLL in some other subdirectory.  The 
  46. reason for this is that should you have to reinstall OS/2, RxExtras.DLL will 
  47. not automatically be reinstalled with OS/2. All REXX-based programs that 
  48. require RxExtras.DLL will fail until such time as you manually copy 
  49. RxExtras.DLL to your x:\OS2\DLL subdirectory. 
  50.  
  51. A better, more flexible approach is to make a subdirectory (preferably on a 
  52. drive other than where OS/2 is installed) for all your add-on *.DLL files, 
  53. which includes RxExtras.DLL. For example, make a subdirectory called 
  54. y:\USER\DLL and place RxExtras.DLL in there. Then, edit your CONFIG.SYS file, 
  55. and add ";y:\USER\DLL" to the end of your LIBPATH. Save CONFIG.SYS and reboot 
  56. (you must reboot in order for this last change to take effect). Once you've 
  57. done this, you will never have to modify CONFIG.SYS again, no matter what *.DLL 
  58. file you add to your system.  Just place your new *.DLL file in y:\USER\DLL, 
  59. and the system will automatically find it when needed. 
  60.  
  61. After installing RxExtras, you must register the APIs in order to use them. 
  62.  
  63.  
  64. ΓòÉΓòÉΓòÉ 1.3. Registering RxExtras ΓòÉΓòÉΓòÉ
  65.  
  66. In order to use any REXX features of OS/2, you must have installed the REXX 
  67. Interpreter.  When you installed OS/2, you may have chosen to not install REXX. 
  68. If this is the case, open your Selective Install icon and install REXX before 
  69. continuing. 
  70.  
  71. In order to take advantage of RxExtras' REXX APIs found in RxExtras.DLL, you 
  72. must first "register" the APIs with OS/2's REXX Interpreter.  This is true of 
  73. any and all REXX-based *.DLL files.  The process is rather simple.  In your 
  74. *.CMD file (or within your PM REXX-Based program), simply code these 2 lines: 
  75.  
  76.      Call RxFuncAdd 'RxExtra', 'RxExtras', 'RxExtra'
  77.      Call RxExtra 'Load'
  78.  
  79. Note:  You must code these 2 lines so that they execute before any RxExtras 
  80. APIs are referenced elsewhere in your program. 
  81.  
  82. Once you have done this, your REXX program can take full advantage of RxExtras' 
  83. APIs (functions).  Additionally, all future sessions of REXX-based programs 
  84. will likewise have access to the RxExtras APIs.  In other words, once these 
  85. APIs are registered, they have a global effect across your entire system; all 
  86. OS/2 REXX sessions will be able to use them.  They stay registered until you 
  87. reboot or intentionally deregister them. 
  88.  
  89. Double-click here for some tips and advice on REXX API registration techniques. 
  90.  
  91.  
  92. ΓòÉΓòÉΓòÉ 1.4. Deregistering RxExtras ΓòÉΓòÉΓòÉ
  93.  
  94. When you are through with the RxExtras APIs, it is possible to deregister them 
  95. from your system.  The advantage to doing this is that the shared memory they 
  96. occupied will be released for other programs to use. The disadvantage is that 
  97. if you wish to use the APIs once more, they must be registered once more.  This 
  98. requires some disk I/O activity to locate the RxExtras.DLL file and load its 
  99. contents into memory. 
  100.  
  101. Warning:  If you chose to deregister the RxExtras APIs the affect is global 
  102. across your entire system.  No other REXX-based programs will have access to 
  103. the APIs and they will in all likelihood fail miserably! 
  104.  
  105. To deregister the RxExtras APIs, simply code this line anywhere in any *.CMD 
  106. file or any other REXX-based program: 
  107.  
  108.      Call RxExtra 'Drop'
  109.  
  110. Upon execution of the above line, the APIs will be flushed from memory when the 
  111. system finds it convenient so to do. 
  112.  
  113. Double-click here for some tips and advice on REXX API registration techniques. 
  114.  
  115.  
  116. ΓòÉΓòÉΓòÉ 1.5. Registration Tips ΓòÉΓòÉΓòÉ
  117.  
  118. A good technique for registering any and all REXX API packages (including 
  119. RxExtras) is as follows: 
  120.  
  121.      Define a STARTUP.CMD file in the root directory of your OS/2 boot drive. 
  122.      Register, within STARTUP.CMD, any and all REXX API packages that you 
  123.       frequently use. 
  124.      In each  *.CMD file or REXX-based program that requires the API: 
  125.         1. Test for the pre-registration of the API package and save the 
  126.            results in a REXX variable. 
  127.         2. If the test indicates that the API is not yet registered with REXX, 
  128.            then register it according to the API package's instructions. 
  129.         3. Just before exiting your program, if the status variable shows that 
  130.            the API was not pre-registered, then deregister it. 
  131.  
  132.  This method ensures that: 
  133.  
  134.    1. Your *.CMD or REXX-based program has access to the APIs it requires. 
  135.    2. Your REXX environment, in terms of the pre-registered APIs, is restored 
  136.       to its native state before your program exits.  This makes for a very 
  137.       well behaved, tolerant program. 
  138.  
  139.  Specifically, for RxExtras: 
  140.  
  141.  In your x:\STARTUP.CMD file, place: 
  142.  
  143.        Call RxFuncAdd 'RxExtra', 'RxExtras', 'RxExtra'
  144.        Call RxExtra 'Load'
  145.  
  146.  In all of your *.CMD and other REXX-based programs that require the RxExtras 
  147.  APIs, place: 
  148.  
  149.        RxExtraAPI = RxFuncQuery('RxExtra')
  150.        If RxExtraAPI \= 0 Then
  151.        Do
  152.            Call RxFuncAdd 'RxExtra', 'RxExtras', 'RxExtra'
  153.            Call RxExtra 'Load'
  154.        End
  155.  
  156.  before any other references to RxExtras APIs, and then just before your 
  157.  program exits, use: 
  158.  
  159.        If RxExtraAPI \= 0 Then
  160.            Call RxExtra 'Drop'
  161.  
  162.  Notice that registering your RxExtras APIs in the STARTUP.CMD file makes the 
  163.  need for the per-program test of pre-registration superfluous. However, it is 
  164.  a good programming practice to code these lines anyway. 
  165.  
  166.  One reason is that if you give a copy of your program to someone else to use, 
  167.  they might not have registered the APIs in their STARTUP.CMD file. 
  168.  
  169.  Another reason is that since registration in STARTUP.CMD puts these APIs in 
  170.  memory and leaves them there, you may decide (in the interest of saving 
  171.  memory) to remove the pre-registration from STARTUP.CMD. If you do, and you 
  172.  did not code the above tests (or you got a program from someone else and they 
  173.  did not code the above tests), your programs will no longer execute. 
  174.  
  175.   CAUTION:
  176.  Never blindly assume you can deregister any API functions when your program 
  177.  exits.  A program that always deregisters the APIs when it quits only causes 
  178.  problems for everyone that uses it.  If you are going to include code that 
  179.  deregisters an API (RxExtras or otherwise), you should do so only if you're 
  180.  certain it was not pre-registered when the program started! 
  181.  
  182.  
  183. ΓòÉΓòÉΓòÉ 2. RxExtras Release Information ΓòÉΓòÉΓòÉ
  184.  
  185.       About... 
  186.       Release 1.G 
  187.       Release 1.F 
  188.       Release 1.E 
  189.       Release 1.D 
  190.       Release 1.C 
  191.       Release 1.B 
  192.       Release 1.A 
  193.       Release 1.9 
  194.       Release 1.8 
  195.       Release 1.7 
  196.       Release 1.6 
  197.       Release 1.5 
  198.       Release 1.4 
  199.       Release 1.3 
  200.       Release 1.2 
  201.       Previous Releases 
  202.  
  203.  
  204. ΓòÉΓòÉΓòÉ 2.1. About... ΓòÉΓòÉΓòÉ
  205.  
  206. This section has details on what is, or was, in each release of RxExtras. 
  207.  
  208. You can determine the current release level of RxExtras by running the RxExtra 
  209. function when you are first registering RxExtras to REXX. 
  210.  
  211. Double click on any of the releases on the left hand side to see information 
  212. pertaining to a particular release. 
  213.  
  214. The sort of information that is displayed will be a list of functions added, 
  215. and any other miscellaneous work, such as parameter checking, or multiple 
  216. threaded-ness. 
  217.  
  218.  
  219. ΓòÉΓòÉΓòÉ 2.2. Release 1.G ΓòÉΓòÉΓòÉ
  220.  
  221. Release 1.G was uploaded to the usual electronic distribution sites on 
  222. 1996-04-04. 
  223.  
  224. The following was done for Release 1.G of RxExtras:- 
  225.  
  226.      The function RxStemInsert was added. 
  227.      The function RxStemRemove was added. 
  228.  
  229.  
  230. ΓòÉΓòÉΓòÉ 2.3. Release 1.F ΓòÉΓòÉΓòÉ
  231.  
  232. Release 1.F was uploaded to the usual electronic distribution sites on 
  233. 1995-12-18. 
  234.  
  235. The following was done for Release 1.F of RxExtras:- 
  236.  
  237.      The function RxQueryCountryInfo was added. 
  238.      The function RxContainerTitleAttributes was added. 
  239.  
  240.  
  241. ΓòÉΓòÉΓòÉ 2.4. Release 1.E ΓòÉΓòÉΓòÉ
  242.  
  243. Release 1.E was uploaded to the usual electronic distribution sites on 
  244. 1995-11-15. 
  245.  
  246. The following was done for Release 1.E of RxExtras:- 
  247.  
  248.      The function RxMemAvail was added. 
  249.      The function RxSysValues was added. 
  250.      RxSetGlobal and RxGetGlobal were added back to the package. RxGetGlobal 
  251.       was enhanced to get stems. 
  252.  
  253.  
  254. ΓòÉΓòÉΓòÉ 2.5. Release 1.D ΓòÉΓòÉΓòÉ
  255.  
  256. Release 1.D was uploaded to the usual electronic distribution sites on 
  257. 1995-10-06. 
  258.  
  259. The following was done for Release 1.D of RxExtras:- 
  260.  
  261.      The RxWindowSetOwner documentation was fixed. 
  262.      RxWindowSetParent was documented. 
  263.      The RxContainerSplitBarSetPosition documentation was fixed. 
  264.      VX-REXX Insert Code support has been fixed and now works! Many thanks to 
  265.       Jose Beleta for finding the stupid typos that caused this to be a foot 
  266.       wound. 
  267.  
  268.  
  269. ΓòÉΓòÉΓòÉ 2.6. Release 1.C ΓòÉΓòÉΓòÉ
  270.  
  271. Release 1.C was uploaded to the usual electronic distribution sites on 
  272. 1995-10-04. 
  273.  
  274. The following was done for Release 1.C of RxExtras:- 
  275.  
  276.      RxThread was changed so that it looked for threads in the PATH, rather 
  277.       than in the VisPro/REXX v1.x SUBPROCS directory. 
  278.      RxExtra was fixed so that it returned the correct version number. 
  279.      RxStemSearch was added. 
  280.      VX-REXX Insert Code support still won't work with VX-REXX v2.0 and above. 
  281.  
  282.  
  283. ΓòÉΓòÉΓòÉ 2.7. Release 1.B ΓòÉΓòÉΓòÉ
  284.  
  285. Release 1.B was uploaded to the usual electronic distribution sites on 
  286. 1995-09-26. This was mainly a maintenance release, so that further work can be 
  287. done with minimal rework. 
  288.  
  289. I'd like to thank the makers of the WorkFrame/2 v3.0 - never have I seen such 
  290. an interesting product that I failed to get running quickly. I have a low 
  291. frustration level, sorry! 
  292.  
  293. The following was done for Release 1.B of RxExtras:- 
  294.  
  295.      Recompiled with VisualAge C++ v3.0 
  296.      Added CompuServe SWREG Id to the INF file under Registration and to the 
  297.       title of the document so that people wont forget :) 
  298.      Added some more documentation for RxDrawBitmap. 
  299.      Fixed a minor error in the documentation for RxWindowClose. 
  300.      VX-REXX Insert Code support still won't work with VX-REXX v2.0 and above. 
  301.  
  302.  
  303. ΓòÉΓòÉΓòÉ 2.8. Release 1.A ΓòÉΓòÉΓòÉ
  304.  
  305. Release 1.A was uploaded to the usual electronic distribution sites on 
  306. 1995-05-15. 
  307.  
  308. The following functions were added in Release 1.A of RxExtras:- 
  309.  
  310.      RxContainerSplitBarRemove 
  311.      RxNotebookMajorTabSetBackColour 
  312.      RxContainerSplitBarSetPosition 
  313.      RxContainerExpandTree 
  314.      RxEntryFieldReadOnly 
  315.      RxWindowClose 
  316.  
  317.  The VisPro/REXX examples for the Minimize and Maximize examples was fixed. 
  318.  
  319.  
  320. ΓòÉΓòÉΓòÉ 2.9. Release 1.9 ΓòÉΓòÉΓòÉ
  321.  
  322. The following functions were added in Release 1.9 of RxExtras:- 
  323.  
  324.      RxKillProcess 
  325.      RxSetFileHandles 
  326.      RxAddFileHandles 
  327.      RxMatchWildCard 
  328.  
  329.  These functions were all provided by Leshek Fiedorowicz, along with an update 
  330.  to the RXEXTRAS.CMD file. The help and VisPro/REXX object were done by dIon. 
  331.  
  332.  All functions that use window handles were improved so that VX-REXX HWnd's 
  333.  could be passed in directly. 
  334.  
  335.  RxSort was improved so that you can sort a stem only on certain columns within 
  336.  that stem. 
  337.  
  338.  VX-REXX Insert Code support was added, in the form of the RxExtras.MTC file. 
  339.  
  340.  
  341. ΓòÉΓòÉΓòÉ 2.10. Release 1.8 ΓòÉΓòÉΓòÉ
  342.  
  343. The following functions were added in Release 1.8 of RxExtras:- 
  344.  
  345.      RxFileExists 
  346.      RxWindowQueryText 
  347.  
  348.  A bug with RxStemCopy was fixed. It was unnecessarily using up memory. 
  349.  
  350.  VisPro/REXX v2.0 support was added in the form of an object for the toolbar 
  351.  which held all RxExtras calls and generated code using the VisPro/REXX drag 
  352.  and drop event tree. See VPRxx toolbar object for more details. 
  353.  
  354.  
  355. ΓòÉΓòÉΓòÉ 2.11. Release 1.7 ΓòÉΓòÉΓòÉ
  356.  
  357. The following functions were added in Release 1.7 of RxExtras:- 
  358.  
  359.      RxWindowSetFocus 
  360.      RxWindowSetOwner 
  361.  
  362.  Also, more code was added to support VX-REXX, and VX-REXX samples were added 
  363.  to this INF file. 
  364.  
  365.  
  366. ΓòÉΓòÉΓòÉ 2.12. Release 1.6 ΓòÉΓòÉΓòÉ
  367.  
  368. The following functions were added in Release 1.6 of RxExtras:- 
  369.  
  370.      RxNap 
  371.      RxEventCreate 
  372.      RxEventDestroy 
  373.      RxEventOccured 
  374.      RxEventWaitFor 
  375.      RxEventQuery 
  376.      RxEventReset 
  377.      RxResourceCreate 
  378.      RxResourceDestroy 
  379.      RxResourceQuery 
  380.      RxResourceRelease 
  381.      RxResourceRequest 
  382.  
  383.  The tables showing which function were for use with VX-REXX, VisPro/REXX and 
  384.  'plain' REXX (at the top of each API definition) were updated to be correct. 
  385.  
  386.  The introduction was updated to reflect the correct version of RxExtras 
  387.  
  388.  
  389. ΓòÉΓòÉΓòÉ 2.13. Release 1.5 ΓòÉΓòÉΓòÉ
  390.  
  391. The following functions were added in Release 1.5 of RxExtras:- 
  392.  
  393.      RxListBoxItemHandle 
  394.      RxQueueList 
  395.      RxQueueSetDefault 
  396.      RxQueueJobProperties 
  397.      RxQueueWriteStem 
  398.  
  399.  
  400. ΓòÉΓòÉΓòÉ 2.14. Release 1.4 ΓòÉΓòÉΓòÉ
  401.  
  402. The following functions were added in Release 1.4 of RxExtras:- 
  403.  
  404.      RxSetIcon 
  405.      RxDrawBitmap 
  406.      RxSetClipboardText 
  407.      RxQueryClipboardText 
  408.      RxAppendClipboardText 
  409.      RxScrollListBox 
  410.      RxGetEXEName 
  411.  
  412.  The RxSetGlobal function was enhanced to accept valid REXX variable names and 
  413.  support one call setting of global stems. 
  414.  
  415.  The RxGetGlobal function was enhanced to accept valid REXX variable names. 
  416.  
  417.  Note:  You can not get global stems in one call using RxGetGlobal. 
  418.  
  419.  Also, the complete User's Guide you are now reading was included in the 
  420.  package to replace the RxExtras.DOC, and RxExtras.VPR files. Many thanks to 
  421.  Ric Naff for doing a lot of the work. 
  422.  
  423.  
  424. ΓòÉΓòÉΓòÉ 2.15. Release 1.3 ΓòÉΓòÉΓòÉ
  425.  
  426. The following functions were added in release 1.3 of RxExtras:- 
  427.  
  428.      RxThread 
  429.      RxKillThread 
  430.      RxSuspendThread 
  431.      RxResumeThread 
  432.      RxChangeThreadPriority 
  433.      RxSetThreadClass 
  434.  
  435.  
  436. ΓòÉΓòÉΓòÉ 2.16. Release 1.2 ΓòÉΓòÉΓòÉ
  437.  
  438. The following function was added in Release 1.2 of RxExtras:- 
  439.  
  440.      RxQueryClassName 
  441.  
  442.  Also the following miscellaneous work was completed:- 
  443.  
  444.      A First cut INF file was included in the ZIP file. 
  445.      Parameter checking for all functions was enhanced. 
  446.      RxListBoxFromFile was made multithreaded. 
  447.      RxVarDump now dumps to a stem, rather than to STDOUT. 
  448.      RxExtra now returns the version number of RxExtras you have loaded or 
  449.       dropped. 
  450.      RxVolumeLabel returns an error message if the drive tried is not valid. 
  451.      RxSwitchTo will match on any part of the string, not just a prefix. 
  452.      RxQueryDriveType will return "NOTREADY" for CDAUDIO or empty floppy 
  453.       drives. 
  454.  
  455.  
  456. ΓòÉΓòÉΓòÉ 2.17. Previously available (No release numbers) ΓòÉΓòÉΓòÉ
  457.  
  458. The following functions were available in previous releases of RxExtras that 
  459. had no release number :- 
  460.  
  461.      RxMaximize 
  462.      RxMinimize 
  463.      RxRestore 
  464.      RxBootDrive 
  465.      RxRead 
  466.      RxWrite 
  467.      RxVolumeLabel 
  468.      RxVarDump 
  469.      RxStemCopy 
  470.      RxExtra 
  471.      RxSort 
  472.      RxSwitchTo 
  473.      RxQuerySwitchList 
  474.      RxQueryDriveType 
  475.      RxSearchPath 
  476.      RxSetGlobal 
  477.      RxGetGlobal 
  478.      RxLineCount 
  479.      RxListBoxFromFile 
  480.      RxListBoxToFile 
  481.      RxListBoxFromStem 
  482.      RxListBoxToStem 
  483.      RxGetListBoxCount 
  484.      RxGetItemFromListBox 
  485.      RxGetItemFromListBoxAtIndex 
  486.      RxAddItemAtIndex 
  487.      RxSetSpinButtonCharRange 
  488.      RxSetSpinButtonRangeFromStem 
  489.      RxSetSpinButtonRangeWithIncrement 
  490.      RxMorphButtonToIcon 
  491.      RxSearchItem 
  492.      RxQueryWindow 
  493.  
  494.  
  495. ΓòÉΓòÉΓòÉ 3. VPRxx - VisPro/REXX toolbar support. ΓòÉΓòÉΓòÉ
  496.  
  497. A new object for the VisPro/REXX toolbar (VPRxx) was uploaded to the HockWare 
  498. section of CompuServe. When installed, it places a new object on the 
  499. VisPro/REXX toolbar that represents RxExtras. 
  500.  
  501. If you place this object on your form, you can use it in the event tree view to 
  502. get prototypes of all the RxExtras functions by dragging the object to the code 
  503. window. This means RxExtras is now easier to use! And the online help for all 
  504. the functions are available using the Help button of the Create Link dialog of 
  505. the RxExtras object. 
  506.  
  507. If you have any suggestions, or are interested in other VisPro/REXX objects, 
  508. contact the author of RxExtras. 
  509.  
  510.  
  511. ΓòÉΓòÉΓòÉ 4. VX-REXX Insert Code... Support ΓòÉΓòÉΓòÉ
  512.  
  513. When coding using Watcom's section editor, you can use a popup menu to insert 
  514. commonly used code into your application. 
  515.  
  516. You can add the RxExtras APIs to the Insert Code dialog if you wish to do so, 
  517. by simply copying the RxExtras.MTC file that comes with RxExtras to the 
  518. \VXREXX\SYSTEM directory. 
  519.  
  520. Once the copy has been done, you can use the Insert Code menu item to get 
  521. prompted (and help assisted) support for coding RxExtras APIs in VX-REXX. 
  522.  
  523. If you have any suggestions for this feature, please contact the author of 
  524. RxExtras. 
  525.  
  526.  
  527. ΓòÉΓòÉΓòÉ 5. RxExtras APIs ΓòÉΓòÉΓòÉ
  528.  
  529. The listings for RxExtras APIs (functions) will designate which types of REXX 
  530. programs can take advantage of them.  Each API will have a box at the top of 
  531. its description detailing in which environments it may be used: 
  532.  
  533. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  534. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöé
  535. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  536.  
  537. If you see "OS/2 REXX" in the above box for a function, you may use that 
  538. RxExtras function in any *.CMD and/or other REXX-based program.  If you do not 
  539. see "OS/2 REXX", then you cannot use the API in a *.CMD file. 
  540.  
  541. If you see "VisPro/REXX" in the above box for a function, you may use that 
  542. RxExtras function in any VisPro/REXX program. 
  543.  
  544. If you see "VX-REXX" in the above box for a function, you may use that RxExtras 
  545. function in any VX-REXX program. 
  546.  
  547. APIs for VisPro/REXX and/or VX-REXX could possibly be used in other PM 
  548. Rexx-based programs.  Some experimentation may be necessary. 
  549.  
  550.  
  551. ΓòÉΓòÉΓòÉ 5.1. Disc/File ΓòÉΓòÉΓòÉ
  552.  
  553. These APIs deal with accessing information to, from, or about discs and files. 
  554. Some of them are unique in that there are no standard REXX commands that will 
  555. retrieve the information for you; RxExtras must be used in these instances. 
  556.  
  557.  
  558. ΓòÉΓòÉΓòÉ 5.1.1. RxBootDrive ΓòÉΓòÉΓòÉ
  559.  
  560. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  561. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  562. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  563.  
  564. ΓöÇΓöÇΓöÇRXBOOTDRIVE()ΓöÇΓöÇΓöÇ
  565.  
  566.  
  567. Returns the drive from which OS2 was booted in the format 'X'. 
  568.  
  569. If you want a trailing ':' you must append one to the returned drive letter. 
  570.  
  571. Example: 
  572.  
  573.      SAY 'My Boot Drive is' RxBootDrive() || ':'
  574.  
  575. Output: 
  576.  
  577.      My Boot Drive is C:           /* perhaps */
  578.  
  579.  
  580. ΓòÉΓòÉΓòÉ 5.1.2. RxLineCount ΓòÉΓòÉΓòÉ
  581.  
  582. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  583. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  584. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  585.  
  586. ΓöÇΓöÇΓöÇRXLINECOUNT(ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇfilenameΓöÇ)ΓöÇΓöÇΓöÇ
  587.                   ΓööΓöÇdrive:ΓöÇΓöÿ ΓööΓöÇ\ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γöÿ
  588.                                  ΓööΓöÇpath\ΓöÇΓöÿ
  589.  
  590.  
  591. Returns the number of lines in filename.  The lines in filename are assumed to 
  592. be delimited by CR/LF characters. 
  593.  
  594. If filename does not exist, RXLINECOUNT raises an 'Incorrect call to routine' 
  595. condition. 
  596.  
  597. Example: 
  598.  
  599.      SAY 'There are' RxLineCount('C:\CONFIG.SYS') 'lines in Config.Sys.'
  600.  
  601. Output: 
  602.  
  603.      There are 117 lines in Config.Sys.      /* perhaps */
  604.  
  605.  
  606. ΓòÉΓòÉΓòÉ 5.1.3. RxListBoxFromFile ΓòÉΓòÉΓòÉ
  607.  
  608.  
  609. ΓòÉΓòÉΓòÉ 5.1.4. RxListBoxToFile ΓòÉΓòÉΓòÉ
  610.  
  611.  
  612. ΓòÉΓòÉΓòÉ 5.1.5. RxQueryDriveType ΓòÉΓòÉΓòÉ
  613.  
  614. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  615. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  616. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  617.  
  618. ΓöÇΓöÇΓöÇRXQUERYDRIVETYPE(drive:)ΓöÇΓöÇΓöÇ
  619.  
  620.  
  621. Returns 'HPFS', 'FAT' or 'CDFS' for their respective drive types. 
  622.  
  623. Returns 'NOTREADY' for the following conditions: 
  624.  
  625.          A CD-ROM drive with an Audio CD loaded. 
  626.          An empty floppy drive. 
  627.          An invalid drive letter. 
  628.  
  629.  Example: 
  630.  
  631.        SAY 'Drive C: is a' RxQueryDriveType('C:') 'drive.'
  632.  
  633.  Output: 
  634.  
  635.        Drive C: is a HPFS drive.           /* perhaps */
  636.  
  637.  
  638. ΓòÉΓòÉΓòÉ 5.1.6. RxRead ΓòÉΓòÉΓòÉ
  639.  
  640.  
  641. ΓòÉΓòÉΓòÉ 5.1.7. RxSearchPath ΓòÉΓòÉΓòÉ
  642.  
  643. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  644. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  645. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  646.  
  647. 
  648. ΓöÇΓöÇΓöÇRXSEARCHPATH(ΓöÇΓöÇsearchpathΓöÇΓöÇ,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇfilenameΓöÇ)ΓöÇΓöÇΓöÇ
  649.                                 ΓööΓöÇsubdir\ΓöÇΓöÿ
  650.  
  651.  
  652. Searches for [ subdir\ ]filename in the path(s) defined by searchpath. 
  653.  
  654. The path(s) defined for searchpath will be used for the search.  searchpath may 
  655. be composed of several pathnames, each separated by a semicolon.  Each pathname 
  656. is allowed to have either a drive designator, a directory designator, or both. 
  657.  
  658. Currently, filename must specify a complete filename; no wildcard characters 
  659. are accepted.  If you supply the optional subdir\ qualifier, the effect is as 
  660. if you had modified all the values of searchparh to include the addtional 
  661. subdir\ value.  For example, if searchpath contains 'F:\OS2;G:\USER', and you 
  662. specify 'DLL\' for subdir,, the effect is the same as having specified 
  663. 'F:\OS2\DLL;G:\USER\DLL' for searchpath and no value for subdir\. 
  664.  
  665.  RXSEARCHPATH returns a fully qualified filename if it finds one, otherwise it 
  666. returns NULL. 
  667.  
  668. Example: 
  669.  
  670.      /*  Find COUNTRY.SYS */
  671.      SchPath = 'C:\OS2\SYSTEM;D:\OS2\SYSTEM;E:\OS2\SYSTEM'
  672.      SAY RxSearchPath(SchPath,'COUNTRY.SYS')
  673.  
  674. Output: 
  675.  
  676.      D:\OS2\SYSTEM\COUNTRY.SYS    /* if found in D:\OS2\SYSTEM */
  677.  
  678.  
  679. ΓòÉΓòÉΓòÉ 5.1.8. RxVolumeLabel ΓòÉΓòÉΓòÉ
  680.  
  681. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  682. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  683. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  684.  
  685. ΓöÇΓöÇΓöÇRXVOLUMELABEL(drive)ΓöÇΓöÇΓöÇ
  686.  
  687.  
  688. Returns the volume label for disc drive drive.  If no label exists, it returns 
  689. 'NO LABEL'. 
  690.  
  691. Returns 'Error Querying drive label' for an invalid drive letter. 
  692.  
  693. You may append an optional colon to the letter, but only the drive letter 
  694. itself is required. 
  695.  
  696. Example: 
  697.  
  698.      SAY 'Volume Label of drive C is' RxVolumeLabel('C')
  699.  
  700. Output: 
  701.  
  702.      Volume Label of drive C is MY DRIVE C       /* perhaps */
  703.  
  704.  
  705. ΓòÉΓòÉΓòÉ 5.1.9. RxWrite ΓòÉΓòÉΓòÉ
  706.  
  707.  
  708. ΓòÉΓòÉΓòÉ 5.1.10. RxFileExists ΓòÉΓòÉΓòÉ
  709.  
  710. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  711. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  712. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  713.  
  714. ΓöÇΓöÇΓöÇRXFILEEXISTS(file)ΓöÇΓöÇΓöÇ
  715.  
  716.  
  717. Returns '1' if the file specified exists, '0' otherwise. 
  718.  
  719. RXFILEEXISTS will raise the REXX error condition INCORRECT CALL TO ROUTINE if a 
  720. filename is not passed. 
  721.  
  722. Example: 
  723.  
  724.      If RxFileExists('C:\CONFIG.SYS') Then Say 'I found your CONFIG.SYS!'
  725.  
  726. Output: 
  727.  
  728.      I found your CONFIG.SYS       /* perhaps */
  729.  
  730.  
  731. ΓòÉΓòÉΓòÉ 5.1.11. RxSetFileHandles ΓòÉΓòÉΓòÉ
  732.  
  733. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  734. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  735. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  736.  
  737. ΓöÇΓöÇΓöÇRXSETFILEHANDLES(fileHandles)ΓöÇΓöÇΓöÇ
  738.  
  739.  
  740. Returns an empty string ('') if the number of fileHandles available has been 
  741. raised to the new value. 
  742.  
  743. The function can also return "Not enough memory", or "Invalid parameter" (when 
  744. trying to set the file handles to a value less than it currently is). 
  745.  
  746. RXSETFILEHANDLES will raise the REXX error condition INCORRECT CALL TO ROUTINE 
  747. if fileHandles is not passed, or is not greater than 0. 
  748.  
  749. Example: 
  750.  
  751.      If RxSetFileHandles(100) Then Say '100 file handles are now available'
  752.  
  753. Output: 
  754.  
  755.      100 file handles are now available       /* perhaps */
  756.  
  757.  
  758. ΓòÉΓòÉΓòÉ 5.1.12. RxAddFileHandles ΓòÉΓòÉΓòÉ
  759.  
  760. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  761. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  762. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  763.  
  764. ΓöÇΓöÇΓöÇRXADDFILEHANDLES(fileHandlesToAdd)ΓöÇΓöÇΓöÇ
  765.  
  766.  
  767. RxAddFileHandles returns :- 
  768.  
  769. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  770. ΓöéReturn value             ΓöéReason                                  Γöé
  771. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  772. ΓöéA number                 ΓöéCurrent number of file handles availableΓöé
  773. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  774.  
  775. RXADDFILEHANDLES will raise the REXX error condition INCORRECT CALL TO ROUTINE 
  776. if fileHandles is not passed. 
  777.  
  778. Example: 
  779.  
  780.      rc = RxAddFileHandles(100)
  781.      Say '100 more file handles are now available'
  782.      Say 'There are now 'rc' file handles available'
  783.  
  784. Output: 
  785.  
  786.      100 more file handles are now available
  787.      There are now 121 file handles available
  788.  
  789.  
  790. ΓòÉΓòÉΓòÉ 5.2. REXX Environment ΓòÉΓòÉΓòÉ
  791.  
  792. These APIs deal with accessing information to, from, or about 1 or more REXX 
  793. Sessions.  All of these functions are available only with RxExtras; there are 
  794. no REXX commands which will achieve the same results. 
  795.  
  796.  
  797. ΓòÉΓòÉΓòÉ 5.2.1. RxExtra ΓòÉΓòÉΓòÉ
  798.  
  799. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  800. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  801. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  802.  
  803. ΓöÇΓöÇΓöÇRXEXTRA(ΓöÇΓö¼ΓöÇ'LOAD'ΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇ
  804.               ΓööΓöÇ'DROP'ΓöÇΓöÿ
  805.  
  806.  
  807. Loads or Drops all functions in this package. 
  808.  
  809. Returns the version number of RxExtras after loading or dropping. 
  810.  
  811. Example: 
  812.  
  813.      rcy = RxFuncAdd('RxExtra', 'RxExtras', 'RxExtra')
  814.      Say 'Using version 'RxExtra("Load")' of RxExtras'
  815.  
  816. Output: 
  817.  
  818.      Using version 1.7 of RxExtras        /* perhaps */
  819.  
  820.  
  821. ΓòÉΓòÉΓòÉ 5.2.2. RxGetGlobal ΓòÉΓòÉΓòÉ
  822.  
  823. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  824. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  825. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  826.  
  827. ΓöÇΓöÇΓöÇRXGETGLOBAL(ΓöÇΓöÇvarnameΓöÇ, [ΓöÇΓöÇtoStemNameΓöÇ]ΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  828.  
  829.  
  830. Returns the value for varname, where varname was previously defined via 
  831. RXSETGLOBAL. 
  832.  
  833. You can get a global stem into a local stem by passing the global stem name 
  834. (which must have a trailing period) for varname and passing the local stem name 
  835. (which also must have a trailing period) for toStemName. 
  836.  
  837. If the toStemName is specified, varname should be a stem name set using 
  838. RXSETGLOBAL. 
  839.  
  840. If varname was not defined via RXSETGLOBAL, RXGETGLOBAL returns NULL. 
  841.  
  842. Example: 
  843.  
  844.      Call RxSetGlobal 'MyVar','Hello World!'
  845.      Say RxGetGlobal('MyVar')
  846.      stem.0 = 3
  847.      stem.1 = 'Element one'
  848.      stem.2 = 'Two is a number'
  849.      stem.3 = 'Three for me'
  850.      /* Create a global stem called GStem with the same contents as stem. */
  851.      Call RxSetGlobal 'GStem.', 'stem.'
  852.      /* Get GStem back! */
  853.      Call RxGetGlobal 'GStem.', 'anotherStem.'
  854.  
  855. Output: 
  856.  
  857.      Hello World!
  858.  
  859.  
  860. ΓòÉΓòÉΓòÉ 5.2.3. RxSetGlobal ΓòÉΓòÉΓòÉ
  861.  
  862. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  863. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  864. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  865.  
  866. ΓöÇΓöÇΓöÇRXSETGLOBAL(ΓöÇΓöÇvarnameΓöÇ,ΓöÇvarvalueΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  867.  
  868.  
  869. Sets a global variable value for use across all REXX sessions.  A variable thus 
  870. set can be retrieved by any other REXX session via RXGETGLOBAL. 
  871.  
  872. You can set a global stem from a local stem by passing the global stem name 
  873. (which must have a trailing period) for varname and passing the local stem name 
  874. (which also must have a trailing period) for varvalue. 
  875.  
  876. Returns varvalue if successful. 
  877.  
  878. Example: 
  879.  
  880.      SomeVar = 'MyVar'
  881.      Call RxSetGlobal SomeVar,'Hello World!'
  882.      Say RxGetGlobal('MyVar')
  883.  
  884. Output: 
  885.  
  886.      Hello World!
  887.  
  888. Note:  See RXGETGLOBAL for more samples 
  889.  
  890.  
  891. ΓòÉΓòÉΓòÉ 5.2.4. RxVarDump ΓòÉΓòÉΓòÉ
  892.  
  893. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  894. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  895. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  896.  
  897. ΓöÇΓöÇΓöÇRXVARDUMP(ΓöÇΓöÇ'stemname.'ΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  898.  
  899.  
  900. Copies all local variables to stemname for debugging.  The trailing period is 
  901. required; results are unpredictable without it. 
  902.  
  903. RXVARDUMP always returns NULL.  The count of variables retrieved is placed in 
  904. stemname.0.  Each unique variable is placed in a pair of variables, 
  905. stemname.n.name and stemname.n.value and may be displayed in a loop or by other 
  906. means. 
  907.  
  908. Example: 
  909.  
  910.      XYZ = '123'
  911.      MyVar = 'Quick Brown Fox'
  912.      Call RxVarDump 'varlist.'
  913.      Do Count = 1 to varlist.0
  914.         Say varlist.Count.name 'has the value "'varlist.Count.value'"'
  915.      End
  916.  
  917. Output: 
  918.  
  919.      XYZ has the value "123"
  920.      MYVAR has the value "Quick Brown Fox"
  921.  
  922.  
  923. ΓòÉΓòÉΓòÉ 5.3. REXX Stems ΓòÉΓòÉΓòÉ
  924.  
  925. These APIs deal with accessing information to, from, or about REXX Stem 
  926. variables.  Some of them require PM REXX-based programs in order to function. 
  927.  
  928.  
  929. ΓòÉΓòÉΓòÉ 5.3.1. RxListBoxFromStem ΓòÉΓòÉΓòÉ
  930.  
  931.  
  932. ΓòÉΓòÉΓòÉ 5.3.2. RxListBoxToStem ΓòÉΓòÉΓòÉ
  933.  
  934.  
  935. ΓòÉΓòÉΓòÉ 5.3.3. RxQuerySwitchList ΓòÉΓòÉΓòÉ
  936.  
  937.  
  938. ΓòÉΓòÉΓòÉ 5.3.4. RxRead ΓòÉΓòÉΓòÉ
  939.  
  940. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  941. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  942. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  943.  
  944. ΓöÇΓöÇΓöÇRXREAD(ΓöÇΓöÇ'stemname.'ΓöÇ,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇfilenameΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  945.                             ΓööΓöÇdrive:ΓöÇΓöÿ ΓööΓöÇ\ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γöÿ
  946.                                            ΓööΓöÇpath\ΓöÇΓöÿ
  947.  
  948.  
  949. Reads filename into the stem variable stemname..  The trailing period to 
  950. stemname. is required; results are unpredictable if it is not supplied.  RXREAD 
  951. assumes that the contents of filename are ASCII text, with each line terminated 
  952. by a CR/LF. 
  953.  
  954. RXREAD always returns NULL if successful, and the count of lines retrieved is 
  955. placed in stemname.0.  Each unique line of text is place in stemname.n and may 
  956. be displayed in a loop or by other means. If filename cannot be read, RXREAD 
  957. raises an 'Incorrect call to routine' condition. 
  958.  
  959. Example: 
  960.  
  961.      Call RxRead 'textlines.','C:\Config.Sys'
  962.      Do Count = 1 to textlines.0
  963.         Say textlines.Count
  964.      End
  965.  
  966. Output: 
  967.  
  968.      PROTSHELL=C:\OS2\PMSHELL.EXE          /* perhaps */
  969.      SET USER_INI=C:\OS2\OS2.INI           /* perhaps */
  970.      . . .
  971.  
  972.  
  973. ΓòÉΓòÉΓòÉ 5.3.5. RxSetSpinButtonRangeFromStem ΓòÉΓòÉΓòÉ
  974.  
  975.  
  976. ΓòÉΓòÉΓòÉ 5.3.6. RxSort ΓòÉΓòÉΓòÉ
  977.  
  978. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  979. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  980. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  981.  
  982. ΓöÇΓöÇΓöÇRXSORT(ΓöÇΓöÇ'stemname.'ΓöÇΓöÇΓö¼ΓöÇ[ΓöÇ,ΓöÇ'Ascending'ΓöÇ]ΓöÇΓö¼ΓöÇΓöÇ[,ΓöÇΓöÇstartΓöÇΓöÇ,ΓöÇΓöÇendΓöÇΓöÇ])ΓöÇΓöÇΓöÇ
  983.                            ΓööΓöÇ[,ΓöÇ'Descending'ΓöÇ]ΓöÇΓöÿ
  984.  
  985.  
  986. Sorts a stemmed variable stemname. in either Ascending or Descending ASCII 
  987. sequence.  Only the A or D of the sort order is required. Ascending is the 
  988. default if omitted. 
  989.  
  990. start and end default to the start and of the string if either is omitted. 
  991.  
  992. The number of items to sort must be placed in stemname.0.  All values to sort 
  993. must be in stemname.1 through stemname.n, where n is the number placed in 
  994. stemname.0. 
  995.  
  996. RXSORT always returns NULL if invoked properly. 
  997.  
  998. Example: 
  999.  
  1000.      Stem.0 = 3
  1001.      Stem.1 = 'Now is the time...'
  1002.      Stem.2 = 'A stitch in time...'
  1003.      Stem.3 = 'Somewhere in time...'
  1004.      Call RxSort 'Stem.','A', 1, 3
  1005.      Do Count = 1 to Stem.0
  1006.         Say Stem.Count
  1007.      End
  1008.      Say '-----------------'
  1009.      Call RxSort 'Stem.','D', 1, ""
  1010.      Do Count = 1 to Stem.0
  1011.         Say Stem.Count
  1012.      End
  1013.  
  1014. Output: 
  1015.  
  1016.      A stitch in time...
  1017.      Now is the time...
  1018.      Somewhere in time...
  1019.      -----------------
  1020.      Somewhere in time...
  1021.      Now is the time...
  1022.      A stitch in time...
  1023.  
  1024.  
  1025. ΓòÉΓòÉΓòÉ 5.3.7. RxStemCopy ΓòÉΓòÉΓòÉ
  1026.  
  1027. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1028. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  1029. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1030.  
  1031. ΓöÇΓöÇΓöÇRXSTEMCOPY(ΓöÇΓöÇ'sourcestem.'ΓöÇΓöÇ,ΓöÇΓöÇ'targetstem.'ΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  1032.  
  1033.  
  1034. Copies the entire contents of sourcestem. to targetstem..  The trailing period 
  1035. to sourcestem. and targetstem. are required; results are unpredictable if they 
  1036. are not supplied. 
  1037.  
  1038. RXSTEMCOPY always returns NULL. 
  1039.  
  1040. Example: 
  1041.  
  1042.      Source.ABC = 'ABCDEFG'
  1043.      Source.123 = '123456789'
  1044.      Call RxStemCopy 'Source.','Target.'
  1045.      Say Target.ABC
  1046.      Say Target.123
  1047.  
  1048. Output: 
  1049.  
  1050.      ABCDEFG
  1051.      123456789
  1052.  
  1053.  
  1054. ΓòÉΓòÉΓòÉ 5.3.8. RxVarDump ΓòÉΓòÉΓòÉ
  1055.  
  1056.  
  1057. ΓòÉΓòÉΓòÉ 5.3.9. RxWrite ΓòÉΓòÉΓòÉ
  1058.  
  1059. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1060. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  1061. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1062.  
  1063. ΓöÇΓöÇΓöÇRXWRITE(ΓöÇΓöÇ'stemname.'ΓöÇ,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇfilenameΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  1064.                              ΓööΓöÇdrive:ΓöÇΓöÿ ΓööΓöÇ\ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γöÿ
  1065.                                             ΓööΓöÇpath\ΓöÇΓöÿ
  1066.  
  1067.  
  1068. Writes filename from the stem variable stemname..  The trailing period to 
  1069. stemname. is required; results are unpredictable if it is not supplied. 
  1070. RXWRITE requires that the number of lines to write are designated in 
  1071. stemname.0.  It also requires that the lines of text are placed in stemname. 
  1072. such that entries are numeric in nature, starting at 1 and continuing up to the 
  1073. number defined in stemname..0.  stemname. variables that are not numeric or are 
  1074. not within the range 1 to stemname.0 will not be written to filename.  RXWRITE 
  1075. writes the text lines in ascending numerical order. 
  1076.  
  1077. RXWRITE always overlays the contents of a previously-existing file, otherwise 
  1078. it creates the file as required. 
  1079.  
  1080. RXWRITE always returns NULL if successful.  If filename cannot be written, it 
  1081. raises an 'Incorrect call to routine' condition. 
  1082.  
  1083. Example: 
  1084.  
  1085.      MyStem.0 = 4
  1086.      MyStem.4 = 'We''re as happy as can be.'
  1087.      MyStem.2 = 'Hi There!'
  1088.      MyStem.3 = 'Ho There!'
  1089.      MyStem.1 = 'Hey There!'
  1090.      Call RxWrite 'MyStem.','C:\Temp.Out'
  1091.  
  1092. Contents of C:\Temp.Out: 
  1093.  
  1094.      Hey There!
  1095.      Hi There!
  1096.      Ho There!
  1097.      We're as happy as can be.
  1098.  
  1099.  
  1100. ΓòÉΓòÉΓòÉ 5.3.10. RxQueueList ΓòÉΓòÉΓòÉ
  1101.  
  1102.  
  1103. ΓòÉΓòÉΓòÉ 5.3.11. RxQueueWriteStem ΓòÉΓòÉΓòÉ
  1104.  
  1105.  
  1106. ΓòÉΓòÉΓòÉ 5.3.12. RxStemSearch ΓòÉΓòÉΓòÉ
  1107.  
  1108. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1109. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  1110. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1111.  
  1112. ΓöÇΓöÇΓöÇRXSTEMSEARCH(ΓöÇstringΓöÇ, ΓöÇ'findStem.'ΓöÇ, ΓöÇ'resultStem.'ΓöÇ [,options]ΓöÇ)ΓöÇΓöÇΓöÇ
  1113.  
  1114.  
  1115. Searches the contents of findStem. for the string specified and places the 
  1116. results into resultStem..  The trailing period to findStem. and resultStem. are 
  1117. required; results are unpredictable if they are not supplied. 
  1118.  
  1119. options can be any combination of: 
  1120.  
  1121.      C - Make the search Case Sensitive 
  1122.  
  1123.      N - Place the index of the original stem as the first word of the result 
  1124.       stem entries. 
  1125.  
  1126.  The default options are a non case sensitive search, and indexes are not 
  1127.  placed in the result stem. 
  1128.  
  1129.  The parameters for this function have been closely modelled on the 
  1130.  SysFileSearch function that comes with the REXXUTIL package in OS/2. 
  1131.  
  1132.  RXSTEMSEARCH always returns the NULL string. 
  1133.  
  1134.  Example: 
  1135.  
  1136.      stem.0 = 5
  1137.      stem.1 = 'Hi There, hello'
  1138.      stem.2 = 'Hello'
  1139.      stem.3 = 'Nope'
  1140.      stem.4 = 'helicopter'
  1141.      stem.5 = 'Hell is a lovely planet'
  1142.  
  1143.      Say "Finding 'hel' case sensitive in a stem, and returning indexes"
  1144.      Call RxStemSearch 'hel', 'stem.', 'find.', 'CN'
  1145.      Do i = 1 to find.0
  1146.        Say find.i
  1147.      End
  1148.  
  1149.  Output: 
  1150.  
  1151.      1 Hi There, hello
  1152.      4 helicopter
  1153.  
  1154.  
  1155. ΓòÉΓòÉΓòÉ 5.3.13. RxStemInsert ΓòÉΓòÉΓòÉ
  1156.  
  1157. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1158. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  1159. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1160.  
  1161. ΓöÇΓöÇΓöÇRXSTEMINSERT(ΓöÇ'stem.'ΓöÇ,ΓöÇlocationΓöÇ,ΓöÇ'textToInsert'ΓöÇ)ΓöÇΓöÇΓöÇ
  1162.  
  1163.  
  1164. Inserts an entry consisting of the textToInsert into the stem. passed at the 
  1165. location specified. 
  1166.  
  1167. The stem passed is expected to mimic an array. i.e. It should have stem.0 set 
  1168. to the number of elements in the stem, and each element should be stored at an 
  1169. ascending index, e.g.: 
  1170.  
  1171.   stem.0 = 3
  1172.   stem.1 = 343534
  1173.   stem.2 = 'This is a stem ok'
  1174.   stem.3 = 5/2
  1175.  
  1176. RXSTEMINSERT always returns the NULL string. 
  1177.  
  1178. Example: 
  1179.  
  1180.    stem.0 = 5
  1181.    stem.1 = 'Hi There, hello'
  1182.    stem.2 = 'Hello'
  1183.    stem.3 = 'Nope'
  1184.    stem.4 = 'helicopter'
  1185.    stem.5 = 'Hell is a lovely planet'
  1186.  
  1187.    Say "Inserting 'hello' into a stem"
  1188.    Call RxStemInsert 'stem.', 3, 'hello'
  1189.    Do i = 1 to stem.0
  1190.      Say stem.i
  1191.    End
  1192.  
  1193. Output: 
  1194.  
  1195.    Inserting 'hello' into a stem
  1196.    Hi There, hello
  1197.    Hello
  1198.    hello
  1199.    Nope
  1200.    helicopter
  1201.    Hell is a lovely planet
  1202.  
  1203.  
  1204. ΓòÉΓòÉΓòÉ 5.3.14. RxStemRemove ΓòÉΓòÉΓòÉ
  1205.  
  1206. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1207. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  1208. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1209.  
  1210. ΓöÇΓöÇΓöÇRXSTEMREMOVE(ΓöÇ'stem.'ΓöÇ,ΓöÇlocationΓöÇ)ΓöÇΓöÇΓöÇ
  1211.  
  1212.  
  1213. Removes an entry in the stem. passed from the location specified. 
  1214.  
  1215. The stem passed is expected to mimic an array. i.e. It should have stem.0 set 
  1216. to the number of elements in the stem, and each element should be stored at an 
  1217. ascending index, e.g.: 
  1218.  
  1219.   stem.0 = 3
  1220.   stem.1 = 343534
  1221.   stem.2 = 'This is a stem ok'
  1222.   stem.3 = 5/2
  1223.  
  1224. RXSTEMREMOVE always returns the NULL string. 
  1225.  
  1226. Example: 
  1227.  
  1228.    stem.0 = 5
  1229.    stem.1 = 'Hi There, hello'
  1230.    stem.2 = 'Hello'
  1231.    stem.3 = 'Nope'
  1232.    stem.4 = 'helicopter'
  1233.    stem.5 = 'Hell is a lovely planet'
  1234.  
  1235.    Say "Removing entry 4 from the stem"
  1236.    Call RxStemRemove 'stem.', 4
  1237.    Do i = 1 to stem.0
  1238.      Say stem.i
  1239.    End
  1240.  
  1241. Output: 
  1242.  
  1243.    Removing entry 4 from the stem
  1244.    Hi There, hello
  1245.    Hello
  1246.    Nope
  1247.    Hell is a lovely planet
  1248.  
  1249.  
  1250. ΓòÉΓòÉΓòÉ 5.4. OS/2 Environment ΓòÉΓòÉΓòÉ
  1251.  
  1252. These APIs deal with accessing information about or changing characterstics of 
  1253. your OS/2 machine. 
  1254.  
  1255.  
  1256. ΓòÉΓòÉΓòÉ 5.4.1. RxChangeThreadPriority ΓòÉΓòÉΓòÉ
  1257.  
  1258. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1259. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  1260. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1261.  
  1262. ΓöÇΓöÇΓöÇRXCHANGETHREADPRIORITY(ΓöÇΓöÇthreadidΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇ
  1263.                                          Γö£ΓöÇ,deltaΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1264.                                          Γö£ΓöÇ,'MINIMUM'ΓöÇΓöÇΓöÇΓöñ
  1265.                                          Γö£ΓöÇ,'MAXIMUM'ΓöÇΓöÇΓöÇΓöñ
  1266.                                          Γö£ΓöÇ,''ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1267.                                          Γö£ΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1268.  
  1269.  
  1270. Changes the priority of threadid by the delta value specified. If the value is 
  1271. left out, NULL or invalid, it is assumed to be the maximum. 
  1272.  
  1273. Note:  For OS/2 REXX running in an OS/2 Window, use thread id 0 to set the 
  1274. priority of your program. 
  1275.  
  1276. RXCHANGETHREADPRIORITY returns :- 
  1277.  
  1278. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1279. ΓöéReturn value             ΓöéReason                                  Γöé
  1280. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1281. Γöé"Priority changed"       ΓöéPriority was successfully changed       Γöé
  1282. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1283. Γöé"Invalid delta"          ΓöéThe second parameter was not in the     Γöé
  1284. Γöé                         Γöérange -31 to +31, blank, "maximum" or   Γöé
  1285. Γöé                         Γöé"minimum"                               Γöé
  1286. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1287. Γöé"Invalid Thread id"      ΓöéThe first parameter did not specify a   Γöé
  1288. Γöé                         Γöévalid thread id.                        Γöé
  1289. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1290. Γöé"Unknown return code n"  ΓöéDosSetPriority returned an undocumented Γöé
  1291. Γöé                         Γöéreturn code of n                        Γöé
  1292. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1293.  
  1294. Example: 
  1295.  
  1296.      rc = RxChangeThreadPriority(threadId, 5)
  1297.  
  1298. Results: 
  1299.  
  1300.      rc should contain the value "Priority changed"
  1301.  
  1302.  
  1303. ΓòÉΓòÉΓòÉ 5.4.2. RxGetEXEName ΓòÉΓòÉΓòÉ
  1304.  
  1305. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1306. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  1307. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1308.  
  1309. ΓöÇΓöÇΓöÇRXGETEXENAME(ΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  1310.  
  1311.  
  1312. Returns the name of the executable currently running your REXX Code. 
  1313.  
  1314. Example: 
  1315.  
  1316.      Say "The current running program is "RxGetEXEName()
  1317.  
  1318. Results: 
  1319.  
  1320.      The currnet running program is CMD.EXE     /* possibly */
  1321.  
  1322.  
  1323. ΓòÉΓòÉΓòÉ 5.4.3. RxKillThread ΓòÉΓòÉΓòÉ
  1324.  
  1325. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1326. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  1327. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1328.  
  1329. ΓöÇΓöÇΓöÇRXKILLTHREAD(ΓöÇΓöÇthreadidΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  1330.  
  1331.  
  1332. Kills thread threadid. 
  1333.  
  1334. RXKILLTHREAD returns :- 
  1335.  
  1336. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1337. ΓöéReturn value             ΓöéReason                                  Γöé
  1338. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1339. Γöé"Killed"                 ΓöéThread was successfully killed          Γöé
  1340. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1341. Γöé"Thread busy"            ΓöéThe thread to be killed was executing 16Γöé
  1342. Γöé                         Γöébit code, or was created by 16 bit code.Γöé
  1343. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1344. Γöé"Invalid Thread id"      ΓöéThe first parameter did not specify a   Γöé
  1345. Γöé                         Γöévalid thread id.                        Γöé
  1346. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1347. Γöé"Unknown return code n"  ΓöéDosKillThread returned an undocumented  Γöé
  1348. Γöé                         Γöéreturn code of n                        Γöé
  1349. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1350.  
  1351. Example: 
  1352.  
  1353.      If RxKillThread(5) = "Killed" Then
  1354.         Say "Printing ceased"
  1355.  
  1356. Results: 
  1357.  
  1358.      Thread number 5 is stopped permanently and
  1359.      rc should have the value "Killed"
  1360.  
  1361. Note:  RxKillThread returns to the caller without waiting for the ending thread 
  1362. to complete its termination processing. 
  1363.  
  1364. Note:  You cannot use this function to end the current thread. If you use 
  1365. RxKillThread to end thread 1, the entire process ends. 
  1366.  
  1367.  
  1368. ΓòÉΓòÉΓòÉ 5.4.4. RxQuerySwitchList ΓòÉΓòÉΓòÉ
  1369.  
  1370. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1371. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  1372. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1373.  
  1374. ΓöÇΓöÇΓöÇRXQUERYSWITCHLIST(ΓöÇΓöÇ'stemname.'ΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  1375.  
  1376.  
  1377. Retrieves a list of executing sessions into the stemmed variable stemname.. 
  1378.  
  1379. The count of executing sessions, plus 1, is placed in stemname.0, and the title 
  1380. of each session is placed in stemname.2 through stemname.n, where n is the 
  1381. value found in stemname.0. stemname.1 will contain 'Switch to'.  Note that 
  1382. RXQUERYSWITCHLIST will list "hidden" sessions. 
  1383.  
  1384. RXQUERYSWITCHLIST always returns NULL. 
  1385.  
  1386. stemname.n.HWND holds the nth entry's window handle. 
  1387.  
  1388. stemname.n.PID holds the nth entry's process id. 
  1389.  
  1390. Example: 
  1391.  
  1392.      Call RxQuerySwitchList 'temp.'
  1393.      Do Count = 2 to temp.0
  1394.           Say temp.Count
  1395.      End
  1396.  
  1397. Output: 
  1398.  
  1399.      4OS2 Window                   /* perhaps */
  1400.      Tritus SPF                    /* perhaps */
  1401.      System Clock                  /* perhaps */
  1402.      Pulse                         /* perhaps */
  1403.      Desktop                       /* perhaps */
  1404.  
  1405.  
  1406. ΓòÉΓòÉΓòÉ 5.4.5. RxResumeThread ΓòÉΓòÉΓòÉ
  1407.  
  1408. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1409. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  1410. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1411.  
  1412. ΓöÇΓöÇΓöÇRXRESUMETHREAD(ΓöÇΓöÇthreadidΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  1413.  
  1414.  
  1415. Allows thread threadid to resume execution after being suspended with 
  1416. RXSUSPENDTHREAD. 
  1417.  
  1418. RXRESUMETHREAD returns :- 
  1419.  
  1420. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1421. ΓöéReturn value             ΓöéReason                                  Γöé
  1422. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1423. Γöé"Resumed"                ΓöéThread was successfully resumed         Γöé
  1424. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1425. Γöé"Thread not previously   ΓöéThe thread to be resumed had not been   Γöé
  1426. Γöésuspended"               Γöépreviously suspended                    Γöé
  1427. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1428. Γöé"Invalid Thread id"      ΓöéThe first parameter did not specify a   Γöé
  1429. Γöé                         Γöévalid thread id.                        Γöé
  1430. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1431. Γöé"Unknown return code n"  ΓöéDosResumeThread returned an undocumentedΓöé
  1432. Γöé                         Γöéreturn code of n                        Γöé
  1433. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1434.  
  1435. Example: 
  1436.  
  1437.      If RxResumeThread(5) = 'Resumed' Then
  1438.         Say 'Suspended Printing Continues...'
  1439.  
  1440. Results: 
  1441.  
  1442.      Thread number 6 continues processing      /* hopefully */
  1443.  
  1444.  
  1445. ΓòÉΓòÉΓòÉ 5.4.6. RxSetThreadClass ΓòÉΓòÉΓòÉ
  1446.  
  1447. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1448. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  1449. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1450.  
  1451. ΓöÇΓöÇΓöÇRXSETTHREADCLASS(ΓöÇΓöÇthreadid ΓöÇΓöÇ,ΓöÇΓö¼ΓöÇ'REGULAR'ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  1452.                                      Γö£ΓöÇ'IDLE'ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1453.                                      Γö£ΓöÇ'TIMECRITICAL'ΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1454.                                      ΓööΓöÇ'FOREGROUNDSERVER'ΓöÇΓöÿ
  1455.  
  1456.  
  1457. Sets the class type of thread threadid to one of REGULAR, IDLE, TIMECRITICAL, 
  1458. or FOREGROUNDSERVER.  Only the R, I, T or F of the class type is required. 
  1459.  
  1460. Note:  For OS/2 REXX running in an OS/2 Window, use thread id 0 to set the 
  1461. priority class of your program. 
  1462.  
  1463. RXSETTHREADCLASS returns :- 
  1464.  
  1465. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1466. ΓöéReturn value             ΓöéReason                                  Γöé
  1467. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1468. Γöé"Class set"              ΓöéThe class of the thread was successfullyΓöé
  1469. Γöé                         Γöéset                                     Γöé
  1470. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1471. Γöé"Invalid class"          ΓöéThe class pthread to be killed was      Γöé
  1472. Γöé                         Γöéexecuting 16 bit code, or was created byΓöé
  1473. Γöé                         Γöé16 bit code.                            Γöé
  1474. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1475. Γöé"Invalid Thread id"      ΓöéThe first parameter did not specify a   Γöé
  1476. Γöé                         Γöévalid thread id.                        Γöé
  1477. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1478. Γöé"Unknown return code n"  ΓöéDosKillThread returned an undocumented  Γöé
  1479. Γöé                         Γöéreturn code of n                        Γöé
  1480. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1481.  
  1482. Example: 
  1483.  
  1484.      If RxSetThreadClass(id, 'F') = 'Class set' Then
  1485.         Say 'Printing sped up to foreground priority'
  1486.  
  1487. Results: 
  1488.  
  1489.      The thread should perform better than previously
  1490.  
  1491.  
  1492. ΓòÉΓòÉΓòÉ 5.4.7. RxSuspendThread ΓòÉΓòÉΓòÉ
  1493.  
  1494. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1495. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  1496. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1497.  
  1498. ΓöÇΓöÇΓöÇRXSUSPENDTHREAD(ΓöÇΓöÇthreadidΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  1499.  
  1500.  
  1501. Causes thread threadid to halt execution until it is killed with RXKILLTHREAD, 
  1502. restarted with RXRESUMETHREAD, or the parent session is closed. 
  1503.  
  1504. RXSUSPENDTHREAD returns :- 
  1505.  
  1506. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1507. ΓöéReturn value             ΓöéReason                                  Γöé
  1508. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1509. Γöé"Suspended"              ΓöéThe class of the thread was successfullyΓöé
  1510. Γöé                         Γöéset                                     Γöé
  1511. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1512. Γöé"Invalid Thread id"      ΓöéThe first parameter did not specify a   Γöé
  1513. Γöé                         Γöévalid thread id.                        Γöé
  1514. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1515. Γöé"Unknown return code n"  ΓöéDosSuspendThread returned an            Γöé
  1516. Γöé                         Γöéundocumented return code of n           Γöé
  1517. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1518.  
  1519. Example: 
  1520.  
  1521.       Call RxSuspendThread id
  1522.       If (result = 'Suspended') Then
  1523.         Say 'Thread 'id' is temporarily suspended'
  1524.  
  1525. Results: 
  1526.  
  1527.      The thread number contained in the variable id is suspended.
  1528.  
  1529.  
  1530. ΓòÉΓòÉΓòÉ 5.4.8. RxSwitchTo ΓòÉΓòÉΓòÉ
  1531.  
  1532. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1533. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  1534. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1535.  
  1536. ΓöÇΓöÇΓöÇRXSWITCHTO(ΓöÇΓöÇ'session'ΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  1537.  
  1538.  
  1539. Switches the forground session to the the session named by session. 
  1540.  
  1541. RXSWITCHTO will attempt to locate a session, by name, that matches in any part 
  1542. of its name to the contiguous characters defined by session  For example, if 
  1543. session contains 'stem C', RXSWITCHTO will switch to the System Clock session, 
  1544. if it is active.  If you desire to specifiy a complete name, use 
  1545. RXQUERYSWITCHLIST to obtain the full names of all executing sessions. 
  1546.  
  1547. RXSWITCHTO returns 'Switch Entry not found' if it cannot find a session name to 
  1548. match session. 
  1549.  
  1550. Example: 
  1551.  
  1552.      Call RxSwitchTo '2.0'       /* try "OS/2 2.0 Desktop" */
  1553.      If  Result \= '' Then       /* probably 2.1 */
  1554.           Call RxSwitchTo 'Desktop'
  1555.  
  1556. Results: 
  1557.  
  1558.      The system switches to your OS/2 desktop, making it the active
  1559.      forground session.  Your REXX program continues to execute in
  1560.      the background.
  1561.  
  1562.  
  1563. ΓòÉΓòÉΓòÉ 5.4.9. RxThread ΓòÉΓòÉΓòÉ
  1564.  
  1565. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1566. Γöé.........ΓöéVisPro/REXXΓöé.......ΓöéGPFRexxΓöé
  1567. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1568.  
  1569. ΓöÇΓöÇΓöÇRXTHREAD(ΓöÇΓöÇ'FileName'ΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  1570.                              ΓöéΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉΓöé
  1571.                              Γöé         ΓöéΓöé
  1572.                              ΓööΓö┤, argΓöÇΓöÇΓöÇΓöÇΓö┤Γöÿ
  1573.  
  1574. Causes the file called FileName to start execution in its own separate thread. 
  1575.  
  1576. As many arguments as REXX allows (up to 16 currently) can be passed to the 
  1577. thread by specifying them after the file name. 
  1578.  
  1579. The new thread runs asynchronously until it is suspended (RXSUSPENDTHREAD), is 
  1580. killed (RXKILLTHREAD), terminates of its own accord, or the parent session is 
  1581. closed. 
  1582.  
  1583. FileName must exist in the PATH. 
  1584.  
  1585. RXTHREAD returns the thread id if successful, otherwise it returns :- 
  1586.  
  1587. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1588. ΓöéReturn value             ΓöéReason                                  Γöé
  1589. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1590. Γöé"Thread could not be     ΓöéOS/2 would not start the thread         Γöé
  1591. Γöécreated -1"              Γöé                                        Γöé
  1592. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1593. Γöé"Can't find XYZ in the   ΓöéThe REXX file specified could not be    Γöé
  1594. ΓöéPATH"                    Γöéfound in the PATH.                      Γöé
  1595. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1596.  
  1597. Note:  The value returned is the threadid required for use with other RxExtras 
  1598. thread functions. 
  1599.  
  1600. Note:  Global Variables such as those created by RxSetGlobal can be used in 
  1601. threads. Variables in the calling REXX code can not be affected by a thread. 
  1602.  
  1603. Example: 
  1604.  
  1605.      tid = RxThread('STARTUP.CMD', 'Not Started', 'No Lan')
  1606.  
  1607. Results: 
  1608.  
  1609.      tid will hold the thread id that was returned when the
  1610.      STARTUP.CMD file was executed in parallel and passed two parameters:
  1611.      'Not Started' and 'No Lan'.
  1612.  
  1613.  
  1614. ΓòÉΓòÉΓòÉ 5.4.10. RxNap ΓòÉΓòÉΓòÉ
  1615.  
  1616. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1617. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  1618. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1619.  
  1620. ΓöÇΓöÇΓöÇRXNAP(ΓöÇΓöÇtimeΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  1621.  
  1622.  
  1623. Puts a REXX program to sleep for a certain amount of time. 
  1624.  
  1625. The SysSleep function that comes with OS/2 will only put your program to sleep 
  1626. for whole seconds. 
  1627.  
  1628. If the time specified (in milliseconds) is invalid, or is not passed to the 
  1629. function, an INCORRECT CALL TO ROUTINE condition is raised from within REXX. 
  1630.  
  1631. Example: 
  1632.  
  1633.      Call RxNap 50       /* sleep for 1/20 of a second */
  1634.  
  1635. Results: 
  1636.  
  1637.      The REXX program will stop execution for 1/20 of a second
  1638.  
  1639.  
  1640. ΓòÉΓòÉΓòÉ 5.4.11. RxKillProcess ΓòÉΓòÉΓòÉ
  1641.  
  1642. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1643. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  1644. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1645.  
  1646. ΓöÇΓöÇΓöÇRXKILLPROCESS(ΓöÇΓöÇprocidΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  1647.  
  1648.  
  1649. Kills process procid. 
  1650.  
  1651. RXKILLPROCESS returns :- 
  1652.  
  1653. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1654. ΓöéReturn value             ΓöéReason                                  Γöé
  1655. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1656. Γöé"Killed"                 ΓöéProcess was successfully killed         Γöé
  1657. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1658. Γöé"Invalid data"           ΓöéAn internal error occurred - contact theΓöé
  1659. Γöé                         ΓöéRxExtras author.                        Γöé
  1660. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1661. Γöé"Invalid process id"     ΓöéThe parameter did not specify a valid   Γöé
  1662. Γöé                         Γöéprocess id.                             Γöé
  1663. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1664. Γöé"Zombie process"         ΓöéOS/2 considers the process unkillable.  Γöé
  1665. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1666. Γöé"Not a descendant        ΓöéWhen killing a tree of processes (not   Γöé
  1667. Γöéprocess"                 Γöéyet implemented), the process specified Γöé
  1668. Γöé                         Γöéwas not a descendant of the calling     Γöé
  1669. Γöé                         Γöéprocess.                                Γöé
  1670. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1671.  
  1672. Example: 
  1673.  
  1674.      If RxKillProcess(5) = "Killed" Then
  1675.         Say "Printing ceased"
  1676.  
  1677. Results: 
  1678.  
  1679.      Process number 5 is stopped permanently and
  1680.      rc should have the value "Killed"
  1681.  
  1682. Note:  See also RxKillThread. 
  1683.  
  1684.  
  1685. ΓòÉΓòÉΓòÉ 5.4.12. RxMatchWildCard ΓòÉΓòÉΓòÉ
  1686.  
  1687. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1688. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  1689. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1690.  
  1691. ΓöÇΓöÇΓöÇRXMATCHWILDCARD(ΓöÇΓöÇsourceΓöÇΓöÇ, ΓöÇΓöÇwildCardΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  1692.  
  1693.  
  1694. RxMatchWildCard is used to search for and edit names of files and 
  1695. subdirectories.  Typically, it is used in conjunction with functions which do 
  1696. not permit the use of global file-name characters, to perform repetitive 
  1697. operations on files. 
  1698.  
  1699. An example of an editing operation is:- 
  1700.  
  1701.  source = "foo.bar"
  1702.  wildCard = "*.baz"
  1703.  Call RxMatchWildCard source, wildCard
  1704.  /* result = "FOO.BAZ" */
  1705.  
  1706. In the editing process, the string is changed to uppercase. 
  1707.  
  1708. Global file-name characters (?, *, .) have two uses:- searching and editing. 
  1709. If they are specified in source, they are interpreted as search characters; in 
  1710. wildCard, they are interpreted as editing characters. This difference can be 
  1711. illustrated with an example using the COPY utility.  The user types the 
  1712. following:- 
  1713.  
  1714.  copy *.old *.new
  1715.  
  1716. In the source, "*" acts as a search character and determines which files to 
  1717. return to the user. In the target, "*" functions as an editing character by 
  1718. constructing new names for the matched files. 
  1719.  
  1720. When used as search characters in source, global file-name characters simply 
  1721. match files and behave like any other search characters.  They have the 
  1722. following meanings:- 
  1723.  
  1724.  .         The period (.) has no special meaning itself, but "?"
  1725.            gives it one.
  1726.  
  1727.  *         The asterisk will form a match with any character,
  1728.            including a blank, or with the absence of a character.
  1729.            The matching operation does not cross the null
  1730.            character or the backslash (\), which means that only
  1731.            the file name is matched, not an entire path.
  1732.  
  1733.  ?         The question mark matches 1 character, unless what
  1734.            it would match is a "." or the terminating null
  1735.            characters, in which case it matches 0 characters.  It
  1736.            also does not cross "\".
  1737.  
  1738. Any character other than * and ? matches itself, including ".". 
  1739.  
  1740. Searching is not case-sensitive. 
  1741.  
  1742. If a file name does not have a period (.), an implicit one is automatically 
  1743. appended to the end during searching operations. For example, searching for 
  1744. "foo." would return "foo". 
  1745.  
  1746. When used in wildCard, global file-name characters have the following 
  1747. meanings:- 
  1748.  
  1749.  .         The period (.) in the target synchronizes pointers. It
  1750.            causes the source pointer to match a corresponding
  1751.            pointer to the period in the target.  Counting starts
  1752.            from the left of the pointers.
  1753.  
  1754.  ?         The question mark copies one character, unless what
  1755.            it would copy is a period (.), in which case it copies
  1756.            no characters. It also copies no characters when the
  1757.            end of the source string is reached.
  1758.  
  1759.  *         The asterisk copies characters from the source to the
  1760.            target until it finds a source character that matches
  1761.            the character following it in the target.
  1762.  
  1763. Editing is case-insensitive and case-preserving.  If conflicts arise between 
  1764. the case of the source and that of the editing string, the case of the editing 
  1765. string is used, for example:- 
  1766.  
  1767.  source string:      "file.txt"
  1768.  editing string:     "*E.TMP"
  1769.  result string: "filE.TMP"
  1770.  
  1771.  copy file.txt  *E.tmp  ->  filE.tmp
  1772.  
  1773. RXMATCHWILDCARD returns :- 
  1774.  
  1775. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1776. ΓöéReturn value             ΓöéReason                                  Γöé
  1777. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1778. Γöétext                     ΓöéThe result of editing the source and    Γöé
  1779. Γöé                         Γöéwildcard                                Γöé
  1780. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1781. Γöé"Invalid parameter"      ΓöéAn internal error occurred - contact theΓöé
  1782. Γöé                         ΓöéRxExtras author.                        Γöé
  1783. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1784. Γöé"Invalid name"           ΓöéEither the source or wildCard parameter Γöé
  1785. Γöé                         Γöédid not specify a valid string for      Γöé
  1786. Γöé                         Γöéediting.                                Γöé
  1787. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1788. Γöé"Unknown retured code x  ΓöéAn unknown return code was encountered. Γöé
  1789. Γöé                         ΓöéContact the author of RxExtras with the Γöé
  1790. Γöé                         Γöéreturn code info.                       Γöé
  1791. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1792.  
  1793. Example: 
  1794.  
  1795.      value = RxMatchWildCard('CONFIG.SYS', '*.BAK')
  1796.      Say "Creating a backup of your CONFIG.SYS in "value
  1797.  
  1798. Results: 
  1799.  
  1800.      Creating a backup of your CONFIG.SYS in CONFIG.BAK
  1801.  
  1802.  
  1803. ΓòÉΓòÉΓòÉ 5.4.13. RxMemAvail ΓòÉΓòÉΓòÉ
  1804.  
  1805. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1806. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  1807. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1808.  
  1809. ΓöÇΓöÇΓöÇRXMEMAVAIL(ΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  1810.  
  1811.  
  1812. Returns the amount of free memory available to applications. 
  1813.  
  1814. RXMEMAVAIL returns :- 
  1815.  
  1816. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1817. ΓöéReturn value             ΓöéReason                                  Γöé
  1818. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1819. ΓöéA number                 ΓöéFunction completed successfully. The    Γöé
  1820. Γöé                         Γöénumber is the amount of memory availableΓöé
  1821. Γöé                         Γöéin bytes.                               Γöé
  1822. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1823.  
  1824. Example: 
  1825.  
  1826.      Say 'You have 'RxMemAvail()/1024||'KB Memory free'
  1827.  
  1828. Results: 
  1829.  
  1830.      'You have 512KB Memory free' appears
  1831.  
  1832.  
  1833. ΓòÉΓòÉΓòÉ 5.4.14. RxSysValues ΓòÉΓòÉΓòÉ
  1834.  
  1835. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1836. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  1837. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1838.  
  1839. ΓöÇΓöÇΓöÇRXSYSVALUES(ΓöÇΓöÇ'stem.'ΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  1840.  
  1841.  
  1842. Returns system defined values in the stem 'stem.' 
  1843.  
  1844. The stem will contain the following elements: 
  1845.  
  1846. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1847. ΓöéStem Entry               ΓöéDescription                             Γöé
  1848. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1849. ΓöéMAX_PATH_LENGTH          ΓöéMaximum length, in bytes, of a path     Γöé
  1850. Γöé                         Γöéname.                                   Γöé
  1851. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1852. ΓöéMAX_TEXT_SESSIONS        ΓöéMaximum number of text sessions.        Γöé
  1853. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1854. ΓöéMAX_PM_SESSIONS          ΓöéMaximum number of PM sessions.          Γöé
  1855. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1856. ΓöéMAX_VDM_SESSIONS         ΓöéMaximum number of DOS sessions.         Γöé
  1857. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1858. ΓöéBOOT_DRIVE               ΓöéDrive from which the system was started Γöé
  1859. Γöé                         Γöé(1 means drive A, 2 means drive B, and  Γöé
  1860. Γöé                         Γöéso on).                                 Γöé
  1861. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1862. ΓöéDYN_PRI_VARIATION        ΓöéDynamic priority variation flag (0 meansΓöé
  1863. Γöé                         Γöéabsolute priority, 1 means dynamic      Γöé
  1864. Γöé                         Γöépriority).                              Γöé
  1865. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1866. ΓöéMAX_WAIT                 ΓöéMaximum wait in seconds.                Γöé
  1867. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1868. ΓöéMIN_SLICE                ΓöéMinimum time slice in milliseconds.     Γöé
  1869. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1870. ΓöéMAX_SLICE                ΓöéMaximum time slice in milliseconds.     Γöé
  1871. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1872. ΓöéPAGE_SIZE                ΓöéMemory page size in bytes. This value isΓöé
  1873. Γöé                         Γöé4096 for the 80386 processor.           Γöé
  1874. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1875. ΓöéVERSION_MAJOR            ΓöéMajor version number (see note below).  Γöé
  1876. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1877. ΓöéVERSION_MINOR            ΓöéMinor version number (see note below).  Γöé
  1878. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1879. ΓöéVERSION_REVISION         ΓöéRevision number (see note below).       Γöé
  1880. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1881. ΓöéMS_COUNT                 ΓöéValue of a 32-bit, free-running         Γöé
  1882. Γöé                         Γöémillisecond counter. This value is zero Γöé
  1883. Γöé                         Γöéwhen the system is started.             Γöé
  1884. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1885. ΓöéTIME_LOW                 ΓöéLow-order 32 bits of the time in secondsΓöé
  1886. Γöé                         Γöésince January 1, 1970 at 00:00:00.      Γöé
  1887. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1888. ΓöéTIME_HIGH                ΓöéHigh-order 32 bits of the time in       Γöé
  1889. Γöé                         Γöéseconds since January 1, 1970 at        Γöé
  1890. Γöé                         Γöé00:00:00.                               Γöé
  1891. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1892. ΓöéTOTPHYSMEM               ΓöéTotal number of bytes of physical memoryΓöé
  1893. Γöé                         Γöéin the system.                          Γöé
  1894. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1895. ΓöéTOTRESMEM                ΓöéTotal number of bytes of resident memoryΓöé
  1896. Γöé                         Γöéin the system.                          Γöé
  1897. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1898. ΓöéTOTAVAILMEM              ΓöéMaximum number of bytes of memory that  Γöé
  1899. Γöé                         Γöécan be allocated by all processes in theΓöé
  1900. Γöé                         Γöésystem.                                 Γöé
  1901. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1902. ΓöéMAXPRMEM                 ΓöéMaximum number of bytes of memory that  Γöé
  1903. Γöé                         Γöéthis process can allocate in its privateΓöé
  1904. Γöé                         Γöéarena.                                  Γöé
  1905. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1906. ΓöéMAXSHMEM                 ΓöéMaximum number of bytes of memory that aΓöé
  1907. Γöé                         Γöéprocess can allocate in the shared      Γöé
  1908. Γöé                         Γöéarena.                                  Γöé
  1909. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1910. ΓöéTIMER_INTERVAL           ΓöéTimer interval in tenths of a           Γöé
  1911. Γöé                         Γöémillisecond.                            Γöé
  1912. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1913. ΓöéMAX_COMP_LENGTH          ΓöéMaximum length, in bytes, of one        Γöé
  1914. Γöé                         Γöécomponent in a path name.               Γöé
  1915. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1916. ΓöéFOREGROUND_FS_SESSION    ΓöéSession ID of the current foreground    Γöé
  1917. Γöé                         Γöéfull-screen session. Note that this onlyΓöé
  1918. Γöé                         Γöéapplies to full-screen sessions. The    Γöé
  1919. Γöé                         ΓöéPresentation Manager session (which     Γöé
  1920. Γöé                         Γöédisplays Vio-windowed, PM, and windowed Γöé
  1921. Γöé                         ΓöéDOS Sessions) is full-screen session ID Γöé
  1922. Γöé                         Γöé1.                                      Γöé
  1923. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1924. ΓöéFOREGROUND_PROCESS       ΓöéProcess ID of the current foreground    Γöé
  1925. Γöé                         Γöéprocess.                                Γöé
  1926. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1927.  
  1928. Note:  Major, minor and revision numbers for versions of OS/2 operating system 
  1929. are described below: 
  1930.  
  1931.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1932.   Γöé          ΓöéMajor     ΓöéMinor     ΓöéRevision  Γöé
  1933.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1934.   ΓöéOS/2 2.0  Γöé20        Γöé00        Γöé0         Γöé
  1935.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1936.   ΓöéOS/2 2.1  Γöé20        Γöé10        Γöé0         Γöé
  1937.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1938.   ΓöéOS/2 2.11 Γöé20        Γöé11        Γöé0         Γöé
  1939.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1940.   ΓöéOS/2 3.0  Γöé20        Γöé30        Γöé0         Γöé
  1941.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1942.  
  1943. Example: 
  1944.  
  1945.      Call RxSysValues 'temp.'
  1946.      Say 'There are '||temp.TOTRESMEM||' bytes of resident memory'
  1947.  
  1948. Results: 
  1949.  
  1950.      'There are 5234566 bytes of resident memory' appears.
  1951.  
  1952.  
  1953. ΓòÉΓòÉΓòÉ 5.4.15. RxQueryCountryInfo ΓòÉΓòÉΓòÉ
  1954.  
  1955. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1956. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  1957. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1958.  
  1959. ΓöÇΓöÇΓöÇRXQUERYCOUNTRYINFO(ΓöÇΓöÇ'stem.'ΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  1960.  
  1961.  
  1962. Returns country specific information in the stem 'stem.' 
  1963.  
  1964. The stem will contain the following elements: 
  1965.  
  1966. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1967. ΓöéStem Entry               ΓöéDescription                             Γöé
  1968. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1969. ΓöéCOUNTRY_CODE             ΓöéThe numeric representation of a country.Γöé
  1970. Γöé                         Γöée.g. 061 for Australia, 1 for the U.S.  Γöé
  1971. Γöé                         Γöéetc.                                    Γöé
  1972. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1973. ΓöéDATE_FORMAT              ΓöéDDMMYY, MMDDYY, YYMMDD or Unknown.      Γöé
  1974. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1975. ΓöéCODE_PAGE                ΓöéThe currently defined code page.        Γöé
  1976. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1977. ΓöéCURRENCY                 ΓöéThe currency symbol (i.e. $).           Γöé
  1978. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1979. ΓöéTHOUSANDS_SEPARATOR      ΓöéThe character used to separate digits > Γöé
  1980. Γöé                         Γöé1000 (i.e. ',').                        Γöé
  1981. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1982. ΓöéDECIMAL_SEPARATOR        ΓöéThe character used to separate whole    Γöé
  1983. Γöé                         Γöénumbers from the decimal portion (i.e.  Γöé
  1984. Γöé                         Γöé'.').                                   Γöé
  1985. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1986. ΓöéDATE_SEPARATOR           ΓöéThe character used to separate the      Γöé
  1987. Γöé                         Γöécomponents of a date. (i.e. '-' or '/').Γöé
  1988. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1989. ΓöéTIME__SEPARATOR          ΓöéThe character used to separate the      Γöé
  1990. Γöé                         Γöécomponents of a time (i.e. '-' or '.'). Γöé
  1991. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1992. ΓöéCURRENCY_FORMAT.SIGN_FOLLΓöéBoolean - does the currency sign follow Γöé
  1993. Γöé                         Γöéthe number.                             Γöé
  1994. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1995. ΓöéCURRENCY_FORMAT.SPACES_BEΓöéThe number of spaces between the        Γöé
  1996. Γöé                         Γöécurrency sign and the number.           Γöé
  1997. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1998. ΓöéCURRENCY_FORMAT.REPLACES_ΓöéBoolean - does the currency sign replaceΓöé
  1999. Γöé                         Γöéthe decimal separator (i.e. 10$00).     Γöé
  2000. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2001. ΓöéDECIMAL_PLACES           ΓöéThe number of decimal places by default.Γöé
  2002. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2003. ΓöéTIME_FORMAT              Γöé"12 Hour" or "24 Hour".                 Γöé
  2004. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2005. ΓöéLIST_SEPARATOR           ΓöéThe character used to separate elements Γöé
  2006. Γöé                         Γöéof a list (i.e. ',').                   Γöé
  2007. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2008. ΓöéAM                       ΓöéThe string used to represent AM times   Γöé
  2009. Γöé                         Γöé(as a suffix, i.e. 'AM').               Γöé
  2010. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2011. ΓöéPM                       ΓöéThe string used to represent PM times   Γöé
  2012. Γöé                         Γöé(as a suffix, i.e. 'PM').               Γöé
  2013. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2014.  
  2015. Example: 
  2016.  
  2017.      Call RxQueryCountryInfo 'temp.'
  2018.      Say 'The currency sign is '||temp.CURRENCY||' in your country'
  2019.  
  2020. Results: 
  2021.  
  2022.      'The currency sign is $ in your country' appears.
  2023.  
  2024.  
  2025. ΓòÉΓòÉΓòÉ <hidden> RxChangeThreadPriority (threadID, delta) ΓòÉΓòÉΓòÉ
  2026.  
  2027. Changes the priority of the thread id specified by the delta amount specified. 
  2028.  
  2029. The delta value must be in the range -31 to +31. 
  2030.  
  2031.  
  2032. ΓòÉΓòÉΓòÉ <hidden> RxChangeThreadPriority (threadID, 'Minimum') ΓòÉΓòÉΓòÉ
  2033.  
  2034. Lowers the priority of the thread id specified by the most possible (-31).
  2035.  
  2036. Only the first two characters of the second parameter are significant. 
  2037.  
  2038.  
  2039. ΓòÉΓòÉΓòÉ <hidden> RxChangeThreadPriority (threadID, 'Maximum') ΓòÉΓòÉΓòÉ
  2040.  
  2041. Raises the priority of the thread id specified by the most possible (+31).
  2042.  
  2043. Only the first two characters of the second parameter are significant. 
  2044.  
  2045.  
  2046. ΓòÉΓòÉΓòÉ <hidden> RxChangeThreadPriority (threadID, '') ΓòÉΓòÉΓòÉ
  2047.  
  2048. Raises the priority of the thread id specified by the most possible (+31). 
  2049.  
  2050.  
  2051. ΓòÉΓòÉΓòÉ <hidden> RxSetThreadClass (threadID, 'REGULAR') ΓòÉΓòÉΓòÉ
  2052.  
  2053. Sets the class of the specified thread id to REGULAR. This is the class of 
  2054. applications running in the background. The application with focus runs at 
  2055. FOREGROUNDSERVER 
  2056.  
  2057.  
  2058. ΓòÉΓòÉΓòÉ <hidden> RxSetThreadClass (threadID, 'IDLE') ΓòÉΓòÉΓòÉ
  2059.  
  2060. Sets the class of the specified thread id to IDLE. This is one step less 
  2061. important than a normal application. 
  2062.  
  2063.  
  2064. ΓòÉΓòÉΓòÉ <hidden> RxSetThreadClass (threadID, 'FOREGROUNDSERVER') ΓòÉΓòÉΓòÉ
  2065.  
  2066. Sets the class of the specified thread id to FOREGROUNDSERVER. This is the 
  2067. class of the applications that currently has focus, or a server thread needing 
  2068. higher than normal CPU. 
  2069.  
  2070.  
  2071. ΓòÉΓòÉΓòÉ <hidden> RxSetThreadClass (threadID, 'TIMECRITICAL') ΓòÉΓòÉΓòÉ
  2072.  
  2073. Sets the class of the specified thread id to TIMECRITICAL. This should be used 
  2074. very sparingly as it can make the foreground applcation unresponsive, since a 
  2075. TIMECRITICAL thread gets more of the CPU than any FOREGROUNDSERVER thread. 
  2076.  
  2077.  
  2078. ΓòÉΓòÉΓòÉ 5.5. ListBox Objects ΓòÉΓòÉΓòÉ
  2079.  
  2080. These APIs deal with PM ListBox Objects.  They require a PM REXX-based program 
  2081. in order to function. 
  2082.  
  2083.  
  2084. ΓòÉΓòÉΓòÉ 5.5.1. RxAddItemAtIndex ΓòÉΓòÉΓòÉ
  2085.  
  2086. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2087. Γöé.........ΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  2088. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2089.  
  2090. ΓöÇΓöÇΓöÇRXADDITEMATINDEX(ΓöÇΓöÇwinidΓöÇΓöÇ,ΓöÇΓöÇ[lbid]ΓöÇΓöÇ,ΓöÇΓöÇrowΓöÇΓöÇ,ΓöÇΓöÇvalueΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  2091.  
  2092.  
  2093. Inserts the entry value at line row into ListBox lbid of Window winid. 
  2094.  
  2095. If either winid or lbid are invalid, the rexx error condition INCORRECT CALL TO 
  2096. ROUTINE is raised. 
  2097.  
  2098. RXADDITEMATINDEX returns the index that the item was inserted at if successful, 
  2099. otherwise it returns :- 
  2100.  
  2101. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2102. ΓöéReturn    ΓöéReason                                  Γöé
  2103. Γöévalue     Γöé                                        Γöé
  2104. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2105. Γöé-1        ΓöéThere was not enough memory to insert   Γöé
  2106. Γöé          Γöéthe item into the list box              Γöé
  2107. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2108. Γöé-2        ΓöéAn error occurred inserting the item    Γöé
  2109. Γöé          Γöéinto the listbox                        Γöé
  2110. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2111.  
  2112. VisPro/REXX Example: 
  2113.  
  2114.      Call RxAddtItemAtIndex window, 1000, 4, 'This is the fourth line'
  2115.  
  2116. VX-REXX Example: 
  2117.  
  2118.      window = VRGet("LB_1", "HWnd")
  2119.      Call RxAddtItemAtIndex window,, 4, 'This is the fourth line'
  2120.  
  2121. GPFRexx Example: 
  2122.  
  2123.      window = QueryHandle("ListBox1")
  2124.      Call RxAddtItemAtIndex window,, 4, 'This is the fourth line'
  2125.  
  2126. Results: 
  2127.  
  2128.      The ListBox receives a new row 4, the contents of which are
  2129.      'This is the fourth line'.  Rows 5 and higher are shifted
  2130.      down 1 row. The REXX special variable result
  2131.      contains 4.
  2132.  
  2133.  
  2134. ΓòÉΓòÉΓòÉ 5.5.2. RxGetItemFromListBox ΓòÉΓòÉΓòÉ
  2135.  
  2136. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2137. Γöé.........ΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  2138. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2139.  
  2140. ΓöÇΓöÇΓöÇRXGETITEMFROMLISTBOX(ΓöÇΓöÇwinidΓöÇ[ΓöÇ,ΓöÇΓöÇlbidΓöÇ]ΓöÇ)ΓöÇΓöÇΓöÇ
  2141.  
  2142.  
  2143. Retrieves the first selected item from ListBox lbid of Window winid. 
  2144.  
  2145. If winid is invalid, the REXX error condition INCORRECT CALL TO ROUTINE is 
  2146. raised. 
  2147.  
  2148. If no items are selected, RXGETITEMFROMLISTBOX returns an empty string ("").
  2149.  
  2150. If winid and/or lbid are invalid, RXGETITEMFROMLISTBOX raises an INCORRECT CALL 
  2151. TO ROUTINE error from within REXX. Otherwise, RXGETITEMFROMLISTBOX returns the 
  2152. selected item. 
  2153.  
  2154. Note:  The VisPro/Rexx API VpGetItemValue will only return up to 256 characters 
  2155. for the retrieved item.  RxGetItemFromListBox will exactly what is in the 
  2156. listbox. 
  2157.  
  2158. VisPro/REXX Example: 
  2159.  
  2160.      row = RxGetItemFromListBox(window, 1000)
  2161.  
  2162. VX-REXX Example: 
  2163.  
  2164.      window = VRGet("LB_1", "HWnd")
  2165.      row = RxGetItemFromListBox(window)
  2166.  
  2167. GPFRexx Example: 
  2168.  
  2169.      window = QueryHandle("Listbox")
  2170.      row = RxGetItemFromListBox(window)
  2171.  
  2172. Results: 
  2173.  
  2174.      The first selected item in the ListBox is
  2175.      retrieved and placed in the variable row.
  2176.  
  2177.  
  2178. ΓòÉΓòÉΓòÉ 5.5.3. RxGetItemFromListBoxAtIndex ΓòÉΓòÉΓòÉ
  2179.  
  2180. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2181. Γöé.........ΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  2182. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2183.  
  2184. ΓöÇΓöÇΓöÇRXGETITEMFROMLISTBOXATINDEX(ΓöÇΓöÇwindowΓöÇΓöÇ,ΓöÇ[ΓöÇlbidΓöÇ]ΓöÇ,ΓöÇΓöÇrowΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  2185.  
  2186.  
  2187. Retrieves the line row from ListBox lbid of Window window. 
  2188.  
  2189. If no item exists at line row in window RXGETITEMFROMLISTBOXATINDEX raises an 
  2190. INCORRECT CALL TO ROUTINE error from within REXX. 
  2191.  
  2192. Otherwise, RXGETITEMFROMLISTBOXATINDEX returns the item of choice. 
  2193.  
  2194. Note:  The VisPro/Rexx API VpGetItemValueAtIndex will only return up to 256 
  2195. characters for the retrieved item.  RxGetItemFromListBoxAtIndex will return 
  2196. whatever is in the listbox, with no limitations. 
  2197.  
  2198. VisPro/Rexx Example: 
  2199.  
  2200.      row = RxGetItemFromListBoxAtIndex(window, 1000, 4)
  2201.  
  2202. VX-REXX Example: 
  2203.  
  2204.      row = RxGetItemFromListBoxAtIndex(VRGet("LB_1", "HWnd"),,4)
  2205.  
  2206. GPFRexx Example: 
  2207.  
  2208.      row = RxGetItemFromListBoxAtIndex(QueryHandle("Listbox1"),,4)
  2209.  
  2210. Results: 
  2211.  
  2212.      If it exists, the item at line 4 in the ListBox
  2213.      is retrieved and placed in the variable row.
  2214.  
  2215.  
  2216. ΓòÉΓòÉΓòÉ 5.5.4. RxGetListBoxCount ΓòÉΓòÉΓòÉ
  2217.  
  2218. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2219. Γöé.........ΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  2220. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2221.  
  2222. ΓöÇΓöÇΓöÇRXGETLISTBOXCOUNT(ΓöÇΓöÇwinidΓöÇ[ΓöÇ,ΓöÇΓöÇlbidΓöÇ]ΓöÇ)ΓöÇΓöÇΓöÇ
  2223.  
  2224.  
  2225. Retrieves the number of rows available in ListBox lbid of Window winid. 
  2226.  
  2227. If winid is invalid, RXGETLISTBOXCOUNT raises the INCORRECT CALL TO ROUTINE 
  2228. error condition from within REXX. Otherwise, RXGETLISTBOXCOUNT returns the 
  2229. number of available rows. 
  2230.  
  2231. VisPro/Rexx Example: 
  2232.  
  2233.      items = RxGetListBoxCount(window, 1000)
  2234.  
  2235. VX-Rexx Example: 
  2236.  
  2237.      items = RxGetListBoxCount(VRGet("LB_1", "HWnd"))
  2238.  
  2239. GPFRexx Example: 
  2240.  
  2241.      items = RxGetListBoxCount(QueryHandle("ListBox1"))
  2242.  
  2243. Results: 
  2244.  
  2245.      The number of rows in the ListBox are placed
  2246.      in the variable items.
  2247.  
  2248.  
  2249. ΓòÉΓòÉΓòÉ 5.5.5. RxListBoxFromFile ΓòÉΓòÉΓòÉ
  2250.  
  2251. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2252. Γöé.........ΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  2253. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2254.  
  2255. ΓöÇΓöÇΓöÇRXLISTBOXFROMFILE(ΓöÇΓöÇwinidΓöÇΓöÇ,ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,ΓöÇΓöÇfilenameΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  2256.                                    ΓööΓöÇlbidΓöÇΓöÿ
  2257.  
  2258. Places the contents of file filename into ListBox lbid of Window winid. 
  2259.  
  2260. If lbid is omitted, winid is assumed to be the handle of a list box. 
  2261.  
  2262. If winid and/or filename are invalid/inaccessible, RXLISTBOXFROMFILE raises an 
  2263. INCORRECT CALL TO ROUTINE condition from within REXX. Otherwise, 
  2264. RXLISTBOXFROMFILE returns a null string. 
  2265.  
  2266. Note:  For VisPro/Rexx, winid is passed to all events. 
  2267.  
  2268. Note:  This API appends to the end of any existing contents already in ListBox 
  2269. lbid. 
  2270.  
  2271. VisPro/REXX Example: 
  2272.  
  2273.      Call RxListBoxFromFile window, 1000, 'C:\Config.Sys'
  2274.  
  2275. VX-REXX Example: 
  2276.  
  2277.      window = VRGet("LB_1", "HWnd")
  2278.      Call RxListBoxFromFile window,, 'C:\Config.Sys'
  2279.  
  2280. GPFRexx Example: 
  2281.  
  2282.      window = QueryHandle("Listbox1")
  2283.      Call RxListBoxFromFile window,, 'C:\Config.Sys'
  2284.  
  2285. Results: 
  2286.  
  2287.      The contents of C:\Config.Sys are placed into ListBox 1000 of
  2288.      window window (or listbox "LB_1" for VX-REXX).
  2289.  
  2290.  
  2291. ΓòÉΓòÉΓòÉ 5.5.6. RxListBoxFromStem ΓòÉΓòÉΓòÉ
  2292.  
  2293. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2294. Γöé.........ΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  2295. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2296.  
  2297. ΓöÇΓöÇΓöÇRXLISTBOXFROMSTEM(ΓöÇΓöÇwinidΓöÇΓöÇ,ΓöÇ[ΓöÇlbidΓöÇ]ΓöÇ,ΓöÇΓöÇstemname.ΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  2298.  
  2299.  
  2300. Places the contents of stem stemname into ListBox lbid of Window winid.  The 
  2301. trailing period to stemname. is required; results are unpredictable if not 
  2302. supplied. 
  2303.  
  2304. stemname.0 must contain the count of items to be placed into ListBox lbid.  All 
  2305. other occurrences for stemname must be numeric, from 1 to n, where n is the 
  2306. number contained in stemname.0. 
  2307.  
  2308. If winid is invalid, RXLISTBOXFROMSTEM raises an INCORRECT CALL TO ROUTINE from 
  2309. within REXX. Otherwise, RXLISTBOXFROMSTEM returns an empty string (""). 
  2310.  
  2311. Note:  This API appends to the end of any existing contents already in ListBox 
  2312. lbid. 
  2313.  
  2314. VisPro/REXX Example: 
  2315.  
  2316.      MyStem.0 = 2
  2317.      MyStem.1 = 'This will be the 1st line added'
  2318.      MyStem.2 = 'This will be the 2nd line added'
  2319.      Call RxListBoxFromStem window, 1000, 'MyStem.'
  2320.  
  2321. VX-REXX Example: 
  2322.  
  2323.      MyStem.0 = 2
  2324.      MyStem.1 = 'This will be the 1st line added'
  2325.      MyStem.2 = 'This will be the 2nd line added'
  2326.      Call RxListBoxFromStem VRGet("LB_1", "HWnd"),, 'MyStem.'
  2327.  
  2328. GPFRexx Example: 
  2329.  
  2330.      MyStem.0 = 2
  2331.      MyStem.1 = 'This will be the 1st line added'
  2332.      MyStem.2 = 'This will be the 2nd line added'
  2333.      Call RxListBoxFromStem QueryHandle("ListBox1"),, 'MyStem.'
  2334.  
  2335. Results: 
  2336.  
  2337.      The contents of the ListBox will have 2 new
  2338.      rows.  The rows will be:
  2339.  
  2340.           This will be the 1st line added
  2341.           This will be the 2nd line added
  2342.  
  2343.  
  2344. ΓòÉΓòÉΓòÉ 5.5.7. RxListBoxItemHandle ΓòÉΓòÉΓòÉ
  2345.  
  2346. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2347. Γöé.........ΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  2348. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2349.  
  2350. ΓöÇΓöÇΓöÇRXLISTBOXITEMHANDLE(ΓöÇΓöÇwindowΓöÇΓöÇ,ΓöÇ[ΓöÇΓöÇlistboxidΓöÇΓöÇ]ΓöÇ,ΓöÇΓöÇindexΓöÇΓöÇ[,ΓöÇΓöÇvalueΓöÇΓöÇ])ΓöÇΓöÇΓöÇ
  2351.  
  2352.  
  2353. This call either sets or queries some text associated with a ListBox item. It 
  2354. does not change the text of the item or affect it in any other way. 
  2355.  
  2356. If winid and/or index are invalid, RXLISTBOXFROMSTEM raises an INCORRECT CALL 
  2357. TO ROUTINE from within REXX. 
  2358.  
  2359. If the value parameter is omittted, RXLISTBOXITEMHANDLE returns the text 
  2360. associated with that list box item (it's handle). 
  2361.  
  2362. If the value parameter is specified, RXLISTBOXITEMHANDLE sets the text 
  2363. associated with that list box item to the value. 
  2364.  
  2365. If the listboxid  parameter is omitted, window is assumed to be the window 
  2366. handle of a listbox. 
  2367.  
  2368. VisPro/REXX Example: 
  2369.  
  2370.      Call RxListBoxItemHandle window, 1000, 1, 'Line 1 must not be deleted'
  2371.  
  2372. VX-REXX Example: 
  2373.  
  2374.      window = VRGet("LB_1", "HWnd")
  2375.      Call RxListBoxItemHandle window,, 1, 'Line 1 must not be deleted'
  2376.  
  2377. GPFRexx Example: 
  2378.  
  2379.      window = QueryHandle("Listbox1")
  2380.      Call RxListBoxItemHandle window,, 1, 'Line 1 must not be deleted'
  2381.  
  2382. Results: 
  2383.  
  2384.      The first item (index 1) with have the text
  2385.      'Line 1 must not be deleted' associated with it.
  2386.  
  2387.      This text can be queried using RxListBoxItemHandle
  2388.      by omitting the value parameter.
  2389.  
  2390.  
  2391. ΓòÉΓòÉΓòÉ 5.5.8. RxListBoxToFile ΓòÉΓòÉΓòÉ
  2392.  
  2393. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2394. Γöé.........ΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  2395. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2396.  
  2397. ΓöÇΓöÇΓöÇRXLISTBOXTOFILE(ΓöÇΓöÇwinidΓöÇΓöÇ,ΓöÇ[ΓöÇΓöÇlbidΓöÇΓöÇ]ΓöÇ,ΓöÇΓöÇfilenameΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  2398.  
  2399.  
  2400. Places the contents ListBox lbid of Window winid into file filename. 
  2401.  
  2402. If winid and/or filename are invalid/inaccessible, RXLISTBOXTOFILE raises the 
  2403. REXX INCORRECT CALL TO ROUTINE error condition. Otherwise, RXLISTBOXTOFILE 
  2404. returns an empty string (""). 
  2405.  
  2406. If lbid is omitted, winid is assumed to be the window handle of a listbox. 
  2407.  
  2408. Note:  This API erases all contents of file filename before writing to it. 
  2409.  
  2410. VisPro/REXX Example: 
  2411.  
  2412.      Call RxListBoxToFile window, 1000, 'C:\MyData.Dat'
  2413.  
  2414. VX-REXX Example: 
  2415.  
  2416.      window = VRGet("LB_1", "HWnd")
  2417.      Call RxListBoxToFile window,, 'C:\MyData.Dat'
  2418.  
  2419. GPFRexx Example: 
  2420.  
  2421.      window = QueryHandle("Listbox1")
  2422.      Call RxListBoxToFile window,, 'C:\MyData.Dat'
  2423.  
  2424. Results: 
  2425.  
  2426.      The contents of the ListBox are written to
  2427.      file C:\MyData.Dat.
  2428.  
  2429.  
  2430. ΓòÉΓòÉΓòÉ 5.5.9. RxListBoxToStem ΓòÉΓòÉΓòÉ
  2431.  
  2432. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2433. Γöé.........ΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  2434. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2435.  
  2436. ΓöÇΓöÇΓöÇRXLISTBOXTOSTEM(ΓöÇΓöÇwinidΓöÇΓöÇ,ΓöÇ[ΓöÇlbidΓöÇ]ΓöÇ,ΓöÇΓöÇstemname.ΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  2437.  
  2438.  
  2439. Places the contents of ListBox lbid of Window winid into stem stemname.  The 
  2440. trailing period to stemname. is required; results are unpredictable if not 
  2441. supplied. 
  2442.  
  2443. stemname.0 will contain the count of items to placed into it from ListBox lbid. 
  2444. All other occurrences for stemname will be numeric, from 1 to n, where n is the 
  2445. number contained in stemname.0. 
  2446.  
  2447. If winid is invalid, RXLISTBOXTOSTEM raises the REXX error condition INCORRECT 
  2448. CALL TO ROUTINE. Otherwise, RXLISTBOXTOSTEM returns an empty string (""). 
  2449.  
  2450. Note:  This API destroyes any existing contents already in stem stemname. 
  2451.  
  2452. VisPro/REXX Example: 
  2453.  
  2454.      Call RxListBoxToStem window, 1000, 'MyStem.'
  2455.  
  2456. VX-REXX Example: 
  2457.  
  2458.      Call RxListBoxToStem VRGet("LB_1", "HWnd"),, 'MyStem.'
  2459.  
  2460. GPFRexx Example: 
  2461.  
  2462.      Call RxListBoxToStem QueryHandle("ListBox1"),, 'MyStem.'
  2463.  
  2464. Results: 
  2465.  
  2466.      The contents of the ListBox will be copied
  2467.      to stem MyStem.  Assuming there are 2 rows in ListBox 1000,
  2468.      MyStem.0 will contain 2, and occurrences will exist for MyStem.1
  2469.      and MyStem.2.
  2470.  
  2471.  
  2472. ΓòÉΓòÉΓòÉ 5.5.10. RxScrollListBox ΓòÉΓòÉΓòÉ
  2473.  
  2474. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2475. Γöé.........ΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  2476. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2477.  
  2478. ΓöÇΓöÇΓöÇRXSCROLLISTBOX(ΓöÇΓöÇwinidΓöÇΓöÇ,ΓöÇ[ΓöÇΓöÇlbidΓöÇΓöÇ]ΓöÇ,ΓöÇΓöÇnumLinesToScroll.ΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  2479.  
  2480.  
  2481. Scrolls the ListBox lbid of Window winid by numLinesToScroll lines. A negative 
  2482. value should be used to scroll up, a positive value to scroll the listbox down. 
  2483.  
  2484. If winid and/or lbid are invalid, RXSCROLLLISTBOX raises the REXX error 
  2485. condition INCORRECT CALL TO ROUTINE. 
  2486.  
  2487. If lbid is omitted, winid is assumed to be the window handle of a listbox. 
  2488.  
  2489. if numLinesToScroll is not numeric, the listbox is simply not scrolled. 
  2490.  
  2491. Otherwise, RXSCROLLLISTBOX returns an empty string (""). 
  2492.  
  2493. VisPro/REXX Example: 
  2494.  
  2495.      Call RxScrollListBox window, 1000, -3
  2496.  
  2497. VX-REXX Example: 
  2498.  
  2499.      window = VRGet("LB_1", "HWnd")
  2500.      Call RxScrollListBox window,, -3
  2501.  
  2502. GPFRexx Example: 
  2503.  
  2504.      window = QueryHandle("ListBox1")
  2505.      Call RxScrollListBox window,, -3
  2506.  
  2507. Results: 
  2508.  
  2509.      The contents of ListBox will be scrolled up 3 lines
  2510.  
  2511.  
  2512. ΓòÉΓòÉΓòÉ 5.5.11. RxSearchItem ΓòÉΓòÉΓòÉ
  2513.  
  2514. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2515. Γöé.........ΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  2516. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2517.  
  2518. Searches a listbox for text. Doesn't have to be an entire line, it can be text 
  2519. contained within one line of a listbox. 
  2520.  
  2521. RxSearchItem returns the line in the listbox that holds the text. 
  2522.  
  2523. ΓöÇΓöÇΓöÇRXSEARCHITEM(ΓöÇΓöÇwinidΓöÇΓöÇ,ΓöÇ[ΓöÇlbidΓöÇ]ΓöÇ,ΓöÇΓö¼ΓöÇ''ΓöÇΓöÇΓöÇΓö¼ΓöÇ,ΓöÇΓöÇrowΓöÇΓöÇ,ΓöÇΓö¼ΓöÇ'F'ΓöÇΓö¼ΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  2524.                                       ΓööΓöÇmaskΓöÇΓöÿ           ΓööΓöÇ'B'ΓöÇΓöÿ
  2525.  
  2526.  
  2527. Searches ListBox lbid of Window winid, starting at line row, for a line 
  2528. containing the characters mask.  The search will procede forward or backward, 
  2529. depending on the use of 'F' or 'B', respectively. 
  2530.  
  2531. If winid and/or lbid are invalid, RXSEARCHITEM raises the REXX error condition 
  2532. INCORRECT CALL TO ROUTINE. Otherwise, RXSEARCHITEM returns the index number of 
  2533. the first matching line, or 0 if no lines were found to match mask. 0 is used 
  2534. to indicate no match. 
  2535.  
  2536. Note:  If NULL (i.e., '') is used for mask, the first item tested will match. 
  2537. RXSEARCHITEM can therefore be used to retrieve the index of the last item in 
  2538. ListBox lbid. 
  2539.  
  2540. VisPro/REXX Example: 
  2541.  
  2542.      JohnIsAt = RxSearchItem(window, 1000, 'John Smith', 1, 'F')
  2543.  
  2544. VX-REXX Example: 
  2545.  
  2546.      JohnIsAt = RxSearchItem(VRGet("LB_1", "HWnd"),, 'John Smith', 1, 'F')
  2547.  
  2548. GPFRexx Example: 
  2549.  
  2550.      JohnIsAt = RxSearchItem(QueryHandle("ListBox1"),, 'John Smith', 1, 'F')
  2551.  
  2552. Results: 
  2553.  
  2554.      The contents of the ListBox will be searched,
  2555.      starting at row 1 and proceding in a forward direction, looking
  2556.      for any row that contains the characters 'John Smith'.  If found,
  2557.      variable JohnIsAt will contain the index (row number) of the
  2558.      matching entry.  Otherwise, JohnIsAt will contain 0.
  2559.  
  2560.  
  2561. ΓòÉΓòÉΓòÉ 5.6. PushButton Objects ΓòÉΓòÉΓòÉ
  2562.  
  2563. These APIs deal with PM PushButton Objects.  They require a PM REXX-based 
  2564. program in order to function. 
  2565.  
  2566.  
  2567. ΓòÉΓòÉΓòÉ 5.6.1. RxMorphButtonToIcon ΓòÉΓòÉΓòÉ
  2568.  
  2569. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2570. Γöé.........ΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  2571. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2572.  
  2573. ΓöÇΓöÇΓöÇRXMORPHBUTTONTOICON(ΓöÇΓöÇwinidΓöÇΓöÇ,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,ΓöÇΓöÇΓö¼ΓöÇVpLoadPictureHandleΓöÇΓöÇΓö¼ΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  2574.                                       ΓööΓöÇpbidΓöÇΓöÿ ΓööΓöÇDLLnameΓöÇΓöÇ,ΓöÇΓöÇresourceΓöÇΓöÿ
  2575.  
  2576.  
  2577. Converts a standard PushButton object pbid of window winid into a "Toolbox" 
  2578. button. 
  2579.  
  2580. If any arguments are invalid or inaccessible, RXMORPHBUTTONTOICON raises the 
  2581. REXX error condition INCORRECT CALL TO ROUTINE. Otherwise, RXMORPHBUTTONTOICON 
  2582. returns an empty string (""). 
  2583.  
  2584. If pbid is ommitted, winid is assumed to be the window handle of a pushbutton. 
  2585.  
  2586. Note:  The use of VpLoadPictureHandle requires VisPro/Rexx.  You must call 
  2587. VpLoadPicture and obtain the handle. 
  2588.  
  2589. Note:  The use of DLLName, resource can be used by any PM REXX-based program, 
  2590. and retrieves the requested icon.  If DLLname is in your LIBPATH, do not 
  2591. specify an extension of '.DLL'. 
  2592.  
  2593. Note:  In order to make the window appear to start-up with your required icons, 
  2594. you should call RXMORPHBUTTONTOICON immediately at entry to your program, when 
  2595. the window is being opened.  Otherwise, the user will see the buttons change 
  2596. appearance. 
  2597.  
  2598. VisPro/REXX Example: 
  2599.  
  2600.      value = VpLoadPicture('FILE','C:\TEMP\OS2CMD.ICO')
  2601.      Call RxMorphButtonToIcon window, 2000, value
  2602.  
  2603. Note:  VX-REXX and GPFRexx can only use the DLLname and resource form of this 
  2604. API. 
  2605.  
  2606. VX-REXX Example: 
  2607.  
  2608.      window = VRGet("PB_1", "HWnd")
  2609.      Call RxMorphButtonToIcon window,, 'PMWP', 13
  2610.  
  2611. GPFRexx Example: 
  2612.  
  2613.      window = QueryHandle("PushButton1")
  2614.      Call RxMorphButtonToIcon window,,'PMWP', 13
  2615.  
  2616. Results: 
  2617.  
  2618.      The PushButton is changed to an OS/2 Command-Prompt icon (stored previously in
  2619.      C:\TEMP\OS2CMD.ICO, or as ICON number 13 in PMWP.DLL)
  2620.  
  2621.  
  2622. ΓòÉΓòÉΓòÉ 5.7. SpinButton Objects ΓòÉΓòÉΓòÉ
  2623.  
  2624. These APIs deal with PM SpinButton Objects.  They require a PM REXX-based 
  2625. program in order to function. 
  2626.  
  2627.  
  2628. ΓòÉΓòÉΓòÉ 5.7.1. RxSetSpinButtonCharRange ΓòÉΓòÉΓòÉ
  2629.  
  2630. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2631. Γöé.........ΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  2632. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2633.  
  2634. ΓöÇΓöÇΓöÇRXSETSPINBUTTONCHARRANGE(ΓöÇΓöÇwinidΓöÇΓöÇ,ΓöÇΓöÇ[sbid]ΓöÇΓöÇ,ΓöÇΓöÇlowΓöÇΓöÇ,ΓöÇΓöÇhighΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  2635.  
  2636.  
  2637. Sets the SpinButton sbid of Window winid to include the ASCII character range 
  2638. low through high. Only the first character of low and high are used. 
  2639.  
  2640. If winid is invalid, RXSETSPINBUTTONCHARRANGE raises the REXX error condition 
  2641. INCORRECT CALL TO ROUTINE. 
  2642.  
  2643. If sbid is omitted, winid should be the PM window handle (HWnd) of a 
  2644. spinbutton. 
  2645.  
  2646. Otherwise, RXSETSPINBUTTONCHARRANGE returns an empty string (""). 
  2647.  
  2648. VisPro/REXX Example: 
  2649.  
  2650.      Call RxSetSpinButtonCharRange Hwindow, 4000, 'a', 'z'
  2651.  
  2652. VX-REXX Example: 
  2653.  
  2654.      Call RxSetSpinButtonCharRange VRGet("SPIN_1", "Hwnd),, 'a', 'z'
  2655.  
  2656. GPFRexx Example: 
  2657.  
  2658.      Call RxSetSpinButtonCharRange QueryHandle("SpinButton1"),, 'a', 'z'
  2659.  
  2660. Results: 
  2661.  
  2662.      The SpinButton now contains the selection character set
  2663.      'a' through 'z', inclusive.
  2664.  
  2665.  
  2666. ΓòÉΓòÉΓòÉ 5.7.2. RxSetSpinButtonRangeFromStem ΓòÉΓòÉΓòÉ
  2667.  
  2668. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2669. Γöé.........ΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  2670. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2671.  
  2672. ΓöÇΓöÇΓöÇRXSETSPINBUTTONRANGEFROMSTEM(ΓöÇΓöÇwinidΓöÇΓöÇ,ΓöÇΓöÇ[sbid]ΓöÇΓöÇ,ΓöÇΓöÇstemname.ΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  2673.  
  2674.  
  2675. Sets the SpinButton sbid of Window winid to include the values found in stem 
  2676. stemname.  The trailing period to stemname. is required; results are 
  2677. unpredictable if not supplied. 
  2678.  
  2679. stemname.0 must contain the number of values to assign to SpinButton sbid. All 
  2680. other occurences of stemname should contain the values desired for sbid, and be 
  2681. in the range 1 to n, where n is the value contained in stemname.0. 
  2682.  
  2683. If winid is invalid, RXSETSPINBUTTONRANGEFROMSTEM raises the REXX error 
  2684. condition INCORRECT CALL TO ROUTINE. 
  2685.  
  2686. If sbid is omitted, winid should be the PM window handle (HWnd) of a 
  2687. spinbutton. 
  2688.  
  2689. Otherwise, RXSETSPINBUTTONRANGEFROMSTEM returns an empty string (""). 
  2690.  
  2691. VisPro/REXX Example: 
  2692.  
  2693.      days.0 =     7;   days.1 = 'Sun';   days.2 = 'Mon';   days.3 = 'Tue';
  2694.      days.4 = 'Wed';   days.5 = 'Thu';   days.6 = 'Fri';   days.7 = 'Sat';
  2695.      Call RxSetSpinButtonRangeFromStem Hwindow, 4000, 'days.'
  2696.  
  2697. VX-REXX Example: 
  2698.  
  2699.      days.0 =     7;   days.1 = 'Sun';   days.2 = 'Mon';   days.3 = 'Tue';
  2700.      days.4 = 'Wed';   days.5 = 'Thu';   days.6 = 'Fri';   days.7 = 'Sat';
  2701.      Call RxSetSpinButtonRangeFromStem VRGet("SPIN_1", "HWnd"),, 'days.'
  2702.  
  2703. GPFRexx Example: 
  2704.  
  2705.      days.0 =     7;   days.1 = 'Sun';   days.2 = 'Mon';   days.3 = 'Tue';
  2706.      days.4 = 'Wed';   days.5 = 'Thu';   days.6 = 'Fri';   days.7 = 'Sat';
  2707.      Call RxSetSpinButtonRangeFromStem QueryHandle("SpinButton1"),, 'a', 'z'
  2708.  
  2709. Results: 
  2710.  
  2711.      The SpinButton now contains the  selection character set
  2712.      'Sun', 'Mon', 'Tue', 'Wed' etc.
  2713.  
  2714.  
  2715. ΓòÉΓòÉΓòÉ 5.7.3. RxSetSpinButtonRangeWithIncrement ΓòÉΓòÉΓòÉ
  2716.  
  2717. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2718. Γöé.........ΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  2719. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2720.  
  2721. ΓöÇΓöÇΓöÇRXSETSPINBUTTONRANGEWITHINCREMENT(ΓöÇΓöÇwinidΓöÇΓöÇ,ΓöÇΓöÇ[sbid]ΓöÇΓöÇ,ΓöÇΓöÇlowΓöÇΓöÇ,ΓöÇΓöÇhighΓöÇΓöÇ,ΓöÇΓöÇΓöÇΓöÇΓöÇ
  2722.  
  2723.  ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇincrementΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ)ΓöÇΓöÇ
  2724.  
  2725.  
  2726. Sets the SpinButton sbid of Window winid to the numeric range of low to high, 
  2727. in incriments of incriment. 
  2728.  
  2729. If winid is invalid, RXSETSPINBUTTONRANGEWITHINCRIMENT raises the REXX error 
  2730. condition INCORRECT CALL TO ROUTINE. 
  2731.  
  2732. If sbid is omitted, winid should be the PM window handle (HWnd) of a 
  2733. spinbutton. 
  2734.  
  2735. Otherwise, RXSETSPINBUTTONRANGEWITHINCRIMENT returns an empty string (""). 
  2736.  
  2737. VisPro/REXX Example: 
  2738.  
  2739.      Call RxSetSpinButtonRangeWithIncrment window, 4000, 0, 10000, 2000
  2740.  
  2741. VX-REXX Example 
  2742.  
  2743.      Call RxSetSpinButtonRangeWithIncrement VRGet("SPIN_1", "HWnd"),,0,10000,2000
  2744.  
  2745. GPFRexx Example: 
  2746.  
  2747.      Call RxSetSpinButtonRangeWithIncrement QueryHandle("SpinButton1"),,0, 10000, 2000
  2748.  
  2749. Results: 
  2750.  
  2751.      The SpinButton now contains the
  2752.      selection numeric set 0, 2000, 4000, 6000, 8000, and 10000.
  2753.  
  2754. Note:  The maximum number of discrete values that this function can store in a 
  2755. spin button is 4096. 
  2756.  
  2757.  
  2758. ΓòÉΓòÉΓòÉ 5.8. Window Objects ΓòÉΓòÉΓòÉ
  2759.  
  2760. These APIs deal with OS/2 Windows and PM window types & hierarchies.  They 
  2761. require a window handle, therefore, a PM REXX-based program in order to 
  2762. function. 
  2763.  
  2764.  
  2765. ΓòÉΓòÉΓòÉ 5.8.1. RxMaximize ΓòÉΓòÉΓòÉ
  2766.  
  2767. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2768. Γöé.........ΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  2769. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2770.  
  2771. ΓöÇΓöÇΓöÇRXMAXIMIZE(ΓöÇΓöÇwinidΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  2772.  
  2773.  
  2774. Causes window winid to become maximized. 
  2775.  
  2776. If winid is invalid, RXMAXIMIZE raises the REXX error condition INCORRECT CALL 
  2777. TO ROUTINE. 
  2778.  
  2779. If an error occurs, RXMAXIMIZE returns "Error occured trying to maximize", 
  2780. otherwise, RXMAXIMIZE returns an empty string (""). 
  2781.  
  2782. VisPro/REXX Example: 
  2783.  
  2784.      Call RxMaximize RxQueryWindow(RxQueryWindow(window, 'PARENT'), 'PARENT')
  2785.  
  2786. VX-REXX Example: 
  2787.  
  2788.      HWnd = VRGet("MyWindow", "HWnd")
  2789.      Call RxMaximize HWnd
  2790.  
  2791. GPFRexx Example: 
  2792.  
  2793.      window = QueryHandle("MainWindow")
  2794.      Call RxMaximize window
  2795.  
  2796. Results: 
  2797.  
  2798.      The window 'window' is maximized.
  2799.  
  2800.  
  2801. ΓòÉΓòÉΓòÉ 5.8.2. RxMinimize ΓòÉΓòÉΓòÉ
  2802.  
  2803. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2804. Γöé.........ΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  2805. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2806.  
  2807. ΓöÇΓöÇΓöÇRXMINIMIZE(ΓöÇΓöÇwinidΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  2808.  
  2809.  
  2810. Causes window winid to become minimized. 
  2811.  
  2812. If winid is invalid, RXMINIMIZE raises the REXX error condition INCORRECT CALL 
  2813. TO ROUTINE. 
  2814.  
  2815. If RXMINIMIZE encounters an error, it returns "Error trying to minimize", 
  2816. otherwise, RXMINIMIZE returns an empty string (""). 
  2817.  
  2818. VisPro/REXX Example: 
  2819.  
  2820.      Call RxMinimize RxQueryWindow(RxQueryWindow(window, 'PARENT'), 'PARENT')
  2821.  
  2822. VX-REXX Example: 
  2823.  
  2824.      HWnd = VRGet("MyWindow", "HWnd")
  2825.      Call RxMinimize HWnd
  2826.  
  2827. GPFRexx Example: 
  2828.  
  2829.      window = QueryHandle("MainWindow")
  2830.      Call RxMinimize window
  2831.  
  2832. Results: 
  2833.  
  2834.      The window 'window' is minimized.
  2835.  
  2836.  
  2837. ΓòÉΓòÉΓòÉ 5.8.3. RxQueryClassName ΓòÉΓòÉΓòÉ
  2838.  
  2839. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2840. Γöé.........ΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  2841. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2842.  
  2843. ΓöÇΓöÇΓöÇRXQUERYCLASSNAME(ΓöÇΓöÇwinidΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  2844.  
  2845.  
  2846. Returns the Class Name for window winid. 
  2847.  
  2848. If winid is invalid, RXQUERYCLASSNAME raises the REXX error condition INCORRECT 
  2849. CALL TO ROUTINE. 
  2850.  
  2851. If an error occurs, RXQUERYCLASSNAME returns "Error trying to query classs 
  2852. name", otherwise, RXQUERYCLASSNAME returns the PM Class Name for the window. 
  2853.  
  2854. VisPro/REXX Example: 
  2855.  
  2856.      WinClass =  RxQueryClassName(window)
  2857.  
  2858. VX-REXX Example: 
  2859.  
  2860.      HWnd = VRGet("MyWindow", "HWnd")
  2861.      WinClass = RxQueryClassName(HWnd)
  2862.  
  2863. GPFRexx Example: 
  2864.  
  2865.      window = QueryHandle("MainWindow")
  2866.      WinClass =RxQueryClassName(window)
  2867.  
  2868. Results: 
  2869.  
  2870.      The Class Name of window 'window' is placed in the variable WinClass.
  2871.  
  2872.  
  2873. ΓòÉΓòÉΓòÉ 5.8.4. RxQueryWindow ΓòÉΓòÉΓòÉ
  2874.  
  2875. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2876. Γöé.........ΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  2877. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2878.  
  2879. ΓöÇΓöÇΓöÇRXQUERYWINDOW(ΓöÇΓöÇwinidΓöÇΓöÇ,ΓöÇΓö¼ΓöÇ'Owner'ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ)ΓöÇΓöÇΓöÇ
  2880.                               Γö£ΓöÇ'Parent'ΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2881.                               Γö£ΓöÇ'Next'ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2882.                               Γö£ΓöÇ'Prev'ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2883.                               Γö£ΓöÇ'Top'ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2884.                               Γö£ΓöÇ'Bottom'ΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2885.                               Γö£ΓöÇ'NextTop'ΓöÇΓöÇΓöÇΓöÇΓöñ
  2886.                               Γö£ΓöÇ'PrevTop'ΓöÇΓöÇΓöÇΓöÇΓöñ
  2887.                               ΓööΓöÇ'FrameOwner'ΓöÇΓöÿ
  2888.  
  2889.  
  2890. Returns the window handle for the requested related window to winid. 
  2891.  
  2892. Double-click on each window relation above for further information. 
  2893.  
  2894. If winid is invalid, RXQUERYWINDOW raises the REXX error condition INCORRECT 
  2895. CALL TO ROUTINE. Otherwise, RXQUERYWINDOW returns the requested PM window 
  2896. handle, in decimal. 
  2897.  
  2898. VisPro/REXX Example: 
  2899.  
  2900.      WinParent =  RxQueryWindow(window, 'Parent')
  2901.  
  2902. VX-REXX Example: 
  2903.  
  2904.      HWnd = VRGet("MyWindow", "HWnd")
  2905.      WinParent =  RxQueryWindow(HWnd, 'Parent')
  2906.  
  2907. GPFRexx Example: 
  2908.  
  2909.      window = QueryHandle("MainWindow")
  2910.      WinParent = RxQueryWindow(window, 'Parent')
  2911.  
  2912. Results: 
  2913.  
  2914.      The parent window handle, in decimal, for window 'window'
  2915.      is placed in the variable WinParent.
  2916.  
  2917.  
  2918. ΓòÉΓòÉΓòÉ 5.8.5. RxRestore ΓòÉΓòÉΓòÉ
  2919.  
  2920. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2921. Γöé.........ΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  2922. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2923.  
  2924. ΓöÇΓöÇΓöÇRXRESTORE(ΓöÇΓöÇwinidΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  2925.  
  2926. Restores window winid to its normal state after being maximized or minimized. 
  2927.  
  2928. If winid is invalid, RXRESTORE raises the REXX error condition INCORRECT CALL 
  2929. TO ROUTINE. 
  2930.  
  2931. If an error occurs, RXRESTORE returns "Error trying to restore", otherwise, 
  2932. RXRESTORE restores the requested PM window, and returns an empty string (""). 
  2933.  
  2934. VisPro/REXX Example: 
  2935.  
  2936.      Call RxRestore RxQueryWindow(RxQueryWindow(window, 'PARENT'), 'PARENT')
  2937.  
  2938. VX-REXX Example: 
  2939.  
  2940.      HWnd = VRGet("MyWindow", "HWnd")
  2941.      Call RxRestore HWnd
  2942.  
  2943. GPFRexx Example: 
  2944.  
  2945.      window = QueryHandle("MainWindow")
  2946.      Call RxRestore window
  2947.  
  2948. Results: 
  2949.  
  2950.      Restores the window 'window' from a minimised state.
  2951.  
  2952.  
  2953. ΓòÉΓòÉΓòÉ 5.8.6. RxSetIcon ΓòÉΓòÉΓòÉ
  2954.  
  2955. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2956. Γöé.........ΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  2957. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2958.  
  2959. ΓöÇΓöÇΓöÇRXSETICON(ΓöÇΓöÇwinidΓöÇΓöÇ,ΓöÇΓöÇΓö¼ΓöÇVpLoadPictureHandleΓöÇΓöÇΓö¼ΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  2960.                            ΓööΓöÇDLLnameΓöÇΓöÇ,ΓöÇΓöÇresourceΓöÇΓöÿ
  2961.  
  2962.  
  2963. Sets the icon for a window. 
  2964.  
  2965. This icon is the one used when a window is minimized. 
  2966.  
  2967. If winid is invalid, RXSETICON raises the REXX error condition INCORRECT CALL 
  2968. TO ROUTINE. 
  2969.  
  2970. If an error occurs loading the icon from a DLL, RXSETICON returns "Error 
  2971. loading icon from DLL". 
  2972.  
  2973. If an error occurs setting the icon, RXSETICON returns "Error setting icon". 
  2974.  
  2975. Otherwise RXSETICON returns an empty string (""). 
  2976.  
  2977. Note:  There are many icons held within the Work Place Shell DLL's. An 
  2978. ICONS.CMD file, which is part of the REXXUTIL information that IBM supplies on 
  2979. CIS or BBS's, can show you most of these. If you would like this file, please 
  2980. contact the author of RxExtras. 
  2981.  
  2982. VisPro/REXX Example: 
  2983.  
  2984.      value = VpLoadPicture('FILE', 'C:\TEMP.ICO');
  2985.      FrameWindow = RxQueryWindow(RxQueryWindow(window, 'parent'), 'parent')
  2986.      Call RxSetIcon FrameWindow, value
  2987.  
  2988. Note:  VX-REXX and GPFRexx programs can only use the DLL and resource number 
  2989. form of this API. 
  2990.  
  2991. VX-REXX Example: 
  2992.  
  2993.      HWnd = VRGet("MyWindow", "HWnd")
  2994.      FrameWindow = RxQueryWindow(HWnd, 'parent')
  2995.      Call RxSetIcon FrameWindow, 'PMWP', 13
  2996.  
  2997. GPFRexx Example: 
  2998.  
  2999.      window = QueryHandle("MainWindow")
  3000.      FrameWindow = RxQueryWindow(window, 'Parent')
  3001.      Call RxSetIcon FrameWindow, 'PMWP', 13
  3002.  
  3003. Results: 
  3004.  
  3005.      Loads an icon from C:\TEMP.ICO (or PMWP.DLL icon number 13).
  3006.      Calculates the Frame Window (the one that the user interacts with)
  3007.      from the window passed to a VisPro/REXX event (or VX-REXX object).
  3008.      Sets the minimized icon for the window passed.
  3009.  
  3010.  
  3011. ΓòÉΓòÉΓòÉ 5.8.7. RxWindowSetFocus ΓòÉΓòÉΓòÉ
  3012.  
  3013. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3014. Γöé.........ΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  3015. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3016.  
  3017. ΓöÇΓöÇΓöÇRXWINDOWSETFOCUS(ΓöÇΓöÇwindowΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  3018.  
  3019. Switches focus to window window. 
  3020.  
  3021. If window is an invalid string, RXWINDOWSETFOCUS raises the REXX error 
  3022. condition INCORRECT CALL TO ROUTINE. 
  3023.  
  3024. If an error occurs, RXWINDOWSETFOCUS returns "Error setting focus", otherwise, 
  3025. RXWINDOWSETFOCUS sets the focus to the window requested and returns an empty 
  3026. string (""). 
  3027.  
  3028. You can use this call to bring a VisPro/REXX form to the foreground when 
  3029. necessary. window can be the variable passed to as an argument to all 
  3030. VisPro/REXX events, or it could be the value returned from a VpOpenForm call. 
  3031.  
  3032. VisPro/REXX Example: 
  3033.  
  3034.      Call  RxWindowSetFocus window
  3035.  
  3036. VX-REXX Example: 
  3037.  
  3038.      HWnd = VRGet("MyWindow", "HWnd")
  3039.      Call  RxWindowSetFocus HWnd
  3040.  
  3041. GPFRexx Example: 
  3042.  
  3043.      window = QueryHandle("MainWindow")
  3044.      Call RxWindowSetFocus window
  3045.  
  3046. Results: 
  3047.  
  3048.      Switches focus to the window 'window'.
  3049.  
  3050.  
  3051. ΓòÉΓòÉΓòÉ 5.8.8. RxWindowSetOwner ΓòÉΓòÉΓòÉ
  3052.  
  3053. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3054. Γöé.........ΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  3055. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3056.  
  3057. ΓöÇΓöÇΓöÇRXWINDOWSETOWNER(ΓöÇΓöÇwindowΓöÇΓöÇ,ΓöÇΓöÇowningWindowΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  3058.  
  3059. Sets the owner of window to be owningWindow. This has the effect of making 
  3060. window always 'stay on top' of owningWindow. 
  3061.  
  3062. If window and/or owningWindow is an invalid string, RXWINDOWSETOWNER raises the 
  3063. REXX error condition INCORRECT CALL TO ROUTINE. 
  3064.  
  3065. If an error occurs, RXWINDOWSETOWNER returns "Error setting owner", otherwise, 
  3066. RXWINDOWSETOWNER sets the owner of the first window to the second window passed 
  3067. and returns an empty string (""). 
  3068.  
  3069. You can use this call to make a window stay on top of another window, even when 
  3070. the other window is explicitly given focus by the user. 
  3071.  
  3072. VisPro/REXX Example: 
  3073.  
  3074.      value = VpOpenForm(window, 257, 'topic of secondary form')
  3075.      Call  RxWindowSetOwner window, value
  3076.  
  3077. VX-REXX Example: 
  3078.  
  3079.      window = VRGet("MyWindow", "HWnd")
  3080.      value = VRGet("MySecondWindow", "HWnd")
  3081.      Call  RxWindowSetOwner window, value
  3082.  
  3083. GPFRexx Example: 
  3084.  
  3085.      window = QueryHandle("MainWindow")
  3086.      value = QueryHandle("Dialog1")
  3087.      Call RxWindowSetOwner window, value
  3088.  
  3089. Results: 
  3090.  
  3091.      Makes the window whose handle is in the variable 'window', stay
  3092.      on top of the window whose handle is in the variable 'value'.
  3093.  
  3094.  
  3095. ΓòÉΓòÉΓòÉ 5.8.9. RxWindowSetParent ΓòÉΓòÉΓòÉ
  3096.  
  3097. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3098. Γöé.........ΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  3099. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3100.  
  3101. ΓöÇΓöÇΓöÇRXWINDOWSETPARENT(ΓöÇΓöÇwindowΓöÇΓöÇ,ΓöÇΓöÇparentWindowΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  3102.  
  3103. Sets the parent of window to be parentWindow. This has the effect of making 
  3104. window always 'stay within' parentWindow. 
  3105.  
  3106. If window and/or owningWindow is an invalid string, RXWINDOWSETPARENT raises 
  3107. the REXX error condition INCORRECT CALL TO ROUTINE. 
  3108.  
  3109. If an error occurs, RXWINDOWSETPARENT returns "Error setting parent", 
  3110. otherwise, RXWINDOWSETPARENT sets the parent of the first window to the second 
  3111. window passed and returns an empty string (""). 
  3112.  
  3113. You can use this call to make a window stay within another window. 
  3114.  
  3115. VisPro/REXX Example: 
  3116.  
  3117.      value = VpOpenForm(window, 257, 'topic of secondary form')
  3118.      Call  RxWindowSetParent window, value
  3119.  
  3120. VX-REXX Example: 
  3121.  
  3122.      window = VRGet("MyWindow", "HWnd")
  3123.      value = VRGet("MySecondWindow", "HWnd")
  3124.      Call  RxWindowSetParent window, value
  3125.  
  3126. GPFRexx Example: 
  3127.  
  3128.      window = QueryHandle("MainWindow")
  3129.      value = QueryHandle("Dialog1")
  3130.      Call RxWindowSetParent window, value
  3131.  
  3132. Results: 
  3133.  
  3134.      Makes the window whose handle is in the variable 'window', stay
  3135.      within the window whose handle is in the variable 'value'.
  3136.  
  3137.  
  3138. ΓòÉΓòÉΓòÉ 5.8.10. RxWindowQueryText ΓòÉΓòÉΓòÉ
  3139.  
  3140. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3141. Γöé.........ΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  3142. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3143.  
  3144. ΓöÇΓöÇΓöÇRXWINDOWQUERYTEXT(ΓöÇΓöÇwindowΓöÇΓöÇ[,ΓöÇΓöÇidΓöÇΓöÇ]ΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  3145.  
  3146. Returns the text of the window identified by either the window alone, or by the 
  3147. window and an id This will give you the text of an entry field or MLE, or 
  3148. static text. 
  3149.  
  3150. If window is an invalid string, RXWINDOWQUERYTEXT raises the REXX error 
  3151. condition INCORRECT CALL TO ROUTINE. 
  3152.  
  3153. This function was written specifically to correct bugs with MLE's in 
  3154. VisPro/REXX V1.1. 
  3155.  
  3156. VisPro/REXX Example: 
  3157.  
  3158.      value = RxWindowQueryText(window, 1001)
  3159.      /* id 1001 is an MLE */
  3160.  
  3161. VX-REXX Example: 
  3162.  
  3163.      HWnd = VRGet("MLE_1", "HWnd")
  3164.      value = RxWindowQueryText(HWnd)
  3165.  
  3166. GPFRexx Example: 
  3167.  
  3168.      window = QueryHandle("MainWindow")
  3169.      value = RxWindowQueryText(window)
  3170.  
  3171. Results: 
  3172.  
  3173.     Places the text of the window into the variable value.
  3174.  
  3175.  
  3176. ΓòÉΓòÉΓòÉ 5.8.11. RxWindowClose ΓòÉΓòÉΓòÉ
  3177.  
  3178. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3179. Γöé.........ΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  3180. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3181.  
  3182. ΓöÇΓöÇΓöÇRXWINDOWCLOSE(ΓöÇΓöÇwindowΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  3183.  
  3184. Closes the window passed. This can be used in conjunction with 
  3185. RxQuerySwitchList to close running PM applications or WPS apps (e.g. the 
  3186. LaunchPad) 
  3187.  
  3188. There are no errors returned from this function. 
  3189.  
  3190. Example: 
  3191.  
  3192.      Call RxQuerySwitchList 'stem.'
  3193.      Call RxWindowClose stem.2.hwnd
  3194.  
  3195. Results: 
  3196.  
  3197.     The second window in the task list is closed
  3198.  
  3199.  
  3200. ΓòÉΓòÉΓòÉ <hidden> RxQueryWindow (winid,'Owner') ΓòÉΓòÉΓòÉ
  3201.  
  3202. Requests the Owner window handle of winid.  The Owner window is the one which 
  3203. window winid is dependent upon.  Quite frequently, this is the same as 
  3204. 'Parent'. 
  3205.  
  3206.  
  3207. ΓòÉΓòÉΓòÉ <hidden> RxQueryWindow (winid,'Parent') ΓòÉΓòÉΓòÉ
  3208.  
  3209. Requests the Parent window handle of winid.  The Parent window is the one that 
  3210. causes window winid to be initialized. 
  3211.  
  3212.  
  3213. ΓòÉΓòÉΓòÉ <hidden> RxQueryWindow (winid,'Next') ΓòÉΓòÉΓòÉ
  3214.  
  3215. Requests the Next window handle, in z-order, of winid.  This is the next window 
  3216. at the same "level" as window winid. 
  3217.  
  3218.  
  3219. ΓòÉΓòÉΓòÉ <hidden> RxQueryWindow (winid,'Prev') ΓòÉΓòÉΓòÉ
  3220.  
  3221. Requests the Previous window handle, in z-order, of winid.  This is the 
  3222. previous window at the same "level" as window winid. 
  3223.  
  3224.  
  3225. ΓòÉΓòÉΓòÉ <hidden> RxQueryWindow (winid,'Top') ΓòÉΓòÉΓòÉ
  3226.  
  3227. Requests the Topmost (first) "child" window handle of winid.  This is the first 
  3228. window that window winid caused to be initialized. 
  3229.  
  3230.  
  3231. ΓòÉΓòÉΓòÉ <hidden> RxQueryWindow (winid,'Bottom') ΓòÉΓòÉΓòÉ
  3232.  
  3233. Requests the Bottommost (last) "child" window handle of winid.  This is the 
  3234. last window that window winid caused to be initialized. 
  3235.  
  3236.  
  3237. ΓòÉΓòÉΓòÉ <hidden> RxQueryWindow (winid,'NextTop') ΓòÉΓòÉΓòÉ
  3238.  
  3239. Requests the next window, in z-order, of the owner window hierarchy for winid. 
  3240. See 'Owner'. 
  3241.  
  3242.  
  3243. ΓòÉΓòÉΓòÉ <hidden> RxQueryWindow (winid,'PrevTop') ΓòÉΓòÉΓòÉ
  3244.  
  3245. Requests the previous window, in enumeration order defined by NextTop, of the 
  3246. owner window hierarchy for winid.  See 'Owner'. 
  3247.  
  3248.  
  3249. ΓòÉΓòÉΓòÉ <hidden> RxQueryWindow (winid,'FrameOwner') ΓòÉΓòÉΓòÉ
  3250.  
  3251. Requests the owner of winid, normalized so that it shares the same window as 
  3252. its Parent. 
  3253.  
  3254.  
  3255. ΓòÉΓòÉΓòÉ 5.9. Container Objects ΓòÉΓòÉΓòÉ
  3256.  
  3257. These APIs deal with the OS/2 Presentation Manager Container Control 
  3258. (WM_CONTAINER).  They require a PM REXX-based program in order to function. 
  3259.  
  3260.  
  3261. ΓòÉΓòÉΓòÉ 5.9.1. RxContainerSplitBarRemove ΓòÉΓòÉΓòÉ
  3262.  
  3263. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3264. Γöé.........ΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  3265. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3266.  
  3267. ΓöÇΓöÇΓöÇRXCONTAINERSPLITBARREMOVE(ΓöÇΓöÇwinidΓöÇ[ΓöÇ,ΓöÇΓöÇitem-ΓöÇ]ΓöÇ)ΓöÇΓöÇΓöÇ
  3268.  
  3269.  
  3270. This function works only on the DETAILS view of a container. 
  3271.  
  3272. This function removes the split bar (the vertical line which a user can use to 
  3273. change the widths of the left and right portions of a container in details 
  3274. view. 
  3275.  
  3276. RXCONTAINERSPLITBARREMOVE returns the null string ("") when invoked sucessfully 
  3277.  
  3278. If there is an error, either "Bad send return" or "Bad return code" are 
  3279. returned 
  3280.  
  3281. Example: 
  3282.  
  3283.      Call RxContainerSplitBarRemove window, 1001
  3284.  
  3285. Results: 
  3286.  
  3287.      The container with an id of 1001 should have no split bar displayed.
  3288.  
  3289.  
  3290. ΓòÉΓòÉΓòÉ 5.9.2. RxContainerSplitBarSetPosition ΓòÉΓòÉΓòÉ
  3291.  
  3292. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3293. Γöé.........ΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  3294. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3295.  
  3296. ΓöÇΓöÇΓöÇRXCONTAINERSPLITBARSETPOSITION(ΓöÇΓöÇwinidΓöÇ[ΓöÇ,ΓöÇΓöÇitemΓöÇΓöÇ]ΓöÇΓöÇ, positionΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  3297.  
  3298.  
  3299. This function works only on the DETAILS view of a container. 
  3300.  
  3301. This function sets the split bar (the vertical line which a user can use to 
  3302. change the widths of the left and right portions of a container in details 
  3303. view) to a specific pixel position. 
  3304.  
  3305. RXCONTAINERSPLITBARREMOVE returns the null string ("") when invoked sucessfully 
  3306.  
  3307. If there is an error, either "Bad send return" or "Bad return code" are 
  3308. returned 
  3309.  
  3310. Example: 
  3311.  
  3312.      Call RxContainerSplitBarSetPosition window, 1001, 32
  3313.  
  3314. Results: 
  3315.  
  3316.      The container with an id of 1001 should have its split bar moved to pixel 32.
  3317.  
  3318.  
  3319. ΓòÉΓòÉΓòÉ 5.9.3. RxContainerExpandTree ΓòÉΓòÉΓòÉ
  3320.  
  3321. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3322. Γöé.........ΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  3323. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3324.  
  3325. ΓöÇΓöÇΓöÇRXCONTAINEREXPANDTREE(ΓöÇΓöÇwinidΓöÇ[ΓöÇ,ΓöÇΓöÇitemΓöÇΓöÇ]ΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  3326.  
  3327.  
  3328. This function works only on the TREE view of a container. 
  3329.  
  3330. This function totally expands a container in tree view. 
  3331.  
  3332. RXCONTAINEREXPANDTREE returns the null string ("") when invoked sucessfully 
  3333.  
  3334. If there is an error, "Wrong args passed" is returned 
  3335.  
  3336. Example: 
  3337.  
  3338.      Call RxContainerExpandTree window, 1001
  3339.  
  3340. Results: 
  3341.  
  3342.      The container with an id of 1001 should be shown with all items in the
  3343.      tree expanded out.
  3344.  
  3345.  
  3346. ΓòÉΓòÉΓòÉ 5.9.4. RxContainerTitleAttributes ΓòÉΓòÉΓòÉ
  3347.  
  3348. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3349. Γöé.........ΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  3350. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3351.  
  3352. ΓöÇΓöÇΓöÇRXCONTAINERTITLEATTRIBUTES(ΓöÇwinidΓöÇ,ΓöÇ[ΓöÇitemΓöÇ]ΓöÇ,ΓöÇHorzΓöÇ,ΓöÇVertΓöÇ)ΓöÇΓöÇΓöÇ
  3353.  
  3354.  
  3355. This function works only on the DETAILS view of a container. 
  3356.  
  3357. This function sets the attributes for all columns in the details view of a 
  3358. container. 
  3359.  
  3360. RXCONTAINERTITLEATTRIBUTES returns the null string ("") when invoked. 
  3361.  
  3362. The Horz parameter should contain C, L or R, a one character abbreviation of 
  3363. Centred, Left or Right horizontal justification. 
  3364.  
  3365. The Vert parameter should contain C, T or B, a one character abbreviation of 
  3366. Centred, Top or Bottom vertical justification. 
  3367.  
  3368. Example: 
  3369.  
  3370.      Call RxContainerTitleAttributes window, 1001, 'L','C'
  3371.  
  3372. Results: 
  3373.  
  3374.      The container with an id of 1001 should be shown with all column
  3375.      titles in the details view left justified horizontally and centred
  3376.      vertically.
  3377.  
  3378.  
  3379. ΓòÉΓòÉΓòÉ 5.10. Notebook Objects ΓòÉΓòÉΓòÉ
  3380.  
  3381. These APIs deal with the OS/2 Presentation Manager Notebook Control 
  3382. (WM_NOTEBOOK).  They require a PM REXX-based program in order to function. 
  3383.  
  3384.  
  3385. ΓòÉΓòÉΓòÉ 5.10.1. RxNotebookMajorTabSetBackColour ΓòÉΓòÉΓòÉ
  3386.  
  3387. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3388. Γöé.........ΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  3389. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3390.  
  3391. ΓöÇΓöÇΓöÇRXNOTEBOOKMAJORTABSETBACKCOLOUR(ΓöÇΓöÇpmHandleΓöÇΓöÇ,ΓöÇΓöÇredΓöÇΓöÇ,ΓöÇΓöÇgreenΓöÇΓöÇ, ΓöÇΓöÇblueΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  3392.  
  3393.  
  3394. This function will set the background colour for a notebook control to the RGB 
  3395. values passed. 
  3396.  
  3397. The first parameter should be the PM Handle of the notebook control. To get the 
  3398. PM handle of an object in VisPro/REXX, use the Get PM Handle Link. 
  3399.  
  3400. RXNOTEBOOKMAJORTABSETBACKCOLOUR returns the null string ("") when invoked 
  3401. sucessfully 
  3402.  
  3403. If there is an error, either "Bad PS", "Bad colour table set" or "Bad return 
  3404. code" are returned. 
  3405.  
  3406. Example: 
  3407.  
  3408.      /* Get PM handle EF_READONLY Entry Field */
  3409.      handle=VpItem(window, 'NB_SETTINGS', 'GETHANDLE')
  3410.      Call RxNoteBookMajorTabSetBackColour handle, 255, 255, 140
  3411.  
  3412. Results: 
  3413.  
  3414.      The notebook 'NB_SETTINGS' will have coloured major tabs.
  3415.  
  3416.  
  3417. ΓòÉΓòÉΓòÉ 5.11. Entry Field ΓòÉΓòÉΓòÉ
  3418.  
  3419. These APIs deal with the OS/2 Presentation Manager Entry Field Control 
  3420. (WM_ENTRYFIELD).  They require a PM REXX-based program in order to function. 
  3421.  
  3422.  
  3423. ΓòÉΓòÉΓòÉ 5.11.1. RxEntryFieldReadOnly ΓòÉΓòÉΓòÉ
  3424.  
  3425. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3426. Γöé.........ΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  3427. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3428.  
  3429. ΓöÇΓöÇΓöÇRXENTRYFIELDREADONLY(ΓöÇΓöÇwindowΓöÇΓöÇ,ΓöÇΓöÇ[item ,]ΓöÇΓöÇ,ΓöÇΓöÇstateΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  3430.  
  3431.  
  3432. This function will set an entry field to either read only (i.e. the characters 
  3433. in the entry field can't be changed) or read write (they can be changed) 
  3434.  
  3435. RXENTRYFIELDREADONLY returns the previous read only status of the entry field. 
  3436.  
  3437. state can be either 1 (set to read only) or 0 (set to read/write). 
  3438.  
  3439. There are no errors returned. 
  3440.  
  3441. Example: 
  3442.  
  3443.      Call RxEntryFieldReadOnly window, 1000, 1
  3444.  
  3445. Results: 
  3446.  
  3447.      The entry field 1001 will be set to be read only
  3448.  
  3449.  
  3450. ΓòÉΓòÉΓòÉ 5.12. Free Form window Objects ΓòÉΓòÉΓòÉ
  3451.  
  3452. These APIs deal with VisPro/REXX Free Form Window Objects.  They require a PM 
  3453. REXX-based program in order to function. 
  3454.  
  3455.  
  3456. ΓòÉΓòÉΓòÉ 5.12.1. RxDrawBitmap ΓòÉΓòÉΓòÉ
  3457.  
  3458. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3459. Γöé.........ΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  3460. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3461.  
  3462. ΓöÇΓöÇΓöÇRXDRAWBITMAP(ΓöÇΓöÇwinidΓöÇΓöÇ,ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ,ΓöÇΓöÇΓö¼ΓöÇVpLoadPictureHandleΓöÇΓöÇΓö¼ΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  3463.                               ΓööΓöÇpbidΓöÇΓöÿ ΓööΓöÇDLLnameΓöÇΓöÇ,ΓöÇΓöÇresourceΓöÇΓöÿ
  3464.  
  3465.  
  3466. Draws a bitmap in a free form window of id ffid in window winid. 
  3467.  
  3468. This function should be called from the Paint event of the free form window to 
  3469. be useful. 
  3470.  
  3471. RXDRAWBITMAP will stretch the bitmap to take up the entire size of the free 
  3472. form window. 
  3473.  
  3474. If any arguments are invalid or inaccessible, RXDRAWBITMAP raises the REXX 
  3475. error condition INCORRECT CALL TO ROUTINE. 
  3476.  
  3477. If there is an error loading the bitmap from a DLL, RXDRAWBITMAP will return 
  3478. "Error loading bitmap from DLL". 
  3479.  
  3480. Otherwise, RXDRAWBITAMP returns an empty string (""). 
  3481.  
  3482. If pbid is ommitted, winid is assumed to be a valid window handle. 
  3483.  
  3484. Note:  The use of VpLoadPictureHandle requires VisPro/Rexx.  You must call 
  3485. VpLoadPicture and obtain the handle. 
  3486.  
  3487. Note:  The use of DLLName, resource can be used by any PM REXX-based program, 
  3488. and retrieves the requested bitmap.  If DLLname is in your LIBPATH, do not 
  3489. specify an extension of '.DLL'. 
  3490.  
  3491. VisPro/REXX Example: 
  3492.  
  3493.      value = VpLoadPicture('FILE','C:\OS2\BITMAP\OS2LOGO.BMP')
  3494.      Call RxDrawBitmap window, 2000, value
  3495.  
  3496. VX-REXX Example: 
  3497.  
  3498.      window = VRGet("MyWindow", "HWnd")
  3499.      Call RxDrawBitmap window,, 'MYDLL', 3
  3500.  
  3501. Results: 
  3502.  
  3503.      The Free Form window with ID=2000 in the window 'window'
  3504.      has the OS2LOGO bitmap drawn inside it. (For the VX-REXX
  3505.      example, the bitmap with number 3 in MYDLL.DLL is drawn in window
  3506.      'MyWindow'.)
  3507.  
  3508. Note:  This API may work with other window types, it just has not been tested 
  3509. with them. 
  3510.  
  3511.  
  3512. ΓòÉΓòÉΓòÉ 5.13. Clipboard Objects ΓòÉΓòÉΓòÉ
  3513.  
  3514. These APIs deal with the OS/2 Presentation Manager clipboard.  They require a 
  3515. PM REXX-based program in order to function. 
  3516.  
  3517.  
  3518. ΓòÉΓòÉΓòÉ 5.13.1. RxAppendClipboardText ΓòÉΓòÉΓòÉ
  3519.  
  3520. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3521. Γöé.........ΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  3522. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3523.  
  3524. ΓöÇΓöÇΓöÇRXAPPENDCLIPBOARDTEXT(ΓöÇΓöÇTextΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  3525.  
  3526.  
  3527. This function appends the text passed to the current contents of the clipboard. 
  3528.  
  3529. RXAPPENDCLIPBOARDTEXT returns the text previously in the clipboard if 
  3530. successful. 
  3531.  
  3532. If there is an error opening the clipboard, RXAPPENDCLIPBOARDTEXT returns 
  3533. "Error opening the clipboard". 
  3534.  
  3535. If there is no textual data in the clipboard, RXAPPENDCLIPBOARDTEXT sets the 
  3536. clipboard to contain the text passed. 
  3537.  
  3538. If there is an error setting the clipboard data, RXAPPENDCLIPBOARDTEXT returns 
  3539. "Error setting clipboard data". 
  3540.  
  3541. If there is not one valid string as the argument to RXAPPENDCLIPBOARDTEXT, the 
  3542. REXX error condition INCORRECT CALL TO ROUTINE is raised. 
  3543.  
  3544. Example: 
  3545.  
  3546.      PrevText = RxAppendClipboardText("Stuff to add")
  3547.      Say 'The contents of the clipboard were "'PrevText'", and are now "'RxQueryClipboardText()'".'
  3548.  
  3549. Results: 
  3550.  
  3551.      The contents of the clipboard were "ABCD", and are now "ABCDStuff to add".
  3552.  
  3553. Note:  To get multiple lines into the clipboard, you should use a carriage 
  3554. return and linefeed combination at the end of the string. This can be achieved 
  3555. by the following code sample :- 
  3556.  
  3557.      CrLfString = OldString || d2c(13) || d2c(10)
  3558.  
  3559.  
  3560. ΓòÉΓòÉΓòÉ 5.13.2. RxQueryClipboardText ΓòÉΓòÉΓòÉ
  3561.  
  3562. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3563. Γöé.........ΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  3564. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3565.  
  3566. ΓöÇΓöÇΓöÇRXQUERYCLIPBOARDTEXT()ΓöÇΓöÇΓöÇ
  3567.  
  3568.  
  3569. This function queries the current content of the clipboard. 
  3570.  
  3571. RXQUERYCLIPBOARDTEXT returns the text currently in the clipboard if successful. 
  3572.  
  3573. If there is an error opening the clipboard, RXQUERYCLIPBOARDTEXT returns "Error 
  3574. opening the clipboard". 
  3575.  
  3576. If there is no textual data in the clipboard, RXQUERYCLIPBOARD returns an empty 
  3577. string (""). 
  3578.  
  3579. Example: 
  3580.  
  3581.      Text = RxQueryClipboardText()
  3582.      Say 'The contents of the clipboard are "'Text'".'
  3583.  
  3584. Results: 
  3585.  
  3586.      The contents of the clipboard are "This is in the clipboard".
  3587.  
  3588.  
  3589. ΓòÉΓòÉΓòÉ 5.13.3. RxSetClipboardText ΓòÉΓòÉΓòÉ
  3590.  
  3591. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3592. Γöé.........ΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  3593. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3594.  
  3595. ΓöÇΓöÇΓöÇRXSETCLIPBOARDTEXT(ΓöÇΓöÇTextΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  3596.  
  3597.  
  3598. This function sets the current content of the clipboard. 
  3599.  
  3600. RXSETCLIPBOARDTEXT returns "Clipboard set" if successful. 
  3601.  
  3602. If there is an error opening the clipboard, RXSETCLIPBOARDTEXT returns "Error 
  3603. opening the clipboard". 
  3604.  
  3605. If there is an error putting the data into the clipboard, RXSETCLIPBOARDTEXT 
  3606. returns "Error setting clipboard data". 
  3607.  
  3608. If there is not one valid string as the argument to RXSETCLIPBOARDTEXT, the 
  3609. REXX error condition INCORRECT CALL TO ROUTINE is raised. 
  3610.  
  3611. Example: 
  3612.  
  3613.      Say RxSetClipboardText("New text for the clipboard")
  3614.      Say 'The contents of the clipboard are now "'RxQueryClipboardText()'".'
  3615.  
  3616. Results: 
  3617.  
  3618.      Clipboard Set
  3619.      The contents of the clipboard are now "New text for the clipboard".
  3620.  
  3621.  
  3622. ΓòÉΓòÉΓòÉ 5.14. Printing ΓòÉΓòÉΓòÉ
  3623.  
  3624. These APIs deal with accessing information to, from, or about printer queues. 
  3625.  
  3626.  
  3627. ΓòÉΓòÉΓòÉ 5.14.1. RxQueueList ΓòÉΓòÉΓòÉ
  3628.  
  3629. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3630. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  3631. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3632.  
  3633. ΓöÇΓöÇΓöÇRXQUEUELIST(ΓöÇΓöÇstemΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  3634.  
  3635.  
  3636. Returns a list of print queues available for the workstation. 
  3637.  
  3638. If stem is not a valid string, or is omitted, RXQUEUELIST raises an INVALID 
  3639. CALL TO ROUTINE condition from within REXX. 
  3640.  
  3641. RXQUEUELIST fills the stem passed with the Print Queues available. stem.0 
  3642. contains the number of queues available. stem.1 contains the first queue found, 
  3643. stem.2 contains the second queue, up to stem.n contain ing the nth queue, where 
  3644. n = stem.0. 
  3645.  
  3646. stem.n.DRIVERNAME holds the print driver associated with the nth queue. This 
  3647. will be needed for other printer API calls, as the Queue Name may not be 
  3648. unique. 
  3649.  
  3650. stem.default returns the index of the default queue (from 1 to stem.0). 
  3651.  
  3652. Example: 
  3653.  
  3654.      Call RxQueueList 'queues.'
  3655.      Do i = 1 to queues.0
  3656.        Say 'Queue 'i' is 'queues.i
  3657.      End
  3658.      def = queues.default
  3659.      Say 'The default print queue is 'queues.def
  3660.      Say 'The driver for this queue is 'queues.i.drivername
  3661.  
  3662. Output: 
  3663.  
  3664.      Queue 1 is Printer
  3665.      Queue 2 is Apple LaserWriter Plus on COM2
  3666.      Queue 3 is Epson LQ-580
  3667.      The default print queue is Apple LaserWriter Plus on COM2
  3668.      The driver for this queue is PSCRIPT.Apple LaserWriter
  3669.  
  3670.  
  3671. ΓòÉΓòÉΓòÉ 5.14.2. RxQueueSetDefault ΓòÉΓòÉΓòÉ
  3672.  
  3673. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3674. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  3675. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3676.  
  3677. ΓöÇΓöÇΓöÇRXQUEUESETDEFAULT(ΓöÇΓöÇqueueAndDriverNameΓöÇ)ΓöÇΓöÇΓöÇ
  3678.  
  3679. Sets the default print queue for a workstation. 
  3680.  
  3681. The parameter passed is the queue name concatenated to the driver name with a 
  3682. period. To produce this name from the stem returned by RxQueueList using the 
  3683. following code :- 
  3684.  
  3685.      queueAndDriverName = queues.1 || '.' || queues.1.drivername
  3686.  
  3687. If queueAndDriverName does not exist, RXQUEUESETDEFAULT raises an 'Incorrect 
  3688. call to routine' condition. 
  3689.  
  3690. See also RxQueueList for the correct way of obtaining queue and driver names. 
  3691.  
  3692. Example: 
  3693.  
  3694.      Call RxQueueSetDefault 'Apple LaserWriter Plus on COM2.PSCRIPT.Apple LaserWriter'
  3695.  
  3696. Output: 
  3697.  
  3698.      The default queue will be changed to the Apple Laser Writer queue.
  3699.  
  3700.  
  3701. ΓòÉΓòÉΓòÉ 5.14.3. RxQueueJobProperties ΓòÉΓòÉΓòÉ
  3702.  
  3703. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3704. Γöé.........ΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  3705. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3706.  
  3707. ΓöÇΓöÇΓöÇRXQUEUEJOBPROPERTIES(ΓöÇΓöÇqueueAndDriverNameΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  3708.  
  3709.  
  3710. Asks the queue specified to display a 'Job Properties' dialog for the user, so 
  3711. that they can tailor options for an imminent print job. 
  3712.  
  3713. The parameter passed is the queue name concatenated to the driver name with a 
  3714. period. To produce this name from the stem returned by RxQueueList using the 
  3715. following code :- 
  3716.  
  3717.      queueAndDriverName = queues.1 || '.' || queues.1.drivername
  3718.  
  3719. If queueAndDriverName does not exist, RXQUEUEJOBPROPERTIES raises an 'Incorrect 
  3720. call to routine' condition. 
  3721.  
  3722. See also RxQueueList for the correct way of obtaining queue names and driver 
  3723. names. 
  3724.  
  3725. This function requires a Presentation Manager program to work correctly. 
  3726.  
  3727. Example: 
  3728.  
  3729.      Call RxQueueJobProperties 'Apple LaserWriter Plus on COM2.PSCRIPT.Apple LaserWriter'
  3730.  
  3731. Output: 
  3732.  
  3733.      A job properties dialogue is displayed.
  3734.  
  3735.  
  3736. ΓòÉΓòÉΓòÉ 5.14.4. RxQueueWriteStem ΓòÉΓòÉΓòÉ
  3737.  
  3738. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3739. Γöé.........ΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  3740. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3741.  
  3742. ΓöÇΓöÇΓöÇRXQUEUEWRITESTEM(ΓöÇΓöÇqueueAndDriverName, stemΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  3743.  
  3744.  
  3745. Writes the entries stem.1, stem.2, stem.3 to stem.n where n = stem.0, to the 
  3746. Queue identified by queueAndDriverName. 
  3747.  
  3748. The first parameter passed is the queue name concatenated to the driver name 
  3749. with a period. To produce this name from the stem returned by RxQueueList using 
  3750. the following code :- 
  3751.  
  3752.      queueAndDriverName = queues.1 || '.' || queues.1.drivername
  3753.  
  3754. If queueAndDriverName does not exist, or a stem is not specified, 
  3755. RXQUEUEWRITESTEM raises an 'Incorrect call to routine' condition. 
  3756.  
  3757. stem.jobname specifies the name that is to appear in the printer queue for this 
  3758. print job. 
  3759.  
  3760. stem.priority specifies the priority (1 to 99) that is to be given to this 
  3761. print job. 
  3762.  
  3763. stem.copies specifies the number of copies of this print image to be printed. 
  3764.  
  3765. See also RxQueueList for the correct way of obtaining queue names and driver 
  3766. names. 
  3767.  
  3768. This function requires a Presentation Manager program to work correctly. 
  3769.  
  3770. Example: 
  3771.  
  3772.      temp.0 = 3
  3773.      temp.1 = 'A line of print'
  3774.      temp.2 = 'may not be worth the paper it is printed on....'
  3775.      temp.3 = '                         Beware'
  3776.      temp.priority = 50
  3777.      temp.jobname = 'My Quote'
  3778.      temp.copies = 1000
  3779.      Call RxQueueWriteStem 'Apple LaserWriter Plus on COM2.PSCRIPT.Apple LaserWriter', 'temp.'
  3780.  
  3781. Output: 
  3782.  
  3783.      One THOUSAND COPIES of the 3 line quote are produced on an
  3784.      Apple LaserWriter Plus printer.
  3785.      All text longer than one line is wrapped, and if the text is
  3786.      more than one page, multiple pages are written out.
  3787.  
  3788.  
  3789. ΓòÉΓòÉΓòÉ 5.15. Event synchronisation and Resource Serialisation ΓòÉΓòÉΓòÉ
  3790.  
  3791. These APIs deal with synchronising threads and processes using events and 
  3792. serialising access to resources. 
  3793.  
  3794. The APIs are implemented using OS/2's semaphore support. 
  3795.  
  3796. An event corresponds to an Event Semaphore and a resource corresponds to a 
  3797. Mutex Semaphore. 
  3798.  
  3799.  
  3800. ΓòÉΓòÉΓòÉ 5.15.1. RxEventCreate ΓòÉΓòÉΓòÉ
  3801.  
  3802. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3803. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  3804. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3805.  
  3806. ΓöÇΓöÇΓöÇRXEVENTCREATE(ΓöÇΓöÇnameΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  3807.                            ΓööΓöÇΓöÇ,statusΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3808.  
  3809.  
  3810. Creates an event used for process or thread synchronisation. 
  3811.  
  3812. If the name or status (if passed) are invalid strings, RXEVENTCREATE raises an 
  3813. INCORRECT CALL TO ROUTINE from within REXX. 
  3814.  
  3815. RXEVENTCREATE returns a handle which uniquely identifies the event if 
  3816. successful, or "Error creating event" if unsuccessful. 
  3817.  
  3818. The handle returned is for use with RxEventDestroy. 
  3819.  
  3820. Example: 
  3821.  
  3822.      hEvent = RxEventCreate('FileLoad')
  3823.  
  3824. Output: 
  3825.  
  3826.      An event called 'FileLoad' is created and
  3827.      a handle to it is returned in hEvent.
  3828.  
  3829.  
  3830. ΓòÉΓòÉΓòÉ 5.15.2. RxEventDestroy ΓòÉΓòÉΓòÉ
  3831.  
  3832. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3833. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  3834. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3835.  
  3836. ΓöÇΓöÇΓöÇRXEVENTDESTROY(ΓöÇΓöÇhandleΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  3837.  
  3838.  
  3839. Destroys the event used for process or thread synchronisation. 
  3840.  
  3841. If the handle is not passed, RXEVENTDESTROY raises an INCORRECT CALL TO ROUTINE 
  3842. from within REXX. 
  3843.  
  3844. RXEVENTDESTROY returns "" if successful. 
  3845.  
  3846. A valid handle is obtained when the event is created, using RxEventCreate. 
  3847.  
  3848. Example: 
  3849.  
  3850.      Call RxEventDestroy hEvent
  3851.  
  3852. Output: 
  3853.  
  3854.      An event called 'FileLoad' which was previously
  3855.      created, and whose hand is stored in hEvent is
  3856.      destroyed and a NULL string is returned.
  3857.  
  3858.  
  3859. ΓòÉΓòÉΓòÉ 5.15.3. RxEventWaitFor ΓòÉΓòÉΓòÉ
  3860.  
  3861. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3862. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  3863. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3864.  
  3865. ΓöÇΓöÇΓöÇRXEVENTWAITFOR(ΓöÇΓöÇnameΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  3866.                             ΓööΓöÇΓöÇ,timeoutΓöÇΓöÇΓöÇΓöÇΓöÿ
  3867.  
  3868.  
  3869. Waits for the event name used for process or thread synchronisation to occur. 
  3870. The REXX program that calls this function is blocked until either the event 
  3871. occurs, or the timeout period expires. 
  3872.  
  3873. If the name is not passed, RXEVENTDESTROY raises an INCORRECT CALL TO ROUTINE 
  3874. from within REXX. 
  3875.  
  3876. RXEVENTWAITFOR returns "Event occurred" if successful, "Timeout waiting for 
  3877. event", "Interrupted waiting for event", "Error waiting for event" if there is 
  3878. an error during waiting,  or "Error finding event" if the event name is 
  3879. incorrect. 
  3880.  
  3881. Example: 
  3882.  
  3883.      Call RxEventWaitFor 'FileLoad', 500
  3884.      Say result
  3885.  
  3886. Output: 
  3887.  
  3888.      An event called 'FileLoad' which was previously
  3889.      created is waited on for 1/2 a second.
  3890.      The REXX special variable result holds the value returned
  3891.      by the function call.
  3892.  
  3893.  
  3894. ΓòÉΓòÉΓòÉ 5.15.4. RxEventOccurred ΓòÉΓòÉΓòÉ
  3895.  
  3896. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3897. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  3898. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3899.  
  3900. ΓöÇΓöÇΓöÇRXEVENTOCCURRED(ΓöÇΓöÇnameΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  3901.  
  3902.  
  3903. Notifies any waiting programs that the event name has occurred. This tells all 
  3904. waiting programs to continue execution. Programs wait for an event by calling 
  3905. RxEventWaitFor. 
  3906.  
  3907. If the name is not passed, RXEVENTOCCURRED raises an INCORRECT CALL TO ROUTINE 
  3908. from within REXX. 
  3909.  
  3910. RXEVENTOCCURRED returns "" if successful, "Error finding event" if the event 
  3911. name is incorrect, or "Event already in 'occurred' state" if the event named 
  3912. has already occurred without being reset by RxEventReset. 
  3913.  
  3914. Example: 
  3915.  
  3916.      Call RxEventOccurred 'FileLoad'
  3917.  
  3918. Output: 
  3919.  
  3920.      An event called 'FileLoad' which was previously
  3921.      created is marked as 'occurred' and a NULL string is returned.
  3922.      All programs waiting on this event with RxEventWaitFor continue
  3923.      execution.
  3924.  
  3925.  
  3926. ΓòÉΓòÉΓòÉ 5.15.5. RxEventQuery ΓòÉΓòÉΓòÉ
  3927.  
  3928. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3929. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  3930. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3931.  
  3932. ΓöÇΓöÇΓöÇRXEVENTQUERY(ΓöÇΓöÇnameΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  3933.  
  3934.  
  3935. Returns the number of times an event has occurred since being reset. Programs 
  3936. reset an event by calling RxEventReset. 
  3937.  
  3938. If the name is not passed, RXEVENTQUERY raises an INCORRECT CALL TO ROUTINE 
  3939. from within REXX. 
  3940.  
  3941. RXEVENTQUERY returns a number if successful, "Error finding event" if the event 
  3942. name is incorrect, or "Error querying event" if some other error occurs. 
  3943.  
  3944. Example: 
  3945.  
  3946.      numTimes = RxEventOccurred('FileLoad')
  3947.      Say 'The file was loaded' numTimes' times.'
  3948.  
  3949. Output: 
  3950.  
  3951.      The file was loaded 5 times.
  3952.  
  3953.  
  3954. ΓòÉΓòÉΓòÉ 5.15.6. RxEventReset ΓòÉΓòÉΓòÉ
  3955.  
  3956. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3957. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  3958. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3959.  
  3960. ΓöÇΓöÇΓöÇRXEVENTRESET(ΓöÇΓöÇnameΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  3961.  
  3962.  
  3963. Resets an event so that it is in a 'Waiting' state and sets the count of event 
  3964. occurrences back to zero. 
  3965.  
  3966. If the name is not passed, RXEVENTRESET raises an INCORRECT CALL TO ROUTINE 
  3967. from within REXX. 
  3968.  
  3969. RXEVENTRESET returns "Event occurred n times since last reset" if successful (n 
  3970. is a number), "Error finding event" if the event name is incorrect, or "Event 
  3971. already in 'reset' state" if the event named has already been reset. 
  3972.  
  3973. Example: 
  3974.  
  3975.      Say RxEventReset('FileLoad')
  3976.  
  3977. Output: 
  3978.  
  3979.      Event occurred 5 times since last reset
  3980.  
  3981.  
  3982. ΓòÉΓòÉΓòÉ 5.15.7. RxResourceCreate ΓòÉΓòÉΓòÉ
  3983.  
  3984. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3985. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  3986. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3987.  
  3988. ΓöÇΓöÇΓöÇRXRESOURCECREATE(ΓöÇΓöÇnameΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  3989.                               ΓööΓöÇΓöÇ,statusΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3990.  
  3991.  
  3992. Creates a resource used for process or thread serialisation. 
  3993.  
  3994. If the name or status (if passed) are invalid strings, RXRESOURCECREATE raises 
  3995. an INCORRECT CALL TO ROUTINE from within REXX. 
  3996.  
  3997. RXRESOURCECREATE returns a handle which uniquely identifies the event if 
  3998. successful, or "Error creating resource" if unsuccessful. 
  3999.  
  4000. The handle returned is for use with RxResourceDestroy. 
  4001.  
  4002. Example: 
  4003.  
  4004.      hRes = RxResourceCreate('FileWrite')
  4005.  
  4006. Output: 
  4007.  
  4008.      A resource called 'FileWrite' is created and
  4009.      a handle to it is returned in hRes.
  4010.  
  4011.  
  4012. ΓòÉΓòÉΓòÉ 5.15.8. RxResourceDestroy ΓòÉΓòÉΓòÉ
  4013.  
  4014. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  4015. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  4016. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  4017.  
  4018. ΓöÇΓöÇΓöÇRXRESOURCEDESTROY(ΓöÇΓöÇhandleΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  4019.  
  4020.  
  4021. Destroys the resource used for process or thread serialisation. 
  4022.  
  4023. If the handle is not passed, RXRESOURCEDESTROY raises an INCORRECT CALL TO 
  4024. ROUTINE from within REXX. 
  4025.  
  4026. RXRESOURCEDESTROY returns "" if successful. 
  4027.  
  4028. A valid handle is obtained when the event is created, using RxResourceCreate. 
  4029.  
  4030. Example: 
  4031.  
  4032.      Call RxResourceDestroy hResource
  4033.  
  4034. Output: 
  4035.  
  4036.      A resource called 'FileWrite' which was previously
  4037.      created, and whose handle is stored in hResource is
  4038.      destroyed and a NULL string is returned.
  4039.  
  4040.  
  4041. ΓòÉΓòÉΓòÉ 5.15.9. RxResourceRequest ΓòÉΓòÉΓòÉ
  4042.  
  4043. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  4044. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  4045. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  4046.  
  4047. ΓöÇΓöÇΓöÇRXRESOURCEREQUEST(ΓöÇΓöÇnameΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  4048.                                ΓööΓöÇΓöÇ,timeoutΓöÇΓöÇΓöÇΓöÇΓöÿ
  4049.  
  4050.  
  4051. Waits for the resource name used for process or thread serialisation to become 
  4052. available. The REXX program that calls this function is blocked until either 
  4053. the resource becomes available, or the timeout period expires. 
  4054.  
  4055. If the name is not passed, RXRESOURCEREQUEST raises an INCORRECT CALL TO 
  4056. ROUTINE from within REXX. 
  4057.  
  4058. RXRESOURCEREQUEST returns "Resource available" when the resource becomes 
  4059. available, "Error finding event" if the event name is incorrect, or "Timeout 
  4060. waiting for resource" if the timeout period expires, "Interrupted waiting for 
  4061. resource" if OS/2 interrupts the request, or "Error waiting for resource" if 
  4062. there is an error during the request. 
  4063.  
  4064. Example: 
  4065.  
  4066.      Say RxResourceRequest 'FileWrite'
  4067.  
  4068. Output: 
  4069.  
  4070.      Resource Available
  4071.  
  4072.      The REXX program is suspended until the resource 'FileWrite'
  4073.      is available.
  4074.  
  4075.  
  4076. ΓòÉΓòÉΓòÉ 5.15.10. RxResourceRelease ΓòÉΓòÉΓòÉ
  4077.  
  4078. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  4079. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  4080. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  4081.  
  4082. ΓöÇΓöÇΓöÇRXRESOURCERELEASE(ΓöÇΓöÇnameΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  4083.  
  4084.  
  4085. Releases the named resource so that the next waiting program can obtain access 
  4086. to the resource. 
  4087.  
  4088. If the name is not passed, RXRESOURCERELEASE raises an INCORRECT CALL TO 
  4089. ROUTINE from within REXX. 
  4090.  
  4091. RXRESOURCERELEASE returns "" if successful, "Error finding resource" if the 
  4092. resource name is incorrect. 
  4093.  
  4094. Example: 
  4095.  
  4096.      Call RxResourceRelease 'FileWrite'
  4097.  
  4098. Output: 
  4099.  
  4100.      The resource called 'FileWrite' which was previously
  4101.      created is released so that other programs or threads can
  4102.      access it.
  4103.      Only one thread can obtain the resource at any point in time.
  4104.  
  4105.  
  4106. ΓòÉΓòÉΓòÉ 5.15.11. RxResourceQuery ΓòÉΓòÉΓòÉ
  4107.  
  4108. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  4109. ΓöéOS/2 REXXΓöéVisPro/REXXΓöéVX-REXXΓöéGPFRexxΓöé
  4110. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  4111.  
  4112. ΓöÇΓöÇΓöÇRXRESOURCEQUERY(ΓöÇΓöÇnameΓöÇΓöÇ)ΓöÇΓöÇΓöÇ
  4113.  
  4114.  
  4115. Returns the number of threads that are waiting for a resource. 
  4116.  
  4117. If the name is not passed, RXRESOURCEQUERY raises an INCORRECT CALL TO ROUTINE 
  4118. from within REXX. 
  4119.  
  4120. RXRESOURCEQUERY returns a number if successful, "Error finding resource" if the 
  4121. resource name is incorrect, or "Error querying resource" if some other error 
  4122. occurs. 
  4123.  
  4124. Example: 
  4125.  
  4126.      numWaiters = RxResourceQuery('FileWrite')
  4127.      Say 'There are' numWaiters' threads waiting to write to the file.'
  4128.  
  4129. Output: 
  4130.  
  4131.      There are 5 threads waiting to write to the file.
  4132.  
  4133.  
  4134. ΓòÉΓòÉΓòÉ <hidden> RxEventCreate name, status ΓòÉΓòÉΓòÉ
  4135.  
  4136. The status parameter should be either 'Occurred' or 'Waiting'. Only the first 
  4137. character is significant, and defaults to 'Waiting'. 
  4138.  
  4139.  
  4140. ΓòÉΓòÉΓòÉ <hidden> RxEventWaitFor name, timeout ΓòÉΓòÉΓòÉ
  4141.  
  4142. The timeout parameter should be either a time specified in milliseconds or 
  4143. 'Forever'. Only the first character of 'Forever' is significant. 
  4144.  
  4145. 'Forever' is the default. 
  4146.  
  4147.  
  4148. ΓòÉΓòÉΓòÉ <hidden> RxResourceCreate name, status ΓòÉΓòÉΓòÉ
  4149.  
  4150. The status parameter should be either 'Owned' or 'Unowned'. Only the first 
  4151. character is significant, and defaults to 'Unowned'. 
  4152.  
  4153.  
  4154. ΓòÉΓòÉΓòÉ <hidden> RxResourceRequest name, timeout ΓòÉΓòÉΓòÉ
  4155.  
  4156. The timeout parameter should be either a time specified in milliseconds or 
  4157. 'Forever'. Only the first character of 'Forever' is significant. 
  4158.  
  4159. 'Forever' is the default. 
  4160.  
  4161.  
  4162. ΓòÉΓòÉΓòÉ 6. RxExtras.LIB ΓòÉΓòÉΓòÉ
  4163.  
  4164. RxExtras.LIB is a library file for use in C programming. 
  4165.  
  4166. If you want to use some of the functions in RxExtras in your own C code, you 
  4167. need to link with RxExtras.LIB when you are building your application. 
  4168.  
  4169. All functions exported from RxExtras.LIB are callable from REXX and therefore 
  4170. have the following function prototype :- 
  4171.  
  4172.    ULONG Name(PSZ pszFnName,
  4173.               ULONG ulArgc,
  4174.               RXSTRING rxArgv[],
  4175.               PSZ pszQName,
  4176.               PRXSTRING prxReturn)
  4177.  
  4178. The following is a list of all functions exported in RxExtras.LIB 
  4179.  
  4180.      RxRead 
  4181.  
  4182.      RxWrite 
  4183.  
  4184.      RxBootDrive 
  4185.  
  4186.      RxVolumeLabel 
  4187.  
  4188.      RxVarDump 
  4189.  
  4190.      RxStemCopy 
  4191.  
  4192.      RxExtra 
  4193.  
  4194.      RxSort 
  4195.  
  4196.      RxSwitchTo 
  4197.  
  4198.      RxQuerySwitchlist 
  4199.  
  4200.      RxListBoxFromFile 
  4201.  
  4202.      RxListBoxFromStem 
  4203.  
  4204.      RxQueryDriveType 
  4205.  
  4206.      RxSearchPath 
  4207.  
  4208.      RxGetItemFromListBox 
  4209.  
  4210.      RxSetSpinButtonRangeWithIncrement 
  4211.  
  4212.      RxSetSpinButtonCharRange 
  4213.  
  4214.      RxSetSpinButtonRangeFromStem 
  4215.  
  4216.      RxGetItemFromListBoxAtIndex 
  4217.  
  4218.      RxSetGlobal 
  4219.  
  4220.      RxGetGlobal 
  4221.  
  4222.      RxGetListBoxCount 
  4223.  
  4224.      RxListBoxToFile 
  4225.  
  4226.      RxListBoxToStem 
  4227.  
  4228.      RxAddItemAtIndex 
  4229.  
  4230.      RxMorphButtonToIcon 
  4231.  
  4232.      RxSearchItem 
  4233.  
  4234.      RxSetAccelTable 
  4235.  
  4236.      RxQueryAccelTable 
  4237.  
  4238.      RxQueryWindow 
  4239.  
  4240.      RxQueryClassName 
  4241.  
  4242.      RxQueryFonts 
  4243.  
  4244.      RxLineCount 
  4245.  
  4246.      RxMaximize 
  4247.  
  4248.      RxMinimize 
  4249.  
  4250.      RxRestore 
  4251.  
  4252.      RxThread 
  4253.  
  4254.      RxKillThread 
  4255.  
  4256.      RxSuspendThread 
  4257.  
  4258.      RxResumeThread 
  4259.  
  4260.      RxSetThreadClass 
  4261.  
  4262.      RxChangeThreadPriority 
  4263.  
  4264.      RxSetIcon 
  4265.  
  4266.      RxDrawBitmap 
  4267.  
  4268.      and more... 
  4269.  
  4270.  
  4271. ΓòÉΓòÉΓòÉ 7. RxExtras.CMD ΓòÉΓòÉΓòÉ
  4272.  
  4273. RxExtras.CMD is a command file that will test all parts of RxExtras that can be 
  4274. run from the command line. 
  4275.  
  4276. A copy of this file is included here in case you delete it. You can easily copy 
  4277. the file from the Services->Copy menu item on the action bar and then paste it 
  4278. back into your favourite editor. 
  4279.  
  4280.  
  4281. ΓòÉΓòÉΓòÉ 7.1. RxExtras.CMD - Source ΓòÉΓòÉΓòÉ
  4282.  
  4283. /* RxExtras - test for all functions in RxExtras.DLL */
  4284. Address CMD
  4285.  
  4286. Parse Arg label
  4287. If label <> '' Then Interpret 'CALL 'label
  4288.  
  4289. If RxFuncQuery('RxExtra') <> 0 Then
  4290.     rcy = RxFuncAdd('RxExtra', 'RxExtras', 'RxExtra')
  4291.  
  4292. Call RxExtra "Drop" /* Drop everything */
  4293. rcy = RxFuncAdd('RxExtra', 'RxExtras', 'RxExtra')
  4294. Say 'Using version 'RxExtra("Load")' of RxExtras'
  4295.  
  4296. Say
  4297. Say "Testing RxBootDrive and RxRead..."
  4298. Call RxRead 'stem.', RxBootDrive()":"'\CONFIG.SYS'
  4299. Say "Your Config.Sys file should now appear"
  4300. "@PAUSE"
  4301. Do i = 1 to stem.0
  4302.    Say stem.i
  4303. end /* do */
  4304. "@PAUSE"
  4305.  
  4306.  
  4307. Say
  4308. Say "Testing RxBootDrive by itself"
  4309. Say 'Your bootdrive is 'RxBootDrive()":"
  4310. "@PAUSE"
  4311.  
  4312. temp.0 = 5
  4313. temp.1 = "This is a test file"
  4314. temp.2 = "With this ring, I thee bed"
  4315. temp.3 = "The worlds smallest handcuff"
  4316. temp.4 = "How to win fiends and affluent people"
  4317. temp.5 = "### The last line ###"
  4318.  
  4319. Say
  4320. Say "Testing RxWrite by writing 5 lines to \TEMP.DAT"
  4321. Call RxWrite "temp.", "\temp.dat"
  4322. Say "Here is \TEMP.DAT"
  4323. "@type \temp.dat"
  4324.  
  4325. "@PAUSE"
  4326. "@DEL \temp.dat"
  4327.  
  4328. Say
  4329. Say "Testing RxVolumeLabel"
  4330. Say "Label of C is "RxVolumeLabel("C")
  4331. "@PAUSE"
  4332.  
  4333.  
  4334. Say
  4335. Drop stem.
  4336. Drop temp.
  4337. temp.1 = 1
  4338. temp.testing = "Testing is on"
  4339. temp.2 = 3
  4340. temp.testing.1 = "Life be in it"
  4341. Say "Testing RxVarDump - dumping all 'local' variables"
  4342. Call RxVarDump 'vars.'
  4343.  
  4344. Do i = 1 to vars.0
  4345.   Say 'Variable Name:"'vars.i.name'" has the value: "'vars.i.value'"'
  4346. End
  4347. Drop vars.
  4348. "@PAUSE"
  4349.  
  4350. Say
  4351. Say "Testing RxStemCopy"
  4352. Say "Copy all variables from temp. to temp2."
  4353. Say "See RxVarDump above for temp. variables"
  4354.  
  4355. Call RxStemCopy "temp.", "temp2."
  4356.  
  4357. Say "Now we have..."
  4358. Call RxVarDump 'vars.'
  4359. Do i = 1 to vars.0
  4360.   Say 'Variable Name:"'vars.i.name'" has the value: "'vars.i.value'"'
  4361. End
  4362. Drop vars.
  4363. "@PAUSE"
  4364.  
  4365. Say
  4366. Say "Testing RxSort"
  4367. temp.0 = 16
  4368. temp.1 = "This is a list"
  4369. temp.2 = "a List should be sorted"
  4370. temp.3 = "upper and Lowercase"
  4371. temp.4 = "$trange"
  4372. temp.5 = "#unny"
  4373. temp.6 = "@nd unusual"
  4374. temp.7 = "12345"
  4375. temp.8 = "123456"
  4376. temp.9 = "One isthe 9"
  4377. temp.10 = "Ten green bottles 10"
  4378. temp.11 = "Legs 11"
  4379. temp.12 = "And then some 12"
  4380. temp.13 = "Hollow weeing 13"
  4381. temp.14 = "Only 14"
  4382. temp.15 = "15"
  4383. temp.16 = "The last line!"
  4384. Say
  4385. Say "The unsorted list is..."
  4386. Say Copies('-', 50)
  4387. Do i = 1 to temp.0
  4388.     Say temp.i
  4389. end /* do */
  4390. Say Copies('-', 50)
  4391. "@PAUSE"
  4392. Say
  4393. Say "Sorting in descending order gives..."
  4394. Call RxSort 'temp.', 'Descending'
  4395.  
  4396. Say Copies('-', 50)
  4397. Do i = 1 to temp.0
  4398.     Say temp.i
  4399. end /* do */
  4400. Say Copies('-', 50)
  4401. "@PAUSE"
  4402. Say
  4403. Say "Sorting in ascending order gives..."
  4404. Call RxSort 'temp.', 'Asc'
  4405. Say Copies('-', 50)
  4406. Do i = 1 to temp.0
  4407.     Say temp.i
  4408. end /* do */
  4409. Say Copies('-', 50)
  4410. "@PAUSE"
  4411.  
  4412. Say
  4413. Say "Testing RxSwitchTo"
  4414. Say "Switching to the desktop, hit Ctrl-Alt-Shift-O to see developers"
  4415. /* RxSwitchTo works by matching as much of the string as you give it
  4416.  * to the first session.
  4417.  * i.e. Call RxSwitchTo "System C"
  4418.  * Will switch to the system clock.
  4419.  */
  4420. Call RxSwitchTo "OS"
  4421. If POS("Switch", result) <> 0 Then Do /* probably 2.1 */
  4422.   Call RxSwitchTo "Desktop"
  4423. End
  4424. "@PAUSE"
  4425.  
  4426. Say
  4427. Say "Testing RxQuerySwitchListo"
  4428. Say "The programs running should now appear."
  4429. Call RxQuerySwitchList "temp."
  4430. Do i = 1 to temp.0
  4431.    Say "Title: "temp.i ", Hwnd: "temp.i.hwnd", Process Id: "temp.i.pid
  4432. End /* do */
  4433.  
  4434. "@PAUSE"
  4435.  
  4436. Say
  4437. Say "Testing RxQueryDriveType for Drive C:"
  4438. Say RxQueryDriveType("C:")
  4439. "@PAUSE"
  4440.  
  4441. BD = RxBootDrive()
  4442. PathToSearch = BD":\OS2;"BD":\OS2\INSTALL"
  4443. Say
  4444. Say "Testing RxSearchPath looking for DATABASE.TXT in \OS2 and \OS2\INSTALL"
  4445. Say RxSearchPath(PathToSearch, 'DATABASE.TXT')
  4446. "@PAUSE"
  4447.  
  4448. RxLC:
  4449. Say
  4450. Say "Testing RxLineCount"
  4451. LC = RxLineCount(RxBootDrive()':\CONFIG.SYS')
  4452. Say 'There are 'LC' lines in the your CONFIG.SYS file'
  4453. "@PAUSE"
  4454.  
  4455. Say
  4456. Say "Testing RxGetEXEName"
  4457. Say "The command line for this program was '"RxGetEXEName()"'"
  4458. "@PAUSE"
  4459.  
  4460. Say
  4461. Say "Testing RxNap"
  4462. Say "This program should appear to sleep for half a second"
  4463. Call RxNap 500
  4464. "@PAUSE"
  4465.  
  4466. Say
  4467. Say "Testing RxFileExists"
  4468. If (RxFileExists(RxBootDrive()":\CONFIG.SYS")) Then
  4469.    Say "I found your CONFIG.SYS!"
  4470. "@PAUSE"
  4471.  
  4472. Say
  4473. Say "Testing RxKillProcess"
  4474. Say "Please note the following output for processes to kill"
  4475. Say "(and remember to convert the process from hex to decimal)"
  4476. "@PSTAT /C | MORE"
  4477. Call Charout ,"Enter a process id to be killed ?"
  4478. Parse Pull id
  4479. Say "Kill process returned: "RxKillProcess(id)
  4480. "@PAUSE"
  4481.  
  4482. Say
  4483. Say "Testing RxAddFileHandles"
  4484. Say "There are currently "RxAddFileHandles(0)" handles available."
  4485. Say "Now adding 25 more. Now "RxAddFileHandles(25)" handles available."
  4486. "@PAUSE"
  4487.  
  4488. Say
  4489. Say "Testing RxSetFileHandles"
  4490. Say "There are currently "RxAddFileHandles(0)" handles available"
  4491. Say "Now setting this to 100."
  4492. Call RxSetFileHandles 100
  4493. Say "Now "RxAddFileHandles(0)" handles available."
  4494. "@PAUSE"
  4495.  
  4496. Say
  4497. Say "Testing RxMatchWildCard"
  4498. MF = 'MYFILE.cmd'
  4499. WC = '*.cmd'
  4500. Result = RxMatchWildCard(MF, WC)
  4501. If Result = MF Then
  4502.    Say '   'MF' matches Wildcard 'WC' (Edited name is:'Result')'
  4503. Else
  4504.    Say '   'MF' does not match Wildcard 'WC' (Edited name is:'Result')'
  4505. MF = 'MYFILE.cmd'
  4506. WC = '*.bbb'
  4507. Result = RxMatchWildCard(MF, WC)
  4508. If Result = MF Then
  4509.    Say '   'MF' matches Wildcard 'WC' (Edited name is:'Result')'
  4510. Else
  4511.    Say '   'MF' does not match Wildcard 'WC' (Edited name is:'Result')'
  4512. '@PAUSE'
  4513.  
  4514. Say
  4515. Say "Testing RxStemSearch"
  4516. stem.0 = 5
  4517. stem.1 = 'Hi There, hello'
  4518. stem.2 = 'Hello'
  4519. stem.3 = 'Nope'
  4520. stem.4 = 'helicopter'
  4521. stem.5 = 'Hell is a lovely planet'
  4522.  
  4523. Say "Finding 'hel' case sensitive in a stem, and returning indexes"
  4524. Call RxStemSearch 'hel', 'stem.', 'find.', 'CN'
  4525. Do i = 1 to find.0
  4526.   Say find.i
  4527. End
  4528. '@PAUSE'
  4529.  
  4530. Say
  4531. Say 'Testing RxMemAvail'
  4532. Say 'There is 'RxMemAvail()/1024||'KB of physical memory free'
  4533. '@PAUSE'
  4534.  
  4535. Say
  4536. Say 'Testing RxSysValues'
  4537. Call RxSysValues 'sysvals.'
  4538. Say 'There is 'sysvals.totphysmem/1024/1024'MB of memory in your machine'
  4539. '@PAUSE'
  4540.  
  4541. Say
  4542. Say 'Testing RxSetGlobal and RxGetGlobal with single variables'
  4543. Say "Setting the global variable 'TEST' to 'The air attack warning sounds like'"
  4544. Call RxSetGlobal 'TEST', 'The air attack warning sounds like'
  4545. Say 'The text retrieved is:"'RxGetGlobal('TEST')'"'
  4546. '@PAUSE'
  4547.  
  4548. stem.0 = 3
  4549. stem.1 = 'When you hear'
  4550. stem.2 = 'the air attack warning'
  4551. stem.3 = 'RUN!!!!!'
  4552. Say
  4553. Say 'Testing RxSetGlobal and RxGetGlobal with stems'
  4554. Say 'Setting the global stem "warning" from a local stem'
  4555. Call RxSetGlobal 'warning.', 'stem.'
  4556. Say 'Getting the Global stem "warning" into the local stem "frankie"'
  4557. Call RxGetGlobal 'warning.', 'frankie.'
  4558. Say 'The contents of frankie are: '
  4559. Do i = 1 to frankie.0
  4560.   Say frankie.i
  4561. End
  4562. '@PAUSE'
  4563.  
  4564. Say
  4565. Say 'Testing RxQueryCountryInfo'
  4566. Call RxQueryCountryInfo 'temp.'
  4567. Say 'The currency sign is '||temp.CURRENCY||' in your country'
  4568. '@PAUSE'
  4569.  
  4570. Say
  4571. Say "All testing is now over..."
  4572. "@PAUSE"
  4573.  
  4574. Call RxExtra "Drop"
  4575.  
  4576.  
  4577. ΓòÉΓòÉΓòÉ 8. Registration/Support ΓòÉΓòÉΓòÉ
  4578.  
  4579.       Registration 
  4580.       Support 
  4581.       Future Enhancements 
  4582.       Trademarks 
  4583.  
  4584.  
  4585. ΓòÉΓòÉΓòÉ 8.1. Registration ΓòÉΓòÉΓòÉ
  4586.  
  4587. This package may be registered on-line on Compu$erve via GO SWREG. Use  Id:7370 
  4588. to register RxExtras. 
  4589.  
  4590. It may also be registed by sending payment (credit card, money order or 
  4591. cheqeue) to the addresses (both email and snail) listed below. 
  4592.  
  4593. I also enjoy postcards from various locations around the world. If you don't 
  4594. have the cash, send me a postcard about your situation and you never know your 
  4595. luck :). 
  4596.  
  4597. CompuServe access, if you have it, is by far the easiest way to register. 
  4598.  
  4599. This software package is distributed as Shareware.  Non-corporate users are 
  4600. granted the right to use and evaluate the usefulness of RxExtras, and to 
  4601. distribute the package, intact, by any medium. 
  4602.  
  4603. Continued use of RxExtras requires formal registration of the software. 
  4604.  
  4605. Distribution of any software which requires RxExtras APIs by persons who have 
  4606. not paid their registration fee is illegal. Users acquiring a software package 
  4607. which requires RxExtras may freely use RxExtras with that package without being 
  4608. required to submit payment for RxExtras.  However, such Users are required to 
  4609. pay for RxExtras if the User creates his/her own programs which utilize the 
  4610. RxExtras APIs. 
  4611.  
  4612. If you find this package useful and use it, register for $25 Australian ($18 US 
  4613. approx) at the address below by faxing, emailing or calling with your credit 
  4614. card details, or by sending a money order for the US dollar amount to the 
  4615. address below. 
  4616.  
  4617. Use of this package in any commercial product is illegal without registration 
  4618. and licensing. 
  4619.  
  4620. License arrangements can be made via: 
  4621.  
  4622.          WWW (http://www.multitask.com.au) 
  4623.          EMail (10026.470@compuserve.com) 
  4624.          Compuserve (Dion Gillard 100026,470) 
  4625.          Voice Telephone (+61-2-9904-1988) 
  4626.          FAX Telephone (+61-2-9953-9401) 
  4627.          Mobile Phone (+61-419-695-883) 
  4628.          Mail: 
  4629.                Dion Gillard 
  4630.                2/18 Myrtle St 
  4631.                Leichhardt, NSW, 2040 
  4632.                Australia 
  4633.  
  4634.  
  4635. ΓòÉΓòÉΓòÉ 8.2. Support ΓòÉΓòÉΓòÉ
  4636.  
  4637. If you have any questions or would like some other functions added, please 
  4638. contact me on Compu$erve (100026,470) or via Internet at 
  4639. 100026.470@compuserve.com 
  4640.  
  4641.  
  4642. ΓòÉΓòÉΓòÉ 8.3. Future Enhancements ΓòÉΓòÉΓòÉ
  4643.  
  4644. If you have any ideas for future improvement of RxExtras, please contact me 
  4645. with your suggestions.  Some of the ideas I am considering in future releases 
  4646. are: 
  4647.  
  4648.                Function          Description 
  4649.  
  4650.                WORDX             A version of REXX's WORD function that uses 
  4651.                                  any delimiter specified (e.g. commas), rather 
  4652.                                  than just a space. 
  4653.  
  4654.                REPLACE           Replace a string within another string 
  4655.  
  4656.                RxReplace         Replace a given string of text with another in 
  4657.                                  a file. 
  4658.  
  4659.                RxKillDir         Delete a subdirectory, all of its files, and 
  4660.                                  all of its subdirectories. 
  4661.  
  4662.  
  4663. ΓòÉΓòÉΓòÉ 8.4. Trademarks ΓòÉΓòÉΓòÉ
  4664.  
  4665.                     VisPro/Rexx is a registered trademark of HockWare, Inc. 
  4666.  
  4667.                     VX-Rexx is a registered trademark of Watcom, Inc. 
  4668.  
  4669.                     GPFRexx is a registered trademark of GPF Inc. 
  4670.  
  4671.                     RxExtras is copyrighted Dion Gillard, 1992-1996. 
  4672.  
  4673.                     CompuServe is a registered trademark of CompuServe, Inc. 
  4674.