Bibliothèque de modèles Windows Runtime C++ (WRL)
Le Bibliothèque de modèles Windows Runtime C++ (WRL) est une bibliothèque de modèles fournissant un moyen bas niveau pour créer et utiliser des composants de Windows Runtime.
Avantages
WRL vous permet de facilement implémentent et consomment des composants de (COM) (component object model).Il fournit des techniques de gestion interne comme décompte de références de gérer la durée de vie des objets et de tester des valeurs d' HRESULT de déterminer si une opération a réussi ou échoué.Pour utiliser correctement WRL, vous devez soigneusement suivre ces règles et techniques.
Le Extensions de composant Visual C++ (C++/CX) est un moyen haut niveau et basée sur un langage d'utiliser des composants de Windows Runtime.WRL et C++/CX simplifient l'écriture de code pour le Windows Runtime en exécutant automatiquement les tâches de gestion interne à votre place.
Le et le offrent des avantages différents.Voici quelques raisons pour lesquelles vous voudriez utiliser WRL au lieu de C++/CX:
WRL ajoute un peu d'abstraction sur l'interface binaire d'application (ABI) Windows Runtime, vous offrant la possibilité de contrôler le code sous-jacent pour mieux créer ou utiliser les API de Windows Runtime.
C++/CX représente les valeurs HRESULT de COM comme des exceptions.Si vous avez hérité d'une base de code qui utilise COM, ou d'une qui n'utilise pas d'exceptions, vous pourriez constater que WRL est un moyen plus naturel de travailler avec le Windows Runtime car vous n'avez pas besoin d'utiliser des exceptions.
[!REMARQUE]
Le WRL utilise des valeurs HRESULT et ne lève pas d'exceptions.En outre, le WRL utilise des pointeurs intelligents et le modèle RAII afin de garantir que les objets soient détruits correctement lorsque le code de votre application lève une exception.Pour plus d'informations sur les pointeurs intelligents et le RAII, consultez Pointeurs intelligents (C++ moderne) et Les ressources propres RAII ().
La finalité et la conception du WRL est inspirée par la bibliothèque Active Template Library (ATL), qui est un ensemble de classes C++ basées sur des modèles qui simplifie la programmation d'objets COM.Étant donné que WRL utilise du C++ standard pour encapsuler le Windows Runtime, vous pouvez déplacer et intéragir plus facilement avec de nombreux composants de COM existants écrits en ATL vers le Windows Runtime.Si vous connaissez déjà ATL, vous pourriez constater que la programmation de WRL est plus facile.
Mise en route
Voici quelques ressources qui peuvent vous aider à utiliser WRL immédiatement.
La bibliothèque Runtime (WRL) windows
Dans ce graphique de canal la 9, en savoir plus sur la façon dont les permet d' WRL vous entrez des applications d' Windows Store et comment créer et utiliser des composants d' Windows Runtime .Comment : activer et utiliser un composant Windows Runtime Component à l'aide de WRL
Indique comment utiliser WRL pour initialiser Windows Runtime et pour lancer et utiliser un composant d' Windows Runtime .Comment : terminer une opération asynchrone à l'aide de WRL
Indique comment utiliser WRL pour démarrer des opérations asynchrones et effectuer des actions lorsque les opérations se terminent.Comment : gérer les événements à l'aide de WRL
Indique comment utiliser le WRL pour s'abonner à gérer les événements d'un objet Windows Runtime.Procédure pas à pas : création d'un composant Windows Runtime de base à l'aide de WRL
Indique comment utiliser le WRL pour créer un composant de Windows Runtime basique qui additionne deux nombres.Explique également comment déclencher des événements et utiliser le composant d'une application d' Windows Store utilisant JavaScript.Procédure pas à pas : création d'une application Windows Store à l'aide de WRL et Media Foundation
Apprenez comment créer une application d' Windows Store qui l'utilise Base de média Microsoft.Comment : créer un composant COM classique à l'aide de WRL
Indique comment utiliser WRL pour créer un composant COM de base et une méthode de base pour stocker et utiliser le composant COM d'une application de bureau.Comment : instancier directement les composants WRL
Apprenez comment utiliser les fonctions d' Microsoft::WRL::Make et d' Microsoft::WRL::Details::MakeAndInitialize pour instancier un composant du package qui le définit.Procédure pas à pas : connexion à l'aide de tâches et de la requête HTTP XML (IXHR2)
Montre comment utiliser les interfaces IXMLHTTPRequest2 et IXMLHTTPRequest2Callback avec des tâches envoyant des requêtes HTTP GET et POST à un service Web dans une application Windows Store.Exemple d'optimiseur de voyage Bing Maps
Utilise la classe HttpRequest définie dans Procédure pas à pas : connexion à l'aide de tâches et de la requête HTTP XML (IXHR2) dans le contexte d'une application Windows Store complète.Exemple d'application hybride de création de serveur de DLL
Démontre comment utiliser le WRL pour déclarer et implémenter des interfaces et pour utiliser des propriétés, des méthodes, et des événements.Exemple de labyrinthe de marbre DirectX
Démontre comment utiliser le WRL pour gérer la durée de vie des composants COM tels que DirectX et Media Foundation dans le contexte d'un jeu 3D complet.Exemple d'envoi de notifications contextuelles à partir d'applications de bureau
Démontre comment utiliser le WRL pour utiliser des notifications contextuelles à partir d'une application de bureau.
WRL comparé à ATL
WRL ressemble à la bibliothèque Active Template Library (ATL) car vous pouvez l'utiliser pour créer des objets COM petits et rapides.WRL et ATL partagent également des concepts tels que la définition d'objets dans des modules, l'inscription explicite d'interfaces, et la création d'objets à l'aide de fabriques.Vous pourriez être à l'aise avec WRL si la ATL vous est familière.
WRL prend en charge la fonctionnalité de COM qui est requise pour les applications d' Windows Store .Par conséquent, elle diffère ATL car il omet le assistance directe des fonctionnalités de COM telles que :
agrégation
implémentations stock
interfaces doubles (IDispatch)
interfaces d'énumérateur standard
points de connexion
interfaces volantes
L'incorporation OLE
Contrôles ActiveX
COM+
Concepts
WRL fournit des types représentant quelques concepts de base.Les sections suivantes décrivent des types.
ComPtr
ComPtr est un type de pointeur intelligent représentant l'interface spécifiée par le paramètre de modèle.Utilisez ComPtr pour déclarer une variable pouvant accéder aux membres d'un objet dérivé de l'interface.ComPtr met à jour automatiquement un décompte de références du pointeur d'interface sous-jacent et libère l'interface lorsque le décompte de références atteint zéro.
RuntimeClass
RuntimeClass représente une classe instanciée qui hérite d'un ensemble d'interfaces spécifiées.Un objet RuntimeClass peut fournir une combinaison de prise en charge d'une ou plusieurs interfaces COM Windows Runtime, ou une référence faible à un composant.
Module
Module représente une collection d'objets connexes.Un objet Module gère les fabriques de classe, qui créent des objets, et l'inscription, qui permet à d'autres applications d'utiliser un objet.
Rappel
La fonction Callback crée un objet dont la fonction membre est un gestionnaire d'événements (une méthode de rappel).Utilisez la fonction Callback pour écrire des opérations asynchrones.
EventSource
EventSource est utilisé pour gérer des gestionnaires d'événements de délégué.Utilisez WRL pour implémenter un délégué, puis utilisez EventSource pour ajouter, supprimer, puis appeler des délégués.
AsyncBase
AsyncBase fournit des méthodes virtuelles représentant le modèle de programmation asynchrone de Windows Runtime.Redéfinissez les membres de cette classe pour créer une classe personnalisée pouvent démarrer, arrêter, ou contrôler la progression d'une opération asynchrone.
FtmBase
FtmBase représente un objet de marshaler libre de threads.FtmBase crée un tableau global d'interface (GIT), et vous permet de gérer le marshaling et les objets proxy.
WeakRef
WeakRef est un type de pointeur intelligent représentant une référence faible, qui fait référence à un objet qui peut être accessible ou non.Un objet WeakRef peut être utilisé uniquement par le Windows Runtime, et non par un COM classique.
Un objet WeakRef représente générallement un objet dont l'existence est contrôlée par un thread ou une application externe.Par exemple, un objet WeakRef peut référencer un fichier.Lorsque le fichier est ouvert, WeakRef est valide et le fichier référencé est accessible.Mais si le fichier est fermé, WeakRef est incorrect et le fichier n'est pas accessible.
Rubriques connexes
Décrit comment accéder au modèle de projet WRL Class Library.Ce modèle permet de simplifier l'utilisation de Visual Studio pour créer des composants Windows Runtime. |
|
Met en surbrillance les types WRL primaires, les fonctions, et les macros. |
|
Contient des informations de référence pour le WRL. |
|
Décrit brièvement les fonctionnalités de C++/CX prenant en charge Windows Runtime. |
|
Indique comment utiliser un C++/CX pour créer un composant Windows Runtime basique. |