Hi there,
if working with the Windows version of Object Rexx it is very worthwhile to use
Object Rexx for remote controlling Windows applications via ActiveX/OLE-automation.
However, many times it is very hard to find the documentation about the interfaces
to such Windows programs. This is where the utility "rgf_oleinfo.hta" comes into
play: this is a set of Object Rexx programs (one embedded in HTML) which allows
interrogating such ActiveX/OLE-programs and renders the results as HTML files. This
has the benefit, that one is able to print the results with the help of the browser,
thereby gaining a printed documentation of those interfaces. Something, at least I
like to have myself.
If you want to see how such a rendering may look like, here is a rendering about
the interfaces the Microsoft Internet Explorere (MSIE) publishes:
http://wi.wu-wien.ac.at/rgf/rexx/orx13/tmp/InternetExplorer.Application_0.html
... full rendering
http://wi.wu-wien.ac.at/rgf/rexx/orx13/tmp/InternetExplorer.Application_1.html
... compact rendering
Should the layout be improvable from your point of view, then mostlikely it is
sufficient for you to merely change/adapt the supplied cascading style sheet (CSS),
a text file named "rgf_oleinfo.css". CSS even allow for defining formatting rules
depending on the media, e.g. screen and printer. So, it may be worthwhile to look
into this technology (cf. http://www.w3c.org).
---
You need Object Rexx at level 2.1.2, the update (available since 2002-12)can be
downloaded via the "Support download" section at:
http://www-3.ibm.com/software/ad/obj-rexx/support.html
The Object Rexx programs for querying the ActiveX/OLE-interfaces with Object Rexx
are located in the archive:
http://wi.wu-wien.ac.at/rgf/rexx/orx13/tmp/rgf_oleinfo20030103.zip
The Object Rexx utilities (all source code given) needed are stored in the following archive:
http://wi.wu-wien.ac.at/rgf/rexx/orx08/orx8_99.zip
their documentation can be found in:
http://wi.wu-wien.ac.at/rgf/rexx/orx08/Part1.pdf
http://wi.wu-wien.ac.at/rgf/rexx/orx08/Part2.pdf
Installation
- unzip the archives (make sure PATH points to the utility programs of orx8_99)
===> "rgf_oleinfo.hta" - HTML-Browser-Interface
- use the Microsoft Internet Explorer 6.0 or higher - MSIE - (it is a Windows Scripting
Host - WSH-application) to load the file "rgf_oleinfo.hta" (the extension ".hta"
denotes "HTML-applications")
- should there be problems at runtime to find Object Rexx programs or classes, make
sure the environment variable "PATH" points to the utility programs of orx8_99;
if the problems persist, change the security settings of MSIE such, that your
locally stored files/programs can execute without restrictions
===> "rgf_oleconstants.rex" - utility to create a ::requires-file for OLE constants
- usage: rgf_oleconstants appid/clsid [outfile]
appid/clsid ... OLE/ActiveX application ID or CLSID
outfile ....... optional name of the outputfile, otherwise STDOUT is used
use the above outfile in a "::requires" directive
which then allows you to use the defined constants, e.g.
.ole.const~SWC_3RDPARTY
example: rexx rgf_oleconstants InternetExplorer.Application msie_const.rex
... then, whenever you need to access MSIE-constants, then merely use
::requires msie_const.rex
and refer to them e.g. like
.ole.const~csc_navigateBack
hint: one may use any combinations of such created files, as they all use the
same directory object to map the constant names to their values (ie. you
may ::require as many OLE-constant Rexx-files as you need
===> "rgf_olefinfo.rex" - utility (command line & function) to create
HTML-files about OLEObjects on the fly
Additional infos to the supplied utility "rgf_oleinfo.rex"
- creates a HTML-file containing the published interfaces of ActiveX/OLE objects
- optionally starts and runs MSIE showing the results of the analysis
- can be called from Object Rexx programs, e.g. to get infos at runtime about
ActiveX/OLE objects (type "VT_DISPATCH"), here's the syntax:
res=rgf_oleinfo(app_name | ole_object [, [header] [, [mode] [, [display]]]] )
... invocation as a function, e.g. from *any* running Object Rexx program,
returns .true, if OLEObject could get created|interrogated, .false else
where:
app_name ... OLE/ActiveX: a string denominating either PROGID or CLSID
or ole_object ... OLE/ActiveX-object to interrogate
header ... HTML-heading, if 1st argument is an OLE-object
mode ... 0|1 full (0) or compact=default (1) listing
display ... 0|1 no display (0) or display=default (1) with Internet Explorer
example (called from a running Rexx program):
ole=.OleObject~new("InternetExplorer.Application")
success=rgf_oleinfo(ole, "Interfaces for the Internet Explorer")
- can be called from the command line as well
rexx rgf_oleinfo.rex app_name [mode [display]]
where:
app_name ... OLE/ActiveX: a string denominating either PROGID or CLSID
mode ... 0|1 full=default (0) or compact (1) listing
display ... 0|1 no display (0) or display=default (1) with Internet Explorer
example (command-line):
rexx rgf_oleinfo InternetExplorer.Application 1 1
---
Please post any comments, problems, qeustions, etc. here in news:comp.lang.rexx
---rony
2003-01-03 (Show contents of this directory.)