Comment inscrire un gestionnaire pour un événement d’appareil
Les gestionnaires définissent la partie logicielle de la lecture automatique. Ils définissent l’icône et le nom convivial du logiciel, ainsi que le composant COM (Component Object Model) à instancier et comment initialiser le composant en réponse à un événement. Chaque gestionnaire d’un événement spécifique s’inscrit en tant que valeur sous la clé EventHandler appropriée. Lorsque cet événement est détecté, l’utilisateur est invité à choisir un gestionnaire dans une liste de tous les gestionnaires inscrits pour cet événement.
Instructions
Les gestionnaires et leurs valeurs associées sont définis sous la toucheGestionnaires\de lecture automatique. Les sous-clés diffèrent selon que le système peut lire directement le contenu de l’appareil ou que l’appareil fournit du contenu au système via une interface propriétaire.
L’exemple suivant montre les sous-clés et les valeurs utilisées pour un appareil, comme une caméra vidéo numérique ou un lecteur .mp3, qui fournit son contenu au système via une interface propriétaire. L’exemple de gestionnaire est appelé MyHandler.
HKEY_LOCAL_MACHINE or HKEY_CURRENT_USER
SOFTWARE
Microsoft
Windows
CurrentVersion
Explorer
AutoplayHandlers
Handlers
MyHandler
Action [REG_SZ] = Play music
CLSID [REG_SZ] = {a51f2ed3-634e-4a97-9d55-efcf08e7b32f}
DefaultIcon [REG_EXPAND_SZ] = %ProgramFiles%\Windows Media Player\wmplayer.exe,0
InitCmdLine [REG_SZ] = /Play
ProgID [REG_SZ] = WMP.PlayMusicFiles
Provider [REG_SZ] = Windows Media Player
Notes
Bien que l’exemple montre à la fois une valeur ProgID et une valeur CLSID (Class Identifier), dans la pratique, ces valeurs s’excluent mutuellement, de sorte qu’une seule ou l’autre est présente. La valeur ProgID est recommandée. Quelle que soit la méthode utilisée, elle doit pointer vers un composant COM qui implémente l’interface IHWEventHandler .
Vous pouvez entrer la valeur Action en tant que valeur littérale, par exemple « Lire de la musique », comme illustré dans cet exemple, ou en tant que nom de fichier avec une chaîne de ressource. Vous pouvez également entrer la valeur Provider sous forme de valeur littérale ou de nom de fichier avec une chaîne de ressource. La lecture automatique combine les valeurs Action et Fournisseur avec le mot « using » pour créer un légende convivial qui s’affiche dans l’interface utilisateur. Dans l’exemple, le légende résultant est « Lire de la musique à l’aide de Lecteur multimédia Windows ».
La valeur DefaultIcon pointe vers un fichier .ico ou une ressource dans un fichier binaire. Si la valeur numérique qui suit le nom du fichier binaire est égale ou supérieure à zéro, il s’agit de la valeur d’index de l’icône dans ce fichier binaire. S’il s’agit d’une valeur négative, il s’agit de l’ID de ressource d’icône. Les valeurs d’index négatives sont recommandées. Aucune valeur n’est nécessaire dans le cas d’un fichier .ico. Il est recommandé d’utiliser des variables d’environnement dans le chemin d’accès.
La valeur InitCmdLine passe sans modification par le biais de la méthode IHWEventHandler::Initialize avant d’appeler d’autres méthodes.
L’exemple suivant montre les sous-clés et les valeurs utilisées pour un appareil qui peut être lu directement, comme un lecteur de CD-ROM ou un autre disque amovible. Là encore, l’exemple de gestionnaire est appelé MyHandler.
HKEY_LOCAL_MACHINE or HKEY_CURRENT_USER
SOFTWARE
Microsoft
Windows
CurrentVersion
Explorer
AutoplayHandlers
Handlers
MyHandler
Action [REG_SZ] = @%systemroot%\System32\wiaacmgr.exe,-276
DefaultIcon [REG_EXPAND_SZ] = %systemroot%\System32\wiaacmgr.exe,-2
InvokeProgID [REG_SZ] = WIA.AutoPlayDropHandler
InvokeVerb [REG_SZ] = open
Provider [REG_SZ] = @%systemroot%\System32\wiaacmgr.exe,-101
Dans cet exemple, les valeurs Action et Provider sont affichées sous la forme d’un nom de fichier avec une chaîne de ressource plutôt que des valeurs littérales, mais les chaînes qu’elles référencent sont utilisées de la même manière. Ils sont combinés avec le mot « using » pour former un légende convivial, comme expliqué précédemment.
Les valeurs InvokeProgID et InvokeVerb remplacent CLSID, InitCmdLine et ProgID. Les valeurs InvokeProgID et InvokeVerb correspondent aux noms de clés qui se trouvent sous HKEY_CLASSES_ROOT, comme indiqué dans l’entrée de Registre suivante. Cet ensemble d’exemples de clés correspond à l’exemple de gestionnaire spécifique décrit précédemment.
HKEY_CLASSES_ROOT
WIA.AutoplayDropHandler
shell
open
DropTarget
Clsid = {F1ABE2B5-C073-4dba-B6EB-FD7A5111DD8F}
La fonction CoCreateInstance utilise le CLSID pour implémenter l’application appropriée.
Après avoir défini le gestionnaire de l’une de ces deux manières, vous devez l’inscrire pour un événement spécifique. Pour ce faire, indiquez le nom du gestionnaire en tant que valeur pour la clé de cet événement sous Gestionnaires d’événements. L’exemple suivant montre comment inscrire MyHandler en tant que gestionnaire pour l’événement GenericVolumeArrival. Il n’a aucune valeur de données affectée.
HKEY_LOCAL_MACHINE or HKEY_CURRENT_USER
SOFTWARE
Microsoft
Windows
CurrentVersion
Explorer
AutoplayHandlers
EventHandlers
GenericVolumeArrival
MyHandler [REG_SZ]
Rubriques connexes