135 lines
6.3 KiB
Plaintext
135 lines
6.3 KiB
Plaintext
/*----------------------------------------------------------------------------*/
|
|
/* */
|
|
/* Copyright (c) 1995, 2004 IBM Corporation. All rights reserved. */
|
|
/* Copyright (c) 2005-2021 Rexx Language Association. All rights reserved. */
|
|
/* */
|
|
/* This program and the accompanying materials are made available under */
|
|
/* the terms of the Common Public License v1.0 which accompanies this */
|
|
/* distribution. A copy is also available at the following address: */
|
|
/* https://www.oorexx.org/license.html */
|
|
/* */
|
|
/* Redistribution and use in source and binary forms, with or */
|
|
/* without modification, are permitted provided that the following */
|
|
/* conditions are met: */
|
|
/* */
|
|
/* Redistributions of source code must retain the above copyright */
|
|
/* notice, this list of conditions and the following disclaimer. */
|
|
/* Redistributions in binary form must reproduce the above copyright */
|
|
/* notice, this list of conditions and the following disclaimer in */
|
|
/* the documentation and/or other materials provided with the distribution. */
|
|
/* */
|
|
/* Neither the name of Rexx Language Association nor the names */
|
|
/* of its contributors may be used to endorse or promote products */
|
|
/* derived from this software without specific prior written permission. */
|
|
/* */
|
|
/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
|
|
/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
|
|
/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
|
|
/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */
|
|
/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
|
|
/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */
|
|
/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */
|
|
/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */
|
|
/* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */
|
|
/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */
|
|
/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
|
|
/* */
|
|
/*----------------------------------------------------------------------------*/
|
|
Open Object Rexx API samples
|
|
|
|
This is the read me for the three API samples, callrxwn, callrxnt, and
|
|
rexxexit. Each sample is installed in its own directory. The wpipe samples
|
|
have their own read me file in the wpipe directory.
|
|
|
|
The following notes on compiling the samples also apply to the wpipe samples.
|
|
|
|
Make files, which are compatible with nmake, are included in each sample
|
|
directory so that you can rebuild the samples. In order to use the make files
|
|
to build the samples, you must set up the environment variables INCLUDE and
|
|
LIB.
|
|
|
|
Compilation:
|
|
------------
|
|
The environment variable INCLUDE must contain the path to rexx.h as well as
|
|
the regular compiler include paths. The rexx.h file is located in the top
|
|
level api\ directory of the ooRexx installation.
|
|
|
|
Linking:
|
|
--------
|
|
The environment variable LIB must contain the path to rexx.lib and rexxapi.lib
|
|
as well as the regular compiler library paths. These library files are
|
|
included in the same location as rexx.h, that is, in the top level api\
|
|
directory of the ooRexx installation.
|
|
|
|
Samples:
|
|
--------
|
|
|
|
callrxwn - Windows mode application
|
|
|
|
- Provides a sample call to the REXX interpreter, passing
|
|
in an environment name, a file name, and a single argument
|
|
string. A dialog box is created for the output.
|
|
|
|
- Note that you must define a REXX standard input and
|
|
output exit handler for a Windows mode application.
|
|
This is not necessary for Console mode applications, however.
|
|
|
|
|
|
callrxnt - Console mode application
|
|
|
|
- Has similar functionality to callrxwn
|
|
|
|
- Console mode applications calling Object REXX do not
|
|
require input and output exit handlers.
|
|
|
|
rexxexit - Console mode application
|
|
|
|
- Provides a sample call to the REXX interpreter, passing
|
|
in arguments from the command line. A REXX input and
|
|
output exit handler is also demonstrated.
|
|
|
|
- An example input file, testRexxExit is provided. Using that file
|
|
an invocation of rexxexit.exe would look like:
|
|
|
|
rexxexit testRexxExit "18 9"
|
|
|
|
The two numbers need to be in quotes because rexxexit no more
|
|
than two arguments, the input file name and a single argument for
|
|
the input file.
|
|
|
|
The API samples in the directories WPIPE1, WPIPE2, WPIPE3 demonstrate:
|
|
|
|
- How to register external functions from within external functions
|
|
|
|
- How you can provide external functions (written in C) in a dynamic link
|
|
library that can be accessed from Open Object Rexx (after they have been
|
|
registered)
|
|
|
|
- How data can be returned from external functions.
|
|
|
|
- How the REXX Variable Pool Interface can be used to access and modify Open
|
|
Object Rexx variables
|
|
|
|
rexxapi1
|
|
========
|
|
Start: "rexx apitest1"
|
|
Description: Registers a number of functions that produce some screen output or
|
|
return some data.
|
|
|
|
rexxapi2
|
|
========
|
|
Start: "rexx apitest2"
|
|
Description: Sets the value of a variable by using the REXX Variable Pool
|
|
Interface
|
|
|
|
rexxapi3
|
|
========
|
|
Start: "rexx apitest3"
|
|
Description: Demonstrates a more extensive use of the REXX Variable Pool
|
|
Interface
|
|
|
|
The demonstrated Open Object Rexx APIs are documented in "Chapter 2.
|
|
Classic Rexx Application Programming Interfaces" in rexxapi.pdf, "ooRexx
|
|
APIs (Application Programming Interfaces)".
|
|
|