Using the EXITPARAM Structure
Function prototype
The function to be executed must be a function in a library with the following prototype:
void MyFunc(LPEXITPARAM lpep);
Definition of the EXITPARAM structure
The definition of the EXITPARAM structure is as follows:
struct tagExitParamStruct
{
DWORD dwSize;
DWORD dwToLen;
DWORD dwFromLen;
DWORD dwMapInstance;
void FAR * lpv;
LPSTR lpszCmdLine;
BYTE HUGE * lpDataToApp;
BYTE HUGE * lpDataFromApp;
UINT uRetryCount;
UINT uRetryInterval;
BOOL bRollback;
BOOL bCleanup;
int nReturn;
char szErrMsg[100];
char szFile[260];
void FAR * lpMapHandle;
void FAR * lpInternal;
void FAR * lpCmdStruct;
void FAR * lpAdaptParms;
void FAR * lpContext;
void FAR * lpWildcard;
void FAR * lpfnMS;
void FAR * lpMS;
DWORD dwWildcardSize;
LPSTR lpszMapDirectory;
WORD wCardNum;
WORD wCleanupAction;
WORD wScope;
UINT uUnitSize;
BOOL bBurst;
BOOL bFromRule;
BOOL bSource;
DWORD dwRecords;
};
typedef struct tagExitParamStruct EXITPARAM;
typedef struct tagExitParamStruct FAR * LPEXITPARAM;
The engine environment sets up the EXITPARAM structure and the function should fill in the result. The engine will allocate and free the memory associated with lpDataToApp. The function must allocate the memory for lpDataFromApp. For all Windows operating systems, use the Windows macro GlobalAllocPtr defined in windowsx.h. For all other operating systems, use the C-runtime malloc function. The engine will free this memory.
Component | Used as | Usage |
---|---|---|
dwSize | Input | Size (in bytes) of EXITPARAM to assure correct compatibility |
dwToLen | Input | Length (size in bytes) of lpDataToApp |
dwFromLen | Output | Length (size in bytes) of lpDataFromApp |
dwMapInstance | Not used | |
lpv | Not used | |
LpszCmdLine | Not used | |
lpDataToApp | Input | Data sent to the function. This is the third parameter of the EXIT function |
lpDataFromApp | Output | Data sent back to the server from the function |
uRetryCount | Not used | |
uRetryInterval | Not used | |
bRollback | Not Used | |
bCleanup | Not used | |
nReturn | Output | Return code based on the outcome of the function |
szErrMsg | Output | String message based on nReturn |
szFile | Not used | |
lpInternal | Not used | |
lpCmdStruct | Not used | |
lpAdaptParms | Not used | |
lpContext | Not used | |
lpWildcard | Not used | |
dwWildcardSize | Not used | |
lpszMapDirectory | Not used | |
wCardNum | Not used | |
wCleanupAction | Not used | |
wScope | Not used | |
uUnitSize | Not used | |
bBurst | Not used | |
lpfnMS | Not used. | |
lpMS | Not used | |
dwRecords | Not used |
There is no interaction with the nReturn or szErrMsg fields. However, this might change in a future release.