home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 18 REXX / 18-REXX.zip / mnrexx10.zip / MNRexx.INF (.txt) < prev    next >
OS/2 Help File  |  1994-09-12  |  66KB  |  3,439 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. Copyright ΓòÉΓòÉΓòÉ
  3.  
  4.  
  5.  Copyright 
  6.  
  7.      Copyright (C) 1994 Makoto Nagata. 
  8.      All rights reserved. 
  9.  
  10.      This software is shareware.  You may use and test this software for 14 
  11.      days, then you have to either register or remove it from your system. 
  12.  
  13.  Distribution 
  14.  
  15.      The evaluation package may be freely distributed as long as the original 
  16.      package (MNRexx10.zip) is unmodified.  You may not charge more than USD 
  17.      $5.00 (including shipping and handling) for the distribution of this 
  18.      package. 
  19.  
  20.  Disclaimer 
  21.  
  22.      IN NO EVENT SHALL THE AUTHOR (MAKOTO NAGATA) BE LIABLE TO ANY PARTY FOR 
  23.      DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING 
  24.      OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE AUTHOR 
  25.      HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
  26.      THE AUTHOR (MAKOTO NAGATA) SPECIFICALLY DISCLAIMS ANY WARRANTIES, 
  27.      INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY 
  28.      AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS 
  29.      ON AN "AS IS" BASIS, AND THE AUTHOR (MAKOTO NAGATA) HAS NO OBLIGATION TO 
  30.      PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS (I 
  31.      will, though). 
  32.  
  33.  
  34. ΓòÉΓòÉΓòÉ 2. Introduction ΓòÉΓòÉΓòÉ
  35.  
  36. MNRexx version 1.0
  37.  
  38.  
  39.  MNRexx is a WPS class that gives you access to WPS objects in Rexx language. 
  40.  With MNRexx, you can create specialized WPS objects in Rexx. Also an MNRexx 
  41.  object on the desktop can act as an agent to allow access to WPS objects from 
  42.  outside of the WPS process. 
  43.  
  44.  MNRexx has a general SOM interface with which you can directly call any SOM 
  45.  method in Rexx (including undocumented WPS methods). 
  46.  
  47.  This is version 1.0 release. 
  48.  
  49.  This program is tested on OS/2 2.11. 
  50.  
  51.  MNRexx is released as shareware (so that I can find out how many people are 
  52.  out there who care about this kind of product).  For registration information, 
  53.  see Registration. 
  54.  
  55.  Any suggestions or bug reports are very welcome.  Please contact the author at 
  56.  the following address: 
  57.  
  58.                                   Makoto Nagata
  59.  
  60.                                   P.O. Box 26228
  61.                            San Francisco, CA 94126-6228
  62.                                       U.S.A.
  63.  
  64.   Internet: MNAGATA@CRL.COM
  65.  
  66.  
  67.  See Also 
  68.  
  69.      Registration 
  70.      Plans 
  71.  
  72.  
  73. ΓòÉΓòÉΓòÉ 3. Prerequisites ΓòÉΓòÉΓòÉ
  74.  
  75.  
  76.  To write an MNRexx script, you must be sufficiently fluent in Rexx language 
  77.  (MNRexx does not teach you how to program in Rexx). 
  78.  
  79.  Also, some knowledge of WPS programming is very helpful. 
  80.  
  81.  You MUST backup your desktop and your harddisk before developing an MNRexx 
  82.  script. 
  83.  
  84.  Note that your MNRexx script executes in the WPS shell process (and mostly in 
  85.  the PM thread). As such, MNRexx script should never enter an infinite loop or 
  86.  wait for an event that never happens (e.g., standard input). 
  87.  
  88.  Use an MNRexx object as an agent to access WPS if your script is complex 
  89.  and/or lengthy (See External Access). 
  90.  
  91.  
  92. ΓòÉΓòÉΓòÉ 4. LONG Rexx String ΓòÉΓòÉΓòÉ
  93.  
  94.  
  95.  MNRexx extensibly uses LONG strings - a LONG string is a 4-byte Rexx string 
  96.  that holds a long integer. 
  97.  
  98.  MNRexx provides two data conversion functions: 
  99.  
  100.      L2D : converts a LONG string to a decimal integer Rexx string 
  101.      D2L : converts a decimal integer Rexx string to a LONG string 
  102.  
  103.  Some SOM/WPS methods return memory addresses.  MNRexx provides a conversion 
  104.  function that converts a memory address into a Rexx string: 
  105.  
  106.      P2R : converts the memory content at a memory address into a Rexx string 
  107.  
  108.  Notes 
  109.  
  110.      In standard Rexx, you can declare a LONG variable as follows: 
  111.  
  112.          a_long = "12345678"x 
  113.  
  114.      However, note that the byte order is important - on an Intel machine, this 
  115.      means hexadecimal 0x78563412, not 0x12345678. 
  116.  
  117.  
  118. ΓòÉΓòÉΓòÉ 5. Initialization ΓòÉΓòÉΓòÉ
  119.  
  120.  
  121.  To initialize MNRexx functions, call: 
  122.  
  123.      RxFuncAdd 'RxmnInit', 'MNRexx', 'RxmnInit' 
  124.      call RxmnInit 
  125.  
  126.  RxmnInit routine declares all MNRexx functions and constants (you can also 
  127.  declare function only, constants only, or neither (with minimal 
  128.  initialization)). 
  129.  
  130.  To uninitialize MNRexx functions, call: 
  131.  
  132.      call RxmnUnInit 
  133.  
  134.  You can register MNRexx functions individually using RxFuncAdd function, but 
  135.  it is recommended to call RxmnInit function at least with minimal 
  136.  initialization. 
  137.  
  138.  See Also 
  139.  
  140.      Direct Method Calls 
  141.  
  142.  
  143. ΓòÉΓòÉΓòÉ 6. Constants ΓòÉΓòÉΓòÉ
  144.  
  145.  
  146.  The following constants are declared by RxmnInit function: 
  147.  
  148.      NULL = D2L(0) 
  149.      OBJSTYLE_NOMOVE = D2L(2) 
  150.      OBJSTYLE_NOLINK = D2L(4) 
  151.      OBJSTYLE_NOCOPY = D2L(8) 
  152.      OBJSTYLE_NOTDEFAULTICON = D2L(16) 
  153.      OBJSTYLE_TEMPLATE = D2L(32) 
  154.      OBJSTYLE_NODELETE = D2L(64) 
  155.      OBJSTYLE_NOPRINT = D2L(128) 
  156.      OBJSTYLE_NODRAG = D2L(256) 
  157.      OBJSTYLE_NOTVISIBLE = D2L(512) 
  158.      OBJSTYLE_NOSETTINGS = D2L(1024) 
  159.      OBJSTYLE_NORENAME = D2L(2048) 
  160.      CONFIRM_DELETE = D2L(1) 
  161.      CONFIRM_DELETEFOLDER = D2L(2) 
  162.      NO_DELETE = D2L(2) 
  163.      CANCEL_DELETE = D2L(3) 
  164.      OK_DELETE = D2L(1) 
  165.      OPEN_DEFAULT = D2L(-28672) 
  166.      OPEN_TREE = D2L(-28571) 
  167.      OPEN_DETAILS = D2L(-28570) 
  168.      OPEN_CONTENTS = D2L(-28671) 
  169.      OPEN_SETTINGS = D2L(-28670) 
  170.      OPEN_HELP = D2L(-28669) 
  171.      OPEN_RUNNING = D2L(-28668) 
  172.      OPEN_USER = D2L(-2816) 
  173.      OPEN_PALETTE = D2L(-28551) 
  174.      CV_ICON = D2L(4) 
  175.      CV_NAME = D2L(2) 
  176.      CV_TEXT = D2L(1) 
  177.      CV_TREE = D2L(64) 
  178.      CV_DETAIL = D2L(8) 
  179.      CV_MINI = D2L(32) 
  180.      CV_FLOW = D2L(16) 
  181.      FOI_POPULATEDWITHALL = D2L(1) 
  182.      FOI_POPULATEDWITHFOLDERS = D2L(2) 
  183.      FOI_WORKAREA = D2L(4) 
  184.      PROG_DEFAULT = D2L(0) 
  185.      PROG_PM = D2L(3) 
  186.      PROG_WINDOWABLEVIO = D2L(2) 
  187.      PROG_FULLSCREEN = D2L(1) 
  188.      PROG_WINDOWEDVDM = D2L(7) 
  189.      PROG_VDM = D2L(4) 
  190.      PROG_REAL = D2L(4) 
  191.      PROG_31_STDSEAMLESSVDM = D2L(15) 
  192.      PROG_31_STDSEAMLESSCOMMON = D2L(16) 
  193.      PROG_31_ENHSEAMLESSVDM = D2L(17) 
  194.      PROG_31_ENHSEAMLESSCOMMON = D2L(18) 
  195.      PROG_31_ENH = D2L(19) 
  196.      PROG_31_STD = D2L(20) 
  197.      SHE_VISIBLE = D2L(0) 
  198.      SHE_INVISIBLE = D2L(1) 
  199.      SHE_UNPROTECTED = D2L(0) 
  200.      SHE_PROTECTED = D2L(2) 
  201.      ICON_FILE = D2L(1) 
  202.      ICON_RESOURCE = D2L(2) 
  203.      ICON_DATA = D2L(3) 
  204.      ICON_CLEAR = D2L(4) 
  205.      PROGDETAIL_CATEGORY = D2L(1) 
  206.      PROGDETAIL_VISIBLE = D2L(2) 
  207.      PROGDETAIL_TITLE = D2L(3) 
  208.      PROGDETAIL_EXECUTABLE = D2L(4) 
  209.      PROGDETAIL_PARAMETERS = D2L(5) 
  210.      PROGDETAIL_STARTUPDIR = D2L(6) 
  211.      PROGDETAIL_ICON = D2L(7) 
  212.      PROGDETAIL_ENVIRONMENT = D2L(8) 
  213.      PROGDETAIL_SWPINITIAL = D2L(9) 
  214.      WPMENUID_USER = D2L(-2816) 
  215.      WPMENUID_PRIMARY = D2L(-28672) 
  216.      WPMENUID_OPEN = D2L(-28671) 
  217.      WPMENUID_HELP = D2L(-28670) 
  218.      WPMENUID_PRINT = D2L(-28669) 
  219.      WPMENUID_SELECT = D2L(-28668) 
  220.      WPMENUID_SORT = D2L(-28667) 
  221.      CO_FAILIFEXISTS = D2L(0) 
  222.      CO_REPLACEIFEXISTS = D2L(1) 
  223.      CO_UPDATEIFEXISTS = D2L(2) 
  224.  
  225.  For better performance, you can declare those constants you need individually. 
  226.  
  227.  Notes 
  228.  
  229.      WPMENUID_* and OPEN_* identifiers are internally converted to the C/C++ 
  230.      equivalents as follows: 
  231.  
  232.          C/C++ ID = MNRexx ID + 0x7000 
  233.  
  234.      This conversion is made so that MNRexx ID 0 corresponds to 0x7000 (which 
  235.      is above C/C++ WPMENUID_USER). 
  236.  
  237.  
  238. ΓòÉΓòÉΓòÉ 7. Object Handles ΓòÉΓòÉΓòÉ
  239.  
  240.  
  241.  In MNRexx functions, objects are identified by their handles ('HOBJECT' in 
  242.  C/C++) which are LONG Rexx strings. 
  243.  
  244.  For a file object, use RxmnGetRealName to convert its handle to the filename. 
  245.  
  246.  Advanced users can also directly manipulate object pointers (see Direct Method 
  247.  Calls). 
  248.  
  249.  See Also 
  250.  
  251.      Direct Method Calls 
  252.  
  253.  
  254. ΓòÉΓòÉΓòÉ 8. MNRexx Object ΓòÉΓòÉΓòÉ
  255.  
  256.  
  257.  An MNRexx object is a text file that contains Rexx script to be executed on 
  258.  various events (e.g., when some objects are dropped on it).  When the script 
  259.  is executed, the first two arguments always contain the following information: 
  260.  
  261.      arg(1) : context string which indicates the event that caused this script 
  262.      to be executed 
  263.      arg(2) : the handle of the MNRexx object itself 
  264.  
  265.  The first word of the context string specifies the event name - version 1.0 
  266.  supports the following events: 
  267.  
  268.      DROP : when objects are dropped on the MNRexx object 
  269.  
  270.          In this case, arg(3), arg(4), ..., arg(arg()) contain the handles of 
  271.          the dropped objects. 
  272.  
  273.      SETUP : when the setup string of the MNRexx object is changed (e.g., when 
  274.      SysSetObjectData function is called by some other process) 
  275.  
  276.          In this case, arg(3) contains the new setup string.  Use 
  277.          RxmnGetSetupString to parse the setup string. 
  278.  
  279.      MODIFYMENU : when the user opens up the context menu of the MNRexx object 
  280.  
  281.          In this case, arg(3) contains the menu handle (a LONG string) of the 
  282.          popup menu. 
  283.          You can add your own menu items to the popup menu on this event (see 
  284.          RxmnInsertMenuItem). 
  285.  
  286.      MENUSELECT : when the user selects an user-added menu item 
  287.  
  288.          In this case, arg(3) contains the identifier (a LONG string) of the 
  289.          selected menu item. 
  290.          You can perform some action according to the selected item. 
  291.  
  292.  The rest of the context string is reserved for future enhancements. 
  293.  
  294.  When a new MNRexx object is created, a code template is automatically 
  295.  generated. 
  296.  
  297.  An MNRexx object can hold its own persistent instance data to be freely used 
  298.  by the user (e.g., to keep how many times it is activated).  Use 
  299.  RxmnGetInstanceData and RxmnSetInstanceData functions to get/set the instance 
  300.  data. 
  301.  
  302.  
  303. ΓòÉΓòÉΓòÉ 9. Console Window ΓòÉΓòÉΓòÉ
  304.  
  305.  
  306.  Each MNRexx object has a console window which displays usual Rexx output 
  307.  (e.g., syntax error information).  The console window is automatically opened 
  308.  when necessary. 
  309.  
  310.  To manually open the console window, open the 'open' menu of the MNRexx object 
  311.  and select 'Console'. 
  312.  
  313.  MNRexx supports Rexx 'say' command - the following statement opens up the 
  314.  console window and displays the message 'hello': 
  315.  
  316.      say 'Hello' 
  317.  
  318.  The console window behaves like the MNRexx icon itself - i.e., 
  319.  
  320.      - the context menu pops up when you click the right mouse button on the 
  321.      console window 
  322.      - dropping objects on the console window is the same as dropping objects 
  323.      on the icon 
  324.      - dragging from the console window is the same as dragging the icon (e.g., 
  325.      to the shredder) 
  326.  
  327.  The console window is editable, and supports standard copy/cut/paste keys. 
  328.  
  329.  You can clear the console window from your MNRexx script by using the 
  330.  following command: 
  331.  
  332.      call RxmnClearConsole 
  333.  
  334.  See Also 
  335.  
  336.      RxmnClearConsole 
  337.  
  338.  
  339. ΓòÉΓòÉΓòÉ 10. Setup String ΓòÉΓòÉΓòÉ
  340.  
  341.  
  342.  MNRexx supports the following setup keywords: 
  343.  
  344.      MNREXXFILE=filename 
  345.  
  346.          this takes the text of the given filename as the MNRexx script 
  347.  
  348.      MNREXXDATA=data 
  349.  
  350.          this sets up the persistent instance data of the MNRexx object 
  351.  
  352.  
  353. ΓòÉΓòÉΓòÉ 11. Notes ΓòÉΓòÉΓòÉ
  354.  
  355.  
  356.  Miscellaneous Notes 
  357.  
  358.      Multiple Drag/Drop 
  359.  
  360.          When you drag/drop multiple objects on MNRexx, the object from which 
  361.          you start dragging becomes the first object (i.e., arg(3)). 
  362.  
  363.          For example, if you have selected objects A and B, and drag from A 
  364.          onto an MNRexx object, 
  365.  
  366.              arg(3) = object A 
  367.              arg(4) = object B 
  368.  
  369.          and if you start dragging from B, 
  370.  
  371.              arg(3) = object B 
  372.              arg(4) = object A 
  373.  
  374.      Starting Executables 
  375.  
  376.          You can start a PM program from MNRexx by using 'start' builtin 
  377.          command. You can also start a non-PM program with 'start', but for 
  378.          non-PM programs you cannot use startup options like '/MIN'.  For 
  379.          non-PM programs, use PMRexx program (either builtin-one or the one 
  380.          supplied with this package). 
  381.  
  382.      Deleting MNRexx Objects 
  383.  
  384.          MNRexx objects are ordinary files, so you can delete them by using 
  385.          'delete' command. 
  386.  
  387.  
  388. ΓòÉΓòÉΓòÉ 12. MNRexx Functions by Category ΓòÉΓòÉΓòÉ
  389.  
  390. Categorized list of MNRexx functions. 
  391.  
  392.  
  393. ΓòÉΓòÉΓòÉ 12.1. Object Identification ΓòÉΓòÉΓòÉ
  394.  
  395.  
  396.  To find an object from its object ID or filename: 
  397.  
  398.      RxmnQueryObject 
  399.  
  400.  To get the filename of a given file object: 
  401.  
  402.      RxmnGetRealName 
  403.  
  404.  To get the object ID of an object: 
  405.  
  406.      RxmnGetObjectID 
  407.  
  408.  To set the object ID of an object: 
  409.  
  410.      RxmnSetObjectID 
  411.  
  412.  To check if an object is an instance of a given class: 
  413.  
  414.      RxmnIsA 
  415.      RxmnIsInstanceOf 
  416.  
  417.  To get the class name of an object: 
  418.  
  419.      RxmnGetClassName 
  420.  
  421.  To find out the parent class of a given class: 
  422.  
  423.      RxmnGetParent 
  424.  
  425.  
  426. ΓòÉΓòÉΓòÉ 12.2. Objects ΓòÉΓòÉΓòÉ
  427.  
  428.  
  429.  To create a new object: 
  430.  
  431.      RxmnCreateObject 
  432.  
  433.  To delete an object: 
  434.  
  435.      RxmnDelete 
  436.  
  437.  To get the title of an object: 
  438.  
  439.      RxmnGetTitle 
  440.  
  441.  To set the title of an object: 
  442.  
  443.      RxmnSetTitle 
  444.  
  445.  To move an object: 
  446.  
  447.      RxmnMoveObject 
  448.  
  449.  To copy an object: 
  450.  
  451.      RxmnCopyObject 
  452.  
  453.  To make a shadow of an object: 
  454.  
  455.      RxmnCreateShadowObject 
  456.  
  457.  To open a view of an object: 
  458.  
  459.      RxmnOpenView 
  460.  
  461.  To close a view of an object: 
  462.  
  463.      RxmnCloseView 
  464.  
  465.  To get the icon of an object: 
  466.  
  467.      RxmnGetIcon 
  468.      RxmnGetIconData 
  469.      RxmnGetIconDataType 
  470.  
  471.  To set the icon of an object: 
  472.  
  473.      RxmnSetIcon 
  474.      RxmnSetIconData 
  475.  
  476.  To get the style of an object: 
  477.  
  478.      RxmnGetStyle 
  479.  
  480.  To set the style of an object: 
  481.  
  482.      RxmnSetStyle 
  483.  
  484.  To get the default view of an object: 
  485.  
  486.      RxmnGetDefaultView 
  487.  
  488.  To set the default view of an object: 
  489.  
  490.      RxmnSetDefaultView 
  491.  
  492.  
  493. ΓòÉΓòÉΓòÉ 12.3. Shadows ΓòÉΓòÉΓòÉ
  494.  
  495.  
  496.  To check if an object is a shadow or not: 
  497.  
  498.      RxmnIsA(object, "WPShadow") 
  499.  
  500.  To get the original object of a shadow object: 
  501.  
  502.      RxmnGetShadowedObject 
  503.  
  504.  To get the list of all shadows of an object: 
  505.  
  506.      RxmnGetShadows 
  507.  
  508.  To set the title of a shadow object: 
  509.  
  510.      RxmnSetShadowTitle 
  511.  
  512.  
  513. ΓòÉΓòÉΓòÉ 12.4. Folders ΓòÉΓòÉΓòÉ
  514.  
  515.  
  516.  To check if a given object is a folder or not: 
  517.  
  518.      RxmnIsA(object, "WPFolder") 
  519.  
  520.  To get the content of a folder: 
  521.  
  522.      RxmnGetContents 
  523.  
  524.  To delete the contents of a folder: 
  525.  
  526.      RxmnDeleteContents 
  527.  
  528.  To get the font of a folder view: 
  529.  
  530.      RxmnGetFldrFont 
  531.  
  532.  To set the font of a folder view: 
  533.  
  534.      RxmnSetFldrFont 
  535.  
  536.  To get the attribute of a folder view (flowed, mini-icon, etc.): 
  537.  
  538.      RxmnGetFldrAttr 
  539.  
  540.  To set the attribute of a folder view (flowed, mini-icon, etc.): 
  541.  
  542.      RxmnSetFldrAttr 
  543.  
  544.  To get the details class of a folder: 
  545.  
  546.      RxmnGetFldrDetailsClass 
  547.  
  548.  To set the details class of a folder: 
  549.  
  550.      RxmnSetFldrDetailsClass 
  551.  
  552.  
  553. ΓòÉΓòÉΓòÉ 12.5. Program Objects ΓòÉΓòÉΓòÉ
  554.  
  555.  
  556.  
  557.  To obtain program object information (e.g., working directory): 
  558.  
  559.      RxmnGetProgDetail 
  560.  
  561.  To set program object information: 
  562.  
  563.      RxmnSetProgDetail 
  564.  
  565.  To get association filters and types: 
  566.  
  567.      RxmnGetAssociationFilter 
  568.      RxmnGetAssociationType 
  569.  
  570.  To set association filters and types: 
  571.  
  572.      RxmnSetAssociationFilter 
  573.      RxmnSetAssociationType 
  574.  
  575.  
  576. ΓòÉΓòÉΓòÉ 12.6. MNRexx Object ΓòÉΓòÉΓòÉ
  577.  
  578.  
  579.  
  580.  To insert a menu item: 
  581.  
  582.      RxmnInsertMenuItem 
  583.  
  584.  To parse a setup string: 
  585.  
  586.      RxmnGetSetupString 
  587.  
  588.  To get instance persistent data: 
  589.  
  590.      RxmnGetInstanceData 
  591.  
  592.  To set instance persistent data: 
  593.  
  594.      RxmnSetInstanceData 
  595.  
  596.  To convert an itemID (in DRAGITEM structure) to object handle: 
  597.  
  598.      RxmnObjectFromItemID 
  599.  
  600.  
  601. ΓòÉΓòÉΓòÉ 13. MNRexx Functions by Name ΓòÉΓòÉΓòÉ
  602.  
  603. This section lists all MNRexx functions. 
  604.  
  605.  
  606. ΓòÉΓòÉΓòÉ 13.1. L2D ΓòÉΓòÉΓòÉ
  607.  
  608.  
  609.  Syntax 
  610.  
  611.      decimal = L2D(long) 
  612.  
  613.  Synopsis 
  614.  
  615.      converts a LONG string to decimal 
  616.  
  617.  Parameters 
  618.  
  619.      long 
  620.  
  621.          LONG string 
  622.  
  623.  Returns 
  624.  
  625.      decimal 
  626.  
  627.          decimal string 
  628.  
  629.  See Also 
  630.  
  631.      LONG Rexx String 
  632.      D2L 
  633.  
  634.  
  635. ΓòÉΓòÉΓòÉ 13.2. D2L ΓòÉΓòÉΓòÉ
  636.  
  637.  
  638.  Syntax 
  639.  
  640.      long = L2D(decimal) 
  641.  
  642.  Synopsis 
  643.  
  644.      converts a decimal string to LONG string 
  645.  
  646.  Parameters 
  647.  
  648.      decimal 
  649.  
  650.          decimal string (e.g., "1") 
  651.  
  652.  Returns 
  653.  
  654.      long 
  655.  
  656.          LONG string 
  657.  
  658.  See Also 
  659.  
  660.      LONG Rexx String 
  661.      L2D 
  662.  
  663.  
  664. ΓòÉΓòÉΓòÉ 13.3. P2R ΓòÉΓòÉΓòÉ
  665.  
  666.  
  667.  Syntax 
  668.  
  669.      image = P2R(pointer, size) 
  670.  
  671.  Synopsis 
  672.  
  673.      Makes a Rexx string which is a copy of the given memory block 
  674.  
  675.  Parameters 
  676.  
  677.      pointer 
  678.  
  679.          LONG string containing a memory address 
  680.  
  681.      size 
  682.  
  683.          memory block size in decimal 
  684.  
  685.  Returns 
  686.  
  687.      image 
  688.  
  689.          Rexx string of the given size which is a copy of the memory content 
  690.          starting at the given pointer address 
  691.  
  692.  Notes 
  693.  
  694.      If the pointer is known to be the address of a null-terminated string, the 
  695.      size argument can be omitted.  In this case the returned image is a copy 
  696.      of the null-terminated string. 
  697.  
  698.  
  699. ΓòÉΓòÉΓòÉ 13.4. RxmnCallMethod ΓòÉΓòÉΓòÉ
  700.  
  701.  
  702.  Syntax 
  703.  
  704.      result = RxmnCallmethod(methodname, interface, arg1, arg2, ...) 
  705.  
  706.  Synopsis 
  707.  
  708.      calls a method on an object by name 
  709.  
  710.  Parameters 
  711.  
  712.      methodname 
  713.  
  714.          name of the method to be called 
  715.  
  716.      interface 
  717.  
  718.          method interface definition (see Notes) 
  719.  
  720.      arg1, arg2, ... 
  721.  
  722.          method arguments 
  723.  
  724.  Returns 
  725.  
  726.      result 
  727.  
  728.          return value defined by the interface definition string (see Notes) 
  729.  
  730.  Notes 
  731.  
  732.      Interface strings is structured as follows (one character each): 
  733.  
  734.          <return type><first argument type><second argument type>... 
  735.  
  736.      The following return type characters are supported: 
  737.  
  738.          S 
  739.  
  740.              string (the result of the method call is assumed to be a 
  741.              null-terminated string and converted into a Rexx string) 
  742.  
  743.          H 
  744.  
  745.              WPS object handle (the result is assumed to be a WPS object 
  746.              pointer and is converted to its handle) 
  747.  
  748.          B 
  749.  
  750.              Boolean value ("1" or "0"; the result is assumed to be an integer 
  751.              and any non-zero value is converted to "1") 
  752.  
  753.          L, O 
  754.  
  755.              4-byte integer (the result is converted into a LONG Rexx string) 
  756.  
  757.      And the following argument type characters are supported: 
  758.  
  759.          S 
  760.  
  761.              string (the Rexx string argument is converted into a 
  762.              null-terminated string on calling the method) 
  763.  
  764.          H 
  765.  
  766.              WPS object handle (the argument is converted to a WPS object 
  767.              pointer on calling the method) 
  768.  
  769.          L, O 
  770.  
  771.              LONG Rexx string (the argument is converted into a 4-byte integer 
  772.              on calling the method) 
  773.  
  774.          I 
  775.  
  776.              SOM ID (the argument Rexx string is converted to SOM ID on calling 
  777.              the method) 
  778.  
  779.      The first argument must be an object (S or H or O) always. 
  780.  
  781.  
  782. ΓòÉΓòÉΓòÉ 13.5. RxmnClearConsole ΓòÉΓòÉΓòÉ
  783.  
  784.  
  785.  Syntax 
  786.  
  787.      call RxmnClearConsole 
  788.  
  789.  Synopsis 
  790.  
  791.      clears the console window 
  792.  
  793.  See Also 
  794.  
  795.      Console Window 
  796.  
  797.  
  798. ΓòÉΓòÉΓòÉ 13.6. RxmnCloseView ΓòÉΓòÉΓòÉ
  799.  
  800.  
  801.  Syntax 
  802.  
  803.      result = RxmnCloseView(object [, viewID]) 
  804.  
  805.  Synopsis 
  806.  
  807.      closes a view of an object 
  808.  
  809.  Parameters 
  810.  
  811.      object 
  812.  
  813.          object handle 
  814.  
  815.      viewID (optional) 
  816.  
  817.          view identifier which is one of the following constants: 
  818.  
  819.              OPEN_CONTENTS : Open content view for folders only 
  820.              OPEN_DEFAULT : Open default view (same as double-click) 
  821.              OPEN_DETAILS : Open details view 
  822.              OPEN_HELP : Display HelpPanel 
  823.              OPEN_RUNNING : Execute object 
  824.              OPEN_SETTINGS : Open settings notebook 
  825.              OPEN_TREE : Open tree view for folders only 
  826.  
  827.              or any user-defined view identifier (see RxmnInsertMenuItem) 
  828.  
  829.          if viewID is omitted, all open views are closed. 
  830.  
  831.  Returns 
  832.  
  833.      result 
  834.  
  835.          1 if successful, 0 otherwise 
  836.  
  837.  See Also 
  838.  
  839.      RxmnOpenView 
  840.      RxmnGetOpenViews 
  841.      RxmnInsertMenuItem 
  842.  
  843.  
  844. ΓòÉΓòÉΓòÉ 13.7. RxmnCopyObject ΓòÉΓòÉΓòÉ
  845.  
  846.  
  847.  Syntax 
  848.  
  849.      copy = RxmnCopyObject(object, folder) 
  850.  
  851.  Synopsis 
  852.  
  853.      Copies an object into a folder 
  854.  
  855.  Parameters 
  856.  
  857.      object 
  858.  
  859.          the handle of the object to be copied 
  860.  
  861.      folder 
  862.  
  863.          the handle of the folder into which the object is to be copied 
  864.  
  865.  Returns 
  866.  
  867.      copy 
  868.  
  869.          the handle of the newly created copy, or NULL if unsuccesful (LONG 
  870.          string) 
  871.  
  872.  Notes 
  873.  
  874.      Use RxmnQueryObject to obtain the folder handle from an object ID or 
  875.      pathname 
  876.  
  877.  Example 
  878.  
  879.      /*** Copys an object into the information folder ***/ 
  880.  
  881.      folder = RxmnQueryObject("<WP_INFO>") 
  882.  
  883.      copy = RxmnCopyObject(object, folder) 
  884.  
  885.  See Also 
  886.  
  887.      RxmnMoveObject 
  888.      RxmnCreateShadowObject 
  889.      RxmnQueryObject 
  890.  
  891.  
  892. ΓòÉΓòÉΓòÉ 13.8. RxmnCreateObject ΓòÉΓòÉΓòÉ
  893.  
  894.  
  895.  Syntax 
  896.  
  897.      handle = RxmnCreateObject(className, title, setupString, location, 
  898.      creationFlag) 
  899.  
  900.  Synopsis 
  901.  
  902.      creates an object 
  903.  
  904.  Parameters 
  905.  
  906.      className 
  907.  
  908.          name of the class (e.g., 'WPDataFile') 
  909.  
  910.      title 
  911.  
  912.          title of the object to be created 
  913.  
  914.      setupString 
  915.  
  916.          setup string for the object to be created (e.g., 
  917.          'ICONFILE=C:\test.ico') 
  918.  
  919.      location 
  920.  
  921.          object ID or pathname of a folder in which the object is to be created 
  922.          (e.g., '<WP_Desktop>') 
  923.  
  924.      creationFlags 
  925.  
  926.          one of the following constants (LONG string): 
  927.  
  928.              CO_FAILIFEXISTS : fails if an object with the same ID already 
  929.              exists 
  930.              CO_REPLACEIFEXISTS : if an object with the same ID exists, 
  931.              replaces it 
  932.              CO_UPDATEIFEXISTS : if an object with the same ID exists, updates 
  933.              it (using the given setup string) 
  934.  
  935.  Returns 
  936.  
  937.      handle 
  938.  
  939.          the handle of the newly created (or updated) object, or NULL 
  940.  
  941.  Notes 
  942.  
  943.      this is equivalent to WinCreateObject API call. 
  944.  
  945.  See Also 
  946.  
  947.      RxmnDelete 
  948.  
  949.  
  950. ΓòÉΓòÉΓòÉ 13.9. RxmnCreateShadowObject ΓòÉΓòÉΓòÉ
  951.  
  952.  
  953.  Syntax 
  954.  
  955.      shadow = RxmnCreateShadowObject(object, folder) 
  956.  
  957.  Synopsis 
  958.  
  959.      Create a shadow of an object in a folder 
  960.  
  961.  Parameters 
  962.  
  963.      object 
  964.  
  965.          the handle of the object to be shadowed 
  966.  
  967.      folder 
  968.  
  969.          the handle of the folder in which the shadow is to be placed 
  970.  
  971.  Returns 
  972.  
  973.      shadow 
  974.  
  975.          the handle of the newly created shadow object, or NULL if unsuccessful 
  976.  
  977.  Notes 
  978.  
  979.      Use RxmnQueryObject to obtain the folder handle from an object ID or 
  980.      pathname 
  981.  
  982.  Example 
  983.  
  984.      /*** Creates a shadow of the given object in the information folder ***/ 
  985.  
  986.      folder = RxmnQueryObject("<WP_INFO>") 
  987.  
  988.      result = RxmnCreateShadowObject(object, folder) 
  989.  
  990.  See Also 
  991.  
  992.      RxmnCopyObject 
  993.      RxmnMoveObject 
  994.      RxmnQueryObject 
  995.  
  996.  
  997. ΓòÉΓòÉΓòÉ 13.10. RxmnDelete ΓòÉΓòÉΓòÉ
  998.  
  999.  
  1000.  Syntax 
  1001.  
  1002.      result = RxmnDelete(object, confirmation) 
  1003.  
  1004.  Synopsis 
  1005.  
  1006.      deletes an object 
  1007.  
  1008.  Parameters 
  1009.  
  1010.      object 
  1011.  
  1012.          the handle of the object to be deleted 
  1013.  
  1014.      confirmation 
  1015.  
  1016.          one of the following constants (LONG string): 
  1017.  
  1018.              CONFIRM_DELETE : prompt for confirmation for all objects 
  1019.              CONFIRM_DELETEFOLDER : prompt for confirmation for just folders 
  1020.              NULL : no confirmation 
  1021.  
  1022.  Returns 
  1023.  
  1024.      result 
  1025.  
  1026.          one of the following constants (LONG string): 
  1027.  
  1028.              NO_DELETE : error has occurred and the object was not deleted 
  1029.              CANCEL_DELETE : cancelled by the user 
  1030.              OK_DELETE : the object is successfully deleted 
  1031.  
  1032.  
  1033. ΓòÉΓòÉΓòÉ 13.11. RxmnDeleteContents ΓòÉΓòÉΓòÉ
  1034.  
  1035.  
  1036.  Syntax 
  1037.  
  1038.      result = RxmnDeleteContents(folder, confirmations) 
  1039.  
  1040.  Synopsis 
  1041.  
  1042.      deletes the contents of a folder 
  1043.  
  1044.  Parameters 
  1045.  
  1046.      folder 
  1047.  
  1048.          the handle of a folder 
  1049.  
  1050.      confirmations 
  1051.  
  1052.          one of the following constants (LONG string): 
  1053.  
  1054.              CONFIRM_DELETE : Prompt for confirmation for all objects 
  1055.              CONFIRM_DELETEFOLDER : Prompt for confirmation for just folder 
  1056.              objects 
  1057.              NULL : No confirmations 
  1058.  
  1059.  Returns 
  1060.  
  1061.      result 
  1062.  
  1063.          one of the following constants (LONG string): 
  1064.  
  1065.              OK_DELETE : All objects were deleted 
  1066.              NO_DELETE : Error occurred (At least one object was not deleted) 
  1067.              CANCEL_DELETE : User canceled operation 
  1068.  
  1069.  Notes 
  1070.  
  1071.      This function is equivalent to the following call: 
  1072.  
  1073.          result = RxmnCallMethod("wpDeleteContents", "LHL", folder, 
  1074.          confirmations) 
  1075.  
  1076.  
  1077. ΓòÉΓòÉΓòÉ 13.12. RxmnGetAssociationFilter ΓòÉΓòÉΓòÉ
  1078.  
  1079.  
  1080.  Syntax 
  1081.  
  1082.      filterList = RxmnGetAssociationFilter(programObject [, stem]) 
  1083.  
  1084.  Synopsis 
  1085.  
  1086.      returns the comma-separated list of assocation filters for a program 
  1087.      object (WPProgram or WPProgramFile) 
  1088.  
  1089.  Parameters 
  1090.  
  1091.      programObject 
  1092.  
  1093.          the handle of a program object (WPProgram or WPProgramFile) 
  1094.  
  1095.      stem (optional) 
  1096.  
  1097.          the name of a variable stem to receive association filters 
  1098.  
  1099.  Returns 
  1100.  
  1101.      filterlist 
  1102.  
  1103.          comma-separated list of association filters (e.g., "*.TXT,*.DOC") 
  1104.  
  1105.      stem.0 
  1106.  
  1107.          number of association filters 
  1108.  
  1109.      stem.1, stem.2, ... 
  1110.  
  1111.          association filters 
  1112.  
  1113.  See Also 
  1114.  
  1115.      RxmnGetAssociationType 
  1116.      RxmnSetAssociationFilter 
  1117.      RxmnSetAssociationType 
  1118.  
  1119.  
  1120. ΓòÉΓòÉΓòÉ 13.13. RxmnGetAssociationType ΓòÉΓòÉΓòÉ
  1121.  
  1122.  
  1123.  Syntax 
  1124.  
  1125.      typeList = RxmnGetAssociationType(programObject [, stem]) 
  1126.  
  1127.  Synopsis 
  1128.  
  1129.      returns the comma-separated list of assocation types for a program object 
  1130.      (WPProgram or WPProgramFile) 
  1131.  
  1132.  Parameters 
  1133.  
  1134.      programObject 
  1135.  
  1136.          the handle of a program object (WPProgram or WPProgramFile) 
  1137.  
  1138.      stem (optional) 
  1139.  
  1140.          the name of a variable stem to receive association types 
  1141.  
  1142.  Returns 
  1143.  
  1144.      typelist 
  1145.  
  1146.          comma-separated list of association types (e.g., "Plain Text,C Code") 
  1147.  
  1148.      stem.0 
  1149.  
  1150.          number of association types 
  1151.  
  1152.      stem.1, stem.2, ... 
  1153.  
  1154.          association types 
  1155.  
  1156.  See Also 
  1157.  
  1158.      RxmnGetAssociationFilter 
  1159.      RxmnSetAssociationFilter 
  1160.      RxmnSetAssociationType 
  1161.  
  1162.  
  1163. ΓòÉΓòÉΓòÉ 13.14. RxmnGetClassName ΓòÉΓòÉΓòÉ
  1164.  
  1165.  
  1166.  Syntax 
  1167.  
  1168.      className = RxmnGetClassName(object) 
  1169.  
  1170.  Synopsis 
  1171.  
  1172.      returns the class name of a given object 
  1173.  
  1174.  Parameters 
  1175.  
  1176.      object 
  1177.  
  1178.          the handle of an object 
  1179.  
  1180.  Returns 
  1181.  
  1182.      className 
  1183.  
  1184.          the object's class name, or "" if unsuccessful 
  1185.  
  1186.  See Also 
  1187.  
  1188.      RxmnIsA 
  1189.      RxmnIsInstanceOf 
  1190.      RxmnGetParent 
  1191.  
  1192.  
  1193. ΓòÉΓòÉΓòÉ 13.15. RxmnGetContents ΓòÉΓòÉΓòÉ
  1194.  
  1195.  
  1196.  Syntax 
  1197.  
  1198.      result = RxmnGetContents(folder, stemname) 
  1199.  
  1200.  Synopsis 
  1201.  
  1202.      retrieves the contents of a given folder object 
  1203.  
  1204.  Parameters 
  1205.  
  1206.      folder 
  1207.  
  1208.          The handle of a folder 
  1209.  
  1210.      stemname 
  1211.  
  1212.          the name of a Rexx variable that receives the contents of the given 
  1213.          folder 
  1214.  
  1215.  Returns 
  1216.  
  1217.      result 
  1218.  
  1219.          1 if successful, 0 otherwise 
  1220.  
  1221.      stemname.0 
  1222.  
  1223.          the number of members of the given folder 
  1224.  
  1225.      stemname.1, stemname.2, ... 
  1226.  
  1227.          the handles of the objects contained in the given folder 
  1228.  
  1229.  Example 
  1230.  
  1231.      /*** shows the titles of all members of a folder ***/ 
  1232.  
  1233.      result = RxmnGetContents(folder, "content") 
  1234.  
  1235.      do i = 1 to content.0 
  1236.          say RxwpQueryTitle(content.i) 
  1237.      end 
  1238.  
  1239.  See Also 
  1240.  
  1241.      RxmnDeleteContents 
  1242.  
  1243.  
  1244. ΓòÉΓòÉΓòÉ 13.16. RxmnGetDefaultView ΓòÉΓòÉΓòÉ
  1245.  
  1246.  
  1247.  Syntax 
  1248.  
  1249.      viewID = RxmnGetDefaultView(object) 
  1250.  
  1251.  Synopsis 
  1252.  
  1253.      returns the view ID of the default view of an object 
  1254.  
  1255.  Parameters 
  1256.  
  1257.      object 
  1258.  
  1259.          the handle of an object 
  1260.  
  1261.  Returns 
  1262.  
  1263.      viewID 
  1264.  
  1265.          the default view ID, which may be one of the following constants (LONG 
  1266.          string): 
  1267.  
  1268.              OPEN_CONTENTS : Open content view for folders only 
  1269.              OPEN_DEFAULT : Open default view (same as double-click) 
  1270.              OPEN_DETAILS : Open details view 
  1271.              OPEN_HELP : Display HelpPanel 
  1272.              OPEN_RUNNING : Execute object 
  1273.              OPEN_SETTINGS : Open settings notebook 
  1274.              OPEN_TREE : Open tree view for folders only 
  1275.  
  1276.  Notes 
  1277.  
  1278.      this function is equivalent to the following call: 
  1279.  
  1280.          viewID = RxmnCallMethod("wpQueryDefaultView", "LH", object) 
  1281.  
  1282.  See Also 
  1283.  
  1284.      RxmnSetDefaultView 
  1285.  
  1286.  
  1287. ΓòÉΓòÉΓòÉ 13.17. RxmnGetFldrAttr ΓòÉΓòÉΓòÉ
  1288.  
  1289.  
  1290.  Syntax 
  1291.  
  1292.      viewAttributes = RxmnGetFldrAttr(folderObject, viewID) 
  1293.  
  1294.  Synopsis 
  1295.  
  1296.      returns the current container view attributes 
  1297.  
  1298.  Parameters 
  1299.  
  1300.      folderObject 
  1301.  
  1302.          the handle of a folder object (WPFolder) 
  1303.  
  1304.      viewID 
  1305.  
  1306.          folder view identifier, one of the following constants (LONG string): 
  1307.  
  1308.              OPEN_CONTENTS : icon view 
  1309.              OPEN_DETAILS : details view 
  1310.              OPEN_TREE : tree view 
  1311.  
  1312.  Returns 
  1313.  
  1314.      viewAttributes 
  1315.  
  1316.          a LONG string which is a bitwise combination of the following 
  1317.          constants: 
  1318.  
  1319.              CV_ICON : the view is an icon view with text beneath the icons 
  1320.              (Non-Grid) 
  1321.              CV_NAME : the view is an icon view with text to the right of the 
  1322.              icons (Non-Flowed) 
  1323.              CV_TEXT : the view is an icon view with no icons (Invisible Icon) 
  1324.              CV_TREE : the view is a tree view 
  1325.              CV_DETAIL : the view is a details view 
  1326.              CV_MINI : mini-icons are used (Small size Icon) 
  1327.              CV_FLOW : the view is flowed 
  1328.  
  1329.  Notes 
  1330.  
  1331.      this function is equivalent to the following call: 
  1332.  
  1333.          viewAttributes = RxmnCallMethod("wpQueryFldrAttr", "LHL", 
  1334.          folderObject, viewID) 
  1335.  
  1336.  See Also 
  1337.  
  1338.      RxmnSetFldrAttr 
  1339.  
  1340.  
  1341. ΓòÉΓòÉΓòÉ 13.18. RxmnGetFldrDetailsClass ΓòÉΓòÉΓòÉ
  1342.  
  1343.  
  1344.  Syntax 
  1345.  
  1346.      className = RxmnGetFldrDetailsClass(folderObject) 
  1347.  
  1348.  Synopsis 
  1349.  
  1350.      returns the class for which details in the folder are displayed 
  1351.  
  1352.  Parameters 
  1353.  
  1354.      folderObject 
  1355.  
  1356.          the handle of a folder object (WPFolder) 
  1357.  
  1358.  Returns 
  1359.  
  1360.      className 
  1361.  
  1362.          name of a WPS class (e.g., "WPDataFile") for which detail data are 
  1363.          displayed 
  1364.  
  1365.  See Also 
  1366.  
  1367.      RxmnSetFldrDetailsClass 
  1368.  
  1369.  
  1370. ΓòÉΓòÉΓòÉ 13.19. RxmnGetFldrFlags ΓòÉΓòÉΓòÉ
  1371.  
  1372.  
  1373.  Syntax 
  1374.  
  1375.      flags = RxmnGetFldrFlags(folderObject) 
  1376.  
  1377.  Synopsis 
  1378.  
  1379.      returns the current folder status flags 
  1380.  
  1381.  Parameters 
  1382.  
  1383.      folderObject 
  1384.  
  1385.          object handle of a folder 
  1386.  
  1387.  Returns 
  1388.  
  1389.      flags 
  1390.  
  1391.          bitwise-combination of the following constants: 
  1392.  
  1393.              FOI_POPULATEDWITHALL : the folder is populated with all its 
  1394.              contents 
  1395.              FOI_POPULATEDWITHFOLDERS : the folder is populated with subfolders 
  1396.              FOI_WORKAREA : the folder is a workarea 
  1397.  
  1398.  Notes 
  1399.  
  1400.      this function is equivalent to the following call: 
  1401.  
  1402.          flags = RxmnCallMethod("wpQueryFldrFlags", "LH", folderObject) 
  1403.  
  1404.  See Also 
  1405.  
  1406.      RxmnSetFldrFlags 
  1407.  
  1408.  
  1409. ΓòÉΓòÉΓòÉ 13.20. RxmnGetFldrFont ΓòÉΓòÉΓòÉ
  1410.  
  1411.  
  1412.  Syntax 
  1413.  
  1414.      fontName = RxmnGetFldrFont(folderObject, viewID) 
  1415.  
  1416.  Synopsis 
  1417.  
  1418.      returns the name of the font used in a view of a folder 
  1419.  
  1420.  Parameters 
  1421.  
  1422.      folderObject 
  1423.  
  1424.          the handle of a folder object (WPFolder) 
  1425.  
  1426.      viewID 
  1427.  
  1428.          one of the following constants (LONG string): 
  1429.  
  1430.              OPEN_CONTENTS : icon view 
  1431.              OPEN_DETAILS : details view 
  1432.              OPEN_TREE : tree view 
  1433.  
  1434.  Returns 
  1435.  
  1436.      fontName 
  1437.  
  1438.          point size and font name in the following format: 
  1439.  
  1440.              <point size>.<font name> (e.g., "10.Helv") 
  1441.  
  1442.  Notes 
  1443.  
  1444.      this function is equivalent to the following call: 
  1445.  
  1446.          fontName = RxmnCallmethod("wpQueryFldrFont", "SHL", folderObject, 
  1447.          viewID) 
  1448.  
  1449.  See Also 
  1450.  
  1451.      RxmnSetFldrFont 
  1452.  
  1453.  
  1454. ΓòÉΓòÉΓòÉ 13.21. RxmnGetFolder ΓòÉΓòÉΓòÉ
  1455.  
  1456.  
  1457.  Syntax 
  1458.  
  1459.      folder = RxmnGetFolder(object) 
  1460.  
  1461.  Synopsis 
  1462.  
  1463.      gets the folder that contains the given object 
  1464.  
  1465.  Parameters 
  1466.  
  1467.      object 
  1468.  
  1469.          the handle of an object 
  1470.  
  1471.  Returns 
  1472.  
  1473.      folder 
  1474.  
  1475.          the handle of the folder that contains the given object 
  1476.  
  1477.  
  1478. ΓòÉΓòÉΓòÉ 13.22. RxmnGetIcon ΓòÉΓòÉΓòÉ
  1479.  
  1480.  
  1481.  
  1482.  Syntax 
  1483.  
  1484.      iconHandle = RxmnGetIcon(object) 
  1485.  
  1486.  Synopsis 
  1487.  
  1488.      returns the icon handle of an object 
  1489.  
  1490.  Paramters 
  1491.  
  1492.      object 
  1493.  
  1494.          the handle of an object 
  1495.  
  1496.  Returns 
  1497.  
  1498.      iconHandle 
  1499.  
  1500.          icon handle in LONG format 
  1501.  
  1502.  Notes 
  1503.  
  1504.      This function is equivalent to the following call: 
  1505.  
  1506.          iconHandle = RxmnCallMethod("wpQueryIcon", "LH", object) 
  1507.  
  1508.      In order to get permanent icon information, use RxmnGetIconDataType and 
  1509.      RxmnGetIconData. 
  1510.  
  1511.  See Also 
  1512.  
  1513.      RxmnSetIcon 
  1514.      RxmnSetIconData 
  1515.      RxmnGetIconData 
  1516.      RxmnGetIconDataType 
  1517.  
  1518.  
  1519. ΓòÉΓòÉΓòÉ 13.23. RxmnGetIconData ΓòÉΓòÉΓòÉ
  1520.  
  1521.  
  1522.  Syntax 
  1523.  
  1524.      result = RxmnGetIconData(object) 
  1525.  
  1526.  Synopsis 
  1527.  
  1528.      returns the permanent icon data of an object 
  1529.  
  1530.  Parameters 
  1531.  
  1532.      object 
  1533.  
  1534.          the handle of an object 
  1535.  
  1536.  Returns 
  1537.  
  1538.      result 
  1539.  
  1540.          icon data (the format varies according to the type of the permanent 
  1541.          icon data) 
  1542.  
  1543.  Notes 
  1544.  
  1545.      The permanent icon data type is obtained by RxmnGetIconDataType function. 
  1546.  
  1547.      Accoring to the type of the permanent icon data, the result is: 
  1548.  
  1549.          - a filename if the type is ICON_FILE 
  1550.  
  1551.          - 8-byte Rexx string if the type is ICON_RESOURCE, where the first 4 
  1552.          bytes are the module handle in LONG format, and the last 4 bytes are 
  1553.          the resource ID in LONG format 
  1554.  
  1555.          - icon data (of variable length) if the type is ICON_DATA 
  1556.  
  1557.  See Also 
  1558.  
  1559.      RxmnGetIconDataType 
  1560.      RxmnSetIconData 
  1561.  
  1562.  
  1563. ΓòÉΓòÉΓòÉ 13.24. RxmnGetIconDataType ΓòÉΓòÉΓòÉ
  1564.  
  1565.  
  1566.  Syntax 
  1567.  
  1568.      iconDataType = RxmnGetIconDataType(object) 
  1569.  
  1570.  Synopsis 
  1571.  
  1572.      returns the type of the permanent icon of the given object 
  1573.  
  1574.  Parameters 
  1575.  
  1576.      object 
  1577.  
  1578.          the handle of an object 
  1579.  
  1580.  Returns 
  1581.  
  1582.      iconDataType 
  1583.  
  1584.          one of the following constants (LONG string): 
  1585.  
  1586.              ICON_FILE if the icon is taken from a file 
  1587.              ICON_RESOURCE if the icon is taken from a resouce 
  1588.              ICON_DATA if the icon is stored as a bitmap data 
  1589.  
  1590.  Notes 
  1591.  
  1592.      the icon data is retrieved with RxmnGetIconData 
  1593.  
  1594.  See Also 
  1595.  
  1596.      RxmnGetIconData 
  1597.      RxmnSetIconData 
  1598.  
  1599.  
  1600. ΓòÉΓòÉΓòÉ 13.25. RxmnGetInstanceData ΓòÉΓòÉΓòÉ
  1601.  
  1602.  
  1603.  Syntax 
  1604.  
  1605.      data = RxmnGetInstanceData(mnrexxObject) 
  1606.  
  1607.  Synopsis 
  1608.  
  1609.      returns the persistent data of an MNRexx object 
  1610.  
  1611.  Parameters 
  1612.  
  1613.      mnrexxObject 
  1614.  
  1615.          the handle of an MNRexx object 
  1616.  
  1617.  Returns 
  1618.  
  1619.      data 
  1620.  
  1621.          persistent data Rexx string 
  1622.  
  1623.  See Also 
  1624.  
  1625.      RxmnSetInstanceData 
  1626.  
  1627.  
  1628. ΓòÉΓòÉΓòÉ 13.26. RxmnGetObjectID ΓòÉΓòÉΓòÉ
  1629.  
  1630.  
  1631.  Syntax 
  1632.  
  1633.      objectID = RxmnGetObjectID(object) 
  1634.  
  1635.  Synopsis 
  1636.  
  1637.      returns the object ID of an object 
  1638.  
  1639.  Parameters 
  1640.  
  1641.      object 
  1642.  
  1643.          the handle of an object 
  1644.  
  1645.  Returns 
  1646.  
  1647.      objectID 
  1648.  
  1649.          the object ID (e.g., "<WP_INFO>") of the given object, or "" if no ID 
  1650.          is given 
  1651.  
  1652.  See Also 
  1653.  
  1654.      RxmnSetObjectID 
  1655.  
  1656.  
  1657. ΓòÉΓòÉΓòÉ 13.27. RxmnGetOpenViews ΓòÉΓòÉΓòÉ
  1658.  
  1659.  
  1660.  Syntax 
  1661.  
  1662.      result = RxmnGetOpenViews(object, stem) 
  1663.  
  1664.  Synopsis 
  1665.  
  1666.      returns the list of all current open view IDs 
  1667.  
  1668.  {Parameters 
  1669.  
  1670.      object 
  1671.  
  1672.          the handle of an object 
  1673.  
  1674.      stem 
  1675.  
  1676.          stem variable name to return the list of open view IDs 
  1677.  
  1678.  Returns 
  1679.  
  1680.      result 
  1681.  
  1682.          1 if successful, 0 otherwise 
  1683.  
  1684.      stem.0 
  1685.  
  1686.          number of current open views 
  1687.  
  1688.      stem.1, stem.2, ... 
  1689.  
  1690.          view IDs of open views, one of the following constants (LONG string): 
  1691.  
  1692.              OPEN_CONTENTS : Open content view for folders only 
  1693.              OPEN_DEFAULT : Open default view (same as double-click) 
  1694.              OPEN_DETAILS : Open details view 
  1695.              OPEN_HELP : Display HelpPanel 
  1696.              OPEN_RUNNING : Execute object 
  1697.              OPEN_SETTINGS : Open settings notebook 
  1698.              OPEN_TREE : Open tree view for folders only 
  1699.  Notes 
  1700.  
  1701.      if the object supports concurrent views, the returned list may contain 
  1702.      duplicates 
  1703.  
  1704.  See Also 
  1705.  
  1706.      RxmnOpenView 
  1707.      RxmnCloseView 
  1708.  
  1709.  
  1710. ΓòÉΓòÉΓòÉ 13.28. RxmnGetParent ΓòÉΓòÉΓòÉ
  1711.  
  1712.  
  1713.  Syntax 
  1714.  
  1715.      parentClassName = RxmnGetParent(className) 
  1716.  
  1717.  Synopsis 
  1718.  
  1719.      returns the name of the parent class of a given class 
  1720.  
  1721.  Parameters 
  1722.  
  1723.      className 
  1724.  
  1725.          class name 
  1726.  
  1727.  Returns 
  1728.  
  1729.      parentClassName 
  1730.  
  1731.          the name of the parent class, or "" if no parent class is available 
  1732.  
  1733.  Example 
  1734.  
  1735.      /*** prints the class hierarchy ***/ 
  1736.  
  1737.      className = "WPIcon" 
  1738.  
  1739.      do while className \= "" 
  1740.          say className 
  1741.          className = RxmnGetParent(className) 
  1742.      end 
  1743.  
  1744.  See Also 
  1745.  
  1746.      RxmnIsA 
  1747.      RxmnIsInstanceOf 
  1748.      RxmnGetClassName 
  1749.  
  1750.  
  1751. ΓòÉΓòÉΓòÉ 13.29. RxmnGetProgDetail ΓòÉΓòÉΓòÉ
  1752.  
  1753.  
  1754.  Syntax 
  1755.  
  1756.      result = RxmnGetProgDetail(program, item) 
  1757.  
  1758.  Synopsis 
  1759.  
  1760.      retrieves information from a program object (either WPProgram or 
  1761.      WPProgramFile) 
  1762.  
  1763.  Parameters 
  1764.  
  1765.      program 
  1766.  
  1767.          the handle of a program object (WPProgam or WPProgramFile) 
  1768.  
  1769.      item 
  1770.  
  1771.          item code (See Notes) 
  1772.  
  1773.  Returns 
  1774.  
  1775.      result 
  1776.  
  1777.          program object item (See Notes) 
  1778.  
  1779.  Notes 
  1780.  
  1781.      The item code can be one of the following constants (LONG string): 
  1782.  
  1783.          PROGDETAIL_CATEGORY : program category 
  1784.  
  1785.              result is one of the following constants: 
  1786.  
  1787.                  PROG_DEFAULT : application default 
  1788.                  PROG_PM : OS/2 PM 
  1789.                  PROG_WINDOWABLEVIO : OS/2 window 
  1790.                  PROG_FULLSCREEN : OS/2 full screen 
  1791.                  PROG_WINDOWDVDM : DOS window 
  1792.                  PROG_VDM : DOS full screen 
  1793.                  PROG_REAL : DOS full screen 
  1794.                  PROG_31_STDSEAMLESSVDM : Windows 3.1 seamless separate session 
  1795.                  PROG_31_STDSEAMLESSCOMMON : Windows 3.1 seamless common 
  1796.                  session 
  1797.                  PROG_31_ENHSEAMLESSVDM : Window 3.1 Enhanced seamless separate 
  1798.                  session 
  1799.                  PROG_31_ENHSEAMLESSCOMMON : Window 3.1 Enhanced seamless 
  1800.                  common session 
  1801.                  PROG_31_ENH : Windows 3.1 enhanced fullscreen 
  1802.                  PROG_31_STD : Windows 3.1 standard full screen 
  1803.  
  1804.          PROGDETAIL_VISIBLE : program visibility 
  1805.  
  1806.              result is a LONG Rexx string which is a bitwise combination of the 
  1807.              following constants: 
  1808.  
  1809.                  SHE_VISIBLE or SHE_INVISIBLE : visible or not 
  1810.                  SHE_UNPROTECTED or SHE_PROTECTED : protected or not 
  1811.  
  1812.          PROGDETAIL_TITLE : program title 
  1813.          PROGDETAIL_EXECUTABLE : executable name 
  1814.          PROGDETAIL_PARAMETERS : parameters list 
  1815.          PROGDETAIL_STARTUPDIR : startup directory 
  1816.          PROGDETAIL_ICON : program icon filename 
  1817.          PROGDETAIL_ENVIRONMENT : environment string 
  1818.  
  1819.              for these item codes, the result is a Rexx string 
  1820.  
  1821.          PROGDETAIL_SWPINITIAL : initial window position structure 
  1822.  
  1823.              the result is a 36-byte Rexx string (9 LONG strings) 
  1824.  
  1825.  See Also 
  1826.  
  1827.      RxmnSetProgDetail 
  1828.  
  1829.  
  1830. ΓòÉΓòÉΓòÉ 13.30. RxmnGetRealName ΓòÉΓòÉΓòÉ
  1831.  
  1832.  
  1833.  Syntax 
  1834.  
  1835.      realName = RxmnGetRealName(fileObject) 
  1836.  
  1837.  Synopsis 
  1838.  
  1839.      returns the file system name of a WPFileSystem object (files and 
  1840.      directories) 
  1841.  
  1842.  Parameters 
  1843.  
  1844.      fileObject 
  1845.  
  1846.          the handle of a WPFileSystem object 
  1847.  
  1848.  Returns 
  1849.  
  1850.      realName 
  1851.  
  1852.          the real name of the given WPFileSystem object (e.g., "C:\Desktop") 
  1853.  
  1854.  
  1855. ΓòÉΓòÉΓòÉ 13.31. RxmnGetSetupString ΓòÉΓòÉΓòÉ
  1856.  
  1857.  
  1858.  Syntax 
  1859.  
  1860.      value = RxmnGetSetupString(object, setupString, key) 
  1861.  
  1862.  Synopsis 
  1863.  
  1864.      parses a given setup string and returns the value corresponding to the 
  1865.      given key 
  1866.  
  1867.  Parameters 
  1868.  
  1869.      object 
  1870.  
  1871.          the handle of an object 
  1872.  
  1873.      setupString 
  1874.  
  1875.          object setup string (e.g., "OBJECTID=<Hello>;ICONFILE=C:\JUNK.ICO;") 
  1876.  
  1877.      key 
  1878.  
  1879.          key string (e.g., "ICONFILE") 
  1880.  
  1881.  Returns 
  1882.  
  1883.      value 
  1884.  
  1885.          The key value (e.g., "C:\JUNK.ICO") or empty string ("") if the key is 
  1886.          not found 
  1887.  
  1888.  Notes 
  1889.  
  1890.      This is mainly used on the event SETUP 
  1891.  
  1892.  See Also 
  1893.  
  1894.      MNRexx Script 
  1895.  
  1896.  
  1897. ΓòÉΓòÉΓòÉ 13.32. RxmnGetShadowedObject ΓòÉΓòÉΓòÉ
  1898.  
  1899.  
  1900.  Syntax 
  1901.  
  1902.      originalObject = RxmnGetShadowedObject(shadowObject) 
  1903.  
  1904.  Synopsis 
  1905.  
  1906.      returns the original object of a shadow 
  1907.  
  1908.  Parameters 
  1909.  
  1910.      shadowObject 
  1911.  
  1912.          the handle of a shadow object (WPShadow) 
  1913.  
  1914.  Returns 
  1915.  
  1916.      originalObject 
  1917.  
  1918.          the handle of the the original object or NULL if unsuccessful (LONG 
  1919.          string) 
  1920.  
  1921.  Notes 
  1922.  
  1923.      This function is equivalent to the following call: 
  1924.  
  1925.          originalObject = RxmnCallMethod("wpQueryShadowedObject", "HH", 
  1926.          shadowObject) 
  1927.  
  1928.  See Also 
  1929.  
  1930.      RxmnGetShadows 
  1931.      RxmnSetShadowTitle 
  1932.  
  1933.  
  1934. ΓòÉΓòÉΓòÉ 13.33. RxmnGetShadows ΓòÉΓòÉΓòÉ
  1935.  
  1936.  
  1937.  Syntax 
  1938.  
  1939.      result = RxmnGetShadows(object, stem) 
  1940.  
  1941.  Synopsis 
  1942.  
  1943.      enumerates all shadow objects of a given object 
  1944.  
  1945.  Parameters 
  1946.  
  1947.      object 
  1948.  
  1949.          the handle of an object 
  1950.  
  1951.      stem 
  1952.  
  1953.          variable name to receive the list of shadow objects 
  1954.  
  1955.  Returns 
  1956.  
  1957.      result 
  1958.  
  1959.          1 if successful, 0 otherwise 
  1960.  
  1961.      stem.0 
  1962.  
  1963.          number of shadow objects 
  1964.  
  1965.      stem.1, stem.2, ... 
  1966.  
  1967.          handles of shadow objects 
  1968.  
  1969.  Example 
  1970.  
  1971.      /*** lists all shadows ***/ 
  1972.  
  1973.      result = RxmnGetShadows(object, "shadow") 
  1974.  
  1975.      do i = 1 to shadow.0 
  1976.          say shadow.i 
  1977.      end 
  1978.  
  1979.  See Also 
  1980.  
  1981.      RxmnGetShadowedObject 
  1982.      RxmnSetShadowTitle 
  1983.  
  1984.  
  1985. ΓòÉΓòÉΓòÉ 13.34. RxmnGetStyle ΓòÉΓòÉΓòÉ
  1986.  
  1987.  
  1988.  Syntax 
  1989.  
  1990.      style = RxmnGetStyle(object) 
  1991.  
  1992.  Synopsis 
  1993.  
  1994.      returns the style flags of an object 
  1995.  
  1996.  Parameters 
  1997.  
  1998.      object 
  1999.  
  2000.          the handle of an object 
  2001.  
  2002.  Returns 
  2003.  
  2004.      style 
  2005.  
  2006.          style flags in LONG format (See Notes) 
  2007.  
  2008.  Notes 
  2009.  
  2010.      The returned style is a bitwise combination of the following constants: 
  2011.  
  2012.          OBJSTYLE_NOCOPY : Cannot be copied 
  2013.          OBJSTYLE_NODELETE : Cannot be deleted 
  2014.          OBJSTYLE_NODRAG : Cannot be dragged 
  2015.          OBJSTYLE_NOSHADOW : Cannot have shadow created 
  2016.          OBJSTYLE_NOMOVE : Cannot move 
  2017.          OBJSTYLE_NOPRINT : Cannot be printed 
  2018.          OBJSTYLE_NOTDEFAULTICON : Destroy icon when object goes dormant 
  2019.          OBJSTYLE_TEMPLATE : This object is a template 
  2020.          OBJSTYLE_NOTVISIBLE : The object is hidden 
  2021.          OBJSTYLE_NORENAME : Cannot be renamed 
  2022.       00. 
  2023.       This function is equivalent to the following call: 
  2024.  
  2025.          style = RxmnCallMethod("wpQueryStyle", "LH", object) 
  2026.  
  2027.  Example 
  2028.  
  2029.      /*** checks if an object is deletable ***/ 
  2030.  
  2031.      style = RxmnGetStyle(object) 
  2032.  
  2033.      if bitand(style, OBJSTYLE_NODELETE) \= NULL then 
  2034.      do 
  2035.          say "object is not deletable" 
  2036.      end 
  2037.      else 
  2038.      do 
  2039.          say "object is deletable" 
  2040.      end 
  2041.  
  2042.  See Also 
  2043.  
  2044.      RxmnSetStyle 
  2045.  
  2046.  
  2047. ΓòÉΓòÉΓòÉ 13.35. RxmnGetTitle ΓòÉΓòÉΓòÉ
  2048.  
  2049.  
  2050.  Syntax 
  2051.  
  2052.      title = RxmnGetTitle(object) 
  2053.  
  2054.  Synopsis 
  2055.  
  2056.      returns the title of an object 
  2057.  
  2058.  Parameters 
  2059.  
  2060.      object 
  2061.  
  2062.          the handle of an object 
  2063.  
  2064.  Returns 
  2065.  
  2066.      title 
  2067.  
  2068.          object's title 
  2069.  
  2070.  See Also 
  2071.  
  2072.      RxmnSetTitle 
  2073.  
  2074.  
  2075. ΓòÉΓòÉΓòÉ 13.36. RxmnGetType ΓòÉΓòÉΓòÉ
  2076.  
  2077.  
  2078.  Syntax 
  2079.  
  2080.      typeList = RxmnGetType(fileObject [, stem]) 
  2081.  
  2082.  Synopsis 
  2083.  
  2084.      returns the list of file types 
  2085.  
  2086.  Parameters 
  2087.  
  2088.      fileObject 
  2089.  
  2090.          the handle of a data file object (WPDataFile) 
  2091.  
  2092.      stem (optional) 
  2093.  
  2094.          stem variable to receive the list of file types 
  2095.  
  2096.  Returns 
  2097.  
  2098.      typeList 
  2099.  
  2100.          newline-delimited list of file types 
  2101.  
  2102.      stem.0 (optional) 
  2103.  
  2104.          number of file types 
  2105.  
  2106.      stem.1, stem.2, ... 
  2107.  
  2108.          file types 
  2109.  
  2110.  Example 
  2111.  
  2112.      /*** list file types ***/ 
  2113.  
  2114.      typeList = RxmnGetType(object, "filetype") 
  2115.  
  2116.      do i = 1 to filetype.0 
  2117.          say filetype.i 
  2118.      end 
  2119.  
  2120.  See Also 
  2121.  
  2122.      RxmnSetType 
  2123.  
  2124.  
  2125. ΓòÉΓòÉΓòÉ 13.37. RxmnInit ΓòÉΓòÉΓòÉ
  2126.  
  2127.  
  2128.  Syntax 
  2129.  
  2130.      call RxmnInit [option] 
  2131.  
  2132.  Synopsis 
  2133.  
  2134.      initializes MNRexx 
  2135.  
  2136.  Parameters 
  2137.  
  2138.      option (optional) 
  2139.  
  2140.          optional string to control the initialization: 
  2141.  
  2142.              "F" : declare functions, not constants 
  2143.              "C" : declare constants, not functions 
  2144.              "N" : declare neither functions nor constants 
  2145.  
  2146.          if no option is given, both functions and constants are declared. 
  2147.  
  2148.  Notes 
  2149.  
  2150.      This routine declares all MNRexx functions and constants. 
  2151.  
  2152.      A variable SOMClassMgrObject (a LONG string) is always declared.  This 
  2153.      variable can be used to access SOM/WPS methods directly (see Direct Method 
  2154.      Calls). 
  2155.  
  2156.      Also a variable _WPObject (a LONG string) is always declared.  This 
  2157.      variable can be used to access WPS class methods directly (see Direct 
  2158.      Method Calls). 
  2159.  
  2160.      A variable MNRexx contains the list of all declared constants 
  2161.      (space-separated). 
  2162.      You can use this variable to expose all constants to a procedure as 
  2163.      follows: 
  2164.  
  2165.          foo: procedure expose (MNRexx) 
  2166.  
  2167.  See Also 
  2168.  
  2169.      RxmnUninit 
  2170.      Direct Method Calls 
  2171.  
  2172.  
  2173. ΓòÉΓòÉΓòÉ 13.38. RxmnInsertMenuItem ΓòÉΓòÉΓòÉ
  2174.  
  2175.  
  2176.  Syntax 
  2177.  
  2178.      result = RxmnInsertMenuItem(menuHandle, parentID, itemID, itemAttribute, 
  2179.      itemText [, xsize, ysize]) 
  2180.  
  2181.  Synopsis 
  2182.  
  2183.      inserts an item to the context menu of an MNRexx object 
  2184.  
  2185.  Parameters 
  2186.  
  2187.      menuHandle 
  2188.  
  2189.          context menu handle (LONG string) 
  2190.  
  2191.      parentID 
  2192.  
  2193.          parent submenu ID, either your own or one of the following constants 
  2194.          (LONG string): 
  2195.  
  2196.              WPMENUID_PRIMARY : primary level (i.e., the same level as 'open' 
  2197.              or 'delete') 
  2198.              WPMENUID_OPEN : under 'OPEN' submenu 
  2199.              WPMENUID_HELP : under 'Help' submenu 
  2200.              WPMENUID_PRINT : under 'Print' submenu 
  2201.  
  2202.      itemID 
  2203.  
  2204.          the ID of this item (LONG string). 
  2205.          the ID can be any non-negative LONG integer (i.e., L2D(0), L2D(1), 
  2206.          L2D(2), ...). 
  2207.  
  2208.      itemAttribute 
  2209.  
  2210.          the attribute of this menu item, a string which is a combination of 
  2211.          the following characters: 
  2212.  
  2213.              _ (underscore) : break (this item starts a new menu row or column) 
  2214.              | (bar) : break separator (same as break, except that it draws a 
  2215.              separator between rows and columns) 
  2216.              . (period) : static (information only, not selectable) 
  2217.              > (greater than) : checked 
  2218.              ! (exclamation) : hilited 
  2219.              0 (zero) : disabled 
  2220.              # (pound) : framed (a frame is drawn around the item) 
  2221.              & (and) : no dismiss (the containing submenu doesn't close when 
  2222.              this item is selected) 
  2223.  
  2224.      itemText 
  2225.  
  2226.          the text of this item 
  2227.  
  2228.          when this string starts with a '#' (pound) symbol, special kinds of 
  2229.          items are inserted: 
  2230.  
  2231.              #- (pound minus) : a separator (dividing line) 
  2232.              #* (pound star) : submenu 
  2233.              #+ (pound plus) : conditional-cascade submenu 
  2234.              #I <pound i) : icon item, followed immediately by the filename or 
  2235.              object ID from which the icon is taken (e.g., #IC:\OS2\CLIPOS2.EXE 
  2236.              or #I<WP_INFO>) 
  2237.  
  2238.      xsize (optional) 
  2239.  
  2240.          for icon items, this decimal string sets the horizontal size of the 
  2241.          icon bitmap. 
  2242.          the default is the standard system icon size. 
  2243.  
  2244.      ysize (optional) 
  2245.  
  2246.          for icon items, this decimal string sets the vertical size of the icon 
  2247.          bitmap. 
  2248.          If only xsize is given, ysize is assumed to be the same as the given 
  2249.          xsize. 
  2250.  
  2251.  Returns 
  2252.  
  2253.      <result 
  2254.  
  2255.          inserted position (LONG string) 
  2256.  
  2257.  Notes 
  2258.  
  2259.      This is mainly used on the event MODIFYMENU. 
  2260.  
  2261.  Example 
  2262.  
  2263.      /*** define LONG item identifiers ***/ 
  2264.  
  2265.      textitem1 = D2L(0) 
  2266.      submenu1 = D2L(1) 
  2267.      textitem2 = D2L(2) 
  2268.      iconitem = D2L(3) 
  2269.  
  2270.      /*** add textitem1 in "OPEN" submenu ***/ 
  2271.  
  2272.      rc = RxmnInsertMenuItem(menu, WPMENUID_OPEN, textitem1, , "Hello World") 
  2273.      /*** no attribute ***/ 
  2274.  
  2275.      /*** add a submenu1 at the primary level ***/ 
  2276.  
  2277.      rc = RxmnInsertMenuItem(menu, WPMENUID_PRIMARY, submenu1, , "#*Submenu") 
  2278.  
  2279.      /*** add a checked text item2 in submenu1 ***/ 
  2280.  
  2281.      rc = RxmnInsertMenuItem(menu, submenu1, textitem2, ">", "checked"); 
  2282.  
  2283.      /*** add an icon of the clipboard viewer in submenu1 ***/ 
  2284.  
  2285.      rc = RxmnInsertMenuItem(menu, submenu1, iconitem, , 
  2286.      "#IC:\OS2\CLIPOS2.EXE") 
  2287.  
  2288.  See Also 
  2289.  
  2290.      MNRexx Script 
  2291.  
  2292.  
  2293. ΓòÉΓòÉΓòÉ 13.39. RxmnIsA ΓòÉΓòÉΓòÉ
  2294.  
  2295.  
  2296.  Syntax 
  2297.  
  2298.      result = RxmnIsA(object, className) 
  2299.  
  2300.  Synopsis 
  2301.  
  2302.      checks if an object is an instance of (any descendent class of) the given 
  2303.      class 
  2304.  
  2305.  Parameters 
  2306.  
  2307.      object 
  2308.  
  2309.          the handle of an object 
  2310.  
  2311.      className 
  2312.  
  2313.          the name of a class (e.g., "WPFileSystem") 
  2314.  
  2315.  Returns 
  2316.  
  2317.      result 
  2318.  
  2319.          1 if the object is an instance of some descendent class of the given 
  2320.          class, 0 otherwise 
  2321.  
  2322.  Example 
  2323.  
  2324.      /*** checks if an object is a file system object ***/ 
  2325.  
  2326.      if RxmnIsA(object, "WPFileSystem") then 
  2327.      do 
  2328.          say "this is a file" 
  2329.      end 
  2330.      else 
  2331.      do 
  2332.          say "this is not a file" 
  2333.      end 
  2334.  
  2335.  See Also 
  2336.  
  2337.      RxmnIsInstanceOf 
  2338.      RxmnGetClassName 
  2339.  
  2340.  
  2341. ΓòÉΓòÉΓòÉ 13.40. RxmnIsInstanceOf ΓòÉΓòÉΓòÉ
  2342.  
  2343.  
  2344.  Syntax 
  2345.  
  2346.      result = RxmnIsInstanceOf(object, className) 
  2347.  
  2348.  Synopsis 
  2349.  
  2350.      checks if an object is an instance of the given class (and not of a 
  2351.      descendent class) 
  2352.  
  2353.  Parameters 
  2354.  
  2355.      object 
  2356.  
  2357.          the handle of an object 
  2358.  
  2359.      className 
  2360.  
  2361.          the name of a class (e.g., "WPIcon") 
  2362.  
  2363.  Returns 
  2364.  
  2365.      result 
  2366.  
  2367.          1 if the object is an instance of the given class, 0 otherwise 
  2368.  
  2369.  Example 
  2370.  
  2371.      /*** checks if an object is an instance of WPFolder class ***/ 
  2372.  
  2373.      if RxmnIsInstanceOf(object, "WPFolder") then 
  2374.      do 
  2375.          say "this is a WPFolder" 
  2376.      end 
  2377.      else 
  2378.      do 
  2379.          say "this is not a WPFolder" 
  2380.      end 
  2381.  
  2382.  Notes 
  2383.  
  2384.      To find out whether an object is an instance of any descendent class of a 
  2385.      given class, use RxmnIsA. 
  2386.  
  2387.  See Also 
  2388.  
  2389.      RxmnIsA 
  2390.      RxmnGetClassName 
  2391.  
  2392.  
  2393. ΓòÉΓòÉΓòÉ 13.41. RxmnMoveObject ΓòÉΓòÉΓòÉ
  2394.  
  2395.  
  2396.  Syntax 
  2397.  
  2398.      result = RxmnMoveObject(object, folder) 
  2399.  
  2400.  Synopsis 
  2401.  
  2402.      moves an object into a folder 
  2403.  
  2404.  Parameters 
  2405.  
  2406.      object 
  2407.  
  2408.          the handle of an object to be moved 
  2409.  
  2410.      folder 
  2411.  
  2412.          the handle of the folder into which the object is to be moved 
  2413.  
  2414.  Returns 
  2415.  
  2416.      result 
  2417.  
  2418.          1 if successful, 0 otherwise 
  2419.  
  2420.  Notes 
  2421.  
  2422.      Use RxmnQueryObject to obtain the folder handle from an object ID or 
  2423.      pathname. 
  2424.  
  2425.  Example 
  2426.  
  2427.      /*** moves an object into the information folder ***/ 
  2428.  
  2429.      folder = RxmnQueryObject("<WP_INFO>") 
  2430.  
  2431.      result = RxmnMoveObject(object, folder) 
  2432.  
  2433.  See Also 
  2434.  
  2435.      RxmnCopyObject 
  2436.      RxmnCreateShadowObject 
  2437.      RxmnQueryObject 
  2438.  
  2439.  
  2440. ΓòÉΓòÉΓòÉ 13.42. RxmnObjectFromItemID ΓòÉΓòÉΓòÉ
  2441.  
  2442.  
  2443.  [This is for advanced users only] 
  2444.  
  2445.  Syntax 
  2446.  
  2447.      handle = RxmnObjectFromItemID(itemID) 
  2448.  
  2449.  Synopsis 
  2450.  
  2451.      returns the object handle corresponding to the itemID in the DRAGITEM 
  2452.      structure 
  2453.  
  2454.  Parameters 
  2455.  
  2456.      itemID 
  2457.  
  2458.          the itemID in the DRAGITEM structure (LONG string). 
  2459.  
  2460.  Returns 
  2461.  
  2462.      handle 
  2463.  
  2464.          the handle of the corresponding object 
  2465.  
  2466.  Notes 
  2467.  
  2468.      This is to support a PM program that needs to accept drag/drop of WPS 
  2469.      objects. 
  2470.  
  2471.      When a DRAGITEM is a WPS object (i.e., when DrgVerifyRMF(pdrgItem, 
  2472.      "DRM_OBJECT", "DRF_OBJECT") is TRUE), the itemID field of the DRAGITEM 
  2473.      contains an identifier for the dragged/dropped object (actually the 
  2474.      MINIRECORDCORE pointer to the shared container record).  By sending the 
  2475.      itemID to an MNRexx object via SysSetObjectData or WinSetObjectData, you 
  2476.      can access the object. 
  2477.  
  2478.      Warning: Sending an invalid itemID to this routine causes system crash. 
  2479.  
  2480.  See Also 
  2481.  
  2482.      External Access 
  2483.  
  2484.  
  2485. ΓòÉΓòÉΓòÉ 13.43. RxmnOpenView ΓòÉΓòÉΓòÉ
  2486.  
  2487.  
  2488.  Syntax 
  2489.  
  2490.      viewHandle = RxmnOpenView(object [, viewID]) 
  2491.  
  2492.  Synopsis 
  2493.  
  2494.      opens a view of an object 
  2495.  
  2496.  Parameters 
  2497.  
  2498.      object 
  2499.  
  2500.          the handle of an object 
  2501.  
  2502.      viewID (optional) 
  2503.  
  2504.          view identifier which may be one of the following constants (LONG 
  2505.          string): 
  2506.  
  2507.              OPEN_CONTENTS : Open content view for folders only 
  2508.              OPEN_DEFAULT : Open default view (same as double-click) 
  2509.              OPEN_DETAILS : Open details view 
  2510.              OPEN_HELP : Display HelpPanel 
  2511.              OPEN_RUNNING : Execute object 
  2512.              OPEN_SETTINGS : Open settings notebook 
  2513.              OPEN_TREE : Open tree view for folders only 
  2514.  
  2515.          if viewID is omitted, the default view is opened. 
  2516.  
  2517.  Returns 
  2518.  
  2519.      viewHandle 
  2520.  
  2521.          the opened window handle (HWND) in LONG format, or NULL if 
  2522.          unsuccessful 
  2523.  
  2524.  See Also 
  2525.  
  2526.      RxmnCloseView 
  2527.      RxmnGetOpenViews 
  2528.  
  2529.  
  2530. ΓòÉΓòÉΓòÉ 13.44. RxmnQueryObject ΓòÉΓòÉΓòÉ
  2531.  
  2532.  
  2533.  Syntax 
  2534.  
  2535.      object = RxmnQueryObject(objectID) 
  2536.  
  2537.  Synopsis 
  2538.  
  2539.      finds the persistent object handle fo the object with given objectID or 
  2540.      filename 
  2541.  
  2542.  Parameters 
  2543.  
  2544.      objectID 
  2545.  
  2546.          object identifier (e.g., "<WP_DESKTOP>") or filename (e.g., 
  2547.          "C:\Desktop") 
  2548.  
  2549.  Returns 
  2550.  
  2551.      object 
  2552.  
  2553.          the handle of the object or NULL if the object is not found (LONG 
  2554.          string) 
  2555.  
  2556.  
  2557. ΓòÉΓòÉΓòÉ 13.45. RxmnSetAssociationFilter ΓòÉΓòÉΓòÉ
  2558.  
  2559.  
  2560.  Syntax 
  2561.  
  2562.      result = RxmnSetAssociationFilter(programObject, filterList) 
  2563.  
  2564.  Synopsis 
  2565.  
  2566.      sets the assocition filter list of a program object (WPProgram or 
  2567.      WPProgramFile) 
  2568.  
  2569.  Parameters 
  2570.  
  2571.      programObject 
  2572.  
  2573.          the handle of a program object (WPProgram or WPProgramFile) 
  2574.  
  2575.      typeList 
  2576.  
  2577.          comma-separated list of associated filters 
  2578.  
  2579.  Returns 
  2580.  
  2581.      result 
  2582.  
  2583.          1 if successful, 0 otherwise 
  2584.  
  2585.  See Also 
  2586.  
  2587.      RxmnGetAssociationFilter 
  2588.      RxmnSetAssociationType 
  2589.      RxmnGetAssociationType 
  2590.  
  2591.  
  2592. ΓòÉΓòÉΓòÉ 13.46. RxmnSetAssociationType ΓòÉΓòÉΓòÉ
  2593.  
  2594.  
  2595.  Syntax 
  2596.  
  2597.      result = RxmnSetAssociationType(programObject, typeList) 
  2598.  
  2599.  Synopsis 
  2600.  
  2601.      sets the assocition type list of a program object (WPProgram or 
  2602.      WPProgramFile) 
  2603.  
  2604.  Parameters 
  2605.  
  2606.      programObject 
  2607.  
  2608.          the handle of a program object (WPProgram or WPProgramFile) 
  2609.  
  2610.      typeList 
  2611.  
  2612.          comma-separated list of associated types 
  2613.  
  2614.  Returns 
  2615.  
  2616.      result 
  2617.  
  2618.          1 if successful, 0 otherwise 
  2619.  
  2620.  See Also 
  2621.  
  2622.      RxmnGetAssociationType 
  2623.      RxmnSetAssociationFilter 
  2624.      RxmnGetAssociationFilter 
  2625.  
  2626.  
  2627. ΓòÉΓòÉΓòÉ 13.47. RxmnSetDefaultView ΓòÉΓòÉΓòÉ
  2628.  
  2629.  
  2630.  Syntax 
  2631.  
  2632.      result = RxmnSetDefaultView(object, viewID) 
  2633.  
  2634.  Synopsis 
  2635.  
  2636.      sets the default view of an object 
  2637.  
  2638.  Parameters 
  2639.  
  2640.      object 
  2641.  
  2642.          the handle of an object 
  2643.  
  2644.      viewID 
  2645.  
  2646.          view ID, which may be one of the following constants (LONG string): 
  2647.  
  2648.              OPEN_CONTENTS : Open content view for folders only 
  2649.              OPEN_DEFAULT : Open default view (same as double-click) 
  2650.              OPEN_DETAILS : Open details view 
  2651.              OPEN_HELP : Display HelpPanel 
  2652.              OPEN_RUNNING : Execute object 
  2653.              OPEN_SETTINGS : Open settings notebook 
  2654.              OPEN_TREE : Open tree view for folders only 
  2655.  
  2656.  Returns 
  2657.  
  2658.      result 
  2659.  
  2660.          1 if successful, 0 otherwise 
  2661.  
  2662.  See Also 
  2663.  
  2664.      RxmnGetDefaultView 
  2665.  
  2666.  
  2667. ΓòÉΓòÉΓòÉ 13.48. RxmnSetFldrAttr ΓòÉΓòÉΓòÉ
  2668.  
  2669.  
  2670.  Syntax 
  2671.  
  2672.      result = RxmnSetFldrAttr(folderObject, viewAttributes, viewID) 
  2673.  
  2674.  Synopsis 
  2675.  
  2676.      returns the current container view attributes 
  2677.  
  2678.  Parameters 
  2679.  
  2680.      folderObject 
  2681.  
  2682.          the handle of a folder object (WPFolder) 
  2683.  
  2684.      viewAttributes 
  2685.  
  2686.          a LONG string which is a bitwise combination of the following 
  2687.          constants: 
  2688.  
  2689.              CV_ICON : the view is an icon view with text beneath the icons 
  2690.              (Non-Grid) 
  2691.              CV_NAME : the view is an icon view with text to the right of the 
  2692.              icons (Non-Flowed) 
  2693.              CV_TEXT : the view is an icon view with no icons (Invisible Icon) 
  2694.              CV_TREE : the view is a tree view 
  2695.              CV_DETAIL : the view is a details view 
  2696.              CV_MINI : mini-icons are used (Small size Icon) 
  2697.              CV_FLOW : the view is flowed 
  2698.  
  2699.      viewID 
  2700.  
  2701.          folder view identifier, one of the following constants (LONG string): 
  2702.  
  2703.              OPEN_CONTENTS : icon view 
  2704.              OPEN_DETAILS : details view 
  2705.              OPEN_TREE : tree view 
  2706.  
  2707.  Returns 
  2708.  
  2709.      result 
  2710.  
  2711.          1 if successful, 0 otherwise 
  2712.  
  2713.  Notes 
  2714.  
  2715.      this function is equivalent to the following call: 
  2716.  
  2717.          result = RxmnCallMethod("wpSetFldrAttr", "LHLL", folderObject, 
  2718.          viewAttributes, viewID) 
  2719.  
  2720.  See Also 
  2721.  
  2722.      RxmnGetFldrAttr 
  2723.  
  2724.  
  2725. ΓòÉΓòÉΓòÉ 13.49. RxmnSetFldrDetailsClass ΓòÉΓòÉΓòÉ
  2726.  
  2727.  
  2728.  Syntax 
  2729.  
  2730.      result = RxmnSetFldrDetailsClass(folderObject, className) 
  2731.  
  2732.  Synopsis 
  2733.  
  2734.      sets the class for which details in the folder will be displayed 
  2735.  
  2736.  Parameters 
  2737.  
  2738.      folderObject 
  2739.  
  2740.          the handle of a folder object (WPFolder) 
  2741.  
  2742.      className 
  2743.  
  2744.          name of a WPS class (e.g., "WPDataFile") 
  2745.  
  2746.  Returns 
  2747.  
  2748.      result 
  2749.  
  2750.          1 if successful, 0 otherwise 
  2751.  
  2752.  See Also 
  2753.  
  2754.      RxmnGetFldrDetailsClass 
  2755.  
  2756.  
  2757. ΓòÉΓòÉΓòÉ 13.50. RxmnSetFldrFlags ΓòÉΓòÉΓòÉ
  2758.  
  2759.  
  2760.  Syntax 
  2761.  
  2762.      result = RxmnSetFldrFlags(folderObject, flags) 
  2763.  
  2764.  Synopsis 
  2765.  
  2766.      sets the folder flags 
  2767.  
  2768.  Parameters 
  2769.  
  2770.      folderObject 
  2771.  
  2772.          the handle of a folder 
  2773.  
  2774.      flags 
  2775.  
  2776.          bitwise-combination of the following constants: 
  2777.  
  2778.              FOI_POPULATEDWITHALL : the folder is populated with all its 
  2779.              contents 
  2780.              FOI_POPULATEDWITHFOLDERS : the folder is populated with subfolders 
  2781.              FOI_WORKAREA : the folder is a workarea 
  2782.  
  2783.  Returns 
  2784.  
  2785.      result 
  2786.  
  2787.          1 if successful, 0 otherwise 
  2788.  
  2789.  Notes 
  2790.  
  2791.      this function is equivalent to the following call: 
  2792.  
  2793.          result = RxmnCallMethod("wpSetFldrFlags", "BHL", folderObject, flags) 
  2794.  
  2795.  See Also 
  2796.  
  2797.      RxmnGetFldrFlags 
  2798.  
  2799.  
  2800. ΓòÉΓòÉΓòÉ 13.51. RxmnSetFldrFont ΓòÉΓòÉΓòÉ
  2801.  
  2802.  
  2803.  Syntax 
  2804.  
  2805.      result = RxmnSetFldrFont(folderObject, fontName, viewID) 
  2806.  
  2807.  Synopsis 
  2808.  
  2809.      sets the font to be used in a view of a folder 
  2810.  
  2811.  Parameters 
  2812.  
  2813.      folderObject 
  2814.  
  2815.          the handle of a folder object (WPFolder) 
  2816.  
  2817.      fontName 
  2818.  
  2819.          point size and font name in the following format: 
  2820.  
  2821.              <point size>.<font name> (e.g., "10.Helv") 
  2822.  
  2823.      viewID 
  2824.  
  2825.          one of the following constants (LONG string): 
  2826.  
  2827.              OPEN_CONTENTS : icon view 
  2828.              OPEN_DETAILS : details view 
  2829.              OPEN_TREE : tree view 
  2830.  
  2831.  Returns 
  2832.  
  2833.      result 
  2834.  
  2835.          1 if successful, 0 otherwise 
  2836.  
  2837.  Notes 
  2838.  
  2839.      this function is equivalent to the following call: 
  2840.  
  2841.          result = RxmnCallmethod("wpSetFldrFont", "BHSL", folderObject, 
  2842.          fontName, viewID) 
  2843.  
  2844.  See Also 
  2845.  
  2846.      RxmnGetFldrFont 
  2847.  
  2848.  
  2849. ΓòÉΓòÉΓòÉ 13.52. RxmnSetIcon ΓòÉΓòÉΓòÉ
  2850.  
  2851.  
  2852.  Syntax 
  2853.  
  2854.      result = RxmnSetIcon(object, iconHandle) 
  2855.  
  2856.  Synopsis 
  2857.  
  2858.      sets an object's icon 
  2859.  
  2860.  Parameters 
  2861.  
  2862.      object 
  2863.  
  2864.          the handle of an object 
  2865.  
  2866.      iconHandle 
  2867.  
  2868.          icon handle in LONG format 
  2869.  
  2870.  Returns 
  2871.  
  2872.      result 
  2873.  
  2874.          1 if successful, 0 otherwise 
  2875.  
  2876.  Notes 
  2877.  
  2878.      This call changes the visible icon only. 
  2879.      In order to change the icon permanently, use RxmnSetIconData. 
  2880.  
  2881.      This function is equivalent to the following call: 
  2882.  
  2883.          result = RxmnCallMethod("wpSetIcon", "BHL", object, iconHandle) 
  2884.  
  2885.  See Also 
  2886.  
  2887.      RxmnGetIcon 
  2888.      RxmnSetIconData 
  2889.      RxmnGetIconData 
  2890.      RxmnGetIconDataType 
  2891.  
  2892.  
  2893. ΓòÉΓòÉΓòÉ 13.53. RxmnSetIconData ΓòÉΓòÉΓòÉ
  2894.  
  2895.  
  2896.  Syntax 
  2897.  
  2898.      result = RxmnSetIconData(object, type, value) 
  2899.  
  2900.  Synopsis 
  2901.  
  2902.      sets the object's permanent icon 
  2903.  
  2904.  Parameters 
  2905.  
  2906.      object 
  2907.  
  2908.          the handle of an object 
  2909.  
  2910.      type 
  2911.  
  2912.          permanent icon data type (see Notes) 
  2913.  
  2914.      value 
  2915.  
  2916.          permanent icon data (see Notes) 
  2917.  
  2918.  Returns 
  2919.  
  2920.      result 
  2921.  
  2922.          1 if successful, 0 otherwise 
  2923.  
  2924.  Notes 
  2925.  
  2926.      the icon data type is obtained with RxmnGetIconDataType. 
  2927.      the value type varies according to the type. 
  2928.  
  2929.  Example 
  2930.  
  2931.      /*** changes object B's icon to object A's permanently ***/ 
  2932.  
  2933.      type = RxmnGetIconDataType(A) 
  2934.      value = RxmnGetIconData(A) 
  2935.      result = RxmnSetIconData(type, value) 
  2936.  
  2937.  See Also 
  2938.  
  2939.      RxmnGetIconDataType 
  2940.      RxmnGetIconData 
  2941.  
  2942.  
  2943. ΓòÉΓòÉΓòÉ 13.54. RxmnSetInstanceData ΓòÉΓòÉΓòÉ
  2944.  
  2945.  
  2946.  Syntax 
  2947.  
  2948.      result = RxmnSetInstanceData(mnrexxObject, data) 
  2949.  
  2950.  Synopsis 
  2951.  
  2952.      sets the persistent data of an MNRexx object 
  2953.  
  2954.  Parameters 
  2955.  
  2956.      mnrexxObject 
  2957.  
  2958.          the handle of an MNRexx object 
  2959.  
  2960.      data 
  2961.  
  2962.          new persistent data Rexx string 
  2963.  
  2964.  Returns 
  2965.  
  2966.      result 
  2967.  
  2968.          1 if successful, 0 otherwise 
  2969.  
  2970.  See Also 
  2971.  
  2972.      RxmnGetInstanceData 
  2973.  
  2974.  
  2975. ΓòÉΓòÉΓòÉ 13.55. RxmnSetObjectID ΓòÉΓòÉΓòÉ
  2976.  
  2977.  
  2978.  Syntax 
  2979.  
  2980.      result = RxmnSetObjectID(object, ID) 
  2981.  
  2982.  Synopsis 
  2983.  
  2984.      sets the object ID of an object 
  2985.  
  2986.  Parameters 
  2987.  
  2988.      object 
  2989.  
  2990.          the handle of an object 
  2991.  
  2992.      ID 
  2993.  
  2994.          a string 
  2995.  
  2996.  Returns 
  2997.  
  2998.      result 
  2999.  
  3000.          1 if successful, 0 otherwise 
  3001.  
  3002.  See Also 
  3003.  
  3004.      RxmnGetObjectID 
  3005.  
  3006.  
  3007. ΓòÉΓòÉΓòÉ 13.56. RxmnSetProgDetail ΓòÉΓòÉΓòÉ
  3008.  
  3009.  
  3010.  Syntax 
  3011.  
  3012.      result = RxmnSetProgDetail(program, item, value) 
  3013.  
  3014.  Synopsis 
  3015.  
  3016.      sets information of a program object (either WPProgram or WPProgramFile) 
  3017.  
  3018.  Parameters 
  3019.  
  3020.      program 
  3021.  
  3022.          the handle of a program object (WPProgram or WPProgramFile) 
  3023.  
  3024.      item 
  3025.  
  3026.          item code (See Notes) 
  3027.  
  3028.      value 
  3029.  
  3030.          item value (See Notes) 
  3031.  
  3032.  Returns 
  3033.  
  3034.      result 
  3035.  
  3036.          1 if successful, 0 otherwise 
  3037.  
  3038.  Notes 
  3039.  
  3040.      The item code can be one of the following constants: 
  3041.  
  3042.          PROGDETAIL_CATEGORY : program category 
  3043.  
  3044.              value is one of the following constants: 
  3045.  
  3046.                  PROG_DEFAULT : application default 
  3047.                  PROG_PM : OS/2 PM 
  3048.                  PROG_WINDOWABLEVIO : OS/2 window 
  3049.                  PROG_FULLSCREEN : OS/2 full screen 
  3050.                  PROG_WINDOWDVDM : DOS window 
  3051.                  PROG_VDM : DOS full screen 
  3052.                  PROG_REAL : DOS full screen 
  3053.                  PROG_31_STDSEAMLESSVDM : Windows 3.1 seamless separate session 
  3054.                  PROG_31_STDSEAMLESSCOMMON : Windows 3.1 seamless common 
  3055.                  session 
  3056.                  PROG_31_ENHSEAMLESSVDM : Window 3.1 Enhanced seamless separate 
  3057.                  session 
  3058.                  PROG_31_ENHSEAMLESSCOMMON : Window 3.1 Enhanced seamless 
  3059.                  common session 
  3060.                  PROG_31_ENH : Windows 3.1 enhanced fullscreen 
  3061.                  PROG_31_STD : Windows 3.1 standard full screen 
  3062.  
  3063.          PROGDETAIL_VISIBLE : program visibility 
  3064.  
  3065.              value is a LONG Rexx string which is a bitwise combination of the 
  3066.              following constants: 
  3067.  
  3068.                  SHE_VISIBLE or SHE_INVISIBLE : visible or not 
  3069.                  SHE_UNPROTECTED or SHE_PROTECTED : protected or not 
  3070.  
  3071.          PROGDETAIL_TITLE : program title 
  3072.          PROGDETAIL_EXECUTABLE : executable name 
  3073.          PROGDETAIL_PARAMETERS : parameters list 
  3074.          PROGDETAIL_STARTUPDIR : startup directory 
  3075.          PROGDETAIL_ICON : program icon filename 
  3076.          PROGDETAIL_ENVIRONMENT : environment string 
  3077.  
  3078.              for these item codes, the value is a Rexx string 
  3079.  
  3080.          PROGDETAIL_SWPINITIAL : initial window position structure 
  3081.  
  3082.              the value is a 36-byte Rexx string (9 LONG strings) 
  3083.  
  3084.  See Also 
  3085.  
  3086.      RxmnGetProgDetail 
  3087.  
  3088.  
  3089. ΓòÉΓòÉΓòÉ 13.57. RxmnSetShadowTitle ΓòÉΓòÉΓòÉ
  3090.  
  3091.  
  3092.  Syntax 
  3093.  
  3094.      result = RxmnSetShadowTitle(object, title) 
  3095.  
  3096.  Synopsis 
  3097.  
  3098.      sets the title of a shadow object (which is usually the title of the 
  3099.      shadowed object) 
  3100.  
  3101.  Parameters 
  3102.  
  3103.      object 
  3104.  
  3105.          the handle of an object 
  3106.  
  3107.      title 
  3108.  
  3109.          new title string 
  3110.  
  3111.  Returns 
  3112.  
  3113.      result 
  3114.  
  3115.          1 if successful, 0 otherwise 
  3116.  
  3117.  See Also 
  3118.  
  3119.      RxmnGetShadowedObject 
  3120.      RxmnGetShadows 
  3121.  
  3122.  
  3123. ΓòÉΓòÉΓòÉ 13.58. RxmnSetStyle ΓòÉΓòÉΓòÉ
  3124.  
  3125.  
  3126.  Syntax 
  3127.  
  3128.      result = RxmnSetStyle(object, style) 
  3129.  
  3130.  Synopsis 
  3131.  
  3132.      sets the style flags of an object 
  3133.  
  3134.  Parameters 
  3135.  
  3136.      object 
  3137.  
  3138.          the handle of an object 
  3139.  
  3140.      style 
  3141.  
  3142.          style flags in LONG format (see Notes) 
  3143.  
  3144.  Returns 
  3145.  
  3146.      result 
  3147.  
  3148.          1 if successful, 0 otherwise 
  3149.  
  3150.  Notes 
  3151.  
  3152.      The style is a bitwise combination of the following constants: 
  3153.  
  3154.          OBJSTYLE_NOCOPY : Cannot be copied 
  3155.          OBJSTYLE_NODELETE : Cannot be deleted 
  3156.          OBJSTYLE_NODRAG : Cannot be dragged 
  3157.          OBJSTYLE_NOSHADOW : Cannot have shadow created 
  3158.          OBJSTYLE_NOMOVE : Cannot move 
  3159.          OBJSTYLE_NOPRINT : Cannot be printed 
  3160.          OBJSTYLE_NOTDEFAULTICON : Destroy icon when object goes dormant 
  3161.          OBJSTYLE_TEMPLATE : This object is a template 
  3162.          OBJSTYLE_NOTVISIBLE : The object is hidden 
  3163.          OBJSTYLE_NORENAME : Cannot be renamed 
  3164.  
  3165.      This function is equivalent to the following call: 
  3166.  
  3167.          result = RxmnCallMethod("wpSetStyle", "BHL", object, style) 
  3168.  
  3169.  See Also 
  3170.  
  3171.      RxmnGetStyle 
  3172.  
  3173.  
  3174. ΓòÉΓòÉΓòÉ 13.59. RxmnSetTitle ΓòÉΓòÉΓòÉ
  3175.  
  3176.  
  3177.  Syntax 
  3178.  
  3179.      result = RxmnSetTitle(object, title) 
  3180.  
  3181.  Synopsis 
  3182.  
  3183.      sets the title of an object 
  3184.  
  3185.  Parameters 
  3186.  
  3187.      object 
  3188.  
  3189.          the handle of an object 
  3190.  
  3191.      title 
  3192.  
  3193.          new title 
  3194.  
  3195.  Returns 
  3196.  
  3197.      result 
  3198.  
  3199.          1 if successful, 0 otherwise 
  3200.  
  3201.  Notes 
  3202.  
  3203.      This function is equivalent to the following call: 
  3204.  
  3205.          result = RxmnCallMethod("wpSetTitle", "BHS", object, title) 
  3206.  
  3207.  See Also 
  3208.  
  3209.      RxmnGetTitle 
  3210.  
  3211.  
  3212. ΓòÉΓòÉΓòÉ 13.60. RxmnSetType ΓòÉΓòÉΓòÉ
  3213.  
  3214.  
  3215.  Syntax 
  3216.  
  3217.      result = RxmnSetType(fileObject, typeList) 
  3218.  
  3219.  Synopsis 
  3220.  
  3221.      sets the file type of a file object 
  3222.  
  3223.  Parameters 
  3224.  
  3225.      fileObject 
  3226.  
  3227.          the handle of a data file object (WPDataFile) 
  3228.  
  3229.      typeList 
  3230.  
  3231.          newline ("0a"x) delimited list of file types 
  3232.  
  3233.  Returns 
  3234.  
  3235.      result 
  3236.  
  3237.          1 if successful, 0 otherwise 
  3238.  
  3239.  Example 
  3240.  
  3241.      /*** sets the type of a file ***/ 
  3242.  
  3243.      rc = RxmnSetType(object, "C Code" || "0a"x || "Ami Pro Document") 
  3244.  
  3245.      /*** sets the type of a file from a stem list ***/ 
  3246.  
  3247.      filetype.0 = 2 
  3248.      filetype.1 = "C Code" 
  3249.      filetype.2 = "Ami Pro Document" 
  3250.  
  3251.      typeList = "" 
  3252.  
  3253.      do i = 1 to filetype.0 
  3254.          typeList = typeList || filetype.i || "0a"x 
  3255.      end 
  3256.  
  3257.      rc = RxmnSetType(object, typeList) 
  3258.  
  3259.  Notes 
  3260.  
  3261.      this function is equivalent to the following call: 
  3262.  
  3263.          result = RxmnCallMethod("wpSetType", "BHS", fileObject, typeList) 
  3264.  
  3265.  See Also 
  3266.  
  3267.      RxmnGetType 
  3268.  
  3269.  
  3270. ΓòÉΓòÉΓòÉ 13.61. RxmnUninit ΓòÉΓòÉΓòÉ
  3271.  
  3272.  
  3273.  Syntax 
  3274.  
  3275.      call RxmnUninit 
  3276.  
  3277.  Synopsis 
  3278.  
  3279.      uninitializes MNRexx library 
  3280.  
  3281.  Notes 
  3282.  
  3283.      this undeclares all MNRexx functions 
  3284.  
  3285.  See Also 
  3286.  
  3287.      RxmnInit 
  3288.  
  3289.  
  3290. ΓòÉΓòÉΓòÉ 14. Advanced Topics ΓòÉΓòÉΓòÉ
  3291.  
  3292. This section discusses advanced topics. 
  3293.  
  3294.  
  3295. ΓòÉΓòÉΓòÉ 14.1. Direct Method Calls ΓòÉΓòÉΓòÉ
  3296.  
  3297.  
  3298.  [This is for advanced users with access to the developers toolkit] 
  3299.  
  3300.  With RxmnCallMethod function, you can directly invoke SOM/WPS methods on an 
  3301.  object. 
  3302.  
  3303.  In order to convert MNRexx object handle to its object pointer, you can use 
  3304.  _WPObject 
  3305.  constant as follows: 
  3306.  
  3307.      pointer = RxmnCallMethod("wpclsQueryObject", "OOL", _WPObject, 
  3308.      objectHandle) 
  3309.  
  3310.  Here the handle is passed as a long integer, and the returned value is the 
  3311.  pointer (in LONG format) to the object identified by the given object handle. 
  3312.  
  3313.  To call a method on an object pointer, you can use 'O' as the first argument 
  3314.  type: 
  3315.  
  3316.      style = RxmnCallMethod("wpQueryStyle", "LO", pointer) 
  3317.  
  3318.  Note that you need to 'unlock' the object later by the following call: 
  3319.  
  3320.      result = RxmnCallMethod("wpUnlockObject", "BO", pointer) 
  3321.  
  3322.  Also, you are responsible for serializing access to WPS objects. 
  3323.  
  3324.  
  3325.  If you need memory pointers, you can call 'wpAllocMem' and 'wpFreeMem' as 
  3326.  follows: 
  3327.  
  3328.      memoryPointer = RxmnCallMethod("wpAllocMem", "LHDL", objectHandle, size, 
  3329.      NULL) 
  3330.  
  3331.      result = RxmnCallmethod("wpFreeMem", "BHL", objectHandle, memoryPointer) 
  3332.  
  3333.  To convert a memory address to a Rexx string, use P2R function. 
  3334.  
  3335.  
  3336. ΓòÉΓòÉΓòÉ 14.2. Class Objects ΓòÉΓòÉΓòÉ
  3337.  
  3338.  
  3339.  [This is for advanced users with access to the developers toolkit] 
  3340.  
  3341.  On initialization, MNRexx defines the following class object variables: 
  3342.  
  3343.      SOMClassMgrObject: (LONG) the unique instance of the SOM class manager 
  3344.      object in the WPS process 
  3345.      _WPObject: (LONG) WPS object class object 
  3346.  
  3347.  Using these constants with RxmnCallMethod function, you can obtain class 
  3348.  objects as follows: 
  3349.  
  3350.      _WPIcon = RxmnCallmethod("somFindClass", "OOIDD", SOMClassMgrObject, 
  3351.      "WPIcon", 0, 0) 
  3352.  
  3353.  You can invoke a class method on a class object as follows: 
  3354.  
  3355.      className = RxmnCallMethod("somGetName", "SO", _WPIcon) 
  3356.  
  3357.  See Also 
  3358.  
  3359.      RxmnCallmethod 
  3360.  
  3361.  
  3362. ΓòÉΓòÉΓòÉ 14.3. External Access to WPS ΓòÉΓòÉΓòÉ
  3363.  
  3364.  
  3365.  To access WPS objects from an external Rexx command script: 
  3366.  
  3367.      1) call SysSetObjectData utility function to send the command to be 
  3368.      executed in the WPS process to an MNRexx object; this causes a SETUP event 
  3369.      (i.e., the MNRexx script is called with 'SETUP' context string) (see 
  3370.      MNRexx Object); 
  3371.  
  3372.      2) if you need to receive the result from the MNRexx object (e.g., the 
  3373.      title of an object), use RxQueue function in your MNRexx script to push 
  3374.      the result to some queue; 
  3375.  
  3376.      3) use RxQueue function in your external script to pull the result from 
  3377.      the queue. 
  3378.  
  3379.  To access WPS objects from an external C/C++ program: 
  3380.  
  3381.      1) use WinSetObjectData instead of SysSetObjectData to send some command 
  3382.      to an MNRexx object; 
  3383.  
  3384.      2) if you need to receive the result from the MNRexx object, either use 
  3385.      RxQueue APIs or use some other form of inter-process communication.  Dave 
  3386.      Boll's famous Ydbautil package supports various IPC mechanisms in Rexx. 
  3387.  
  3388.  If your program receives drag/drop of WPS objects, send the itemID in the 
  3389.  DRAGITEM structure to an MNRexx object and use RxmnObjectFromItemID to convert 
  3390.  it to the corresponding object handle. 
  3391.  
  3392.  
  3393. ΓòÉΓòÉΓòÉ 15. Registration ΓòÉΓòÉΓòÉ
  3394.  
  3395.  
  3396.  To register MNRexx, send USD $15.00 (check or money order) with: 
  3397.  
  3398.      - the name of the product (MNRexx 1.0) 
  3399.      - your name 
  3400.      - your company or school name 
  3401.      - your postal mailing address 
  3402.      - your daytime phone number 
  3403.      - your email address (optional) 
  3404.  
  3405.  to: 
  3406.  
  3407.                                   Makoto Nagata
  3408.  
  3409.                                   P.O. Box 26228
  3410.                            San Francisco, CA 94126-6228
  3411.                                       U.S.A.
  3412.  
  3413.  
  3414.  
  3415.  A text file (register.frm) is included in the package for you convenience. 
  3416.  
  3417.  Registered users will receive all future upgrades and technical support on 
  3418.  internet for free. 
  3419.  
  3420.  
  3421. ΓòÉΓòÉΓòÉ 16. Plans ΓòÉΓòÉΓòÉ
  3422.  
  3423.  
  3424.  Future Plans 
  3425.  
  3426.      - 'pull' command support 
  3427.      - more events to be handled 
  3428.      - Rexx GUI tools (e.g., Vispro/Rexx or VX-REXX) integration (views and 
  3429.      settings pages) 
  3430.      - performance enhancements 
  3431.      - more samples 
  3432.      - integration with folder objects 
  3433.      - 'icon and text' menu items 
  3434.  
  3435.  Please note that all these depend on your support. 
  3436.  
  3437.  Your suggestions are very welcome.  Please contact the author (see 
  3438.  Introduction). 
  3439.