AITypeLib

 (Available in 01 TS COM - TS_COM_ISink)

Purpose

Get a static 'ITypeLib' COM interface pointer.

Syntax

oAIUnknown:=oISink:AITypeLib

Description

Get a static 'ITypeLib' COM interface pointer. The object ( interface pointer ) returned by this property must be released by using the 'Release()' method of the returend object. Normaly this property is used when a interface pointer must be passed to an interface in the form of a parameter.

Returns

OBJECT(InterfacePointer), Refereing to a static COM interface

Example

oResultAIUnknown:=oInterfaceSafe:AITypeLib
IF oResultAIUnknown<>NULL_OBJECT
   OBJECT( PTR( _CAST, poAIUnknown ) ):=oResultAIUnknown
   lRetVal:=TRUE
ELSE
   TSTrace Warning "oResultAIUnknown:=oParamDIUnknown:AITypeLib==NULL_OBJECT"
   OBJECT( PTR( _CAST, poAIUnknown ) ):=NULL_OBJECT
   LONG( phResult ):=E_FAIL
   lRetVal:=FALSE
END

Source

ACCESS AITypeLib CLASS TS_ISink
LOCAL oServerInfoGuard AS TS_ServerInfoGuard
LOCAL oServerInfo AS TS_ServerInfo
LOCAL oAITypeLib AS TS_AbstractITypeLib
   TSTrace Enter
   IF SELF:_AITypeLib<>NULL_OBJECT
      oAITypeLib:=SELF:_AITypeLib
      #IFDEF TS_TRACETIMED_ENABLE
         _TS_TraceTimedEnter( TS_TT_SYM_EXTERNAL, TS_TT_SYM_ITYPELIB, #AddRef )
      #ENDIF
      oAITypeLib:AddRef( )
      #IFDEF TS_TRACETIMED_ENABLE
         _TS_TraceTimedLeave( TS_TT_SYM_EXTERNAL, TS_TT_SYM_ITYPELIB, #AddRef )
      #ENDIF
   ELSE
      oServerInfoGuard:=TS_ServerInfoGuard{ }
      oServerInfo:=oServerInfoGuard:Get( COINIT_DEFAULT, NULL_PTR )
      oAITypeLib:=oServerInfo:AITypeLib
      oServerInfo:=oServerInfoGuard:FREEREF( )
      oServerInfoGuard:=NULL_OBJECT
   END
   TSTrace Leave
RETURN oAITypeLib