Integration Guide

Table Of Contents
Customizing the PSS System Software
______________________________________________________________________________
WaveWorks PSS, Integration Guide, 1.10 Page 105
© 2000, Symbol Technologies, Inc. February 1, 2000
Writing custom COM Objects requires a solid programming background, preferably using Visual
C++ and the ATL wizard.
9.4 User Exit DLL
A DLL, PssUserExits.dll, is provided which allows integration teams to customize the software
for a given installation. This mechanism is equivalent to the User Exits used in the PSA
software. The DLL contains functions that have been built into the code, but that, in most cases,
contain stubs that only log a debug level message to identify that the function was called. The
integrator is then allowed to add appropriate code to the functions and rebuild the dll.
The C++ language header file PssUserExits.h documents the intended purpose of each function,
the detail of the function interfaces, and the return status codes expected by the base PSS
software. It also documents how the various return code values will affect the operation of the
base PSS software when the function returns.
Each User Exit function is implemented in a separate C++ source file named
<UserExitName>.cpp. This C++ source file contains the stub code for the function.
9.4.1 Common Information
All methods should return one of three return status codes as described below. The return code
is the last argument in the call list to the User Exit function.
The following description of standard arguments which are passed to all user exits applies to
C++ modules only. User Exits called from "C" only code will not include the arguments which
are C++ objects.
A C++ source module with the same name as the function name is supplied with a stub
implementation routine for the User Exit. The stub routine "includes" the PssUserExits.h file to
retrieve the function definition. All stubs return status UE_CONTINUE to the calling routine.
Many of the stub routines log a debug level message to the PSS System Log with the values of
all the input arguments. This stub code can be reviewed to see how to use the CPssMsgLog
object to write messages to the PSS System Log. See also the following section "Using the
CPssMsgLog Class."
If a "Preprocess" User Exit needs to pass information to a "Postprocess" User Exit for the same
PSS function (PreProcessRecord -> PostProcessRecord), it can be maintained in static storage in
the dll. All other information exchange between user exits cannot safely rely on executing
within the same instance of the dll. In those cases the User Exits must use other mechanisms for
sharing information between user exit functions.