In Visual Studio 2015, this way of implementing expression evaluators is deprecated. For information about implementing CLR expression evaluators, please see CLR Expression Evaluators and Managed Expression Evaluator Sample.

This interface provides the ability to change an object's value through a type visualizer.


IEEVisualizerDataProvider : IUnknown

Notes for Implementers

The expression evaluator implements this interface to support modifying data on a property object through a type visualizer.

Notes for Callers

This interface is used in creating the IEEVisualizerService object through a call to CreateVisualizerService. See Visualizing and Viewing Data for more details.

Methods in Vtable order

Method Description
CanSetObjectForVisualizer Determines if it is possible to update the object (and subsequently, its value) that this visualizer is representing.
GetNewObjectForVisualizer Forces a re-evaluation of the object for this visualizer.
GetObjectForVisualizer Gets an existing object for this visualizer (no evaluation is done).
SetObjectForVisualizer Updates the object for this visualizer, thereby changing the value the visualizer presents.


The visualizer service (as represented by the IEEVisualizerService interface and returned by CreateVisualizerService) keeps a reference to the object implementing the IEEVisualizerDataProvider interface. As a result, the IEEVisualizerDataProvider interface should not be implemented on the same object that implements the IDebugProperty2 if that object maintains a reference to the IEEVisualizerService object: a circular reference results and a deadlock occurs when the objects are destroyed. The recommended approach is to implement IEEVisualizerDataProvider on a separate object to which the IDebugProperty2 object delegates without calling IUnknown::AddRef on it.


Header: ee.h

Namespace: Microsoft.VisualStudio.Debugger.Interop

Assembly: Microsoft.VisualStudio.Debugger.Interop.dll

See also