>DEFINE CLASS COMOne AS Session OLEPUBLIC > oCallback = NULL > > FUNCTION AddCallback(toCallback AS Object) > IF VARTYPE(toCallback) = "O" > This.oCallback = toCallback > ENDIF > ENDFUNC > > FUNCTION Process > LOCAL liCount > > FOR liCount = 1 TO 10 > This.CallbackEvent(liCount) > ENDFOR > ENDFUNC > > PROTECTED FUNCTION CallbackEvent(tiCount AS Integer) > IF VARTYPE(This.oCallback) = "O" > * Assumption is that object supports correct interface > * If not, it will throw an exception > This.oCallback.OnCallbackEvent(tiCount) > ENDIF > ENDFUNC >ENDDEFINE > >DEFINE CLASS COMTwo AS Session OLEPUBLIC > FUNCTION OnCallbackEvent(tiCount AS Integer) > STRTOFILE(TRANSFORM(tiCount) + CHR(13), "C:\TestLog.txt", 1) > ENDFUNC >ENDDEFINE >>
>o = CREATEOBJECT("TestCallback.COMOne") >ox = CREATEOBJECT("TestCallback.COMTwo") >o.AddCallback(ox) >o.Process() >>To check that it worked:
>MODIFY FILE C:\TestLog.txt >