QueryInterface
(Available in 01 TS COM - TS_COM_IClassFactory)
Source
METHOD QueryInterface( pstruIID AS _WinGUID, poAIUnknown AS TS_AbstractIUnknown PTR ; ...
...) AS LONG PASCAL CLASS TS_IClassFactory
LOCAL hResult AS LONG
TSTrace Enter
IF TS_ValidQueryInterfaceRequest( SELF, pStruIID, poAIUnknown, @hResult )
IF TS_IsEqualGUID( pStruIID, TS_GUID_IClassFactory( ) )
SELF:AddRef( )
OBJECT( PTR( _CAST, poAIUnknown ) ):=SELF
ELSE
hResult:=SUPER:QueryInterface( pStruIID, poAIUnknown ; ...
... )
DO CASE
CASE hResult==E_NOINTERFACE
IF TS_ShowNotSupportedInterfaces( )
TS_DebOutSTRING( "Interface '"+TS_GUID2String( pStruIID )+"' not supported" ; ...
... )
END
OBJECT( PTR