Compartir a través de


Biblioteca de plantillas de Windows Runtime C++ (WRL)

Biblioteca de plantillas de Windows Runtime C++ (WRL) es una biblioteca de plantillas que proporciona una manera de bajo nivel de crear y utilizar los componentes de Windows en tiempo de ejecución.

Ventajas

WRL permite más fácilmente al implementar y utiliza los componentes de (COM) del modelo de objetos componentes.Proporciona técnicas de mantenimiento como recuento de referencias de administrar la duración de objetos y valores de prueba de HRESULT para determinar si una operación se realizó correctamente o no.Para utilizar correctamente WRL, debe seguir minuciosamente estas reglas y técnicas.

Extensiones de componentes de Visual C++ (C++/CX) es una forma de alto nivel, en función del lenguaje de utilizar los componentes de Windows en tiempo de ejecución.WRL y C++/CX simplifican la escritura de código para Windows en tiempo de ejecución automáticamente realizando tareas de mantenimiento en nombre.

WRL y C++/CX proporcionan diferentes ventajas.Algunas de las razones que puede utilizar WRL en lugar de C++/CX:

  • WRL agrega la abstracción en la interfaz de binario de aplicación de Windows en tiempo de ejecución (ABI), lo que proporciona la capacidad de controlar el código subyacente para crear o para utilizar mejor Windows en tiempo de ejecución API.

  • C++/CX representa los valores COM de HRESULT como excepciones.Si ha heredado una base de código que usa COM, o uno que no utilice excepciones, puede que WRL es una forma más natural de ejecutar Windows en tiempo de ejecución porque no tiene que utilizar excepciones.

    [!NOTA]

    WRL utiliza los valores de HRESULT y no produce excepciones.Además, WRL utiliza punteros inteligentes y el modelo RAII para ayudar a garantizar que los objetos se destruirse correctamente cuando el código de aplicación produce una excepción.Para obtener más información sobre punteros inteligentes y RAII, vea Punteros inteligentes (C++ moderno) y Se opone a recursos propios (RAII).

  • El propósito y el diseño de WRL es inspirado por Active Template Library (ATL), que es un conjunto de clases plantilla- basadas en C++ que simplifica la programación de objetos COM.Dado que WRL utiliza C++ estándar para ajustar Windows en tiempo de ejecución, le resultará más fácil puerto e interactuar con muchos componentes COM existentes escritos en ATL a Windows en tiempo de ejecución.Si ya conoce ATL, puede que la programación de WRL es más fácil.

Introducción

A continuación se muestran algunos recursos que pueden ayudarle a obtener ejecutar WRL inmediatamente.

WRL Compared a ATL

WRL se parece a Active Template Library (ATL) porque puede utilizarlo para crear objetos COM pequeños, rápidas.WRL y ATL también comparten conceptos tales como definición de objetos en los módulos, registro explícito de interfaces, y abra creación de objetos mediante generadores.Puede resultar cómodo con WRL si está familiarizado con ATL.

WRL admite la funcionalidad COM necesario para las aplicaciones de Tienda Windows.Por consiguiente, diferencia de ATL porque omite el compatibilidad directa para características COM como:

  • agregación

  • implementaciones comunes

  • interfaces duales (IDispatch)

  • interfaces estándar de enumerador

  • puntos de conexión

  • rasgue interfaces

  • Incrustación OLE

  • Controles ActiveX

  • COM+

Conceptos

WRL proporciona tipos que representan algunos conceptos básicos.Las secciones siguientes se describen estos tipos.

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

ComPtr es un tipo de puntero inteligente que representa la interfaz especificada por el parámetro de plantilla.Utilice ComPtr para declarar una variable que pueda tener acceso a los miembros de un objeto que se deriva de la interfaz.ComPtr automáticamente mantiene un recuento de referencia para el puntero y libera subyacentes de la interfaz la interfaz cuando el recuento de referencias va a cero.

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

RuntimeClass representa una clase creada instancias que hereda un conjunto de interfaces especificadas.Un objeto de RuntimeClass puede proporcionar una combinación de compatibilidad para una o más interfaces COM de Windows en tiempo de ejecución, o una referencia parcial a un componente.

Hh438466.collapse_all(es-es,VS.110).gifMódulo

Módulo representa una colección de objetos relacionados.Un objeto de Module administra los generadores de clases, que crean objetos, y el registro, que habilitan otras aplicaciones para utilizar un objeto.

Hh438466.collapse_all(es-es,VS.110).gifDevolución de llamada

La función de Devolución de llamada crea un objeto cuya función miembro sea controlador de eventos (método de devolución de llamada).Utilice la función de Callback para escribir operaciones asincrónicas.

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

EventSource se utiliza para administrar los controladores de eventos de delegado.Utilice WRL para implementar un delegado, y utilice EventSource para agregar, quitar, e invocar a delegados.

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

AsyncBase proporciona métodos virtuales que representan el modelo de programación asincrónico de Windows en tiempo de ejecución.Invalide los miembros de esta clase para crear una clase personalizada que puede iniciar, detener, o comprobar el progreso de una operación asincrónica.

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

FtmBase representa un objeto libre- con el contador.FtmBase crea una tabla global (GIT) de interfaz, y ayuda a administrar el cálculo y objetos proxy.

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

WeakRef es un SMART- tipo puntero que representa una referencia parcial, que hace referencia a un objeto que puede o no ser accesible.Un objeto de WeakRef se puede utilizar por sólo Windows en tiempo de ejecución, y no por COM clásico.

Un objeto de WeakRef normalmente representa un objeto cuya existencia está controlada por un subproceso o una aplicación externo.Por ejemplo, un objeto de WeakRef puede hacer referencia a un objeto de archivo.Cuando el archivo se abre, WeakRef es válido y el archivo de referencia es alcanzable.Pero cuando se cierra el archivo, WeakRef no es válido y el archivo es inaccesible.

Temas relacionados

Plantilla de proyecto de Biblioteca de clases de WRL

Describe cómo tener acceso a la plantilla de proyecto biblioteca de clases de WRL.Esta plantilla ayuda a simplificar la tarea de utilizar Visual Studio para crear componentes de Windows en tiempo de ejecución.

API clave de WRL por categoría

Resalta los tipos, las funciones, las macros y principales de WRL.

Referencia de WRL

Contiene información de referencia para WRL.

Referencia rápida (en tiempo de ejecución y Visual C++ de Windows)

Describe brevemente las características de C++/CX que admiten Windows en tiempo de ejecución.

Mediante los componentes del runtime de Windows en Visual C++

Muestra cómo utilizar C++/CX para crear un componente básico de Windows en tiempo de ejecución.