OLE32LibraryFree

 (Available in 01 TS COM - TS_COM_ServerInfo)

Source

METHOD OLE32LibraryFree( ) AS LOGIC PASCAL CLASS TS_ServerInfo
LOCAL lRetVal AS LOGIC
   TSTrace Enter
   IF SELF:IsValidObject
//    TS_ShowOLE32LibraryUseCount()
      IF LOGIC( _CAST, SELF:_COMGlobalData:_ShowOLE32LibraryUseCount  ; ...
     ... ) 
         TSTrace Shw _( SELF:_SuperGlobalData:_OLE32LibraryUseCount  ; ...
        ... )
      END
      DO CASE
      CASE SELF:_SuperGlobalData:_OLE32LibraryUseCount ; ...
     ... <0L
         TSTrace Warning "SELF:_SuperGlobalData:_OLE32LibraryUseCount<0L"
         lRetVal:=FALSE
      CASE SELF:_SuperGlobalData:_OLE32LibraryUseCount ; ...
     ... >0L
         SELF:_SuperGlobalData:_OLE32LibraryUseCount ; ...
        ... -=1L
         IF SELF:_SuperGlobalData:_OLE32LibraryUseCount ; ...
        ... ==0L
            IF SELF:_SuperGlobalData:_OLE32LibraryHandle ; ...
           ... <>NULL_PTR
               #IFDEF TS_TRACETIMED_ENABLE
                  _TS_TraceTimedEnter( TS_TT_SYM_EXTERNAL, TS_TT_SYM_DLL_OLE32, # ; ...
                 ... CoUninitialize )
               #ENDIF
               TS_CoUninitialize( )
               #IFDEF TS_TRACETIMED_ENABLE
                  _TS_TraceTimedLeave( TS_TT_SYM_EXTERNAL, TS_TT_SYM_DLL_OLE32, # ; ...
                 ... CoUninitialize )
               #ENDIF
//             TS_CoFreeUnusedLibraries()
//             FreeLibrary(SELF:_SuperGlobalData:_OLE32LibraryHandle)
               SELF:_SuperGlobalData:_OLE32LibraryHandle ; ...
              ... :=NULL_PTR
            ELSE
               TSTrace Warning "SELF:_SuperGlobalData:_OLE32LibraryHandle==NULL_PTR"
            END
         END
         lRetVal:=TRUE
      OTHERWISE
         TSTrace Warning "SELF:_SuperGlobalData:_OLE32LibraryUseCount==0L"
         lRetVal:=FALSE
      END
//    TS_ShowOLE32LibraryUseCount()
      IF LOGIC( _CAST, SELF:_COMGlobalData:_ShowOLE32LibraryUseCount  ; ...
     ... ) 
         TSTrace Shw _( SELF:_SuperGlobalData:_OLE32LibraryUseCount  ; ...
        ... )
      END
   ELSE
      TSTrace Warning "!SELF:IsValidObject"
      lRetVal:=FALSE
   END
   TSTrace Leave
RETURN lRetVal