Aximp.exe (Windows Forms ActiveX Control Importer)
L'importateur de contrôles ActiveX convertit les définitions de types d'une bibliothèque de types COM associées à un contrôle ActiveX en un contrôle Windows Forms.
Windows Forms peut héberger uniquement des contrôles Windows Forms, c'est-à-dire, des classes dérivées de Control. Aximp.exe génère une classe wrapper associée à un contrôle ActiveX qui peut être hébergée dans un Windows Form. Cela vous permet d'utiliser la même prise en charge au moment du design et la même méthodologie de programmation que pour d'autres contrôles Windows Forms.
Pour héberger le contrôle ActiveX, vous devez générer un contrôle wrapper qui dérive de AxHost. Ce contrôle wrapper contient une instance du contrôle ActiveX sous-jacent. Il sait comment communiquer avec le contrôle ActiveX, mais il se présente comme un contrôle Windows Forms. Le contrôle ainsi généré héberge le contrôle ActiveX dont il expose les propriétés, les méthodes et les événements comme si ces derniers lui appartenaient.
Cet outil est installé automatiquement avec Visual Studio. Pour exécuter l’outil, utilisez l’invite de commandes développeur Visual Studio ou PowerShell pour développeurs Visual Studio.
À l'invite de commandes, tapez :
Syntaxe
aximp [options]{file.dll | file.ocx}
Notes
Argument | Description |
---|---|
file | Nom du fichier source contenant le contrôle ActiveX à convertir. La valeur de cet argument doit présenter l'extension .dll ou .ocx. |
Option | Description |
---|---|
/delaysign |
Spécifie à Aximp.exe que le contrôle résultant doit être signé à l'aide du processus de signature différée. Vous devez spécifier cette option avec l’option /keycontainer: , /keyfile: ou /publickey: . Pour plus d’informations sur le processus de signature différée, consultez Temporisation de signature d’un assembly. |
/help |
Affiche la syntaxe et les options de commande de l'outil. |
/keycontainer: containerName |
Signe le contrôle obtenu avec un nom fort en utilisant la paire de clés publique/privée présente dans le conteneur de clé spécifié par nom_conteneur. |
/keyfile: filename |
Signe le contrôle résultant avec un nom fort en utilisant la paire de clés publique/privée officielle de l’éditeur présente dans nom_fichier. |
/nologo |
Supprime l'affichage de la bannière de démarrage Microsoft. |
/out: filename |
Spécifie le nom de l'assembly à créer. |
/publickey: filename |
Signe le contrôle résultant avec un nom fort en utilisant la clé publique présente dans le fichier spécifié par nom_fichier. |
/rcw: filename |
Utilise le wrapper RCW spécifié plutôt que d'en générer un nouveau. Vous pouvez spécifier plusieurs instances. Le répertoire actif est utilisé pour les chemins d’accès relatifs. Pour plus d’informations, consultez Wrapper pouvant être appelé par le runtime. |
/silent |
Supprime l'affichage des messages indiquant la réussite des opérations. |
/source |
Génère le code source C# pour le wrapper Windows Forms. |
/verbose |
Spécifie le mode Commentaires ; affiche des informations supplémentaires sur la progression de l'opération. |
/? |
Affiche la syntaxe et les options de commande de l'outil. |
Aximp.exe convertit toute une bibliothèque de types de contrôles ActiveX à la fois et produit un ensemble d'assemblys contenant les métadonnées du Common Language Runtime et l'implémentation des contrôles pour les types définis dans la bibliothèque de types d'origines. Les fichiers générés sont nommés conformément à la règle suivante :
Proxy du Common Language Runtime pour les types COM : progid.dll
Proxy Windows Forms pour les contrôles ActiveX (où Ax est l’abréviation de ActiveX) : Axprogid.dll
Notes
Si le nom d'un membre du contrôle ActiveX correspond à un nom défini dans le .NET Framework, Aximp.exe fait précéder le nom du membre avec « Ctl » lorsqu'il crée la classe dérivée AxHost. Par exemple, si votre contrôle ActiveX possède un membre nommé "Layout", il est renommé "CtlLayout" dans la classe dérivée AxHost, car l'événement Layout est défini dans le .NET Framework.
Vous pouvez examiner ces fichiers générés avec des outils comme Ildasm.exe (Désassembleur IL).
L'utilisation d'Aximp.exe pour générer un assembly .NET pour le contrôle ActiveX WebBrowser (shdocvw.dll) n'est pas prise en charge.
L'exécution d'Aximp.exe sur shdocvw.dll créera toujours un autre fichier nommé shdocvw.dll dans le répertoire à partir duquel l'outil est exécuté. Si vous placez ce fichier généré dans le répertoire Documents, cela peut entraîner des problèmes pour l’Explorateur Windows. Quand l’ordinateur est redémarré, Windows recherche une copie de shdocvw.dll dans le répertoire Documents avant de regarder dans le répertoire system32. Il utilise la copie trouvée dans Documents et essaie de charger les wrappers managés. L’Explorateur Windows ne va pas fonctionner correctement, car il s’appuie sur le moteur de rendu figurant de la version de shdocvw.dll qui se trouve dans le répertoire system32. Si ce problème se produit, supprimez la copie de shdocvw.dll qui se trouve dans le répertoire Documents, puis redémarrez l’ordinateur.
Exemple
La commande suivante génère MediaPlayer.dll et AxMediaPlayer.dll pour le contrôle Media Player msdxm.ocx
.
aximp c:\systemroot\system32\msdxm.ocx