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.
La biblioteca de tiempo de ejecución de Windows (WRL)
En este vídeo de canal 9, obtenga más información sobre cómo ayuda de WRL escribe las aplicaciones de Tienda Windows y cómo crear y utilizar los componentes de Windows en tiempo de ejecución.Cómo: Activar y usar un componente de Windows en tiempo de ejecución mediante WRL
Muestra cómo utilizar WRL para inicializar Windows en tiempo de ejecución y activar y utilizar un componente de Windows en tiempo de ejecución.Cómo: Completar operaciones asincrónicas mediante WRL
Muestra cómo utilizar WRL para iniciar operaciones asincrónicas y para realizar el trabajo cuando las operaciones completan.Cómo: Controlar eventos mediante WRL
Muestra cómo utilizar WRL para suscribirse y para controlar los eventos de un objeto de Windows en tiempo de ejecución.Tutorial: Crear un componente básico de Windows en tiempo de ejecución mediante WRL
Muestra cómo utilizar WRL para crear un componente básico de Windows en tiempo de ejecución que suma dos números.También muestra cómo provocar eventos y utilizar el componente de una aplicación de Tienda Windows que utilice JavaScript.Tutorial: Crear una aplicación de la Tienda Windows mediante WRL y Media Foundation
Obtenga información sobre cómo crear una aplicación de Tienda Windows que utilice Base de los soportes de Microsoft.Cómo: Crear un componente COM clásico mediante WRL
Muestra cómo utilizar WRL para crear un componente COM básico y una forma básica de registrar y de utilizar el componente COM de una aplicación de escritorio.Cómo: Crear instancias de componentes WRL directamente
Obtenga información sobre cómo utilizar las funciones de Microsoft::WRL::Make y de Microsoft::WRL::Details::MakeAndInitialize para crear instancias de un componente de módulo que lo define.Tutorial: Conectar usando tareas y solicitud HTTP XML (IXHR2)
Muestra cómo utilizar las interfaces de IXMLHTTPRequest2 y de IXMLHTTPRequest2Callback así como tareas de enviar HTTP GET y OF ENVIAR solicitudes a un servicio web en una aplicación de Tienda Windows.Ejemplo de optimizador Bing Maps Trip
Utiliza la clase de HttpRequest que se define en Tutorial: Conectar usando tareas y solicitud HTTP XML (IXHR2) en el contexto de una aplicación completa de Tienda Windows.Ejemplo híbrido de creación del servidor de DLL de la aplicación
Muestra cómo utilizar WRL para declarar e implementar interfaces y ejecutar las propiedades, los métodos, y eventos.Ejemplo de juego del laberinto de mármol de DirectX
Muestra cómo utilizar WRL para administrar la duración de componentes COM como DirectX y multimedia base en el contexto de un juego 3D completo.Envío de notificaciones de la tostada de ejemplo de escritorio de aplicaciones
Muestra cómo utilizar WRL para trabajar con notificaciones de la tostada de una aplicación de escritorio.
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.
ComPtr
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.
RuntimeClass
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.
Mó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.
Devolució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.
EventSource
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.
AsyncBase
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.
FtmBase
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.
WeakRef
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
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. |
|
Resalta los tipos, las funciones, las macros y principales 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. |