The new home for Visual Studio documentation is Visual Studio 2017 Documentation on

The latest version of this topic can be found at IEEVisualizerDataProvider.

System_CAPS_ICON_important.jpg Important

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  

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

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

CanSetObjectForVisualizerDetermines if it is possible to update the object (and subsequently, its value) that this visualizer is representing.
GetNewObjectForVisualizerForces a re-evaluation of the object for this visualizer.
GetObjectForVisualizerGets an existing object for this visualizer (no evaluation is done).
SetObjectForVisualizerUpdates 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

Expression Evaluation Interfaces
Visualizing and Viewing Data