[Motivation]
This tool is designed to test the usage of the SetThreadDescription WinAPI in
Chrome. In Chrome, the SetThreadDescription API has been enabled to set thread
names. However, since there is no tool support to retrieve thread names set by
GetThreadDescription, we'll still rely on SetNameInternal function in
platform_thread_win.cc to set thread names. Despite this, we need a tool to demo
the SetThreadDescription API works, even without the debugger to be present.

The problem setting can be referred to
https://bugs.chromium.org/p/chromium/issues/detail?id=684203

This tool incorporates the GetThreadDescription API trying to get names of all
threads in a process specified by its ID. If the thread names have been set by
SetThreadDescription API call like in Chrome, all thread ID/name pairs are
returned.

[Requirement]
Since SetThreadDescription/GetThreadDescription APIs are brought in Windows 10,
version 1607, this tool can only be effective if running in this version or
later ones.

[How to use it]
Please download the three files (.cc, .sln, .vcxproj) and compile the code in
Visual Studio. Run "ShowThreadNames.exe" either from the build directory or from
Visual Studio. No parameters are needed. This tool allows interaction with the
user. Once launched, it will show "Please enter the process Id, or "quit" to
end the program :" on the terminal. Simply type in the ID of any Chrome process
you are interested in, and you will get output like below:

thread_ID   thread_name
12116
10292
6532
6928
2488
11304
2256    AudioThread
9308    BrokerEvent
5668    BrowserWatchdog
8280    Chrome_HistoryThread
7472    Chrome_IOThread
6336    Chrome_ProcessLauncherThread
12212   CompositorTileWorker1/12212
3628    CrBrowserMain
6472    DnsConfigService
1980    IndexedDB
10560   TaskSchedulerBackgroundBlockingWorker0
11464   TaskSchedulerBackgroundWorker0
3156    TaskSchedulerForegroundBlockingWorker5
7660    TaskSchedulerForegroundWorker0
8216    TaskSchedulerServiceThread
11088   VideoCaptureThread

The threads are sorted by their names. Note that some threads have no names in
this example. If checking them using Visual Studio debugger, it is found that
they are ntdll.dll!WorkerThreads.
