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çã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 biblioteca em Tempo de Execução do Windows (WRL)
Nesta exibição do canal 9, para saber mais sobre como a ajuda de WRL você necessita aplicativos de Windows Store e como criar e consumir componentes de Tempo de Execução do Windows .Como ativar e usar um componente de Tempo de Execução do Windows com WRL
Mostra como usar WRL para inicializar Tempo de Execução do Windows e para ativar e usar um componente de Tempo de Execução do Windows .Como executar operações assíncronas com WRL
Mostra como usar WRL para iniciar operações assíncronas e executar o trabalho quando as operações concluírem.Como manipular eventos com WRL
Mostra como usar WRL para assine e manipular os eventos de um objeto de Tempo de Execução do Windows .Instruções passo a passo: criando um componente básico de Tempo de Execução do Windows com WRL
Mostra como usar WRL para criar um componente básico de Tempo de Execução do Windows que adiciona dois números.Também demonstra como gerar eventos e usar o componente de um aplicativo de Windows Store que usa o Javascript.Instruções passo a passo: criando um aplicativo da Windows Store usando WRL e Media Foundation
Aprender como criar um aplicativo de Windows Store que usa. Fundação de mídia da MicrosoftComo criar um componente COM clássico com WRL
Mostra como usar WRL para criar um componente COM básico e uma forma básica para registrar e consumir o componente COM de um aplicativo da área de trabalho.Como instanciar componentes WRL diretamente
Aprenda como usar as funções de Microsoft::WRL::Make e de Microsoft::WRL::Details::MakeAndInitialize para criar uma instância de um componente de módulo que o define.Passo a passo: Conectando-se com tarefas e solicitação de HTTP de XML (IXHR2)
Mostra como usar IXMLHTTPRequest2 e interfaces de IXMLHTTPRequest2Callback tarefas juntamente com enviar solicitações HTTP GET e POST a um serviço da Web em um aplicativo de Windows Store .Exemplo de otimizador de processamento de mapas de Bing
Usa a classe de HttpRequest que é definido em Passo a passo: Conectando-se com tarefas e solicitação de HTTP de XML (IXHR2) no contexto de um aplicativo completo de Windows Store .Híbrido exemplo de criação de servidor do DLL do aplicativo
Demonstra como usar WRL para declarar e implementar interfaces e trabalhar com propriedades, métodos, eventos e.Exemplo do kit de labirinto de mármore de DirectX
Demonstra como usar WRL para gerenciar o tempo de vida dos componentes COM como DirectX e a base de mídia no contexto de um jogo 3d completo.Enviando notificações de brinde do exemplo de aplicativos desktop
Demonstra como usar WRL para trabalhar com notificações de brinde de um aplicativo da área de trabalho.
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.
ComPtr
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.
RuntimeClass
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.
Module
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.
Retorno 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.
EventSource
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.
AsyncBase
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.
FtmBase
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.
WeakRef
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
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 . |
|
Realce os tipos, funções, e macros primários de 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 . |