Skip to content

Files

Latest commit

David LowndesDavid Lowndes
David Lowndes
and
David Lowndes
May 13, 2024
4789fa1 · May 13, 2024

History

History
This branch is 43 commits ahead of, 20 commits behind microsoft/ConcordExtensibilitySamples:main.

CppCustomVisualizer

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Sep 11, 2022
May 13, 2024
May 13, 2024
Jul 29, 2021
Jan 25, 2019
Jan 1, 2021
Feb 23, 2024
Feb 17, 2020
Sep 11, 2022
Jan 1, 2021
Jan 1, 2021
Jan 1, 2021

Dave's Visual Studio Debug Visualizers

Win32, ATL, & MFC Debug Visualizers for the following structures and classes:

Times: FILETIME, SYSTEMTIME, COleDateTime, CTime, CTimeSpan

Miscellaneous: PROPERTYKEY, LOGFONT


If you'd like to see other common structures or classes included, don't hesitate to ask by adding a new idea in the discussion area.


Variables of the following types are normally displayed in raw forms by the debugger, but as you can see in the following examples, with this extension they're displayed in more useful formats.

FILETIME, SYSTEMTIME

Displays the time value interpreted as both UTC and local time, shown in your current locale format. Also displays the SYSTEMTIME form used in TIME_ZONE_INFORMATION & DYNAMIC_TIME_ZONE_INFORMATION from the GetTimeZoneInformation(ForYear) & GetDynamicTimeZoneInformation APIs.

FILETIME & SYSTEMTIME demonstration animation


COleDateTime, CTime, CTimeSpan

COleDateTime and CTime show the same format as FILETIME and SYSTEMTIME above.
CTimeSpan shows the time value as Days, Hours, Minutes, and Seconds.

COleDateTime, CTime, & CTimeSpan demonstration animation


PROPERTYKEY

Displays the key's canonical and display names.

PROPERTYKEY demonstration animation


LOGFONT(A/W)

Displays the commonly used LOGFONT structure members in an easy to interpret format.

LOGFONT demonstration animation


Original Project

This project is based on the CppCustomVisualizer in the Microsoft Concord Extensibility Sample. The original visualizer only handles the FILETIME type, and only shows a local format of it.

Natvis documentation can be found on docs.microsoft.com.

Thanks to Gregg Miskelly for pointing me in the right direction in getting this project to build for Visual Studio 2022.

Notes on additions to the original example

dll folder

_EntryPoint.cpp

Defined new GUIDs for the type visualizers & calls the appropriate converter when the matching GUID is passed (from the debugger).

FileAndSystemTimeViz.cpp/.h

Converter for FILETIME & SYSTEMTIME -> String

PropertyKeyViz.cpp/.h

Converter for PROPERTYKEY -> String

FontInfoViz.cpp/.h

Converter for LOGFONT(A/W) -> String

TargetApp folder

Revised application to illustrate the types handled by this extension.