The new Windows Vista desktop composition feature fundamentally changes the way applications display pixels on the screen.
When desktop composition is enabled, individual windows no longer draw directly to the screen or primary display device as they did in previous versions of Microsoft Windows.
Instead, their drawing is redirected to off-screen surfaces in video memory, which are then rendered into a desktop image and presented on the display.
Desktop composition is performed by the Desktop Window Manager (DWM), a new component of Windows Vista.
Through desktop composition, DWM enables visual effects on the desktop as well as various features, such as glass window frames, 3-D window transition animations, Windows Flip and Windows Flip3D , and high resolution support.
For more information about the user experience features enabled by the DWM visit the Windows Vista: Features User Experience Page.
Many of the DWM features can be controlled or accessed by an application through the DWM APIs . The following documentation describe some of the features and requirements of DWM API.
Desktop Window Manager APIs
DWM consists of the following APIs. Additional documentation is available by following the associated links.
Enumerations
DWM_SOURCE_FRAME_SAMPLING
Specifies the frame sampling type.
DWMFLIP3DWINDOWPOLICY
Specifies the Flip3D window policy.
DWMNCRENDERINGPOLICY
Specifies a constant that defines the non-client area rendering policy.
DWMWINDOWATTRIBUTE
Specifies window attributes for non-client rendering
Functions
DwmDefWindowProc
Default window procedure for DWM hit-testing within the non-client area.
DwmEnableBlurBehindWindow
Enables the blur effect on the provided window handle.
DwmEnableComposition
Enables or disables DWM composition.
DwmEnableMMCSS
Tells the DWM to opt into Multimedia Class Schedule Service (MMCSS) scheduling while the calling process is alive.
DwmExtendFrameIntoClientArea
Extends the window frame behind the client area.
DwmGetColorizationColor
Retrieves the current color used for DWM glass composition. This value is based on the current color scheme and is modifiable by the user. Applications can listen for color changes by handling the WM_DWMCOLORIZATIONCOLORCHANGED notification.
DwmGetCompositionTimingInfo
Retrieves the current composition timing information.
DwmGetWindowAttribute
Retrieves the current value of the specified DWMWINDOWATTRIBUTE that is applied to the window.
DwmIsCompositionEnabled
Obtains a value that indicates whether DWM composition is enabled. Applications can listen for composition state changes by handling the WM_DWMCOMPOSITIONCHANGED notification.
DwmModifyPreviousDxFrameDuration
Changes the number of refreshes the previous frame will be displayed.
DwmQueryThumbnailSourceSize
Returns the source size of the DWM thumbnail.
DwmRegisterThumbnail
Creates a DWM thumbnail relationship between the destination and source windows.
DwmSetDxFrameDuration
Sets the number of refreshes to display the presented frame.
DwmSetPresentParameters
Sets the present parameters for frame composition.
DwmSetWindowAttribute
Sets the value of the specified DWMWINDOWATTRIBUTE to apply to the window.
DwmUnregisterThumbnail
Removes a DWM thumbnail relationship created by DwmRegisterThumbnail.
DwmUpdateThumbnailProperties
Updates the properties for a given DWM thumbnail.
Structures
DWM_BLURBEHIND
Specifies DWM blur behind properties.
DWM_PRESENT_PARAMETERS
Contains DWM video frame parameters for frame composition.
DWM_THUMBNAIL_PROPERTIES
Specifies DWM thumbnail properties.
DWM_TIMING_INFO
Contains DWM composition timing information.
UNSIGNED_RATIO
A ratio used with the DWM timing API.