Procédure : Utiliser winmdidl.exe et midlrt.exe pour créer les fichiers .h à partir des métadonnées Windows

Winmdidl.exe et midlrt.exe permettent l'interaction de niveau COM entre le code C++ natif et les composants Windows Runtime. Winmdidl.exe prend comme entrée un fichier .winmd qui contient des métadonnées pour un composant Windows Runtime et génère un fichier IDL. Midlrt.exe convertit ce fichier IDL en fichiers d'en-tête que le code C++ peut utiliser. Les deux outils sont exécutés sur la ligne de commande.

Vous utilisez ces outils dans deux scénarios principaux :

  • Création de fichiers d'en-tête et IDL personnalisés pour qu'une application C++ écrite à l'aide de la bibliothèque de modèles Windows Runtime (WRL) puisse utiliser un composant Windows Runtime personnalisé

  • Génération de fichiers de proxy et stub pour les types d'événements définis par l'utilisateur dans un composant Windows Runtime Pour plus d’informations, consultez les événements personnalisés et les accesseurs d’événements dans les composants Windows Runtime.

Ces outils ne sont nécessaires que pour analyser les fichiers .winmd personnalisés. Les fichiers .idl et .h pour les composants de système d'exploitation Windows sont automatiquement générés. Par défaut, dans Windows 8.1, ils se trouvent dans \Program Files (x86)\Windows Kits\8.1\Include\winrt\.

Emplacement des outils

Par défaut, dans [Windows 8.1, winmdidl.exe et midlrt.exe se trouvent dans C :\Program Files (x86)\Windows Kits\8.1\. Des versions des outils sont également disponibles dans les dossiers \bin\x86\ et \bin\x64\.

Arguments de ligne de commande Winmdidl

Winmdidl.exe [/nologo] [/suppressversioncheck] [/time] [/outdir:dir] [/banner:file] [/utf8] Winmdfile

/nologo
Empêche l'affichage dans la console du message de copyright et du numéro de version winmdidl.

/suppressversion case activée
Pas utilisé.

/Temps
Affiche la durée totale d'exécution dans la sortie de la console.

/outdir :dir
Spécifie un répertoire de sortie. Si le chemin d’accès contient des espaces, placez-le entre guillemets. Le répertoire de sortie par défaut est <drive> :\Users\<username>\AppData\Local\VirtualStore\Program Files (x86)\Microsoft Visual Studio 12.0\.

/banner :file
Spécifie un fichier qui contient le texte personnalisé à faire figurer avant le message de copyright et le numéro de version winmdidl par défaut au début du fichier .idl généré. Si le chemin d’accès contient des espaces, placez-le entre guillemets.

/utf8
Le format du fichier sera UTF-8.

Winmdfile
Nom du fichier .winmd à analyser. Si le chemin d’accès contient des espaces, placez-le entre guillemets.

Arguments de ligne de commande Midlrt

Consultez les composants MIDLRT et Windows Runtime.

Exemples

L'exemple suivant montre une commande winmdidl à une invite de commandes Visual Studio x86. Elle spécifie un répertoire de sortie et un fichier qui contient le texte de bannière spécial à ajouter au fichier .idl généré.

C:\Program Files (x86)\Microsoft Visual Studio 12.0>winmdidl /nologo /outdir:c:\users\giraffe\documents\ /banner:c:\users\giraffe\documents\banner.txt "C:\Users\giraffe\Documents\Visual Studio 2013\Projects\Test_for_winmdidl\Debug\Test_for_winmdidl\test_for_winmdidl.winmd"

L'exemple suivant illustre l'affichage de la console à partir de winmdidl qui indique que l'opération a réussi.

Génération de c :\users\giraffe\documents\\Test_for_winmdidl.idl

Ensuite, midlrt est exécuté sur le fichier IDL généré. Notez que l’argument metadata_dir est spécifié après le nom du fichier .idl. Le chemin d'accès de \WinMetadata\ est obligatoire ; il s'agit de l'emplacement de windows.winmd.

C:\Program Files (x86)\Microsoft Visual Studio 12.0> midlrt "c:\users\username\documents\test_for_winmdidl.idl" /metadata_dir "C:\Windows\System32\WinMetadata"

Notes

Le fichier de sortie d'une opération winmdidl a le même nom que le fichier d'entrée, mais porte l'extension de nom de fichier .idl.

Si vous développez un composant Windows Runtime qui est accessible à partir de la bibliothèque WRL, vous pouvez spécifier que winmdidl.exe et midlrt.exe s'exécutent en guise d'étapes post-builds pour que les fichiers .idl et .h soient générés sur chaque build. Pour obtenir un exemple, consultez Déclenchement d’événements dans les composants Windows Runtime.