lcGetFile = Getfile('DOC') Local oword As 'word.application' oword = Newobject('word.application') oWordEvents = Newobject("WordEvents",'','',oword) Eventhandler(oword,oWordEvents) With oword .Documents.Open(m.lcGetFile) .Visible = .T. .Activate Endwith Define Class WordEvents As Session OlePublic Implements ApplicationEvents2 In "C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE11\MSWORD.OLB" oHook = Null Procedure Init(loHook) This.oHook = loHook Endproc Procedure ApplicationEvents2_Quit() As VOID ? 'User is quitting word',Datetime() Eventhandler(This.oHook,This,.T.) Endproc Procedure ApplicationEvents2_DocumentChange() As VOID Endproc Procedure ApplicationEvents2_DocumentOpen(Doc As VARIANT) As VOID Endproc Procedure ApplicationEvents2_DocumentBeforeClose(Doc As VARIANT, Cancel As LOGICAL) As VOID Endproc Procedure ApplicationEvents2_DocumentBeforePrint(Doc As VARIANT, Cancel As LOGICAL) As VOID Endproc Procedure ApplicationEvents2_DocumentBeforeSave(Doc As VARIANT, SaveAsUI As LOGICAL, Cancel As LOGICAL) As VOID Local lcUserDocName lcUserDocName = Doc.FullName Cancel = .T. ? 'Attempted save..Cancelled save...',Datetime() Local loBalloon,lVisible loBalloon = Doc.Application.Assistant.NewBalloon lVisible = Doc.Application.Assistant.Visible Doc.Application.Assistant.Visible = .T. With loBalloon .Heading = "Sorry. VFP doesn't let you to save '" + m.lcUserDocName + "'" + ; CHR(13)+Chr(10) +; CHR(13)+Chr(10) +; "After you respond to this dialog I will return control to VFP dismissing any changes." .Show() Endwith Doc.Application.Assistant.Visible = m.lVisible #Define wdDoNotSaveChanges 0 Doc.Application.Quit(wdDoNotSaveChanges) Endproc Procedure ApplicationEvents2_NewDocument(Doc As VARIANT) As VOID Endproc Procedure ApplicationEvents2_WindowActivate(Doc As VARIANT, Wn As VARIANT) As VOID Endproc Procedure ApplicationEvents2_WindowDeactivate(Doc As VARIANT, Wn As VARIANT) As VOID Endproc Procedure ApplicationEvents2_WindowSelectionChange(Sel As VARIANT) As VOID Endproc Procedure ApplicationEvents2_WindowBeforeRightClick(Sel As VARIANT, Cancel As LOGICAL) As VOID Endproc Procedure ApplicationEvents2_WindowBeforeDoubleClick(Sel As VARIANT, Cancel As LOGICAL) As VOID Endproc EnddefineCetin