Condividi tramite


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.

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.

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

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.

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

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.

Hh438466.collapse_all(it-it,VS.110).gifModulo

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.

Hh438466.collapse_all(it-it,VS.110).gifCallback

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.

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

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.

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

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.

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

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.

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

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

Modello di progetto di libreria di classi di WRL

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.

API WRL chiave per categoria

Evidenzia i tipi, le funzioni e le macro primari di WRL.

Riferimenti a WRL

Sono incluse informazioni di riferimento per WRL.

Riferimento rapido (Windows Runtime e Visual C++)

Vengono brevemente descritte le funzionalità C++/CX che supportano Windows Runtime.

Utilizzo dei componenti Windows Runtime in Visual C++

Viene illustrato come utilizzare C++/CX per un componente di base creare Windows Runtime.