DocContextChangeEventObject interface

An event object that is used during a Microsoft InfoPath context change event.

Namespace:  Microsoft.Office.Interop.InfoPath
Assembly:  Microsoft.Office.Interop.InfoPath (in Microsoft.Office.Interop.InfoPath.dll)

public interface DocContextChangeEventObject : DocContextChangeEvent

This type is a wrapper for a coclass that is required by managed code for COM interoperability. Use this type to access the members of the COM interface implemented by this coclass. For information about the COM interface, including a link to descriptions of its members, seeDocContextChangeEvent.

The DocContextChangeEvent object provides a number of properties that can be used within a context change to programmatically interact with the data in a form's underlying XML document, to provide contextual feedback to the user, or to perform actions for the user.

The DocContextChangeEvent object is passed as a parameter to the OnContextChange event.

The DocContextChangeEvent object is used to get information about the XML Document Object Model (DOM) node that is the current context of the form's underlying XML document. In addition, it provides information about the type of context change and whether the change happened in response to an undo or redo operation performed by the user.

The Type property returns only the value "ContextNode" for context changes in Microsoft InfoPath 2003 Service Pack 1. Nevertheless, if code in an event handler performs actions that depend on current functionality, that code should still be designed to check the value of the Type property, because future versions of InfoPath may use different values for different context changes.

When the IsUndoRedo property is true, the context change was caused by an undo or redo operation rather than an explicit user context change. Operations performed in an OnContextChange event that modify the XML DOM should be avoided in response to undo or redo actions, because they may interfere with the user's intention to revert data to a previous state.

In the following example, a node named lastChanged is updated in response to context changes:

public void OnContextChange(DocContextChangeEvent e)
 if ( e.Type == "ContextNode" && !e.IsUndoRedo )
  IXMLDOMNode contextNode = e.Context;
  IXMLDOMNode lastChangedNode = thisXDocument.DOM.selectSingleNode("/my:myRoot/my:lastChanged");
  lastChangedNode.text = contextNode.nodeName;