[<<Previous Entry]
[^^Up^^]
[Next Entry>>]
[Menu]
[About The Guide]
_evalLaunch()
Call CA-Clipper code blocks from C
------------------------------------------------------------------------------
C Prototype
#include "item.api"
ITEM _evalLaunch(
EVALINFOP evalInfoP
)
Arguments
evalInfoP is a properly set EVALINFO structure (as set by _evalNew()
and _evalPutParam()).
Returns
The item that is the result of the evaluation.
Description
The _evalLaunch() function allows you to call any code that can be
defined in a code block from C. Note also that you may call a
particular symbol by name if you pass a character string item to
_evalNew() when creating the EVALINFO structure.
_evalLaunch() requires a EVALINFO structure properly initialized via
_evalNew() with parameters placed in the structure via _evalPutParam().
Failure to follow this protocol exactly will result in catastrophe.
During the process of launching an evaluation, the Item API creates new
item references for each item placed in the parameter list. After an
_evalLaunch() call is made, you must call _evalRelease() to individually
release all of the references, or the items used as parameters will
never be released from object memory for the garbage collector.
Examples
/*
* USERDO()
* --------
*/
CLIPPER userDO( void )
{
EVALINFO info;
USHORT uiParam;
ITEM retP;
/* Get evaluation expression */
if ( PCOUNT < 1 )
{
_ret();
return;
}
else
{
_evalNew( &info, _itemParam( 1 ) );
}
/* Get parameters */
for ( uiParam=2; uiParam <= PCOUNT; uiParam++ )
{
_evalPutParam( &info, _itemParam(uiParam) );
}
/* Launch evaluation information */
retP = _evalLaunch( &info );
/* Release ITEMs associated w/eval info */
_evalRelease( &info );
_itemReturn ( retP );
_itemRelease( retP );
return;
}
Files Library is CLIPPER.LIB, header file is Item.api.
See Also:
_evalNew()
_evalPutParam()
_evalRelease()
This page created by ng2html v1.05, the Norton guide to HTML conversion utility.
Written by Dave Pearson