FInit

 (Available in 01 TS COM - TS_COM_InterfaceSafe)

Purpose

Test if the enclosed interface is valid

Syntax

// Then start using it
IF oSomeObject:FInit 

Description

This property will be TRUE if the object is valid and if the enclosed COM interface is available. The flag should be checked before using the enclosed interface.

Example

oMailItem3:=oMailItem2:CMMove( oPrivateFolder )
IF oMailItem3<>NULL_OBJECT .AND. oMailItem3:FInit
   oMailItem3:CMSave( )
   InfoBox{ NIL, 'ItemId', oMailItem3:CAEntryID+" From "+oMailItem3:CASenderName  ; ...
  ... }:Show( )
   oNameSpace:=oApplication:NameSpace
   IF oNameSpace<>NULL_OBJECT .AND. oNameSpace:FInit
      oMailItem4:=oNameSpace:CMGetItemFromID( oMailItem3:CAEntryID ; ...
     ... , oPrivateFolder:CAStoreID )
      IF oMailItem4<>NULL_OBJECT .AND. oMailItem4:FInit
         oMailItem4:CMDisplay( TRUE )
      ELSE
         TSTrace Warning "!(oMailItem4<>NULL_OBJECT .AND. oMailItem4:FInit)"
      END
      IF oMailItem4<>NULL_OBJECT
         oMailItem4:Axit( )
         oMailItem4:=NULL_OBJECT
      END
   ELSE
      TSTrace Warning "!(oNameSpace<>NULL_OBJECT .AND. oNameSpace:FInit)"
   END
ELSE
   TSTrace Warning "!(oMailItem3<>NULL_OBJECT .AND. oMailItem3:FInit)"
END

Source

ACCESS FInit AS LOGIC PASCAL CLASS TS_InterfaceSafe
LOCAL lFInit AS LOGIC
   TSTrace Enter
   DO CASE
   CASE SELF:_AIUnknown==NULL_OBJECT
      TSTrace Warning NB Debug "SELF:_AIUnknown==NULL_OBJECT"
      lFInit:=FALSE
   CASE SELF:IsValidObject
      lFInit:=TRUE
   OTHERWISE
      TSTrace Warning NB Debug "!SELF:IsValidObject"
      lFInit:=FALSE
   END
   TSTrace Leave
RETURN lFInit