views:

19

answers:

0

On MSDN's DWM Thumbnail Overview they specifically state:

Note DWM thumbnails do not enable developers to create applications like the Windows Vista Flip3D (WINKEY-TAB) feature. Thumbnails are rendered directly to the destination window in 2-D.

So what API can be used to create applications like the Windows Vista Flip3D?

Background

With Windows Desktop Composition running, applications draw their window client-area's onto their own private buffer. (This contrasts with previous versions of Windows where every application drew directly on the screen). This client area image is then placed in a frame (the title bar, minimize, maximize, restore buttons, etc) and then drawn (i.e. composited) onto the desktop - along with all the other windows that are open:

alt text

Because this buffer is private, and because graphics cards in the last few years have become powerful at performing 3D tasks, Windows can then start to perform some neat tricks. One of them is to be able to manipulate the client window, performing scaling and perspective changes to it. This allows the live "thumbnail" api - where Windows will draw a thumbnail size copy of a window where you tell it to. Since this is all happening in the hardware, it is very fast.

The other ability is the Flip3D (Win+Tab). The compositor can perform 3d positioning of a window. Again, because this is all done in hardware it is very fast.

i have found the API to tell the Desktop Window Monitor to draw me a thumbnail of an application "here":

//Register a thumbnail we want
DwmRegisterThumbnail(hwnd, hwndMediaPlayer, NULL), thumbnail);

// Start displaying the thumbnail
DwmUpdateThumbnailProperties(thumbnail, thumbproperties);

But i cannot find the API to tell the DWM to draw me the full-size version of a window.