 
#ifndef __dl_event_h
#define __dl_event_h
#ifdef __cplusplus
extern "C" {
#endif
#ifndef __dl_core_h
#include "Core.h"
#endif
#ifndef __dl_wimp_h
#include "Wimp.h"
#endif
typedef BOOL (*event_handler) (event_pollblock *poll_block, void *reference);
#ifdef _DeskLib_SDLS
extern event_pollmask *Event__Ref_mask( void);
extern int *Event__Ref_taskhandle( void);
extern unsigned int *Event__Ref_wimpversion( void);
extern char *Event__Ref_taskname( void);
extern event_pollblock *Event__Ref_lastevent( void);
#endif
#if defined( _DeskLib_SDLS) && !defined( _DeskLib_Event)
#define event_mask (*Event__Ref_mask())
#define event_taskhandle (*Event__Ref_taskhandle())
#define event_wimpversion (*Event__Ref_wimpversion())
#define event_taskname (Event__Ref_taskname())
#define event_lastevent (*Event__Ref_lastevent())
#else
extern event_pollmask event_mask; 
extern int event_taskhandle; 
extern unsigned int event_wimpversion; 
extern char event_taskname[40]; 
extern event_pollblock event_lastevent; 
#endif
extern BOOL Event_Claim(event_type eventtype,
window_handle window, icon_handle icon,
event_handler handler, void *reference);
extern BOOL Event_Release(event_type event,
window_handle window, icon_handle icon,
event_handler handler, void *reference);
extern void Event_ReleaseWindow(window_handle window);
extern void Event_Process(event_pollblock *event);
extern void Event_Poll(void);
extern void Event_Initialise(char *taskname);
extern void Event_Initialise3(char *taskname, int version, int *messages);
extern void Event_CloseDown(void);
typedef BOOL (*event_claimorreleasefn)( 
event_type eventtype, 
window_handle window, 
icon_handle icon, 
event_handler handler, 
void *reference
);
#ifdef __cplusplus
}
#endif
#endif
