Windows ランタイム C++ テンプレート ライブラリ (WRL)
Windows ランタイム C++ テンプレート ライブラリ (WRL) は Windows ランタイム のコンポーネントの作成、使用する低レベルの方法を提供するテンプレート ライブラリです。
利点
WRL は実装により簡単に作成し、コンポーネント オブジェクト モデル ((COM) のコンポーネントを実装します。これは、操作が成功したか失敗したかどうかを判断するためにオブジェクトと HRESULT の比較値の有効期間を管理するために参照カウントようにハウスキーピングの方法を提供します。正常に WRLを使用するには、慎重にこれらの規則やテクノロジに従う必要があります。
Visual C++ コンポーネント拡張 (C++/CX) は Windows ランタイム コンポーネントを使用する、より高レベルの言語ベースの方法です。WRL と C++/CX は、自動的にのためのハウスキーピングのタスクを実行することによって Windows ランタイム のコードの記述が簡単になります。
WRLC++/CX とは異なる利点があります。、C++/CXの代わりに WRL を使用できるいくつかの原因を次に示します。:
WRL がより効率的に Windows ランタイム API を作成または使用する基になるコードを制御できるようにする Windows ランタイム の ABI (ABI) 上の抽象化を追加します。
C++/CX が例外として COM HRESULT の値を表します。COM、例外を使用しない 1 を使用するコード ベースを継承する場合、例外を使用する必要がないため WRL が Windows ランタイム を使用するわかりやすい方法であることに気付くことがあります。
[!メモ]
WRL は HRESULT の値を使用して、例外はスローされません。また、アプリケーションのコードが例外をスローするとオブジェクトを正しく破棄されることを保証する WRL 使用するためのスマート ポインターと RAII パターン。スマート ポインターと RAII に関する詳細については、スマート ポインター (Modern C++) と リソースを所有するオブジェクト (RAII)を参照してください。
WRL の目的と設計は、COM オブジェクトのプログラミングを簡単にする、テンプレート ベースの一連の C++ クラスです (Active Template Library) (ATL) によって、促されます。Windows ランタイムをラップするために WRL が標準 C++ を使用するため Windows ランタイムに ATL で記述された多くの既存の COM コンポーネントでより簡単に移植および操作できます。既に ATL がわかっている場合は、WRL のプログラミングが容易であることに気付くことがあります。
作業の開始
役立つあるリソースを次に、WRL をすばやく取得するを使用します。
Windows のランタイム ライブラリ (WRL)
このチャネル 9 ビデオでは、WRL のヘルプが Windows ストア の apps を Windows ランタイム のコンポーネントの作成および実装方法記述する方法について説明します。方法: WRL を使用して Windows ランタイム コンポーネントをアクティブ化し使用する
WRL を Windows ランタイム を初期化 Windows ランタイム のコンポーネントをアクティブにし、使用する方法を示します。方法: WRL を使用して非同期操作を完了する
操作が完了したら WRL を非同期操作を開始し、作業を実行する方法を示します。方法: WRL を使用してイベントを処理する
WRL をサブスクライブし、Windows ランタイム のオブジェクトのイベントを処理する方法について説明します。チュートリアル: WRL を使用した基本的な Windows ランタイム コンポーネントの作成
WRL を 2 個の数値を追加 Windows ランタイム の基本コンポーネントを作成する方法を示します。また、イベントを発生させ、JavaScript を使用する Windows ストア アプリケーションからコンポーネントを使用する方法を示します。チュートリアル: WRL および Media Foundation を使用した Windows ストア アプリの作成
使用 Microsoft 内の基本する Windows ストア アプリケーションを作成する方法を学習します。方法: WRL を使用して従来の COM コンポーネントを作成する
WRL を基本的な COM コンポーネントおよびデスクトップ アプリケーションから COM コンポーネントを登録する実装する基本的な方法を作成する方法を示します。方法: WRL コンポーネントを直接インスタンス化する
Microsoft::WRL::Make と Microsoft::WRL::Details::MakeAndInitialize 関数を定義するモジュールのコンポーネントをインスタンス化する方法について説明します。チュートリアル: タスクおよび XML HTTP 要求を使用した接続 (IXHR2)
HTTP GET 要求を送信タスクとともに [IXMLHTTPRequest2] と IXMLHTTPRequest2Callback のインターフェイスを使用する方法を取得し、ポストします Windows ストア アプリケーションの Web サービスを要求を示します。Bing ツアーでは、オプティマイザーのサンプルをマップします
完全な Windows ストア アプリケーションのコンテキストで チュートリアル: タスクおよび XML HTTP 要求を使用した接続 (IXHR2) で定義されている HttpRequest クラスを使用します。サンプルを記述するハイブリッド アプリケーションの DLL のサーバー
WRL を宣言し、プロパティ、メソッド、およびイベント インターフェイスを実装する機能の使用方法を示します。DirectX の大理石の迷路ゲームのサンプル
WRL を完全な 3-D ゲームのコンテキストで DirectX と中の基本など、COM コンポーネントの有効期間を管理する方法を示します。デスクトップ アプリケーションのサンプルからトーストの通知の送信
WRL をデスクトップ アプリケーションからトースト通知を使用する方法を示します。
WRL は、ATL に比較します
WRL は方が速い COM オブジェクトを作成できるため (Active Template Library) (ATL) に似ています。WRL と ATL は、ファクトリを使用して、モジュールのオブジェクトの定義、インターフェイスを明示的に登録、および開いているオブジェクトの作成などの概念を共有します。ATL に慣れている場合は WRL と快適な場合があります。
WRL は Windows ストア の apps に必要な COM 機能をサポートします。したがって、ATL と COM 機能の直接サポートなどの省略されるためです:
集計
ストック実装
デュアルインター フェイス (IDispatch)
標準列挙子インターフェイス
コネクション ポイント
インターフェイスを切り取って。
OLE 埋め込み
ActiveX コントロール
COM+
概念
WRL はいくつかの基本概念を表す型が用意されています。以下のセクションでは、これらの型について説明します。
ComPtr
ComPtr は、テンプレート パラメーターで指定されたインターフェイスを表す スマート ポインターの 型です。インターフェイスから派生オブジェクトのメンバーにアクセスできる変数を宣言するには ComPtr を使用します。ComPtr が自動的に参照カウントがゼロになると基のインターフェイス ポインターの参照カウントを保持し、インターフェイスを解放します。
RuntimeClass
RuntimeClass は、個々のインターフェイスを継承するインスタンス化されたクラスを表します。RuntimeClass のオブジェクトは一つ以上の Windows ランタイム の COM インターフェイスのサポートの組み合わせ、またはコンポーネントへの弱い参照を提供できます。
Module
[モジュール] は、関連するオブジェクトのコレクションを表します。Module のオブジェクトでオブジェクトを作成、登録を管理するオブジェクトを使用する他のアプリケーションを有効にするクラス ファクトリ。
コールバック
コールバック の関数は、メンバー関数がコールバック メソッド (イベント ハンドラー) であるオブジェクトを作成します。非同期操作を書き込むに Callback 関数を使用します。
EventSource
EventSource が デリゲートの イベント ハンドラーを管理するために使用されます。デリゲートを実装するために WRL を使用してデリゲートを追加、削除、起動に EventSource を使用します。
AsyncBase
AsyncBase は Windows ランタイム の非同期プログラミング モデルを表す仮想メソッドを提供します。非同期操作の進行状況を起動、停止、またはチェックインするカスタム クラスを作成するには、このクラスのメンバーをオーバーライドします。
FtmBase
FtmBase は、フリー スレッド マーシャラー オブジェクトを表します。FtmBase はグローバル インターフェイス テーブル (GIT) を作成し、ヘルプは、マーシャリングとプロキシ オブジェクトを管理します。
WeakRef
WeakRef はアクセスできない場合があり、可能性のあるオブジェクトを参照する、弱い参照を表すスマート ポインターの型です。WeakRef のオブジェクトは Windows ランタイムだけであり、従来の COM で使用できます。
WeakRef のオブジェクトは、通常、既存のが外部スレッドまたはアプリケーションによって制御されるオブジェクトを表します。たとえば、WeakRef のオブジェクトには、ファイル オブジェクトを参照できます。ファイルが開いている場合、WeakRef が有効になり、参照ファイルにアクセスできます。ただし、ファイルを閉じると、WeakRef は無効であり、ファイルはアクセスできません。
関連トピック
WRL クラス ライブラリ プロジェクトのテンプレートにアクセスする方法について説明します。このテンプレートは Windows ランタイム コンポーネントを作成するために Visual Studio を使用するタスクを簡略化できます。 |
|
WRL の主要な型、関数とマクロが強調表示されます。 |
|
WRLに関するリファレンス情報を示します。 |
|
簡単に説明すると Windows ランタイムをサポートする C++/CX の機能について説明します。 |
|
C++/CX を Windows ランタイム の基本コンポーネントを作成する方法を示します。 |