DkmRootVisualizedExpression Class

Definition

Dispatcher object which represents a top-level visualized expression. An instance is created by the expression evaluator when it determines a type should be visualized.

public ref class DkmRootVisualizedExpression : Microsoft::VisualStudio::Debugger::Evaluation::DkmVisualizedExpression
[System.Runtime.InteropServices.Guid("78ad085c-7b73-5937-a063-e2c7f4ee6556")]
public class DkmRootVisualizedExpression : Microsoft.VisualStudio.Debugger.Evaluation.DkmVisualizedExpression
[<System.Runtime.InteropServices.Guid("78ad085c-7b73-5937-a063-e2c7f4ee6556")>]
type DkmRootVisualizedExpression = class
    inherit DkmVisualizedExpression
Public Class DkmRootVisualizedExpression
Inherits DkmVisualizedExpression
Inheritance
Attributes

Properties

ArrayLength

Deprecated: no longer used.

Flags

Flags the expression evaluator passes to the visualizer addin describing the value in question. For instance, this will include if the object is a pointer or if it is a reference.

FullName

The full name of the expression up to the root node. Addins can choose to use this full name or construct their own. However, if the addin uses a different full name, it must be parsed by the expression evaluator.

InspectionContext

Options and target context to use while performing the inspection operation.

(Inherited from DkmVisualizedExpression)
InspectionSession

The InspectionSession allows the various components which examine data in the target process to store private data with the same lifetime. Inspection sessions are closed when the user attempts to continue the process.

(Inherited from DkmVisualizedExpression)
IsUnloaded

Returns true if a 'unloaded' event has been raised for this object (example: DkmThread::Unload is called) or if the object has been closed. Note that care must be used when checking this status as, without synchronization, the returned status may no longer be accurate the instruction after it is read.

(Inherited from DkmDataContainer)
Module

[Optional] The module that contains the type symbol.

Name

The name of the expression up to the root node. Addins can choose to use this name or construct their own.

RuntimeInstance

Indicates which runtime monitor will be used to perform this evaluation.

(Inherited from DkmVisualizedExpression)
SourceId

Guid which ties together the expression evaluator that created this object and the object itself. Generally used by expression evaluators to filter their implementation of IDkmCustomVisualizerCallback to only DkmVisualizedExpression they created.

(Inherited from DkmVisualizedExpression)
StackFrame

Stack frame the expression is being evaluated in expression in.

(Inherited from DkmVisualizedExpression)
TagValue

DkmVisualizedExpression is an abstract base class. This enum indicates which derived class this object is an instance of.

(Inherited from DkmVisualizedExpression)
Type

[Optional] The type of the object being inspected. This is often the same type that is being referred to by the natvis entry that triggered the addin. However, it can also be a pointer or reference to the type, or even a base or derived class of the type. The addin should make no assumptions about what is in this string and should not attempt to parse it to obtain information about the object. Most addins should pass this string along through, as is to the 'Type' property of the evaluation result they create. However, an addin may choose to add additional annotations to the 'Type' string before returning it back. Except for a hint of what to put in the 'Type' field of the result, this string is irrelevant to the visualization of the object. Regardless of whether the original object is a pointer, reference, base type, or derived type, the supplied DkmExpressionValueHome will always identify the location of the object itself, never a pointer or reference to the object. An empty type string may be passed in here if the type of the evaluation result does not matter for the scenario in which the visualizer is being invoked.

This API was introduced in Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

UniqueId

Guid which uniquely identifies this instance.

(Inherited from DkmVisualizedExpression)
ValueHome

[Optional] The location at which the value is stored, which can be modified to edit the value. This should be null for read-only values, such as integer constants.

(Inherited from DkmVisualizedExpression)
VisualizerId

Guid which ties together the addin and the expressions that call that addin. The addin should use the Guid provided in the native visualizer file as a filter.

(Inherited from DkmVisualizedExpression)

Methods

Close()

Closes a DkmVisualizedExpression object instance. This will release any resources associated with this object across all components. This includes resources across computer or managed/native marshalling boundaries.

DkmVisualizedExpression objects are automatically closed when their associated DkmInspectionSession object is closed.

(Inherited from DkmVisualizedExpression)
Create(DkmInspectionContext, Guid, Guid, DkmStackWalkFrame, DkmExpressionValueHome, DkmModule, String, String, DkmRootVisualizedExpressionFlags, UInt32, DkmDataItem)

Create a new DkmRootVisualizedExpression object instance.

Create(DkmInspectionContext, Guid, Guid, DkmStackWalkFrame, DkmExpressionValueHome, DkmModule, String, String, DkmRootVisualizedExpressionFlags, UInt32, String, DkmDataItem)

Create a new DkmRootVisualizedExpression object instance.

This API was introduced in Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

CreateDefaultChildFullName(Int32)

This method will construct a default full name for a custom visualized child expression. This name will be the root expression's full name and an expand format string that will cause the expression evaluator to callback to the visualizer to obtain children. The DkmVisualizedExpression instance this is called on should be the parent visualized expression for a child and the root visualized expression for a root.

(Inherited from DkmVisualizedExpression)
EvaluateExpressionCallback(DkmInspectionContext, DkmLanguageExpression, DkmStackWalkFrame, DkmEvaluationResult)

This method allows a visualizer addin use the expression evaluator to compile and evaluate the default value for an expression. The addin can use this result as-is or override fields by creating a new result. The addin can also choose to use the expression evaluator for expansion using the the get children callbacks.

(Inherited from DkmVisualizedExpression)
EvaluateVisualizedExpression(DkmEvaluationResult)

Evaluate a visualized expression returning a DkmEvaluationResult for it.

Location constraint: API must be called from an IDE component (component level > 100,000).

(Inherited from DkmVisualizedExpression)
GetChildren(Int32, DkmInspectionContext, DkmChildVisualizedExpression[], DkmEvaluationResultEnumContext)

Gets an enumeration context used to obtain the children of this evaluation result. This is used in all expression evaluation windows.

Location constraint: API must be called from an IDE component (component level > 100,000).

(Inherited from DkmVisualizedExpression)
GetChildrenCallback(DkmEvaluationResult, Int32, DkmInspectionContext, DkmEvaluationResult[], DkmEvaluationResultEnumContext)

This method allows a visualizer addin use the expression evaluator for expansion. The evaluation result contained within the visualized expression must have come from the expression evaluator via EvaluateExpressionCallback.

(Inherited from DkmVisualizedExpression)
GetDataItem<T>()

Gets the instance of 'T' which has been added to this container instance. If this container does not contain a 'T', this function will return null.

(Inherited from DkmDataContainer)
GetItems(DkmEvaluationResultEnumContext, Int32, Int32, DkmChildVisualizedExpression[])

Called to obtain items from a instance of DkmEvaluationResultEnumContext created by an earlier call to GetChildren.

Location constraint: API must be called from an IDE component (component level > 100,000).

(Inherited from DkmVisualizedExpression)
GetItemsCallback(DkmEvaluationResultEnumContext, Int32, Int32, DkmEvaluationResult[])

This method allows a visualizer addin use the expression evaluator for expansion using the passed enumeration context. This is used to obtain local variables of a stack frame or child members from an evaluation result.

(Inherited from DkmVisualizedExpression)
GetSymbolInterface(Guid, Object)

Allows custom expression evaluator addins to obtain the symbol interface for the type being visualized. This is not stored in the DkmVisualizedExpression directly to enable addins that live on the remote machine and do not depend on symbols.

Location constraint: API must be called from an IDE component (component level > 100,000).

(Inherited from DkmVisualizedExpression)
GetUnderlyingString()

This method is used for evaluation results that include DkmEvaluationResultFlags.RawString to obtain the the underlying string, with no enclosing quotes or escape sequences. This is method is invoked to display one of the various string visualizers in an expression evaluation window (click the magnifying glass icon).

Location constraint: API must be called from an IDE component (component level > 100,000).

(Inherited from DkmVisualizedExpression)
GetUnderlyingStringCallback(DkmEvaluationResult)

This method is used for evaluation results that include DkmEvaluationResultFlags.RawString to obtain the the underlying string, with no enclosing quotes or escape sequences. This is method is invoked to display one of the various string visualizers in an expression evaluation window (click the magnifying glass icon).

(Inherited from DkmVisualizedExpression)
RemoveDataItem<T>()

Remove the instance of 'T' from this container. It is usually unnecessary to call this method as a data container will automatically be emptied when the object is closed.

(Inherited from DkmDataContainer)
SetDataItem<T>(DkmDataCreationDisposition, T)

Place a new item in the data container.

(Inherited from DkmDataContainer)
SetValueAsString(String, Int32, String)

Modifies the value of the given evaluation result (assumed to be non-read-only) to match the given string. This is used after the user edits a value in any of the evaluation windows.

Location constraint: API must be called from an IDE component (component level > 100,000).

(Inherited from DkmVisualizedExpression)
SetValueAsStringCallback(DkmEvaluationResult, String, Int32, String)

Modifies the value of the given evaluation result (assumed to be non-read-only) to match the given string. This is used after the user edits a value in any of the evaluation windows.

(Inherited from DkmVisualizedExpression)
UseDefaultEvaluationBehavior(Boolean, DkmEvaluationResult)

Called by the expression evaluator when a visualized expression's children are being expanded, the the value is being set, or the underlying string is being obtained. If the visualizer addin wants complete control of the expression it should return false. It will then receive calls to GetChildren, GetItems, SetValueAsString, and GetUnderlyingString. If the visualizer addin wants to completely defer these operations to the expression evaluator, it should return true. It must also give the expression evaluator back the instance of DkmEvaluationResult that came from the EE via one of the IDkmCustomVisualizerCallback methods. Note that the addin MUST have obtained the default DkmEvaluationResult from the EE if it wants the EE to control the object. Returning true from this method is primarily used by visualizer addins that just tweak something small like the view of a value but don't want to modify expansion or setting values.

Location constraint: API must be called from an IDE component (component level > 100,000).

(Inherited from DkmVisualizedExpression)

Explicit Interface Implementations

IDisposable.Dispose() (Inherited from DkmVisualizedExpression)

Applies to