An EngExtCpp extension library is a DLL that uses the EngExtCpp extension framework found in EngExtCpp.h. When this library is loaded by the debugger engine, its methods and functions can provide extra functionality or automation of tasks while performing user-mode or kernel-mode debugging on Microsoft Windows.
The EngExtCpp extension framework is built on top of the DbgEng extension framework. It offers the same debugger engine API for interaction with the debugger engine. but it also provides additional features to make common tasks simpler.
If you performed a full install of Debugging Tools for Windows, a sample EngExtCpp extension called "extcpp" can be found in the sdk\samples\extcpp subdirectory of the installation directory.
EXT_CLASS and ExtExtension
At the core of an EngExtCpp extension library is a single instance of the EXT_CLASS class. An EngExtCpp extension library will provide the implementation of this class, which contains all the extension commands and methods for formatting structures that are exported by the library.
EXT_CLASS is a subclass of ExtExtension. The single instance of this class is created using the EXT_DECLARE_GLOBALS macro which must appear exactly once in the source files for the extension library.
The EXT_CLASS class can contain a number of methods that are used to execute extension commands. Each extension command is declared in the EXT_CLASS class by using the EXT_COMMAND_METHOD macro. The implementation of a command is defined by using the EXT_COMMAND macro.
Known Structures
The EXT_CLASS class can contain a number of methods that use the ExtKnownStructMethod prototype. The methods can be used by the engine to format instances of certain structure types for output.
Provided Values
The EXT_CLASS class can contain a number of methods that use the ExtProvideValueMethod prototype. The methods can be used by the engine to evaluate some pseudo-registers provided by the extension.
Finance and operations apps are customized by using extensions, which let you add functionality to model elements and source code in the Application Object Tree (AOT) by using Visual Studio.