IIDAdd
(Available in 01 TS COM - TS_COM_IUnknown)
Purpose
Add a GUID to the list of supported interfaces
Syntax
oSomeIObject:IIDAdd( TS_GUID_IDispatch( ) )
Arguments
upstruIID
|
_WinGUID
|
upstruSavedIID
|
_WinGUID PTR
|
Description
When the object is queried for an interfece ( Using 'QueryInterface()' ) the object checks the list of supported interfaces, if one of the supported interface matches the requested interface, then the 'QueryInterface()' method will return 'SELF'.
Returns
lRetVal = LOGIC ( TRUE is succeeded )
Example
METHOD...( )CLASS...
LOCAL pstruWinGUID AS _WinGUID
IF !oSomeIObject:IIDAdd( TS_GUID_IDispatch( ), @pstruWinGUID )
TSTrace Warning "!oSomeIObject:IIDAdd(TS_GUID_IDispatch())"
ELSE
? TS_GUID2String( pstruWinGUID )
END
Source
METHOD IIDAdd( upstruIID ) CLASS TS_IUnknown
LOCAL oCOMGlobalData AS _TS_COMGlobalData
LOCAL pstruIID AS _WinGUID
LOCAL lRetVal AS LOGIC
LOCAL oIIDs AS TS_PointerSafe
TSTrace Enter
oCOMGlobalData:=_TS_ModuleGetCOMGlobalData( )
#IFDEF TS_COMGLOBALDATA_CRITICALSECTION
EnterCriticalSection( oCOMGlobalData:_COMGGeneralPurposeSection )
#ENDIF
pstruIID:=TS_UsualValPTR( upstruIID )
DO CASE
CASE pstruIID==NULL_PTR
TSTrace Warning "pstruIID==NULL_PTR"
lRetVal:=FALSE