ArcObjects Library Reference (ArcMapUI)  

IDocumentEventsDisp Interface

Provides access to events that occur in ArcMap.

Product Availability

Available with ArcGIS Desktop.

When To Use

Use the IDocumentEventsDisp interface to perform some action when the ArcMap document events occur.

Members

Description
Event ActiveViewChanged Fired when the active view has changed.
Event BeforeCloseDocument Fired before a document is closed. Return True to abort the close process.
Event CloseDocument Fired when a document is closed.
Event MapsChanged Fired when a change is made to the map collection.
Event NewDocument Fired when a new document is created.
Event OnContextMenu Indicates if a context menu should be displayed at the given xy location. Return true if handled.
Event OpenDocument Fired when a document is opened.
Event VBAReset Fired when VBA is reset.

CoClasses that implement IDocumentEventsDisp

CoClasses and Classes Description
MxDocument ESRI Mx Document.

Remarks

When you are working in VBA, the IDocumentEventsDisp interface is automatically exposed for you. There is a MxDocument object defined in the ThisDocument class module. Select that object in the Object Box on the ThisDocument code window and then you can choose any of its events by clicking in the Procedure/Method Box on the ThisDocument code window. This stubs out the event procedures and you can write your code here.

In ArcMap there can be up to three VBA projects (Project, TemplateProject, and Normal) loaded and each one has a ThisDocument class module. You can write code for each document event in each ThisDocument code window. It is important to know the order in which the document events for each VBA project get fired. For example, when the NewDocument event occurs, the code in the MxDocument_NewDocument function in Project.ThisDocument executes first, then in TemplateProject.ThisDocument, and finally in Normal.ThisDocument.

If an event function in Project.ThisDocument returns True, then the code for this event in TemplateProject.ThisDocument and Normal.ThisDocument does not get executed. This provides a mechanism for a document to override any code that might be in the base template or the Normal template.