IDkmVisualStudioServices Interface

Definition

Interface implemented by the AD7AL as a gateway to services provided by the rest of Visual Studio.

Implementations of this interface are always called (no filtering is supported). To reduce memory impact, it is suggested that this interface be implemented in a small dll, or that the implementation is configured with 'CallOnlyWhenLoaded="true"'.

public interface class IDkmVisualStudioServices
public interface class IDkmVisualStudioServices
__interface IDkmVisualStudioServices
public interface IDkmVisualStudioServices
type IDkmVisualStudioServices = interface
Public Interface IDkmVisualStudioServices

Methods

DisplayUserMessagePrompt(DkmUserMessage)

Displays a message to the user inside the Visual Studio debugger IDE. This function waits for the Visual Studio IDE to complete processing this message. This method may not be called from code that runs as part of UI event processing. Doing so will cause a deadlock. This method requires DkmUserMessage.Process to be non-null.

GetCodeViewCompilers(DkmEngineSettings)

Returns the enumeration of DkmCodeViewCompilerId values. This enumeration may then be used by a symbol provider to map the information within a code view record to the DkmCompilerId structure.

GetLanguageSettings(DkmLanguage, DkmLanguageRegistrySetting[])

Reads language-specific from the registry. The settings are stored under HKLM\Software\Microsoft\VisualStudio\15.0\AD7Metrics\ExpressionEvaluator[Languag Guid][Vendor Guid].

GetProjectItemScriptBlocks(DkmScriptDocument)

Queries the language service (IVsLanguageDebugInfoScript) to obtain script block information from the associated project item of the specified script document.

GetUserDocumentPath(DkmEngineSettings)

Get the user document visual studio folder path.

PostUserMessage(DkmUserMessage)

Displays a message to the user inside the Visual Studio debugger IDE. This function does not block waiting for the user to dismiss the error message.

SendToVsService(DkmCustomMessage, Guid, Boolean)

Sends a custom message to a Visual Studio package. This can be used, for example, to drive a custom UI or make a custom UI visible by enabling a command context (IVsMonitorSelection.SetCmdUIContext).

For local 32-bit debugging, the custom message parameters (DkmCustomMessage.Parameter1/2), may contain any value (ex: object/IUnknown, string, etc), however, values are transferred between threads without marshalling, so in cases where this will not work, the sender is responsible for converting the parameter into a form which can be used from the VS service (ex: calling ole32!CoMarshalInterThreadInterfaceInStream).

For remote debugging, and 64-bit debugging, the custom message parameters are marshalled across machines, and so the restrictions describe in the DkmCustomMessage.Parameter1 documentation applies.

Applies to