IVarPutCreateInstance

 (Available in 01 TS COM - TS_COM_DelegateIDispatch)

Purpose

Set a property value, Return value as object

Syntax

oObject:=oDelegateIDispatch:IVarPutCreateInstance( #MyObject, #Item, uValue  ; ...
...)

Arguments

symClass
SYMBOL
symIVar
SYMBOL
uValue
USUAL

Description

THIS TYPE OF PROPERTY GET IS NOT SUPPORTED BY STANDAARD COM INTERFACES

Set a property value, Return value as object, The method 'IVarPut' could be used to return the same value, except the this method will instanciate a object of the specified class ( 'symClass' ). For the same property the 'IVarPutArgs' method will return an instance of 'TS_DelegateIDispatch'

Returns

OBJECT, Property value

Example

ASSIGN CAItem( uParm ) CLASS SomeClass
RETURN SELF:IVarPutCreateInstanceArgs( #ItemObject, #Item, uParm  ; ...
...)

Source

METHOD IVarPutCreateInstance( symClass AS SYMBOL, symIVar AS SYMBOL, uValue AS USUAL  ; ...
...) CLASS TS_DelegateIDispatch
LOCAL uRetVal AS USUAL
LOCAL aArgs AS ARRAY
   TSTrace Enter symIVar
   IF SELF:FInit
      DO CASE
      CASE Empty( symClass )
         aArgs:=ArrayCreate( 1U )
         aArgs[ 1U ]:=USUAL( _CAST, uValue )
         uRetVal:=SELF:_IVarPut( NULL_SYMBOL, symIVar, aArgs,  ; ...
        ... 1U )
         aArgs:=NULL_ARRAY
      CASE IsClass( symClass )
         aArgs:=ArrayCreate( 1U )
         aArgs[ 1U ]:=USUAL( _CAST, uValue )
         uRetVal:=SELF:_IVarPut( symClass, symIVar, aArgs, 1U  ; ...
        ... )
         aArgs:=NULL_ARRAY
      OTHERWISE
         TSTrace Warning "!IsClass(symClass)"
         uRetVal:=NIL
      END
   ELSE
      TSTrace Warning "!SELF:FInit"
      uRetVal:=NIL
   END
   TSTrace Leave symIVar
RETURN uRetVal