Desktop Window Manager (DWM)

Overview of the Desktop Window Manager (DWM) technology.

To develop Desktop Window Manager (DWM), you need these headers:

For programming guidance for this technology, see:

Enumerations

Title Description
DWM_SOURCE_FRAME_SAMPLING Flags used by the DwmSetPresentParameters function to specify the frame sampling type.
DWM_TAB_WINDOW_REQUIREMENTS Returned by DwmGetUnmetTabRequirements to indicate the requirements needed for a window to put tabs in the application title bar.
DWMFLIP3DWINDOWPOLICY Flags used by the DwmSetWindowAttribute function to specify the Flip3D window policy.
DWMNCRENDERINGPOLICY Flags used by the DwmSetWindowAttribute function to specify the non-client area rendering policy.
DWMTRANSITION_OWNEDWINDOW_TARGET Identifies the target.
DWMWINDOWATTRIBUTE Flags used by the DwmGetWindowAttribute and DwmSetWindowAttribute functions to specify window attributes for Desktop Window Manager (DWM) non-client rendering.
GESTURE_TYPE Identifies the gesture type specified in DwmRenderGesture.

Functions

Title Description
DwmAttachMilContent This function is not implemented.
DwmDefWindowProc Default window procedure for Desktop Window Manager (DWM) hit testing within the non-client area.
DwmDetachMilContent This function is not implemented.
DwmEnableBlurBehindWindow Enables the blur effect on a specified window.
DwmEnableComposition Enables or disables Desktop Window Manager (DWM) composition.
DwmEnableMMCSS Notifies the Desktop Window Manager (DWM) to opt in to or out of Multimedia Class Schedule Service (MMCSS) scheduling while the calling process is alive.
DwmExtendFrameIntoClientArea Extends the window frame into the client area.
DwmFlush Issues a flush call that blocks the caller until the next present, when all of the Microsoft DirectX surface updates that are currently outstanding have been made. This compensates for very complex scenes or calling processes with very low priority.
DwmGetColorizationColor Retrieves the current color used for Desktop Window Manager (DWM) glass composition.
DwmGetCompositionTimingInfo Retrieves the current composition timing information for a specified window.
DwmGetGraphicsStreamClient This function is not implemented.
DwmGetGraphicsStreamTransformHint This function is not implemented.
DwmGetTransportAttributes Retrieves transport attributes.
DwmGetUnmetTabRequirements Note  This function is publically available, but nonfunctional, for Windows 10, version 1803.Checks the requirements needed to get tabs in the application title bar for the specified window.
DwmGetWindowAttribute Retrieves the current value of a specified Desktop Window Manager (DWM) attribute applied to a window.
DwmInvalidateIconicBitmaps Called by an application to indicate that all previously provided iconic bitmaps from a window, both thumbnails and peek representations, should be refreshed.
DwmIsCompositionEnabled Obtains a value that indicates whether Desktop Window Manager (DWM) composition is enabled. Applications on machines running Windows 7 or earlier can listen for composition state changes by handling the WM_DWMCOMPOSITIONCHANGED notification.
DwmModifyPreviousDxFrameDuration Changes the number of monitor refreshes through which the previous frame will be displayed. DwmModifyPreviousDxFrameDuration is no longer supported. Starting with Windows 8.1, calls to DwmModifyPreviousDxFrameDuration always return E_NOTIMPL.
DwmQueryThumbnailSourceSize Retrieves the source size of the Desktop Window Manager (DWM) thumbnail.
DwmRegisterThumbnail Creates a Desktop Window Manager (DWM) thumbnail relationship between the destination and source windows.
DwmRenderGesture Notifies Desktop Window Manager (DWM) that a touch contact has been recognized as a gesture, and that DWM should draw feedback for that gesture.
DwmSetDxFrameDuration Sets the number of monitor refreshes through which to display the presented frame. DwmSetDxFrameDuration is no longer supported. Starting with Windows 8.1, calls to DwmSetDxFrameDuration always return E_NOTIMPL.
DwmSetIconicLivePreviewBitmap Sets a static, iconic bitmap to display a live preview (also known as a Peek preview) of a window or tab. The taskbar can use this bitmap to show a full-sized preview of a window or tab.
DwmSetIconicThumbnail Sets a static, iconic bitmap on a window or tab to use as a thumbnail representation. The taskbar can use this bitmap as a thumbnail switch target for the window or tab.
DwmSetPresentParameters Sets the present parameters for frame composition. DwmSetPresentParameters is no longer supported. Starting with Windows 8.1, calls to DwmSetPresentParameters always return E_NOTIMPL.
DwmSetWindowAttribute Sets the value of Desktop Window Manager (DWM) non-client rendering attributes for a window.
DwmShowContact Called by an app or framework to specify the visual feedback type to draw in response to a particular touch or pen contact.
DwmTetherContact Enables the graphical feedback of touch and drag interactions to the user.
DwmTransitionOwnedWindow Coordinates the animations of tool windows with the Desktop Window Manager (DWM).
DwmUnregisterThumbnail Removes a Desktop Window Manager (DWM) thumbnail relationship created by the DwmRegisterThumbnail function.
DwmUpdateThumbnailProperties Updates the properties for a Desktop Window Manager (DWM) thumbnail.

Structures

Title Description
DWM_BLURBEHIND Specifies Desktop Window Manager (DWM) blur-behind properties. Used by the DwmEnableBlurBehindWindow function.
DWM_PRESENT_PARAMETERS Specifies Desktop Window Manager (DWM) video frame parameters for frame composition. Used by the DwmSetPresentParameters function.
DWM_THUMBNAIL_PROPERTIES Specifies Desktop Window Manager (DWM) thumbnail properties. Used by the DwmUpdateThumbnailProperties function.
DWM_TIMING_INFO Specifies Desktop Window Manager (DWM) composition timing information. Used by the DwmGetCompositionTimingInfo function.
MilMatrix3x2D Specifies a 3x2 matrix that describes a transform.
UNSIGNED_RATIO Defines a data type used by the Desktop Window Manager (DWM) APIs. It represents a generic ratio and is used for different purposes and units even within a single API.