Aplicaciones de Windows
Collapse the table of content
Expand the table of content
Información
El tema que ha solicitado se muestra abajo. Sin embargo, este tema no se encuentra en la biblioteca.

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

 

Para obtener la documentación más reciente de Visual Studio 2017, consulte Documentación de Visual Studio 2017.

La 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 .

La WRL permite implementar y consumir los componentes del Modelo de objetos componentes (COM) de forma más sencilla. Proporciona técnicas de mantenimiento como el recuento de referencias para administrar la duración de los objetos y probar los valores HRESULT para determinar si una operación se realizó correctamente o no. Para utilizar correctamente la WRL, debe seguir detenidamente estas reglas y técnicas.

Las Extensiones de componentes de Visual C++ (C++/CX) permiten usar componentes de Windows en tiempo de ejecución de una forma basada en lenguaje de alto nivel. La WRL y C++/CX simplifican la escritura de código para Windows en tiempo de ejecución mediante la realización de tareas de mantenimiento de manera automática en su nombre.

La WRL y C++/CX ofrecen diversas ventajas. Estas son algunas de las razones por las que debería usar la WRL en lugar de C++/CX:

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

  • C++/CX representa los valores HRESULT COM como excepciones. Si ha heredado una base de código que usa COM, o una que no usa excepciones, puede que la WRL le resulte una forma más natural de trabajar con Windows en tiempo de ejecución, ya que no es necesario utilizar excepciones.

    System_CAPS_ICON_note.jpg Nota

    La WRL utiliza valores HRESULT y no produce excepciones. Además, la WRL utiliza punteros inteligentes y el patrón RAII para garantizar que los objetos se destruyen correctamente cuando el código de la aplicación produce una excepción. Para obtener más información acerca de los punteros inteligentes y RAII, vea punteros inteligentes y recursos propios de objetos (RAII).

  • El propósito y el diseño de la WRL está inspirado en Active Template Library (ATL), que es un conjunto de clases de C++ basadas en plantillas que permite simplificar la programación de los objetos COM. Dado que la WRL utiliza C++ estándar para encapsular Windows en tiempo de ejecución, le resultará más fácil trasladar e interactuar con diversos componentes COM existentes escritos en ATL en Windows en tiempo de ejecución. Si ya conoce ATL, observará que la programación de WRL es más sencilla.

A continuación, se muestran algunos recursos que pueden ayudarle a trabajar con la WRL de inmediato.

La biblioteca de tiempo de ejecución de Windows (WRL)
En este vídeo de Channel 9 se ofrece más información sobre cómo la WRL le puede ayudar a escribir aplicaciones de la Tienda Windows 8.x y cómo crear y utilizar los componentes de Windows en tiempo de ejecución .

Cómo: activar y usar un componente de tiempo de ejecución de Windows
Muestra cómo utilizar la 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
Muestra cómo utilizar la WRL para iniciar operaciones asincrónicas y para realizar el trabajo cuando las operaciones se completan.

Cómo: controlar eventos
Muestra cómo utilizar la WRL para suscribirse a los eventos de un objeto de Windows en tiempo de ejecución y controlar dichos eventos.

Tutorial: Crear un componente de tiempo de ejecución básico de Windows
Muestra cómo utilizar la WRL para crear un componente básico de Windows en tiempo de ejecución que suma dos números. También muestra cómo generar eventos y utilizar el componente de una aplicación de la Tienda Windows 8.x que utilice JavaScript.

Tutorial: Crear una aplicación de tienda Windows mediante WRL y Media Foundation
Obtenga información sobre cómo crear una aplicación de la Tienda Windows 8.x que use Microsoft Media Foundation.

Cómo: crear un componente COM clásico
Muestra cómo utilizar la WRL para crear un componente COM básico y cómo registrar y utilizar el componente COM fácilmente desde una aplicación de escritorio.

Cómo: crear instancias de componentes WRL directamente
Obtenga información sobre cómo utilizar las funciones Microsoft::WRL::Make y Microsoft::WRL::Details::MakeAndInitialize para crear instancias de un componente a partir del módulo que lo define.

Cómo: usar winmdidl.exe y midlrt.exe para crear archivos .h desde metadatos de windows
Muestra cómo utilizar componentes personalizados de Windows en tiempo de ejecución desde la WRL mediante la creación de un archivo IDL a partir de los metadatos .winmd.

Tutorial: Conectar usando tareas y solicitudes HTTP XML
Muestra cómo utilizar las interfaces IXMLHTTPRequest2 e IXMLHTTPRequest2Callback junto con otras tareas para enviar solicitudes HTTP GET y POST a un servicio web en una aplicación de la Tienda Windows 8.x .

Ejemplo de Bing Maps Trip Optimizer
Utiliza la HttpRequest clase que se define en Tutorial: conectarse usando tareas y solicitudes de HTTP XML en el contexto de una completa Tienda Windows 8.x aplicación.

Crear un componente DLL en tiempo de ejecución de Windows con el ejemplo de C++
Muestra cómo utilizar la WRL para crear un componente DLL en proceso y usarlo en C++/CX, JavaScript o C#.

Ejemplo de juego marble maze de DirectX
Muestra cómo utilizar la WRL para administrar la duración de los componentes COM como DirectX y Media Foundation en el contexto de un completo juego en 3D.

Envío de notificaciones del sistema de ejemplo de aplicaciones de escritorio
Muestra cómo utilizar la WRL para trabajar con notificaciones del sistema de una aplicación de escritorio.

La WRL se parece a Active Template Library (ATL) porque se puede utilizar para crear objetos COM pequeños de manera rápida. La WRL y ATL también comparten conceptos tales como definición de objetos en los módulos, el registro explícito de interfaces y la creación libre de objetos mediante generadores. Si está familiarizado con ATL, es muy probable que también le resulte sencillo trabajar con la WRL.

WRL admite las funcionalidades COM que son necesarias para las aplicaciones de la Tienda Windows 8.x. Por consiguiente, y a diferencia de ATL, omite la compatibilidad directa para características COM como:

  • agregación

  • implementaciones estándar

  • interfaces duales (IDispatch)

  • interfaces de enumerador estándar

  • puntos de conexión

  • interfaces divisibles

  • incrustación OLE

  • Controles ActiveX

  • COM+

WRL proporciona tipos que representan algunos conceptos básicos. En las siguientes secciones 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 derive de la interfaz. ComPtr mantiene automáticamente un recuento de referencias para el puntero de la interfaz subyacente y la libera cuando el recuento de referencias llega a cero.

RuntimeClass

RuntimeClass representa una clase de la que se ha creado una instancia que hereda un conjunto de interfaces especificadas. Un objeto 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 débil a un componente.

Módulo

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

Callback

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

EventSource

EventSource se utiliza para administrar los controladores de eventos delegados . Utilice WRL para implementar un delegado y EventSource para agregar, quitar o 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 pueda iniciar, detener o comprobar el progreso de una operación asincrónica.

FtmBase

FtmBase representa un objeto de cálculo de referencias con subprocesamiento libre. FtmBase crea una tabla de interfaz global (GIT) y ayuda a administrar los objetos proxy y de cálculo de referencias.

WeakRef

WeakRef es un tipo puntero inteligente que representa una referencia débily que hace referencia a un objeto al que se puede obtener o no acceso. Los objetos WeakRef solo los puede usar Windows en tiempo de ejecución, no los componentes COM clásicos.

Un objeto WeakRef normalmente representa un objeto cuya existencia se controla mediante una aplicación o un subproceso externo. Por ejemplo, un objeto WeakRef puede hacer referencia a un objeto de archivo. Cuando se abre el archivo, WeakRef es válido y se puede tener acceso al archivo de referencia. Pero cuando se cierra el archivo, WeakRef no es válido y no se tiene acceso al archivo.

Plantilla de proyecto Biblioteca de clasesDescribe cómo tener acceso a la plantilla de proyecto de la biblioteca de clases de WRL. Esta plantilla permite simplificar el uso de Visual Studio para crear componentes de Windows en tiempo de ejecución .
API clave por categoríaDestaca los tipos, funciones y macros principales de WRL .
ReferenciaContiene información de referencia para WRL.
Referencia rápida (en tiempo de ejecución de Windows y Visual C++)Describe brevemente las características de C++/CX que admiten Windows en tiempo de ejecución.
Utilizar componentes de Windows en tiempo de ejecución en Visual C++Muestra cómo utilizar C++/CX para crear un componente básico de Windows en tiempo de ejecución .
Mostrar:
© 2017 Microsoft