/*  RexxFuncHost.h   */


/*		Copyright © 1989 by Donald T. Meyer
 *		All Rights Reserved
 *
 *		This source code may be compiled and used in any software
 *		product.
 *		No portion of this source code is to be
 *		re-distributed or sold for profit without the written
 *		permission of the author, Donald T. Meyer.
 *
 *		Donald T. Meyer
 *		Stormgate Software
 *		4 Rustic Creek Court
 *		St. Peters, MO  63376
 *
 *		BIX:	donmeyer
 *		GEnie:	D.MEYER
 *		PLINK:	Stormgate
 */


#ifndef DTM_REXXHOST_H
#define DTM_REXXHOST_H


/* Include the rexx headers we may need */

#ifndef REXX_STORAGE_H
#include <rexx/storage.h>
#endif

#ifndef ERR10_001
#include <rexx/errors.h>
#endif

#ifndef REXX_RXSLIB_H
#include <rexx/rxslib.h>
#endif



struct RexxFunction {
	char	*fname;						/* The function name. */

	void	(*func)(struct RexxMsg *);	/* Vector to the function's 'C'
										 * code.
										 */

	USHORT	argcount;					/* Number of args expected.
										 * Set to -1 if don't care or
										 * will ascertain within the
										 * function.
										 */

	BOOL 	caseflag;					/* TRUE if we care about upper
										 * and lower case for the
										 * function name.
										 */
};




void SetResultString( struct RexxMsg *rexxmsg, char *string );




/*------------------------------------------------------------------*/
/*		Prototypes for functions in the Rexx Library				*/
/*------------------------------------------------------------------*/

struct RexxMsg *CreateRexxMsg( struct MsgPort *, char *, char * );

struct RexxArg *CreateArgstring( char *, ULONG );

void DeleteArgstring( struct RexxArg * );

ULONG LengthArgstring( struct RexxArg * );

void DeleteRexxMsg( struct RexxMsg * );

LONG IsRexxMsg( struct RexxMsg * );


#endif

