Libreria di modelli di Windows Runtime C++ (WRL)
Il Libreria di modelli di Windows Runtime C++ (WRL) è una raccolta di modelli che fornisce una modalità di basso livello per creare e utilizzare i componenti Windows Runtime.
Vantaggi
WRL consente più semplice per implementare e utilizza componenti di (COM) Component Object Model).Vengono illustrate le tecniche del governo di cane come conteggio dei riferimenti per gestire la durata degli oggetti e di verificare i valori di HRESULT determinare se un'operazione positivo o negativo.Per poter utilizzare WRL, è necessario seguire attentamente queste regole e tecniche.
Il Estensioni componenti Visual C++ (C++/CX) è una soluzione di alto livello basata su linguaggio per utilizzare i componenti Windows Runtime.Sia WRL che C++/CX semplificano la scrittura di codice per Windows Runtime attuando automaticamente le attività di governo.
Il WRL e il C++/CX offrono diversi vantaggi.Ecco alcuni motivi per cui è possibile che si desideri utilizzare il WRL anziché C++/CX:
WRL aggiunge un astrazione sull'Application Binary Interface (ABI) Windows Runtime, offrendo la possibilità di controllare il codice sottostante per creare o utilizzare più API Windows Runtime.
C++/CX rappresenta i valori COM HRESULT come eccezioni.Se è stata ereditata una codebase che utilizza COM, o una che non utilizza le eccezioni, è possibile che WRL sia un modo più semplice per utilizzare Windows Runtime perché non è necessario utilizzare eccezioni.
[!NOTA]
WRL utilizza i valori HRESULT e non genera eccezioni.Inoltre, i puntatori intelligenti di utilizzo WRL e il modello RAII che consentono di garantire che gli oggetti vengono eliminati correttamente quando il codice dell'applicazione genera un'eccezione.Per ulteriori informazioni sui puntatori intelligenti e sul modello RAII, vedere Puntatori intelligenti (C++ moderno) e Oggetti e le proprie risorse (RAII).
Lo scopo e la progettazione WRL sono ispirati da Active Template Library (ATL), ovvero un set di classi C++ basate su modelli che semplificano la programmazione di oggetti COM.Poiché WRL utilizza lo standard C++ per eseguire il wrapping Windows Runtime, è possibile trasferire più facilmente e interagire con molti componenti COM esistenti scritti in ATL a Windows Runtime.Se si conosce già ATL, è possibile trovare più semplice la programmazione WRL.
Introduzione
Di seguito sono riportate alcune risorse che consentono di ottenere immediatamente l'utilizzo WRL.
La libreria di runtime (WRL) di Windows
In questo video channel 9, acquisire ulteriori informazioni su come le guide di WRL la scrittura di applicazioni Windows Store e come creare e utilizzare i componenti di Windows Runtime.Procedura: attivare e utilizzare un componente Windows Runtime mediante WRL
Viene illustrato come utilizzare WRL per inizializzare Windows Runtime e per attivare e utilizzare un componente di Windows Runtime.Procedura: completare operazioni asincrone mediante WRL
Viene illustrato come utilizzare WRL per avviare le operazioni asincrone ed eseguirle quando le operazioni sono completate.Procedura: gestire eventi mediante WRL
Mostra come utilizzare WRL per sottoscrivere e gestire gli eventi di un oggetto Windows Runtime.Procedura dettagliata: creazione di un componente Windows Runtime di base mediante WRL
Viene illustrato come utilizzare WRL per creare un componente di base Windows Runtime che somma due numeri.Viene inoltre illustrato come generare eventi e utilizzare il componente da un'applicazione di Windows Store che utilizza JavaScript.Procedura dettagliata: creazione di un'applicazione Windows Store mediante WRL e Media Foundation
Imparare a creare un'applicazione di Windows Store che utilizza Le fondamenta di supporto Microsoft.Procedura: creare un componente COM classico mediante WRL
Viene illustrato come utilizzare WRL per creare un componente COM base e una modalità di base registrare e utilizzare il componente COM da un'applicazione desktop.Procedura: creare direttamente un'istanza dei componenti WRL
Imparare a utilizzare le funzioni di Microsoft::WRL::Details::MakeAndInitialize e di Microsoft::WRL::Make per creare un'istanza di un componente dal modulo che lo definisce.Procedura dettagliata: connessione tramite attività e richiesta HTTP XML (IXHR2)
Viene illustrato come utilizzare le interfacce IXMLHTTPRequest2 e IXMLHTTPRequest2Callback insieme alle attività per inviare richieste HTTP GET e POST a un servizio web in un'applicazione Windows Store.Esempio dell'utilità di ottimizzazione di viaggio di Bing Maps
Utilizza la classe HttpRequest definita in Procedura dettagliata: connessione tramite attività e richiesta HTTP XML (IXHR2) nel contesto di un'applicazione completa Windows Store.Esempio di creazione di DLL ibrido di applicazione
Viene illustrato come utilizzare WRL per dichiarare e implementare interfacce e utilizzare le proprietà, metodi ed eventi.Esempio del gioco marble maze in DirectX
Viene illustrato come utilizzare WRL per gestire la durata di componenti COM come DirectX e base di supporto nel contesto di un gioco tridimensionale completo.Esempio di applicazione desktop per Invio notifiche toast
Viene illustrato come utilizzare WRL per utilizzare le notifiche toast da un'applicazione desktop.
WRL Confronto con ATL
WRL assomiglia alle Active Template Library (ATL) in quanto è possibile utilizzarlo per creare piccoli e veloci oggetti COM.WRL e ATL condividono i concetti di definizione di oggetti in moduli, registrazione esplicita delle interfacce e creazione aperta di oggetti tramite le factory.E' possibile trovare comodo l'utilizzo di WRL se si ha già dimestichezza con ATL.
WRL supporta la funzionalità COM richiesta per le applicazioni di Windows Store.Di conseguenza, differisce da ATL perché omette il supporto diretto alle funzionalità COM come:
aggregazione
implementazioni predefinite
interfacce duali (IDispatch)
interfacce dell'enumeratore standard
punti di connessione
un'interfaccia tear-off
L'incorporamento OLE
Controlli ActiveX
COM+
Concetti
WRL fornisce tipi che rappresentano alcuni concetti di base.Nelle seguenti sezioni vengono descritti questi tipi.
ComPtr
ComPtr è un tipo di puntatore intelligente che rappresenta l'interfaccia specificata dal parametro di modello.Utilizzare ComPtr per dichiarare una variabile che può accedere ai membri di un oggetto derivato dall'interfaccia.ComPtr gestisce automaticamente un conteggio dei riferimenti per un puntatore a interfaccia sottostante e rilascia l'interfaccia quando il conteggio dei riferimenti termina a zero.
RuntimeClass
RuntimeClass rappresenta una classe istanziata che eredita un set di interfacce specificate.Un oggetto RuntimeClass può fornire una combinazione di supporto per una o più interfacce COM Windows Runtime, o un riferimento debole a un componente.
Modulo
Module rappresenta una raccolta di oggetti correlati.Un oggetto Module gestisce i class factory, che creano oggetti e la registrazione, che consente alle altre applicazioni di utilizzare un oggetto.
Callback
La funzione di Callback crea un oggetto la cui funzione membro è un gestore eventi (un metodo di callback).Utilizzare la funzione Callback per scrivere le operazioni asincrone.
EventSource
EventSource viene utilizzato per gestire i gestori eventi del delegato.Utilizzare WRL per implementare un delegato e utilizzare EventSource per aggiungere, rimuovere e invocare delegati.
AsyncBase
AsyncBase fornisce metodi virtuali che rappresentano il modello di programmazione asincrono Windows Runtime.Eseguire l'override dei membri di questa classe per creare una classe personalizzata che consente di avviare, interrompere, o controllare lo stato di avanzamento di un'operazione asincrona.
FtmBase
FtmBase rappresenta un oggetto di gestore di marshalling threading free.FtmBase crea una tabella globale (GIT) dell'interfaccia e aiuta a gestire il marshalling e gli oggetti proxy.
WeakRef
WeakRef è un tipo di puntatore intelligente che rappresenta un riferimento debole, che fa riferimento a un oggetto che può o non può essere accessibile.Un oggetto WeakRef può essere utilizzato solo da Windows Runtimee non da COM classico.
Un oggetto WeakRef in genere rappresenta un oggetto la cui l'esistenza è controllata da un thread o da un'applicazione esterna.Ad esempio, un oggetto WeakRef può fare riferimento a un oggetto file.Quando il file viene aperto, WeakRef è valido e il file a cui si fa riferimento è accessibile.Ma quando il file viene chiuso, WeakRef non è valido e il file non è accessibile.
Argomenti correlati
Viene descritto come accedere al modello di progetto Libreria di classi di WRL.Questo modello consente di semplificare l'attività di utilizzo di Visual Studio per creare componenti Windows Runtime. |
|
Evidenzia i tipi, le funzioni e le macro primari di WRL. |
|
Sono incluse informazioni di riferimento per WRL. |
|
Vengono brevemente descritte le funzionalità C++/CX che supportano Windows Runtime. |
|
Viene illustrato come utilizzare C++/CX per un componente di base creare Windows Runtime. |