AGetInterface
(Available in 01 TS COM - TS_COM_IUnknown)
Purpose
Get a interface from the enclosed COM object
Syntax
oAIUnknown:=oIUnknown:AGetInterface( TS_GUID_IUnknown( ) )
Arguments
Description
This is the prefered method of getting an exported interface from the IUnknown object, using this method is prefered above the 'QueryInterface' method.
Returns
Instance of 'TS_AbstractIUnknown'
Example
ACCESS AIDispatch AS TS_AbstractIDispatch PASCAL CLASS TS_IUnknown
LOCAL oAIDispatch AS TS_AbstractIDispatch
TSTrace Enter
oAIDispatch:=SELF:AGetInterface( TS_GUID_IDispatch( ) )
TSTrace Leave
RETURN oAIDispatch
Source
METHOD AGetInterface( upstruIID ) CLASS TS_IUnknown
LOCAL oCOMGlobalData AS _TS_COMGlobalData
LOCAL oAIUnknown AS TS_AbstractIUnknown
LOCAL pstruIID AS _WinGUID
LOCAL hResult AS LONG
TSTrace Enter
oCOMGlobalData:=_TS_ModuleGetCOMGlobalData( )
#IFDEF TS_COMGLOBALDATA_CRITICALSECTION
EnterCriticalSection( oCOMGlobalData:_COMGGeneralPurposeSection )
#ENDIF
IF IsPtr( upstruIID )
pstruIID:=TS_UsualValPTR( upstruIID )
hResult:=SELF:QueryInterface( pstruIID, @oAIUnknown )
DO CASE
CASE hResult==E_NOINTERFACE
IF TS_ShowNotSupportedInterfaces(