HP OpenVMS Systems Documentation
DECwindows Motif for OpenVMS Guide to Non-C Bindings
This guide supplies non-C bindings for programmers developing DECwindows Motif for OpenVMS applications in languages other than C. Pascal and Fortran are supported. Programmers can choose from among OSF/Motif and ancillary widgets supplied by Digital.
Revision/Update Information: This is a revised manual.
Operating System: OpenVMS AXP Version 1.5 VMS Version 5.5--2
Software Version: DECwindows Motif Version 1.2 for OpenVMS AXP DECwindows Motif Version 1.2 for OpenVMS VAX
Digital Equipment Corporation
The information in this document is subject to change without notice and should not be construed as a commitment by Compaq Computer Corporation. Compaq Computer Corporation assumes no responsibility for any errors that may appear in this document.
The software described in this document is furnished under a license and may be used or copied only in accordance with the terms of such license.
The following are trademarks of Compaq Computer Corporation: Alpha AXP, AXP, Bookreader, DECwindows, Digital, OpenVMS, VAX, VAX DOCUMENT, VMS, and the DIGITAL logo.
The following are third-party trademarks:
Open Software Foundation is a trademark, and OSF/Motif and Motif are registered trademarks of the Open Software Foundation, Inc.
X Window System is a trademark of the Massachusetts Institute of Technology.
All other trademarks and registered trademarks are the property of their respective holders.
This document is available on CD-ROM.
This document was prepared using DECdocument, Version V3.3-1e.
This manual is intended for programmers who develop DECwindows Motif applications in languages other than C. Use this guide in conjunction with the following reference manuals:
The bindings are presented in alphabetical order, followed by the associated routines in a separate chapter. This guide is divided into four parts and contains the following chapters:
In addition to the reference information, see also:
The following conventions are used in this manual:
In this manual, every use of DECwindows and DECwindows Motif refers to DECwindows Motif for OpenVMS software.
In this manual, every use of OpenVMS AXP means the OpenVMS AXP operating system, every use of OpenVMS VAX means the OpenVMS VAX operating system, and every use of OpenVMS means both the OpenVMS AXP operating system and the OpenVMS VAX operating system.
|Routine entry point name||The name is shown in all capital letters with the prefix X. The routine entry point name is required.|
|Equal sign||For specific return values, the equal sign is required.|
|Parentheses||Open and close parentheses surround the argument list in a routine call. Parentheses are required.|
|Argument names||Argument names, including names of return arguments, are always shown in lowercase characters. All arguments not enclosed by brackets () are required. Argument names must be listed in the same order in your program as they appear in the format.|
|Spaces||A line break follows the entry point name and the arguments. A comma, followed by a space separate each argument. Spaces are not required.|
|Brackets||Brackets () surround optional arguments. Commas that appear inside brackets are optional and appear only when the optional argument appears. Brackets are not required.|
|Commas||Commas must appear between required arguments. When commas appear inside brackets (), they appear only when the optional argument appears.|
A table follows the OpenVMS format listing. The table lists, in order, each argument name, usage, data type, access, and mechanism.
The Usage column specifies the general OpenVMS binding argument type. For example, if the argument is a resource identifier, the Usage field is "identifier." This field provides additional information about the argument that is helpful when declaring the argument within a program. See Table 1-2 for a list of usage entries used in Xlib routines.
|address||An unsigned longword containing the virtual address of data or code, but not of a procedure entry mask (which is a procedure entry).|
|any||An unsigned longword containing either data or a pointer to data.|
|array||An array with the specific description of its elements provided in the argument description.|
|Boolean||An unsigned longword with the predefined values of 1 for true and 0 for false.|
|byte||A signed byte integer.|
|uns byte||An unsigned byte integer.|
|char string||A string of 0 to 65,535 8-bit characters.|
Unsigned longword specifying that a predefined condition value will be
returned in R0.
The cond value status return is SS$_NORMAL for success; the return value can be either zero or an OpenVMS condition code for failure.
|identifier||A value used to refer to a resource. It is originally returned by the system. In the OpenVMS binding, an identifier is a longword integer (unsigned).|
|longword||A signed longword integer.|
|uns longword||An unsigned longword integer.|
|mask longword||An unsigned longword interpreted as a bit mask.|
|procedure||An entry mask to a procedure.|
|record||A data structure with the specific description of the structure provided in the argument description.|
|word||A signed word integer.|
|uns word||An unsigned word integer.|
The Data Type column specifies the standard OpenVMS data type of the argument. For example, if the argument is a resource identifier, the data type is "longword (unsigned)." If the argument has a predefined value, it is provided in the description of the argument.
The Access column specifies the way in which the called routine accesses the argument. For example, when the argument is passed as input, the access is "read only" for both bindings and when the argument is returned by the routine, the access is "write only" for both bindings. See Table 1-3 for a list of access entries used in the Xlib routines.
|read||Input data required by the routine to perform its operation must be readable. When an argument specifies input data, the access entry is readable. The routine cannot write data back to this argument.|
|write||Output data returned by the routine to a specific location. When an argument specifies output data, the access entry is writable. The routine does not read the contents of the location either before or after it writes into the location.|
|modify||The routine reads the input data, which it uses in its operation, and then overwrites the input data with the results (the output data) of the operation. Thus, when the routine completes execution, the input data specified by the argument is lost.|
The Mechanism column specifies the passing mechanism used by the called routine. For example, when the argument is the value itself, the mechanism is "by value"; when the argument is a pointer to the value, the mechanism is "by reference." See Table 1-4 for a complete list of mechanism entries used in the Xlib routines.
|value||The argument contains the actual data to be used by the routine. Note that because an argument is only one longword in length, only data that can be represented in one longword can be passed by value.|
|reference||The argument contains the address of the data to be used by the routine. The argument is a pointer to the actual data.|
|descriptor||The argument contains the address of a descriptor. A descriptor consists of two or more longwords (depending on the type of descriptor used), which describes the location, length, and the OpenVMS standard data type of the data to be used by the called routine. The argument is a pointer to a descriptor that itself is a pointer to the actual data.|