Filename extension |
.msstyles |
---|---|
Internet media type | no value |
Type code | 32 bit PE files. |
Developed by | Roland Fernandez[1] (Microsoft) |
Initial release | August 24, 2001 |
Type of format | Contains bitmaps and metadata for the Windows XP skinning engine. |
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.[2]
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.
File format
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 TEXTFILE
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 NORMALBLUE_INI
from the default Luna theme, which controls the default button style:
;Normal button
[button.pushbutton]
bgtype = imagefile
SizingMargins = 8, 8, 9, 9
sizingType = Stretch
ContentMargins = 3, 3, 3, 3
ImageFile = Blue\button.bmp
imageCount = 5
ImageLayout = vertical
TextColor = 0 0 0
FillColorHint = 243 243 239; Average fill color (light beige)
BorderColorHint = 0 60 116; Edge color (dark blue grey)
AccentColorHint = 250 196 88; Rollover hilite color (orange)
MinSize= 10, 5
Any ImageFile
definitions are also unchanged from the source INI files, resulting in it representing a file path. ImageFile = Blue\button.bmp
points to the BLUE_BUTTON_BMP
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.
Offset hex | Offset dec | Size | Purpose |
---|---|---|---|
−N | -N | 128 bytes | Cryptographic signature with "Microsoft Visual Style Signature" key |
−10 | −16 | 4 bytes | Magic number, must be 0x84692426 |
−0C | −12 | 4 bytes | N − 16, the negative distance of signature from magic. |
−08 | −8 | 8 bytes | Total file size |
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.
See also
References
- ↑ US patent 7565611, Roland L. Fernandez; Richard W. Stoakley & Scott S. Hysom, "Binary cache file format for themeing the visual appearance of a computer system", assigned to Microsoft Corporation
- ↑ "Introducing the Whistler Preview, Build 2250". Windows IT Pro. Penton Media. 18 July 2000. Archived from the original on 2018-06-12. Retrieved 2019-09-22.