Clear
Local ox As 'excel.application'
ox = Newobject('excel.application')
oxEvents = Newobject("ExcelHandler",'','',ox)
Eventhandler(ox,oxEvents)
With ox
.Workbooks.Add
With .ActiveWorkBook.ActiveSheet
For ix = 1 To 10 && normally you should never use such data filling
For jx = 1 To 10
.Cells(m.ix,m.jx).Value = m.ix * 1000 + m.jx
Endfor
Endfor
Endwith
.Visible = .T.
Endwith
Define Class ExcelHandler As Session OlePublic
Implements AppEvents In "c:\program files\microsoft office\office11\excel.exe"
oHook = Null
Procedure Init(loHook)
This.oHook = loHook
Endproc
Procedure AppEvents_NewWorkbook(Wb As VARIANT) As VOID
Endproc
Procedure AppEvents_SheetSelectionChange(Sh As VARIANT, Target As VARIANT) As VOID
If Target.Address = Sh.usedrange.Address
? 'Attempted to select all',Target.Address,'in sheet',Sh.Name,'Target changed'
Sh.Cells(1,1).Select
Endif
Endproc
Procedure AppEvents_SheetBeforeDoubleClick(Sh As VARIANT, Target As VARIANT, Cancel As LOGICAL @) As VOID
Endproc
Procedure AppEvents_SheetBeforeRightClick(Sh As VARIANT, Target As VARIANT, Cancel As LOGICAL @) As VOID
Endproc
Procedure AppEvents_SheetActivate(Sh As VARIANT) As VOID
Endproc
Procedure AppEvents_SheetDeactivate(Sh As VARIANT) As VOID
Endproc
Procedure AppEvents_SheetCalculate(Sh As VARIANT) As VOID
Endproc
Procedure AppEvents_SheetChange(Sh As VARIANT, Target As VARIANT) As VOID
Endproc
Procedure AppEvents_WorkbookOpen(Wb As VARIANT) As VOID
Endproc
Procedure AppEvents_WorkbookActivate(Wb As VARIANT) As VOID
Endproc
Procedure AppEvents_WorkbookDeactivate(Wb As VARIANT) As VOID
Endproc
Procedure AppEvents_WorkbookBeforeClose(Wb As VARIANT, Cancel As LOGICAL @) As VOID
? 'WorkBook closing',Datetime()
Eventhandler(This.oHook,This,.T.)
Endproc
Procedure AppEvents_WorkbookBeforeSave(Wb As VARIANT, SaveAsUI As LOGICAL, Cancel As LOGICAL @) As VOID
? 'Attempted to save', Datetime(), 'denied silently'
Cancel = .T.
Endproc
Procedure AppEvents_WorkbookBeforePrint(Wb As VARIANT, Cancel As LOGICAL @) As VOID
? 'Attempted to print', Datetime(), 'denied silently'
Cancel = .T.
Endproc
Procedure AppEvents_WorkbookNewSheet(Wb As VARIANT, Sh As VARIANT) As VOID
Endproc
Procedure AppEvents_WorkbookAddinInstall(Wb As VARIANT) As VOID
Endproc
Procedure AppEvents_WorkbookAddinUninstall(Wb As VARIANT) As VOID
Endproc
Procedure AppEvents_WindowResize(Wb As VARIANT, Wn As VARIANT) As VOID
Endproc
Procedure AppEvents_WindowActivate(Wb As VARIANT, Wn As VARIANT) As VOID
Endproc
Procedure AppEvents_WindowDeactivate(Wb As VARIANT, Wn As VARIANT) As VOID
Endproc
Procedure AppEvents_SheetFollowHyperlink(Sh As VARIANT, Target As VARIANT) As VOID
Endproc
Procedure AppEvents_SheetPivotTableUpdate(Sh As VARIANT, Target As VARIANT) As VOID
Endproc
Procedure AppEvents_WorkbookPivotTableCloseConnection(Wb As VARIANT, Target As VARIANT) As VOID
Endproc
Procedure AppEvents_WorkbookPivotTableOpenConnection(Wb As VARIANT, Target As VARIANT) As VOID
Endproc
Procedure AppEvents_WorkbookSync(Wb As VARIANT, SyncEventType As VARIANT) As VOID
Endproc
Procedure AppEvents_WorkbookBeforeXmlImport(Wb As VARIANT, Map As VARIANT, Url As String, IsRefresh As LOGICAL, Cancel As LOGICAL @) As VOID
Endproc
Procedure AppEvents_WorkbookAfterXmlImport(Wb As VARIANT, Map As VARIANT, IsRefresh As LOGICAL, Result As VARIANT) As VOID
Endproc
Procedure AppEvents_WorkbookBeforeXmlExport(Wb As VARIANT, Map As VARIANT, Url As String, Cancel As LOGICAL @) As VOID
Endproc
Procedure AppEvents_WorkbookAfterXmlExport(Wb As VARIANT, Map As VARIANT, Url As String, Result As VARIANT) As VOID
Endproc
Enddefine