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.
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.
COleDateTime and CTime show the same format as FILETIME and SYSTEMTIME above.
CTimeSpan shows the time value as Days, Hours, Minutes, and Seconds.
Displays the key's canonical and display names.
Displays the commonly used LOGFONT structure members in an easy to interpret format.
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.
Defined new GUIDs for the type visualizers & calls the appropriate converter when the matching GUID is passed (from the debugger).
Converter for FILETIME & SYSTEMTIME -> String
Converter for PROPERTYKEY -> String
Converter for LOGFONT(A/W) -> String
Revised application to illustrate the types handled by this extension.