Exemple de création de package unique

l’exemple de PUASample.msi est un exemple de package Windows Installer 5,0 à double usage qui peut être installé dans le contexte d’installation par utilisateur ou par ordinateur sur Windows Server 2008 R2 et Windows 7. Cet exemple de package suit les instructions de développement décrites dans création de package unique.

Obtention d’une copie de l’exemple

une copie de cet exemple et d’un Windows Installer éditeur de table de base de données, Orca.exe, se trouvent dans les composants SDK Windows pour les développeurs Windows Installer. l’exemple et l’éditeur de table sont fournis avec le Kit de développement logiciel (sdk) Windows pour Windows Server 2008 R2 et Windows 7 en tant que fichiers d’installation Windows Installer PUASample1.msi et Orca.msi.

Configuration requise

l’éditeur de base de données, Orca.exe, requiert Windows Server 2008 R2 et versions antérieures, ainsi que Windows 7 et versions antérieures. le package à double usage, PUASample1.msi, peut être installé dans le contexte d’installation par ordinateur ou par utilisateur sur Windows Server 2008 R2 et Windows 7. PUASample1.msi peut être installé uniquement dans le contexte par ordinateur sur Windows Server 2008 et versions antérieures, et Windows Vista et versions antérieures. Vous pouvez installer l’éditeur de base de données pour examiner le contenu de PUASample1.msi sans installer l’exemple. Pour installer les packages de l’exemple ou de l’éditeur, vérifiez que la stratégie DisableMSI n’est pas définie sur une valeur qui bloque les installations d’applications.

Identification d’un package Dual-Purpose

Les packages à double usage doivent initialiser la valeur de la propriété MSIINSTALLPERUSER sur 1. cela permet d’identifier le package comme étant en mesure de l’installer dans le contexte par ordinateur ou par utilisateur sur Windows Server 2008 R2 et Windows 7. Définissez la propriété MSIINSTALLPERUSER dans le package uniquement si elle a été écrite conformément aux instructions de développement décrites dans création de package unique et, si vous envisagez de fournir aux utilisateurs la possibilité d’installer le package dans le contexte par utilisateur ou par ordinateur. Un package à double usage doit également initialiser la valeur de la propriété ALLUSERS à 2. Cela spécifie par utilisateur comme contexte d’installation par défaut pour l’application. si la valeur de la propriété ALLUSERS est différente de 2, Windows Installer ignore la propriété MSIINSTALLPERUSER .

utilisez un éditeur de base de données Windows Installer, tel que Orca.exe, pour examiner le contenu de PUASample1.msi. La table des Propriétés de l’exemple de package contient les deux entrées suivantes.

Propriété Table (partielle)

Propriété Valeur
ALLUSERS 2
MSIINSTALLPERUSER 1

Boîte de dialogue personnalisée pour le contexte d’installation

L' interface utilisateur de l’exemple de package contient un exemple de boîte de dialogue personnalisée, VerifyReadyDialog, qui permet aux utilisateurs de sélectionner le contexte d’installation par utilisateur ou par ordinateur au moment de l’installation. La table boîte de dialogue contient un enregistrement qui décrit la boîte de dialogue VerifyReadyDialog. La valeur entrée dans le champ attributs est 39, car cette boîte de dialogue utilise les bits de style de boîte de dialoguemsidbDialogAttributesVisible (1), msidbDialogAttributesModal (2), msidbDialogAttributesMinimize (4) et msidbDialogAttributesTrackDiskSpace (32). La barre de titre de la boîte de dialogue affiche un titre donné par la valeur de la propriété ProductName .

Boîte de dialogue Table (partielle)

Boîte de dialogue HCentering VCentering Largeur Hauteur Attributs Titre _Premier contrôle _Valeur par défaut du contrôle Annuler le contrôle _
VerifyReadyDialog 50 50 480 280 39 [ProductName] InstallPerUser Suivant Annuler

La table de contrôle contient des entrées pour les contrôles affichés par la boîte de dialogue VerifyReadyDialog. La boîte de dialogue affiche les contrôles PUSHBUTTON et un contrôle de texte . Tous les contrôles utilisent les attributs de contrôlemsidbControlAttributesEnabled (2) et msidbControlAttributesVisible (1). Le contrôle InstallPerMachine utilise également l’attribut de contrôle ElevationShield , msidbControlAttributesElevationShield (8388608.) Cet attribut de contrôle ajoute l’icône d’élévation du contrôle de compte d’utilisateur (icône bouclier) au contrôle InstallPerMachine et informe l’utilisateur que les informations d’identification UAC sont requises pour installer l’application dans le contexte par ordinateur. La valeur dans le champ de texte de la table de contrôle correspond au style de texte et au texte affiché par le contrôle. Pour plus d’informations sur l’ajout de texte à un contrôle à l’aide de styles prédéfinis, consultez la description du champ de texte dans la rubrique table de contrôle.

Contrôle Table (partielle)

Boîte de dialogue_ Contrôler Type Attribut Texte Contrôle _ suivant
VerifyReadyDialog Annuler Boutons 3 { \ Tahoma10} &annuler Suivant
VerifyReadyDialog Précédente Boutons 3 { \ Tahoma10} <<&précédent Annuler
VerifyReadyDialog Suivant Boutons 3 { \ Tahoma10} &>> suivant InstallPerUser
VerifyReadyDialog Text2 Texte 3 Êtes-vous prêt à terminer l’installation interrompue ?
VerifyReadyDialog InstallPerUser Boutons 3 { \ Tahoma10} installer uniquement pour &moi InstallPerMachine
VerifyReadyDialog InstallPerMachine Boutons 8388611 { \ Tahoma10} installer pour &tout le monde Précédente
VerifyReadyDialog Annuler Boutons 3 { \ Tahoma10} &annuler Suivant

La table ControlEvent, spécifie le ControlEvents, ou les actions, que le programme d’installation effectue lorsque l’utilisateur interagit avec un contrôle. Lorsqu’un utilisateur active le bouton de sélection InstallPerUser, l’interface utilisateur affiche une boîte de dialogue OutOfDisk si la propriété OutOfDiskSpace a la valeur 1, définit la valeur de la propriété MSIINSTALLPERUSER sur 1, définit la propriété ALLUSERS sur la valeur 2, affecte la valeur 1 à la propriété MSIFASTINSTALL et retourne. Étant donné que la propriété MSIFASTINSTALL est définie, aucun point de restauration système n’est généré pour l’installation. Lorsqu’un utilisateur active le PUSHBUTTON InstallPerMachine, l’interface utilisateur affiche une boîte de dialogue OutOfDisk si la propriété OutOfDiskSpace est 1, définit la valeur de la propriété ALLUSERS sur 1 et retourne.

ControlEvent, Table (partielle)

Boîte de dialogue_ contrôle_ Événement Argument Condition Commande
VerifyReadyDialog InstallPerUser SpawnDialog OutOfDisk OutOfDiskSpace = 1 1
VerifyReadyDialog InstallPerUser EndDialog Renvoie OutOfDiskSpace <> 1 5
VerifyReadyDialog InstallPerUser [MSIINSTALLPERUSER] 1 1 2
VerifyReadyDialog InstallPerUser [ALLUSERS] 2 1 3
VerifyReadyDialog InstallPerMachine SpawnDialog OutOfDisk OutOfDiskSpace = 1 1
VerifyReadyDialog InstallPerMachine EndDialog Renvoie OutOfDiskSpace <> 1 3
VerifyReadyDialog InstallPerMachine [ALLUSERS] 1 1 2
VerifyReadyDialog InstallPerUser [MSIFASTINSTALL] 1 1 4

le contrôle InstallPerUser doit être supprimé de l’interface utilisateur de toute installation à l’aide d’une Windows Installer version antérieure à Windows Installer Windows Installer 5,0. la table ControlCondition de l’exemple de package contient quatre entrées qui désactivent et masquent le contrôle InstallPerUser si la version actuelle est inférieure à Windows Installer 5,0. La table utilise la valeur de la propriété VersionMsi et la syntaxe d’instruction conditionnelle pour définir cette condition. L’action spécifiée dans le champ action est exécutée uniquement si l’instruction dans le champ condition a la valeur true.

ControlCondition Table (partielle)

Boîte de dialogue_ contrôle_ Action Condition
VerifyReadyDialog InstallPerUser Activer VersionMsi >= « 5,00 »
VerifyReadyDialog InstallPerUser Désactiver VersionMsi < « 5,00 »
VerifyReadyDialog InstallPerUser Afficher VersionMsi >= « 5,00 »
VerifyReadyDialog InstallPerUser Masquer VersionMsi < « 5,00 »

Spécification de la structure de répertoires

Utilisez l’éditeur de base de données pour examiner la table de répertoire de PUASample1.msi. L’enregistrement de la table de répertoire ayant une chaîne vide dans son _ champ parent de répertoire représente le répertoire racine des arborescences de répertoires source et cible. Si la propriété targetDir n’est pas définie, le programme d’installation définit sa valeur au moment de l’installation sur la valeur de la propriété ROOTDRIVE . si la propriété SourceDir n’est pas définie, le programme d’installation définit sa valeur sur l’emplacement du répertoire contenant le Windows Installer package (fichier .msi.) Les noms de répertoires sont spécifiés à l’aide du | format short long.

Répertoire Table (partielle)

Répertoire Répertoire _ parent DefaultDir
TARGETDIR SourceDir
ProgramFilesFolder TARGETDIR .
ProgramMenuFolder TARGETDIR .
INSTALLLOCATION MyVendor Sample1 | MSDN-PUASample1
MyVendor ProgramFilesFolder Msft | Microsoft

À la source, cette table de répertoires correspond aux chemins d’accès aux répertoires suivants.

\[SourceDir \] \\ msft \\ sample1 \[SourceDir\]

Au niveau de la cible, la table de répertoires correspond aux chemins d’accès figurant dans le tableau suivant. le programme d’installation définit les valeurs des propriétés ProgramFilesFolder et ProgramMenuFolder sur les emplacements qui dépendent du contexte d’installation et indique si le système est la version 32 bits ou 64 bits de Windows Server 2008 R2 et Windows 7. Les chemins d’accès aux dossiers cibles varient selon que l’utilisateur sélectionne une installation par utilisateur ou par ordinateur.

Contexte d’installation Système Exemples de chemins
Per-Machine Windows Server 2008 R2 et Windows 7
version 32 bits
% ProgramFiles% \ msft \ sample1
% ALLUSERSPROFILE% \ Microsoft \ Windows \ programmes du Menu démarrer \
Per-Machine Windows Server 2008 R2 et Windows 7
version 64 bits
% ProgramFiles (x86)% \ msft \ sample1
% ALLUSERSPROFILE% \ Microsoft \ Windows \ programmes du Menu démarrer \
Per-User Windows Server 2008 R2 et Windows 7
version 32 bits ou 64 bits
% USERPROFILE% \ AppData \ local \ Programs \ msft \ sample1
% APPDATA% \ Microsoft \ Windows \ programmes du Menu démarrer \

Les applications par utilisateur doivent être stockées dans des sous-dossiers sous le dossier programmes spécifié par la valeur de la propriété ProgramFilesFolder . En général, le chemin d’accès à l’application prend la forme suivante.

% LocalAppData% \ Programs \ ISV Name \ appname.

Les données de configuration par utilisateur doivent être stockées dans le dossier Programs spécifié par la valeur de la propriété ProgramMenuFolder . En règle générale, ce dossier se trouve à l’emplacement suivant.

% APPDATA% \ Microsoft \ Windows \ programmes du Menu démarrer \

si vous installez des composants de Package Windows Installer 32 bits , utilisez la propriété ProgramFilesFolder et CommonFilesFolder dans la table Directory . si vous installez des composants de Package Windows Installer 64 bits , utilisez les propriétés ProgramFiles64Folder et CommonFiles64Folder . Si votre application contient des versions 32 bits et 64 bits du même composant, avec le même nom, assurez-vous que ces versions sont enregistrées dans des répertoires différents ou attribuez-leur des noms différents.

La table de répertoire suivante fournit un exemple de disposition de répertoire compatible avec un package qui inclut des composants 32 bits et 64 bits et inclut certains composants qui sont partagés entre les applications.

Répertoire Répertoire _ parent DefaultDir
TARGETDIR SourceDir
ProgramFilesFolder TARGETDIR . :P rog32
ProgramFiles64Folder TARGETDIR . :P rog64
CommonFilesFolder TARGETDIR .:Share32
CommonFiles64Folder TARGETDIR .:Share64
ProgramMenuFolder TARGETDIR . : Sample1 | MSDN-PUASample1
INSTALLLOCATION MyVendor Sample1 | MSDN-PUASample1
INSTALLLOCATIONX64 Vendorx64 Sample1 | MSDN-PUASample1
SHAREDLOCATION ShVendor Sample1 | MSDN-PUASample1
SHAREDLOCATIONX64 ShVendorx64 Sample1 | MSDN-PUASample1
MyVendor ProgramFilesFolder Msft | Microsoft
Vendorx64 ProgramFiles64Folder Msft | Microsoft
ShVendor CommonFilesFolder Msft | Microsoft
ShVendorx64 CommonFiles64Folder Msft | Microsoft
Shrx86 SHAREDLOCATION |composants x32 32 bits
Shrx64 SHAREDLOCATIONX64 |composants 64 bits x64
Binx86 INSTALLLOCATION |composants x32 32 bits
Binx64 INSTALLLOCATIONX64 |composants 64 bits x64
App32 Binx86 MyApp | -composants 32 bits non partagés
App64 Binx64 MyApp | -composants 64 bits non partagés
Share32 Shrx86 |composants partagés partagés 32 bits
Share64 Shrx64 |composants partagés partagés 64 bits

À la source, cette table de répertoires correspond aux chemins d’accès aux répertoires suivants.

\[SourceDir \] Prog32 \\ msft \\ sample1 \\ x32 \\ MonApp \[SourceDir \] \\ fichiers communs Share32 \\ msft \\ sample1 \\ x32 \\ Shared \[SourceDir \] Prog64 \\ msft \\ sample1 \\ x64 \\ MonApp \[SourceDir \] \\ fichiers communs Share64 \\ msft \\ sample1 \\ x64 \\ partagé \[SourceDir \] sample1

Au niveau de la cible, cette table de répertoires correspond aux chemins d’accès aux répertoires suivants. Les chemins d’accès cibles dépendent du contexte et du système d' installation .

Contexte d’installation Système Exemples de chemins
Per-Machine Windows Server 2008 R2 et Windows 7
version 32 bits
% ProgramFiles% \ msft \ sample1 \ x32 \ MonApp
% ProgramFiles% \ fichiers communs \ msft \ sample1 \ x32 \ Shared
% ProgramFiles (x86)% \ msft \ sample1 \ x64 \
% ProgramFiles (x86)% \ fichiers communs \ msft \ sample1 \ x64 \ partagés
% ProgramData% \ Microsoft \ Windows \ programmes du Menu démarrer \ \ Sample1
Per-Machine Windows Server 2008 R2 et Windows 7
version 64 bits
% ProgramFiles (x86)% \ msft \ sample1 \ x32 \ MonApp
% ProgramFiles (x86)% \ fichiers communs \ msft \ sample1 \ x32 \ Shared
% ProgramFiles% \ msft \ sample1 \ x64 \ MyApp
% ProgramFiles% \ fichiers communs \ msft \ sample1 \ x64 \ partagé
% ProgramData% \ Microsoft \ Windows \ programmes du Menu démarrer \ \ Sample1
Per-User Windows Server 2008 R2 et Windows 7
version 32 bits ou 64 bits
% LOCALAPPDATA% \ Programs \ msft \ sample1 \ x32 \ MonApp
% LOCALAPPDATA% \ Programs \ Common \ msft \ sample1 \ x32 \ Shared
% LOCALAPPDATA% \ Programs \ msft \ sample1 \ x64 \ MyApp
% LOCALAPPDATA% \ Programs \ Common \ msft \ sample1 \ x64 \ Shared
% APPDATA% \ Microsoft \ Windows les \ programmes du Menu démarrer \ \ Sample1

Inscription de l’application

L' PUASample.msi ajoute une sous-clé à la clé de Registre App Paths pour l’application et effectue des inscriptions qui permettent d’enregistrer les informations de l’application dans le Registre sous cette clé. Pour plus d’informations sur les chemins d’accès des applications et l’inscription des applications, consultez PerceivedTypes, SystemFileAssociations et inscription des applications dans la section extensibilité de l' interpréteur de commandes dans le Guide du développeur de l’interpréteurde commandes. Au moment de l’installation, l’utilisateur prend la décision d’installer l’application dans le contexte d’installation par utilisateur ou par ordinateur. Au moment de la création du package à double usage, le développeur du package ne peut pas savoir si les inscriptions doivent être effectuées sous la _ clé HKEY local _ machine ou HKEY _ Current _ User.

Le développeur du package définit l’identificateur de fichier du fichier exécutable de l’application dans le champ fichier de la table de fichiers .

Fichier Table (partielle)

Fichier Composant_ FileName FileSize Version Langage Attributs Séquence
MyAppFile ProductComponent PUASAMP1.EXE|PUASample1.exe 81920 0 1

Les valeurs à enregistrer dans le registre peuvent être spécifiées dans le champ de valeur de la table du Registre sous forme de chaîne mise en forme . Utilisez l’identificateur de fichier défini dans le champ fichier de la table file et la [ # convention filekey ] du type mis en forme pour spécifier la valeur par défaut de la clé de Registre Paths de l’application. L’action d' installation de niveau supérieur effectue les actions dans la table InstallExecuteSequence . une fois les actions CostInitialize, FileCostet InstallFinalize effectuées dans ce tableau, la Windows Installer remplace la sous-chaîne mise en forme [ # MyAppFile ] dans la table du registre par le chemin d’accès complet au fichier d’application.

L’exemple définit une propriété personnalisée, RegRoot, pour contenir l’emplacement de la clé racine et utilise une action personnalisée pour réinitialiser la valeur de la propriété si l’utilisateur choisit une installation par ordinateur. Utilisez la propriété personnalisée, RegRoot, dans toutes les valeurs de chaîne mises en forme qui référencent l’emplacement racine. Dans la table des Propriétés , le package PUASample.msi définit la propriété personnalisée et définit la valeur de REGROOT sur HKCU. Cela initialise la valeur de la propriété pour le contexte d’installation par utilisateur, le contexte par défaut recommandé pour les packages à double usage.

Propriété Table (partielle)

Propriété Valeur
RegRoot HKCU

Dans la table CustomAction , le package définit une action personnalisée nommée Set _ RegRoot _ HKLM. La valeur dans le champ type identifie cela comme une action personnalisée 51 de type action personnalisée standard. La signification des champs source et cible dans la table CustomAction dépend du type d’action personnalisé. Pour plus d’informations sur les types standard d’actions personnalisées, consultez types d’actions personnalisées. Le champ source de l' _ _ action personnalisée HKLM Set RegRoot spécifie que la valeur de la propriété RegRoot. Si le programme d’installation effectue _ l' _ action personnalisée de définition de RegRoot HKLM, cette opération réinitialise la valeur de la propriété REGROOT à HKLM.

CustomAction Table (partielle)

Action Type Source Cible
Définir _ RegRoot _ HKLM 51 [RegRoot] HKLM

L’action d' installation de niveau supérieur effectue les actions dans la table InstallExecuteSequence , dans la séquence spécifiée dans le champ séquence de cette table. La valeur créée dans le champ séquence pour l' _ _ action personnalisée RegRoot HKLM (1501) spécifie que cette action personnalisée doit être exécutée après l’action InstallInitialize (1500) et avant l’action ProcessComponents (1600.) Cette séquence garantit que l’enregistrement de l' _ _ action personnalisée HKLM Set RegRoot est évalué au moment de l’installation. Pour plus d’informations sur la séquence d’actions recommandée dans la table InstallExecuteSequence, consultez la rubrique InstallExecuteSequence suggérée . La syntaxe d’instruction conditionnelle créée dans le champ condition spécifie que l' _ _ action HKLM Set RegRoot doit être exécutée uniquement si la valeur de la propriété ALLUSERS est égale à 1 au moment de l’installation. Une valeur de propriété ALLUSERS de 1 spécifie une installation par ordinateur.

InstallExecuteSequence Table (partielle)

Action Condition Séquence
Définir _ RegRoot _ HKLM ALLUSERS = 1 1501

Les enregistrements suivants dans la table du Registre effectuent les inscriptions si le composant ProductComponent est installé. La valeur-1 dans le champ racine est requise pour effectuer l’inscription sous HKEY _ local _ machine pour une installation par utilisateur et sous HKEY _ Current _ User pour une installation par utilisateur. L’enregistrement avec une chaîne vide dans le champ Registry ajoute une sous-clé pour l’application sous la clé de Registre chemins et définit la valeur « (par défaut) » sur le chemin d’accès complet du fichier exécutable de l’application. L’inscription MyAppPathAlias mappe le fichier exécutable à un alias d’application et permet à l’application d’être lancée si l’utilisateur tape l’alias « puapct » à l’invite de ligne de commande. L’inscription MyAppPathRegistration mappe le nom du fichier exécutable sur le chemin d’accès complet du fichier.

Registre Root Clé Nom Valeur Composant
-1 Logiciel \ Microsoft \ MyAppPathRegistrationLocation [RegRoot ] \ Software \ Microsoft \ Windows \ CurrentVersion \ App paths \PUAPCT.exe ProductComponent
MyAppPathAlias -1 logiciel \ Microsoft \ Windows \ les \ chemins d’accès d’application CurrentVersion \PUAPCT.exe [#MyAppFile] ProductComponent
MyAppPathRegistration -1 logiciel \ Microsoft \ Windows \ les \ chemins d’accès d’application CurrentVersion \PUASample1.exe [#MyAppFile] ProductComponent

Annulation de l’inscription automatique

L' PUASample.msi effectue des inscriptions qui permettent à l’utilisateur de l’application d’empêcher le lancement de l' exécution automatique du matériel pour les appareils sélectionnés. Pour plus d’informations sur l’inscription d’un gestionnaire pour annuler l’exécution automatique en réponse à un événement, consultez la rubrique préparation du matériel et des logiciels à utiliser avec l’exécution automatique dans la section extensibilité de l' interpréteur de commandes dans le Guide du développeur de l’interpréteurde commandes. L’enregistrement suivant inscrit le gestionnaire spécifié dans le champ nom lorsque le composant ProductComponent est installé. la valeur-1 dans le champ racine est obligatoire pour spécifier l’Windows Installer que l’inscription doit être redirigée vers un emplacement qui dépend du contexte d’installation.

Registre Tableau

Registre Root Clé Nom Valeur Composant
MyAutoplayCancelRegistration -1 logiciel \ Microsoft \ Windows \ CurrentVersion \ Explorer \ AutoplayHandlers \ CancelAutoplay \ CLSID 66A32FE6-229D-427b-A608-D273F40C034C ProductComponent

Aperçu du gestionnaire d’aperçus

L' PUASample.msi effectue les inscriptions nécessaires à l’installation d’un Gestionnaire d’aperçus qui permet une version d’évaluation en lecture seule des fichiers. PUA sans lancer l’application. Pour plus d’informations sur l’inscription des gestionnaires d’aperçus, consultez la rubrique inscription des gestionnaires d’aperçus dans la section extensibilité de l' interpréteur de commandes dans le Guide du développeur de l' interpréteurde commandes. Les enregistrements suivants de la table du Registre inscrivent le gestionnaire lors de l’installation du composant ProductComponent. la valeur-1 dans le champ racine est obligatoire pour spécifier l’Windows Installer que l’inscription doit être redirigée vers un emplacement qui dépend du contexte d’installation.

Registre Tableau

Registre Root Clé Nom Valeur Composant
MyPreviewHandlerRegistration1 -1 Classes de logiciels \ \ . PUA puafile ProductComponent
MyPreviewHandlerRegistration2 -1 logiciel \ Microsoft \ Windows \ CurrentVersion \ PreviewHandlers {1531d583-8375-4d3f-b5fb-d23bbd169f22} gestionnaire d’aperçus de TEST Microsoft Windows PUA ProductComponent
MyPreviewHandlerRegistration3 -1 Classes de logiciels \ \ puafile \ shellex \ {8895b1c6-B41F-4c1c-A562-0d564250836f} {1531d583-8375-4d3f-b5fb-d23bbd169f22} ProductComponent
MyPreviewHandlerRegistration4 -1 Classes de logiciels \ \ CLSID \ {1531d583-8375-4d3f-b5fb-d23bbd169f22} Per-User exemple de gestionnaire d’aperçus application 1 ProductComponent
MyPreviewHandlerRegistration5 -1 Classes de logiciels \ \ CLSID \ {1531d583-8375-4d3f-b5fb-d23bbd169f22} AppID {6d2b5079-2f0b-48dd-ab7f-97cec514d30b} ProductComponent
MyPreviewHandlerRegistration6 -1 Classes de logiciels \ \ CLSID \ {1531d583-8375-4d3f-b5fb-d23bbd169f22} DisplayName @shell32,-38242 ProductComponent
MyPreviewHandlerRegistration7 -1 Classes de logiciels \ \ CLSID \ {1531d583-8375-4d3f-b5fb-d23bbd169f22} Icône notepad.exe, 2 ProductComponent
MyPreviewHandlerRegistration8 -1 Classes de logiciels \ \ CLSID \ {1531d583-8375-4d3f-b5fb-d23bbd169f22} \ InprocServer32 ThreadingModel STA ProductComponent
MyPreviewHandlerRegistration9 -1 Classes de logiciels \ \ CLSID \ {1531d583-8375-4d3f-b5fb-d23bbd169f22} \ InprocServer32 #%% SystemRoot% \ system32 \shell32.dll ProductComponent
MyPreviewHandlerRegistration10 -1 Classes de logiciels \ \ CLSID \ {1531d583-8375-4d3f-b5fb-d23bbd169f22} \ InprocServer32 ProgID puafile ProductComponent