Macro: SEND$CMD
#IFSAME !1 !2
#IFDEF !3 // if a variable, constant or expression...it's defined
OBJECT$SEND$DEFINE !3
#ELSE
#IFDEF !3.OBJ // old style: If global object or defined w/ .obj (ugh)
OBJECT$SEND$DEFINE !3.OBJ
#ELSE
#IFDEF GET_!3 // if defined as a function
#IF (GET_!3>$40000000) // and an object access method
// this is where we can get tricky and use access methods
#IFDEF USE$NEAR$OBJECT
OBJECT$SEND$DEFINE (obj(GET_!3))
#ELSE
OBJECT$SEND$DEFINE (!3(Current_object))
#ENDIF
#ELSE // if defined as a function but not an access method. This is an error
#ERROR 300 Invalid Object reference
#ENDIF
#ELSE
// not yet defined. We could either forward ref as object or
// declare an error. For now let's just do an error.
#ERROR 300 Invalid Object reference
// here is how we would forward ref as obj
//!A [] OBJ$SEND |CI0 |VL
//#FREF (!3(Current_object)) !a
#ENDIF
#ENDIF
#ENDIF
#ELSE
!A [] OBJ$SEND CURRENT_OBJECT |VL
#ENDIF