264 IBM Content Manager OnDemand Guide
11.5.1  User exit header file (arscsxit.h)
Before you write the user exit, it is important to study the header file arscsxit.h. This file is in 
the same exits directory as the sample user exit source code. This file contains the structure 
and function declarations for the customized Content Manager OnDemand user exits. Also, 
instructions are included to activate the user exit after it is compiled.
The first part of the header file is a declaration of all of the structures and variables that are 
used. Example 11-9 shows several of the common structures that are used in the functions 
declarations.
Example 11-9   Common structure that is defined in the arscsxit.h header file
/*********************************************************************/   
/* COMMON STRUCTURES                                                 */   
/*********************************************************************/   
#define ARCCSXIT_MAX_SRVR_MESSAGE_SIZE 1024                               
                                                                          
#if defined(AIX) || defined(HPUX) || defined(OS390) || defined(CICS)      
 #define ARCCSXIT_PATH_MAX 1023                                           
#elif defined(LINUX)                                                      
 #define ARCCSXIT_PATH_MAX 4096                                           
#elif defined(SUNOS) || defined(__OS400__)                                
 #define ARCCSXIT_PATH_MAX 1024                                           
#elif defined(WIN32)                                                      
 #define ARCCSXIT_PATH_MAX 260                                            
#endif                                                                    
                                                                          
typedef struct _ArcCSXitApplGroup                                         
{                                                        
   char   *name;                                         
   ArcI32 agid;                                          
   char   *agid_name;                                    
} ArcCSXitApplGroup;                                     
                                                         
typedef struct _ArcCSXitApplGroupU                       
{                                                        
   ArcChar *name;                                        
   ArcI32  agid;                                         
   ArcChar *agid_name;                                   
} ArcCSXitApplGroupU;                                    
                                                         
typedef ArcU8 ArcCSXitDocType;                           
#define ARCCSXIT_DOC_TYPE_AFP     (ArcCSXitDocType) 0x41 
#define ARCCSXIT_DOC_TYPE_BMP     (ArcCSXitDocType) 0x42 
#define ARCCSXIT_DOC_TYPE_EMAIL   (ArcCSXitDocType) 0x45 
#define ARCCSXIT_DOC_TYPE_GIF     (ArcCSXitDocType) 0x47 
#define ARCCSXIT_DOC_TYPE_JFIF    (ArcCSXitDocType) 0x4A 
#define ARCCSXIT_DOC_TYPE_DJDE    (ArcCSXitDocType) 0x4B 
#define ARCCSXIT_DOC_TYPE_LINE    (ArcCSXitDocType) 0x4C 
#define ARCCSXIT_DOC_TYPE_META    (ArcCSXitDocType) 0x4D 
#define ARCCSXIT_DOC_TYPE_NONE    (ArcCSXitDocType) 0x4E 
#define ARCCSXIT_DOC_TYPE_ODDOC   (ArcCSXitDocType) 0x4F 
#define ARCCSXIT_DOC_TYPE_PCX     (ArcCSXitDocType) 0x50 
#define ARCCSXIT_DOC_TYPE_PDF     (ArcCSXitDocType) 0x52 
#define ARCCSXIT_DOC_TYPE_PNG     (ArcCSXitDocType) 0x51 
#define ARCCSXIT_DOC_TYPE_SCS     (ArcCSXitDocType) 0x53 
#define ARCCSXIT_DOC_TYPE_SCS_EXT (ArcCSXitDocType) 0x58 
#define ARCCSXIT_DOC_TYPE_TIFF    (ArcCSXitDocType) 0x54 
#define ARCCSXIT_DOC_TYPE_USRDEF  (ArcCSXitDocType) 0x55