The Coolest Parts of Windows API
- by Andreas Rejbrand
I have noticed that there are quite a few community wikis about "Tips & Tricks" or "Hidden Features" in programming languages and APIs here at Stack Overflow. But I could not find any about my own personal favourites: Win32 API and Delphi. Therefore I start my "own" CW about Win32 API.
There are (at least) two kinds of Win API users: those that have been brought up using Windows API in C/C++, and those that have been brought up using some level of abstraction above the Windows API. I belong to the latter category, being brought up using Delphi's VCL. But over the last five years, I have become increasingly interested in the underlaying API of the Windows operating system, and today I work a lot with it.
Depending on which category a programmer belongs to, he (or possibly she) will think that different things are "cool" in the Windows API. For instance, whereas a VCL-brought up developer might think it it very cool to
var
errIcon: HICON;
begin
errIcon := LoadIcon(0, IDI_ERROR);
DrawIcon(Canvas.Handle, 10, 10, errIcon),
a programmer brought up using Windows API in C will not be as impressed.
But no matter how you are "brought up": what are the coolest "tricks" in Windows API?
I start by listing a few of my own favourites, some of which are more "cool" than "useful", though:
LoadIcon and MessageBeep can load/play system default icons and sounds.
Open the CD tray: mciSendString('Set cdaudio door open wait', nil, 0, 0);
Fade out the screen (Windows Vista and later) and turn of the monitor: SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, 2);
GetWindowDC(GetDesktopWindow) returns the DC of the desktop.