QueryInterface
(Available in 01 TS COM - TS_COM_InterfaceSafe)
Purpose
CALLBACK: Query the COM interface
Syntax
IF TS_Succeeded( oInterfaseSafe:QueryInterface( pGUID, poAIUnknown ) )
Arguments
pstruIID
|
_WinGUID
|
poAIUnknown
|
TS_AbstractIUnknown
|
Description
See MSDN documentation and/or 'Inside COM', it is adviced not to use this method and use 'AGetInterface()' instead.
Returns
HResult
Source
METHOD QueryInterface( pstruIID AS _WinGUID, poAIUnknown AS TS_AbstractIUnknown PTR ; ...
...) AS LONG PASCAL CLASS TS_InterfaceSafe
LOCAL oCOMGlobalData AS _TS_COMGlobalData
LOCAL oAIUnknown AS TS_AbstractIUnknown
LOCAL hResult AS LONG
TSTrace Enter
oCOMGlobalData:=_TS_ModuleGetCOMGlobalData( )
#IFDEF TS_COMGLOBALDATA_CRITICALSECTION
EnterCriticalSection( oCOMGlobalData:_COMGGeneralPurposeSection )
#ENDIF
DO CASE
CASE SELF:_Gets==0U
TSTrace Warning "SELF:_Gets==0U"
IF poAIUnknown<>NULL_PTR
OBJECT( PTR( _CAST, poAIUnknown ) ):=NULL_OBJECT
ELSE
TSTrace Warning "poAIUnknown==NULL_PTR"
END
hResult:=E_FAIL
CASE SELF:FInit
SELF:_Gets-=1U
IF