00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef _H_msgfun
00024 #define _H_msgfun
00025
00026 typedef struct handlerSlotReference
00027 {
00028 long classID;
00029 long slotID;
00030 } HANDLER_SLOT_REFERENCE;
00031
00032 #ifndef _H_object
00033 #include "object.h"
00034 #endif
00035 #include "msgpass.h"
00036
00037 #define BEGIN_TRACE ">>"
00038 #define END_TRACE "<<"
00039
00040
00041
00042
00043 #define MAROUND 0
00044 #define MBEFORE 1
00045 #define MPRIMARY 2
00046 #define MAFTER 3
00047 #define MERROR 4
00048
00049 #define LOOKUP_HANDLER_INDEX 0
00050 #define LOOKUP_HANDLER_ADDRESS 1
00051
00052 #ifdef LOCALE
00053 #undef LOCALE
00054 #endif
00055
00056 #ifdef _MSGFUN_SOURCE_
00057 #define LOCALE
00058 #else
00059 #define LOCALE extern
00060 #endif
00061
00062 LOCALE void UnboundHandlerErr(void *);
00063 LOCALE void PrintNoHandlerError(void *,char *);
00064 LOCALE int CheckHandlerArgCount(void *);
00065 LOCALE void SlotAccessViolationError(void *,char *,intBool,void *);
00066 LOCALE void SlotVisibilityViolationError(void *,SLOT_DESC *,DEFCLASS *);
00067
00068 #if ! RUN_TIME
00069 LOCALE void NewSystemHandler(void *,char *,char *,char *,int);
00070 LOCALE HANDLER *InsertHandlerHeader(void *,DEFCLASS *,SYMBOL_HN *,int);
00071 #endif
00072
00073 #if (! BLOAD_ONLY) && (! RUN_TIME)
00074 LOCALE HANDLER *NewHandler(void);
00075 LOCALE int HandlersExecuting(DEFCLASS *);
00076 LOCALE int DeleteHandler(void *,DEFCLASS *,SYMBOL_HN *,int,int);
00077 LOCALE void DeallocateMarkedHandlers(void *,DEFCLASS *);
00078 #endif
00079 LOCALE unsigned HandlerType(void *,char *,char *);
00080 LOCALE int CheckCurrentMessage(void *,char *,int);
00081 LOCALE void PrintHandler(void *,char *,HANDLER *,int);
00082 LOCALE HANDLER *FindHandlerByAddress(DEFCLASS *,SYMBOL_HN *,unsigned);
00083 LOCALE int FindHandlerByIndex(DEFCLASS *,SYMBOL_HN *,unsigned);
00084 LOCALE int FindHandlerNameGroup(DEFCLASS *,SYMBOL_HN *);
00085 LOCALE void HandlerDeleteError(void *,char *);
00086
00087 #if DEBUGGING_FUNCTIONS
00088 LOCALE void DisplayCore(void *,char *,HANDLER_LINK *,int);
00089 LOCALE HANDLER_LINK *FindPreviewApplicableHandlers(void *,DEFCLASS *,SYMBOL_HN *);
00090 LOCALE void WatchMessage(void *,char *,char *);
00091 LOCALE void WatchHandler(void *,char *,HANDLER_LINK *,char *);
00092 #endif
00093
00094 #endif
00095
00096
00097
00098
00099
00100
00101