MSSTYLES

From HandWiki
Short description: Microsoft file format
MSSTYLES
Filename extension.msstyles
Type code32 bit PE files.
Developed byRoland Fernandez[1] (Microsoft)
Initial releaseAugust 24, 2001
Type of formatContains 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

  1. Roland L. Fernandez; Richard W. Stoakley & Scott S. Hysom, "Binary cache file format for themeing the visual appearance of a computer system", US patent 7565611, assigned to Microsoft Corporation
  2. "Introducing the Whistler Preview, Build 2250". Windows IT Pro. Penton Media. 18 July 2000. http://www.itprotoday.com/windows-server/introducing-whistler-preview-build-2250. 

External links