Get

 (Available in 01 TS COM - TS_COM_ServerInfoGuard)

Source

METHOD Get( dwCoInit:=0xFFFFFFFFU AS DWORD, pstruTypeLib:=NULL_PTR AS _WinGUID, symMyServerInfo ; ...
...:=NULL_SYMBOL AS SYMBOL ) AS TS_ServerInfo PASCAL CLASS TS_ServerInfoGuard
LOCAL oCOMGlobalData AS _TS_COMGlobalData
LOCAL oServerInfo AS TS_ServerInfo
   TSTrace Enter
   oCOMGlobalData:=_TS_ModuleGetCOMGlobalData( )
   #IFDEF TS_COMGLOBALDATA_CRITICALSECTION
      EnterCriticalSection( oCOMGlobalData:_COMGGeneralPurposeSection )
   #ENDIF
   oServerInfo:=oCOMGlobalData:_ServerInfoServerInfoObject
   IF !LOGIC( _CAST, LONGINT( oCOMGlobalData:_ServerInfoUseCounter ) )
      #IFDEF TS_COMGLOBALDATA_CRITICALSECTION
         EnterCriticalSection( oCOMGlobalData:_COMGGeneralPurposeSection  ; ...
        ... )
      #ENDIF
   END
   InterlockedIncrement( oCOMGlobalData:_ServerInfoUseCounter )
   IF dwCoInit<>0xFFFFFFFFU .AND. dwCoInit<>oCOMGlobalData:_ServerInfoCoInitVal
      IF oCOMGlobalData:_ServerInfoCoInitSet
         TSTrace Warning "oCOMGlobalData:_ServerInfoCoInitSet"
      ELSE
         oCOMGlobalData:_ServerInfoCoInitSet:=TRUE
         oCOMGlobalData:_ServerInfoCoInitVal:=dwCoInit
      END
   END
   IF oServerInfo==NULL_OBJECT
      IF oServerInfo==NULL_OBJECT
         IF symMyServerInfo<>NULL_SYMBOL
            oServerInfo:=CreateInstance( symMyServerInfo, #ServerInfo, oCOMGlobalData  ; ...
           ... )
         ELSE
            oServerInfo:=TS_ServerInfo{ #ServerInfo, oCOMGlobalData }
         END
         oCOMGlobalData:_ServerInfoServerInfoObject:=oServerInfo
      END
      oCOMGlobalData:_ServerInfoServerInfoObject:=oServerInfo
   END
   IF oServerInfo<>NULL_OBJECT .AND. oServerInfo:IsValidObject .AND. pstruTypeLib ; ...
  ... <>NULL_PTR
      IF !oServerInfo:LoadTypeLib( pstruTypeLib )
         TSTrace Warning "!oServerInfo:LoadTypeLib(pstruTypeLib)"
         oServerInfo:InvalidateObject( )
         oServerInfo:=NULL_OBJECT
      END
   END
   #IFDEF TS_COMGLOBALDATA_CRITICALSECTION
      LeaveCriticalSection( oCOMGlobalData:_COMGGeneralPurposeSection )
   #ENDIF
   TSTrace Leave
RETURN oServerInfo