DEFINE CLASS WordHandler AS session OLEPUBLIC IMPLEMENTS ApplicationEvents2 IN {00020905-0000-0000-C000-000000000046}#8.3 PROCEDURE ApplicationEvents2_Quit() AS VOID * add user code here ENDPROC PROCEDURE ApplicationEvents2_DocumentChange() AS VOID * add user code here ENDPROC PROCEDURE ApplicationEvents2_DocumentOpen(Doc AS VARIANT) AS VOID * add user code here ENDPROC PROCEDURE ApplicationEvents2_DocumentBeforeClose(Doc AS VARIANT, Cancel AS LOGICAL) AS VOID * add user code here ENDPROC PROCEDURE ApplicationEvents2_DocumentBeforePrint(Doc AS VARIANT, Cancel AS LOGICAL) AS VOID MESSAGEBOX( "In DocumentBeforePrint()...") CANCEL = .T. ENDPROC PROCEDURE ApplicationEvents2_DocumentBeforeSave(Doc AS VARIANT, SaveAsUI AS LOGICAL, Cancel AS LOGICAL) AS VOID MESSAGEBOX( "In DocumentBeforeSave()...") CANCEL = .T. ENDPROC PROCEDURE ApplicationEvents2_NewDocument(Doc AS VARIANT) AS VOID * add user code here ENDPROC PROCEDURE ApplicationEvents2_WindowActivate(Doc AS VARIANT, Wn AS VARIANT) AS VOID * add user code here ENDPROC PROCEDURE ApplicationEvents2_WindowDeactivate(Doc AS VARIANT, Wn AS VARIANT) AS VOID * add user code here ENDPROC PROCEDURE ApplicationEvents2_WindowSelectionChange(Sel AS VARIANT) AS VOID * add user code here ENDPROC PROCEDURE ApplicationEvents2_WindowBeforeRightClick(Sel AS VARIANT, Cancel AS LOGICAL) AS VOID * add user code here ENDPROC PROCEDURE ApplicationEvents2_WindowBeforeDoubleClick(Sel AS VARIANT, Cancel AS LOGICAL) AS VOID * add user code here ENDPROC ENDDEFINEAnd here is the code to use the handler class:
oWord = CREATEOBJECT( "Word.Application" ) oHandler = NEWOBJECT( "WordHandler", "WordHandler.prg") ?EVENTHANDLER( oWord, oHandler ) oWord.Documents.Open( FULLPATH(CURDIR()) + "TestWord.DOC" ) oWord.Visible = .T.HTH