Module _winxptheme

A module which provides an interface to the Windows XP 'theme' API.
Note that this module will fail to load on non-Windows XP versions. Generally you should use the 'winxptheme' module which will load on all Windows versions, and provide implementations of IsThemeActive() or IsAppThemed() which return False when XP is not used, and provides all objects from this module when XP is used. See for more details.


Open the theme data for the specified HWND and semi-colon separated list of class names.
OpenThemeData() will try each class name, one at a time, and use the first matching theme info found. If a match is found, a theme handle to the data is returned. If no match is found, a "NULL" handle is returned.
When the window is destroyed or a WM_THEMECHANGED msg is received, _winxptheme::CloseThemeData should be called to close the theme handle. 

Closes the theme data handle. This should be done when the window being themed is destroyed or whenever a WM_THEMECHANGED msg is received (followed by an attempt to create a new Theme data handle). 

Draws the theme-specified border and fill for the "iPartId" and "iStateId". This could be based on a bitmap file, a border and fill, or other image description. 

Draws the text using the theme-specified color and font for the "iPartId" and "iStateId". 

Gets the size of the content for the theme-defined background. This is usually the area inside the borders or Margins. 

Calculates the size/location of the theme- specified background based on the "pContentRect". 

Can be used to test if a system theme is active for the current user session.
use the API _winxptheme::IsAppThemed to test if a theme is active for the calling process. 

Returns True if a theme is active and available to the current process 

If window is themed, returns its most recent HTHEME from OpenThemeData() - otherwise, returns NULL. 

Enables/disables dialog background theme. This method can be used to tailor dialog compatibility with child windows and controls that may or may not coordinate the rendering of their client area backgrounds with that of their parent dialog in a manner that supports seamless background texturing. 

Reports whether the dialog supports background texturing. 

Returns the app property flags that control theming 

Enables or disables themeing for the current user in the current and future sessions. 

Rredirects an existing Window to use a different section of the current theme information than its class normally asks for. 

Get the name of the current theme in-use, the canonical color scheme name (not the display name) and the canonical size name (not the display name).