Share via


Biblioteca de Modelos C++ do Tempo de Execução do Windows (WRL)

Biblioteca em Tempo de Execução C++ do Tempo de Execução do Windows (WRL) é uma biblioteca do modelo que fornece uma maneira de baixo nível para criar e usar componentes de Tempo de Execução do Windows .

Benefícios

WRL permite que você mais facilmente para implementar e consumi-lo componentes do Component Object Model (COM).Lista técnicas de tarefas domésticas como contagem de gerenciar o tempo de vida de objetos e valores de HRESULT de teste para determinar se uma operação com êxito ou falha.Para usar com êxito WRL, você deve cuidadosamente seguir essas regras e técnicas.

Extensões de componentes Visual C++ (C++/CX) é uma maneira de alto nível, com base na linguagem de usar componentes de Tempo de Execução do Windows .WRL e C++/CX simplificam a escrita de código para Tempo de Execução do Windows automaticamente executando tarefas de tarefas domésticas em seu nome.

WRL e C++/CX fornecem benefícios diferentes.Aqui estão algumas razões que você pode desejar usar WRL em vez de C++/CX:

  • WRL adiciona outra abstração sobre a interface de binária de aplicativo (ABI) de Tempo de Execução do Windows , oferecendo a capacidade para controlar o código subjacente para criar ou consumir melhor APIs de Tempo de Execução do Windows .

  • C++/CX representa os valores de HRESULT como COM exceções.Se você herda uma base de código que usa COM, ou um que não usa exceções, você pode achar que WRL é uma maneira mais natural de trabalhar com Tempo de Execução do Windows porque você não tem que usar exceções.

    ObservaçãoObservação

    WRL usa valores de HRESULT e não lança exceções.Além disso, os ponteiros inteligentes dos usos de WRL e o padrão de RAII para ajudar a garantir que os objetos são destruídos corretamente quando o código do aplicativo lançar uma exceção.Para obter mais informações sobre inteligentes e ponteiros de RAII, consulte o Ponteiros inteligentes (guia de programação do C++ moderno) e Próprios recursos de objetos (RAII).

  • A finalidade e o design de WRL são inspirados pela biblioteca ativa (ATL) de modelo, que é um conjunto de classes modelo- com base em C++ que simplificam a programação de objetos COM.Porque WRL usa o C++ padrão para envolver Tempo de Execução do Windows, você pode facilmente mover e interagir com vários componentes COM existentes escritos em ATL a Tempo de Execução do Windows.Se você já tiver certeza ATL, você pode achar que a programação de WRL é mais fácil.

Guia de Introdução

Eis alguns recursos que podem ajudá-lo a trabalhar com obter WRL imediatamente.

a ATLWRL comparava

WRL é semelhante à biblioteca ativa (ATL) de modelo como você pode usar o para criar objetos COM pequenos, rápido.WRL e ATL também compartilham os conceitos de como a definição de objetos em módulos, interfaces, explícito registro e abre a criação de objetos usando fábricas.Você pode ser confortáveis com o WRL se você estiver familiarizado com o ATL.

WRL oferece suporte à funcionalidade de COM que é necessária para aplicativos de Windows Store .Como consequência, porque eles diferem de ATL omitir suporte direto para recursos de COM como:

  • agregado

  • implementações pré-definidas

  • interfaces duais (IDispatch)

  • interfaces padrão do enumerador

  • pontos de conexão

  • interfaces - fora de rasgo

  • Inserindo OLE

  • Controles ActiveX

  • COM+

Conceitos

WRL fornece tipos que representam alguns conceitos básicos.As seções a seguir descrevem esses tipos.

Hh438466.collapse_all(pt-br,VS.110).gifComPtr

ComPtr é um tipo inteligente do ponteiro que representa a interface que é especificado pelo parâmetro do modelo.Use ComPtr para declarar uma variável que pode acessar membros de um objeto que é derivado de interface.ComPtr automaticamente mantém uma contagem de referência para o ponteiro da interface subjacente e libera a interface quando a contagem de referência vá para zero.

Hh438466.collapse_all(pt-br,VS.110).gifRuntimeClass

RuntimeClass representa uma classe que herda instanciado a partir um conjunto de interfaces especificadas.Um objeto de RuntimeClass pode fornecer uma combinação de suporte para uma ou mais interfaces de Tempo de Execução do Windows COM, ou uma referência fraca a um componente.

Hh438466.collapse_all(pt-br,VS.110).gifModule

Módulo representa uma coleção de objetos relacionados.Um objeto de Module gerencia as fábricas da classe, que cria objetos, e o registro, que permite que outros aplicativos usar um objeto.

Hh438466.collapse_all(pt-br,VS.110).gifRetorno de chamada

A função de Retorno de chamada cria um objeto cuja função de membro é um manipulador de eventos (um método de retorno).Use a função de Callback para gravar operações assíncronas.

Hh438466.collapse_all(pt-br,VS.110).gifEventSource

EventSource é usado para gerenciar os manipuladores de eventos delegado .Use WRL para implementar um representante, e use EventSource para adicionar, remover, e chamar os representantes.

Hh438466.collapse_all(pt-br,VS.110).gifAsyncBase

AsyncBase fornece métodos virtuais que representam o modelo de programação assíncrona de Tempo de Execução do Windows .Substitua os membros nesta classe para criar uma classe personalizada que pode iniciar, parar, ou verificar o progresso de uma operação assíncrona.

Hh438466.collapse_all(pt-br,VS.110).gifFtmBase

FtmBase representa um objeto de segmentação livre de marshaler.FtmBase cria uma tabela global (GIT) de interface, e ajuda a gerenciar objetos e empacotamento de proxy.

Hh438466.collapse_all(pt-br,VS.110).gifWeakRef

WeakRef é um tipo de rede ponteiro que representa uma referência fraca, que referencia um objeto que pode ou não pode ser acessível.Um objeto de WeakRef pode ser usado somente por Tempo de Execução do Windows, e não por COM clássico.

Um objeto de WeakRef normalmente representa um objeto cuja existência é controlada por um segmento ou por um aplicativo externo.Por exemplo, um objeto de WeakRef pode fazer referência a um objeto de arquivo.Quando o arquivo está aberto, WeakRef é válido e o arquivo referenciado é acessível.Mas quando o arquivo está fechado, WeakRef é inválido e o arquivo não está acessível.

Tópicos relacionados

Modelo de projeto de biblioteca de classes WRL

Descreve como acessar o modelo de projeto de biblioteca de classes de WRL.Este modelo ajuda a simplificar a tarefa de usar o Visual Studio para criar componentes de Tempo de Execução do Windows .

APIs de chave WRL por categoria

Realce os tipos, funções, e macros primários de WRL .

Referência WRL

Contém informações de referência para WRL.

Referência rápida (Tempo de Execução do Windows e Visual C++)

Rapidamente descreve os recursos de C++/CX que suportam Tempo de Execução do Windows.

Usando componentes de Tempo de Execução do Windows no Visual C++

Mostra como usar C++/CX para criar um componente básico de Tempo de Execução do Windows .