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