/***********************************************************************/ /* FORMS$PLI_DEFINITIONS.PLI */ /***********************************************************************/ /* COPYRIGHT © 1988, 1989, 1991, 1994 BY DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED. THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL. */ /* Author: Digital Equipment Corporation */ /* Facility: DECforms V2.0 */ /* Item codes for REQUEST_OPTIONS item lists. */ %REPLACE forms$k_language BY 1; %REPLACE forms$k_image BY 2; %REPLACE forms$k_tracefile BY 3; %REPLACE forms$k_trace BY 4; %REPLACE forms$k_printfile BY 5; %REPLACE forms$k_efn BY 6; %REPLACE forms$k_rsb BY 7; %REPLACE forms$k_astadr BY 8; %REPLACE forms$k_astprm BY 9; %REPLACE forms$k_error_routine BY 10; %REPLACE forms$k_error_parameter BY 11; %REPLACE forms$k_no_term_io BY 12; %REPLACE forms$k_selection_label BY 13; %REPLACE forms$k_error_items_not_saved BY 14; %REPLACE forms$k_stack_size BY 15; /*********************************************************************/ /* The forms table address for the vector and memory resident form */ /* for use when they are included in the program's image */ /*********************************************************************/ DCL forms$ar_form_table ENTRY; /********************************************************/ /* Declare the routines' calling sequence. */ /********************************************************/ DCL forms$enable EXTERNAL ENTRY (ENTRY VALUE, /* Address of FORMS$AR_FORM_TABLE, or null */ CHAR(*) DESCRIPTOR, /* Display Device */ CHAR(16) DESCRIPTOR, /* Session Id */ CHAR(*) DESCRIPTOR, /* Form File */ CHAR(*) DESCRIPTOR, /* Form Name */ CHAR(25) DESCRIPTOR, /* Receive Control Text message */ FIXED BINARY, /* Receive Control Text Count */ CHAR(25) DESCRIPTOR, /* Send Control Text message */ FIXED BINARY, /* Send Control Text Count */ FIXED BINARY(15), /* Timeout */ CHAR(24) DESCRIPTOR, /* Parent Request Id */ ANY /* Request Option Item List */ ) OPTIONS(VARIABLE) RETURNS (FIXED BIN(31)); /* For the three calls FORMS$SEND, FORMS$RECEIVE, and FORMS$TRANSCEIVE, DECforms expects the record arguments to be sent by descriptor. Since PL/I will not willingly create a descriptor for a structure, you should do the following in your program: Dcl 1 Structure, 2 Field_1 ..., 2 Field_2 ..., : 2 Field_n ..., Structure_String Char(Size(Structure)) Based(Addr(Structure)); Then specify structure_string as the parameter (instead of structure). This creates structure_string pointing to the structure and PL/I will think it is a character string and pass it by descriptor without complaining. */ DCL forms$send EXTERNAL ENTRY (CHAR(16) DESCRIPTOR, /* Session Id */ CHAR(*) DESCRIPTOR, /* Send name */ FIXED BINARY, /* Count of send records */ CHAR(25) DESCRIPTOR, /* Receive Control Text message */ FIXED BINARY, /* Receive Control Text Count */ CHAR(25) DESCRIPTOR, /* Send Control Text message */ FIXED BINARY, /* Send Control Text Count */ FIXED BINARY(15), /* Timeout */ CHAR(24) DESCRIPTOR, /* Parent Request Id */ ANY, /* Request Option Item List */ CHAR(*) DESCRIPTOR /* Send records, both data and shadow */ ) OPTIONS(VARIABLE) RETURNS (FIXED BIN(31)); DCL forms$receive EXTERNAL ENTRY (CHAR(16) DESCRIPTOR, /* Session Id */ CHAR(*) DESCRIPTOR, /* Receive name */ FIXED BINARY, /* Count of receive records */ CHAR(25) DESCRIPTOR, /* Receive Control Text message */ FIXED BINARY, /* Receive Control Text Count */ CHAR(25) DESCRIPTOR, /* Send Control Text message */ FIXED BINARY, /* Send Control Text Count */ FIXED BINARY(15), /* Timeout */ CHAR(24) DESCRIPTOR, /* Parent Request Id */ ANY, /* Request Option Item List */ CHAR(*) DESCRIPTOR /* Receive records, both data and shadow */ ) OPTIONS(VARIABLE) RETURNS (FIXED BIN(31)); DCL forms$transceive EXTERNAL ENTRY (CHAR(16) DESCRIPTOR, /* Session Id */ CHAR(*) DESCRIPTOR, /* Send name */ FIXED BINARY, /* Count of send records */ CHAR(*) DESCRIPTOR, /* Receive name */ FIXED BINARY, /* Count of receive records */ CHAR(25) DESCRIPTOR, /* Receive Control Text message */ FIXED BINARY, /* Receive Control Text Count */ CHAR(25) DESCRIPTOR, /* Send Control Text message */ FIXED BINARY, /* Send Control Text Count */ FIXED BINARY(15), /* Timeout */ CHAR(24) DESCRIPTOR, /* Parent Request Id */ ANY, /* Request Option Item List */ CHAR(*) DESCRIPTOR /* Send and Receive records, both data and shadow */ ) OPTIONS(VARIABLE) RETURNS (FIXED BIN(31)); DCL forms$disable EXTERNAL ENTRY (CHAR(16) DESCRIPTOR, /* Session Id */ CHAR(25) DESCRIPTOR, /* Receive Control Text message */ FIXED BINARY, /* Receive Control Text Count */ CHAR(25) DESCRIPTOR, /* Send Control Text message */ FIXED BINARY, /* Send Control Text Count */ FIXED BINARY(15), /* Timeout */ CHAR(24) DESCRIPTOR, /* Parent Request Id */ ANY /* Request Option Item List */ ) OPTIONS(VARIABLE) RETURNS (FIXED BIN(31)); DCL forms$cancel EXTERNAL ENTRY (CHAR(16) DESCRIPTOR, /* Session Id */ ANY /* Request Option Item List */ ) OPTIONS(VARIABLE) RETURNS (FIXED BIN(31));