Introduction

There's a very interesting BUILD presentation on Windows Runtime internals by Matt Merry. In this talk, a custom debug tool was used; implementing this tool was left as "an exercise for the reader". This is just a possible implementation.


Building the Sample

This sample is a console app developed in native C++ using Microsoft Visual Studio 11 Developer Preview on Windows 8 Developer Preview.


 Description

This debug tool is just a simple C++ console app wrapper around IPackageDebugSettings COM interface. 

 The methods of the aforementioned COM interface are mapped to command line options, as showed in the attached documentation file; e.g.: the /EnableDebug option, or equivalent shortcut version /e, calls the IPackageDebugSettings::EnableDebugging() method; /DisableDebug (/d) invokes IPackageDebugSettings::DisableDebugging(); /Suspend (/s) calls IPackageDebugSettings::Suspend(), etc.

If invoked without any option, the .exe prints some help lines.

This app is entirely written in native C++11, using C++ exceptions (instead of propagating HRESULT return codes), STL, and Win32 Platform SDK; no additional libraries (e.g. ATL) are used.

C++ best practices like RAII are implemented in this code. 


 WinRT Package Debug Tool Info.docx