Supporting Visual Styles in Snap-ins

Visual styles are a feature of Windows and are supported by MMC 2.0. Your snap-in should support visual styles for improved user interface (UI) experience and consistency.

When your snap-in supports visual styles, UI elements (such as dialog boxes) that are created by your snap-in will display in the visual style selected by the user.

To support visual styles, create a manifest resource to your snap-in DLL. The manifest resource indicates that your snap-in uses Microsoft Common Control version 6 (Comctl32.dll) if it is available (otherwise, it uses an earlier version of Microsoft Common Control).

The following sections provide information about how to support visual styles in your snap-in:

For more information and a list of additional steps necessary to support themes in MFC snap-ins, see Supporting Visual Styles in MFC Snap-ins.

Create a manifest resource

To support visual styles, your snap-in must have a manifest resource that uses the Microsoft Common Controls version 6.0 assembly. The manifest resource consists of XML. The manifest file is of the following format:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
 <assemblyIdentity
    version="1.0.0.0"
    processorArchitecture="X86"
    name="YourCompanyName.YourDivision.YourApp"
    type="win32"/>
 <description>Your app description here</description>
 <dependency>
  <dependentAssembly>
   <assemblyIdentity
      type="win32"
      name="Microsoft.Windows.Common-Controls"
      version="6.0.0.0"
      processorArchitecture="X86"
      publicKeyToken="6595b64144ccf1df"
      language="*"/>
  </dependentAssembly>
 </dependency>
</assembly>

You can choose the values for your name and description attributes. If you are building for a 64-bit architecture, indicate it with the appropriate value for both occurrences of processorArchitecture. Other than the values for name, description and processorArchitecture (if necessary), do not change the text in the manifest.

Specify a name for the manifest file. This example assumes the file is named "YourApp.manifest", and the file is in the same folder as your snap-in's resource file (.rc).

Include Microsoft Common Control

Include the common control header file in your snap-in source.

#include "commctrl.h"

Set the ISOLATION_AWARE_ENABLED directive

Compile your snap-in with the -D ISOLATION_AWARE_ENABLED flag, or insert the following statement before the #include "windows.h" statement.

#define ISOLATION_AWARE_ENABLED 1

Reference the manifest file

Define a manifest resource ID of 2.

#define MANIFEST_RESOURCE_ID 2

In your resource script (.rc) file, use the manifest resource ID to define a resource of type RT_MANIFEST. The manifest file that you created corresponds to the RT_MANIFEST resource.

MANIFEST_RESOURCE_ID RT_MANIFEST "YourApp.manifest"

Your snap-in is ready to compile and test.