FInit

 (Available in 01 TS COM - TS_COM_IUnknown)

Purpose

Test if the interface is valid

Syntax

// Then start using it
IF oSomeIObject:FInit 

Description

This property will be TRUE if the object is valid . The flag should be checked before using the 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 CLASS TS_IUnknown
LOCAL lFInit AS LOGIC
   TSTrace Enter
   DO CASE
   CASE SELF:RefCount<=0
      TSTrace Warning NB Debug "SELF:RefCount<=0"
      lFInit:=FALSE
   CASE SELF:IsValidObject
      lFInit:=TRUE
   OTHERWISE
      TSTrace Warning NB Debug "!SELF:IsValidObject"
      lFInit:=FALSE
   END
   TSTrace Leave
RETURN lFInit