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.

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.

Hh438466.collapse_all(fr-fr,VS.110).gifComPtr

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.

Hh438466.collapse_all(fr-fr,VS.110).gifRuntimeClass

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.

Hh438466.collapse_all(fr-fr,VS.110).gifModule

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.

Hh438466.collapse_all(fr-fr,VS.110).gifRappel

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.

Hh438466.collapse_all(fr-fr,VS.110).gifEventSource

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.

Hh438466.collapse_all(fr-fr,VS.110).gifAsyncBase

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.

Hh438466.collapse_all(fr-fr,VS.110).gifFtmBase

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.

Hh438466.collapse_all(fr-fr,VS.110).gifWeakRef

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

Modèle de projet de bibliothèque de classes WRL

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.

API WRL principales par catégorie

Met en surbrillance les types WRL primaires, les fonctions, et les macros.

Référence WRL

Contient des informations de référence pour le WRL.

Référence rapide (Windows Runtime et Visual C++)

Décrit brièvement les fonctionnalités de C++/CX prenant en charge Windows Runtime.

Utiliser Windows Runtime Components dans Visual C++

Indique comment utiliser un C++/CX pour créer un composant Windows Runtime basique.