Convert2Normal

 (Available in 01 TS COM - TS_COM_VariantArg)

Source

METHOD Convert2Normal( ) AS LOGIC PASCAL CLASS TS_VariantArg
LOCAL lRetVal AS LOGIC
   TSTrace Enter
   DO CASE
   CASE SELF:_TYPEOF==TS_USUAL2VARIANT_MAKE_NORMAL
      lRetVal:=TRUE
   CASE SELF:_WinVariantArgBot==NULL_PTR
      TSTrace Warning "SELF:_WinVariantArgBot==NULL_PTR"
      lRetVal:=FALSE
   CASE SELF:_WinVariantArgTop==NULL_PTR
      TSTrace Warning "SELF:_WinVariantArgTop==NULL_PTR"
      lRetVal:=FALSE
   CASE SELF:_TYPEOF==TS_USUAL2VARIANT_MAKE_VARIANT
      IF LOGIC( _CAST, MemFree( SELF:_WinVariantArgBot ) )
         TSTrace Warning "LOGIC(_CAST,MemFree(SELF:_WinVariantArgBot))"
      END
      SELF:_WinVariantArgBot:=SELF:_WinVariantArgTop
      SELF:_WinVariantArgTop:=NULL_PTR
      SELF:_TYPEOF:=TS_USUAL2VARIANT_MAKE_NORMAL
      lRetVal:=TRUE
   CASE SELF:_TYPEOF==TS_USUAL2VARIANT_MAKE_BYREF
      IF LOGIC( _CAST, MemFree( SELF:_WinVariantArgBot ) )
         TSTrace Warning "LOGIC(_CAST,MemFree(SELF:_WinVariantArgBot))"
      END
      SELF:_WinVariantArgBot:=SELF:_WinVariantArgTop
      SELF:_WinVariantArgTop:=NULL_PTR
      SELF:_TYPEOF:=TS_USUAL2VARIANT_MAKE_NORMAL
      lRetVal:=TRUE
   OTHERWISE
      TSTrace Warning "SELF:_Type<>TS_USUAL2VARIANT_MAKE_NORMAL .AND. SELF:_Type<>TS_USUAL2VARIANT_MAKE_VARIANT " ; ...
     ... +".AND. SELF:_Type<>TS_USUAL2VARIANT_MAKE_BYREF"
      lRetVal:=FALSE
   END
   TSTrace Leave
RETURN lRetVal