MSSTYLES

MSSTYLES is a Microsoft file format, that contains the bitmaps and metadata for the Windows XP skinning engine, first introduced in Windows Whistler Build 2250.

The engine, in its unmodified state, only fully applies .msstyles files that have been digitally signed by Microsoft, such as Luna or the Zune theme. The default Windows XP style is known as Luna, but additional custom-made styles are available on the Internet – however, few are digitally signed. Four other signed styles for Windows XP include Royale (Media Center Edition) (Energy Blue), Royale Noir, Windows Embedded Standard CTP Refresh, and the Zune Style.

Unsigned styles can be used via various methods, by means of manually patching or replacing system files or automatically by one of the programs made for this purpose. These programs are usually called "UxTheme patchers" from the name of the XP library that required patching, UxTheme.dll, despite that recent Windows versions require patches to different files. Many popular and freely distributed patchers can be found online, often using different ways to enable custom themes.

Windows Vista and later also use .msstyles files for skinning (like the Aero.msstyles file), however the format of these files is significantly different, so .msstyles files are not transferable between Windows Vista and Windows XP. This version of .msstyles file contains PNG images and metadata.

There is a manual way to replace three DLL files (uxtheme.dll, shsvcs.dll and themeui.dll) to use unsigned custom visual styles in Windows Vista.

Windows XP
.msstyles files are 32-bit PE files, however they don't contain code or ordinary data. Microsoft provided styles contain PE version metadata, despite Explorer not displaying this data for .msstyles files in recent Windows versions. PE signing is not used, instead a custom signature is appended to the file.

Theme properties are stored in INI format in  resources inside the file. In these INI files, the section title refers to a "class name" (much like CSS), and the properties are Microsoft never stripped any unnecessary comments from these files when compiling these themes, so the comments are intact and you can read them if you open the theme with a PE resource editor, such as Resource Hacker.

Here is a snippet from  from the default Luna theme, which controls the default button style:

Any  definitions are also unchanged from the source INI files, resulting in it representing a file path. points to the  bitmap resource.

As mentioned before, Windows XP/Server 2003 .msstyles files can be edited with a regular PE resource editor, such as Resource Hacker.

Signature format
Offsets in the following table are relative to end of file.

Windows Vista and later
In Windows Vista and later, .msstyles files are still 32-bit PE files with no code, however the format of the actual theme part is entirely different. Bitmaps are no longer used in favor of PNG images. The properties themselves are also no longer stored in text resources, and as such, unlike the previous format, .msstyles files made for Windows Vista and later cannot be edited to the fullest extent with a regular PE resource editor.

Two programs that can edit these files are msstyleEditor and Vista Style Builder. The former is free and open-source, whereas the latter is paid, however with more features than msstyleEditor.