Send

 (Available in 01 TS COM - TS_COM_DelegateIDispatch)

Purpose

Invoke a method, Return value as usual

Syntax

oObject:=oDelegateIDispatch:Send( #METHOD [,uValue[,...] ] )

Arguments

usymName
SYMBOL
[uParam1..uParamN]
USUAL

Description

Invoke a method, Return value as usual. When it is known that the method will return a interface object the the 'SendCreateInstance' method should be used. When this method returns an objet it will always be an instance of 'TS_DelegateIDispatch'.

Returns

OBJECT, Method return value

Example

METHOD CAMethod( [uParm,...] ) CLASS SomeClass
RETURN SELF:Send( #METHOD [,uParm[,...] ] )

Source

METHOD Send( usymName ) CLASS TS_DelegateIDispatch
LOCAL dwPCount AS DWORD
LOCAL symName AS SYMBOL
LOCAL uRetVal AS USUAL
LOCAL aArgs AS ARRAY
LOCAL X AS DWORD
   TSTrace Enter usymName
   IF SELF:FInit
      symName:=usymName
      dwPCount:=PCOUNT( )
      IF dwPCount>1U
         aArgs:=ArrayCreate( dwPCount-1U )
         FOR X:=2U UPTO dwPCount
            aArgs[ X-1U ]:=USUAL( _CAST, _GETMPARAM( X ) )
         NEXT
         uRetVal:=SELF:_Send( NULL_SYMBOL, symName, aArgs, ALen ; ...
        ... ( aArgs ) )
      ELSE
         uRetVal:=SELF:_Send( NULL_SYMBOL, symName, NULL_ARRAY ; ...
        ... , 0U )
      END
   ELSE
      TSTrace Warning "!SELF:FInit"
      uRetVal:=NIL
   END
   TSTrace Leave usymName
RETURN uRetVal