IIDDel

 (Available in 01 TS COM - TS_COM_IUnknown)

Purpose

Remove a GUID from the list of supported interfaces

Syntax

oSomeIObject:IIDDel( TS_GUID_IDispatch( ) )

Arguments

upstruIID
_WinGUID

Description

When the object is queried for an interfece ( Using 'QueryInterface()' ) the object checks the list of supported interfaces, if one of the supported interface matches the requested interface, then the 'QueryInterface()' method will return 'SELF'.

Returns

lRetVal = LOGIC ( TRUE is succeeded )

Example

IF !oSomeIObject:IIDDel( TS_GUID_IDispatch( ) )
   TSTrace Warning "!oSomeIObject:IIDDel(TS_GUID_IDispatch())"
END

Source

METHOD IIDDel( upstruIID ) CLASS TS_IUnknown
LOCAL oCOMGlobalData AS _TS_COMGlobalData
LOCAL pstruIID AS _WinGUID
LOCAL lRetVal AS LOGIC
LOCAL oIIDs AS TS_PointerSafe
   TSTrace Enter
   oCOMGlobalData:=_TS_ModuleGetCOMGlobalData( )
   #IFDEF TS_COMGLOBALDATA_CRITICALSECTION
      EnterCriticalSection( oCOMGlobalData:_COMGGeneralPurposeSection )
   #ENDIF
   pstruIID:=TS_UsualValPTR( upstruIID )
   oIIDs:=SELF:_IIDs
   IF oIIDs<>NULL_OBJECT
      IF oIIDs:ItemLocate( pstruIID )
         lRetVal:=oIIDs:ItemDel( oIIDs:ItemIndex )
      ELSE
         TSTrace Warning "!oIIDs:ItemLocate(pstruIID)"
         lRetVal:=FALSE
      END
      oIIDs:=NULL_OBJECT
   ELSE
      TSTrace Warning "oIIDs==NULL_OBJECT"
      lRetVal:=FALSE
   END
   #IFDEF TS_COMGLOBALDATA_CRITICALSECTION
      LeaveCriticalSection( oCOMGlobalData:_COMGGeneralPurposeSection )
   #ENDIF
   TSTrace Leave
RETURN lRetVal