Grâce à une question récemment posé sur le forum csharp de codes-sources, j'ai pu trouver la solution à un problème que j'avais eu il y a quelques mois : Comment activer les thèmes XP dans le contrôle ActiveX ? Je suis rapidement arrivé sur le site de Microsoft (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwxp/html/xptheming.asp) puis quand j'ai essayé leur solution, ça ne fonctionnait pas plus que ça....et bien entendu j'étais en faute :-).
Petit rappel de la procédure à effectuer :
1) Dans stdafx.h :
#define
ISOLATION_AWARE_ENABLED 1
#pragma comment(lib,"comctl32.lib")
#include <windows.h>
#include <commctrl.h>
#include <atlbase.h>
#include <atlcom.h>
//etc...
2) Créer le fichier manifest.bin (nom au choix)
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="CompanyName.ProductName.YourApplication"
type="win32"
/>
<description>Your application 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>
3) Ajouter le fichier aux ressources :
////////////////////////////////////////////////////
//
// RT_MANIFEST
//
MANIFEST_RESOURCE_ID RT_MANIFEST "manifest.bin"
ATTENTION : Il est ici strictement obligatoire de laisser RT_MANIFEST, autrement ça ne fonctionnera pas. C'était ici que j'avais fais mon erreur lors de mes premiers essais en me disant que ça ne changerait rien :o\.
4) Modifier l'identifiant de la resource dans resource.h
#define
MANIFEST_RESOURCE_ID 2 //mettre 2 obligatoirement
Voilà c'est prêt vous pouvez maintenant abuser des thèmes XP dans Internet Explorer, MMC, explorer