=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Command: Register_Procedure Message {FOR Class} {{Type Argument} ...} Parameters: Description: =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#IFDEF UI.EXISTS #ELSE USE UI #ENDIF #IFSAME GLOBAL !2 !3 // procedure or procedure set #ERROR DFERR_COMP_ILLEGAL_METHOD_DEFINTION GLOBAL PROCEDURES CANNOT BE REGISTERED #ELSE #IFSAME !1 SET // Error if already defined as global #IFDEF SET_!2 #IF (SET_!2<0) #ERROR DFERR_COMP_ILLEGAL_METHOD_DEFINTION Set !2 is already defined as a global message #ENDIF #ENDIF // Make sure the argument list is correct CHECK$METHOD$ARGUMENT$LIST !3 !4 !5 !6 !7 !8 !9 // Even if there were errors parsing the argument list, try to make the symbol so that we resolve fwd refs correctly. #IFDEF MANGLE_NAMES // For mangling, #MARG is used to read the line and parse the argument list. #IFSAME OVERLOADED !3 !4 !5 !6 !7 !8 !9 #IFDEF SET_!2 #ERROR DFERR_COMP_ILLEGAL_METHOD_DEFINTION This Method Was Previously Defined As Non-Overloaded #ENDIF // #MARG returns the mangled name in !? which gets new message number. // we don't support Byref with overloading #IFSAME BYREF !3 !4 !5 !6 !7 !8 !9 #ERROR DFERR_COMP_ILLEGAL_METHOD_DEFINTION "BYREF not allowed in overloaded methods" #ENDIF #MARG SET_!2 !3 !4 !5 !6 !7 !8 !9 MESSAGE$ADDRESS !? // only create overloaded symbol if first time #IFNDEF SET_!2_OVERLOADED #REPLACE SET_!2_OVERLOADED |CI1 #ENDIF #ELSE #IFDEF SET_!2_OVERLOADED #ERROR DFERR_COMP_ILLEGAL_METHOD_DEFINTION This Method Was Previously Defined As Overloaded #ENDIF MESSAGE$ADDRESS SET_!2 #ENDIF #ELSE MESSAGE$ADDRESS SET_!2 #ENDIF #ELSE // check for already defined as global #IFDEF MSG_!1 #IF (MSG_!1<0) #ERROR DFERR_COMP_ILLEGAL_METHOD_DEFINTION MSG !1 is already defined as a global message #ENDIF #ENDIF // Check the argument list first CHECK$METHOD$ARGUMENT$LIST !2 !3 !4 !5 !6 !7 !8 !9 // Likewise for messages with MSG prefix. #MARG is again used to parse the register_procedure line. #IFDEF MANGLE_NAMES #IFSAME OVERLOADED !2 !3 !4 !5 !6 !7 !8 !9 #IFDEF MSG_!1 #ERROR DFERR_COMP_ILLEGAL_METHOD_DEFINTION This Method Was Previously Defined As Non-Overloaded #ENDIF // #MARG returns the mangled name in !? which gets new message number. // we don't support Byref with overloading #IFSAME BYREF !2 !3 !4 !5 !6 !7 !8 !9 #ERROR DFERR_COMP_ILLEGAL_METHOD_DEFINTION "BYREF not allowed in overloaded methods" #ENDIF #MARG MSG_!1 !2 !3 !4 !5 !6 !7 !8 !9 MESSAGE$ADDRESS !? // only create overloaded symbol if first time #IFNDEF MSG_!1_OVERLOADED #REPLACE MSG_!1_OVERLOADED |CI1 #ENDIF #ELSE #IFDEF MSG_!1_OVERLOADED #ERROR DFERR_COMP_ILLEGAL_METHOD_DEFINTION This Method Was Previously Defined As Overloaded #ENDIF MESSAGE$ADDRESS MSG_!1 #ENDIF #ELSE MESSAGE$ADDRESS MSG_!1 #ENDIF #ENDIF #ENDIF