Windows Runtime C++ Template Library (WRL)
Windows 執行階段 C++ 樣板庫 (WRL) 是一種低階的方式建立和使用 Windows 執行階段 元件的樣板程式庫。
好處
WRL 更輕鬆地將實作和使用元件物件模型 (COM) (COM) 元件。它提供維護技術,如參考次數嘗試物件的存留期和測試的 HRESULT 值來判斷作業是否成功或失敗。已成功使用 WRL,您必須小心遵循這些規則和技術。
Visual C++ 元件擴充功能 (C++/CX) 是高階,以語言為基礎的方式使用 Windows 執行階段 元件。WRL 和 C++/CX 透過自動代表您執行您的環境維護工作來簡化Windows 執行階段 的程式碼。
WRL 和 C++/CX 提供不同的優點。您可以使用 WRL 而不是 C++/CX的原因如下:
WRL 在 Windows 執行階段 之中沒有加入太多順序二進位 Interfaces (ABI) 抽象性,讓您可以控制基礎程式碼來改進建置或使用 Windows 執行階段 API。
C++/CX 代表 COM HRESULT 值做為例外狀況。如果您繼承了使用 COM 或沒有使用例外狀況的程式碼基底,您可能會發現 WRL 是較自然的方式與 Windows 執行階段 一起使用,因為您不需要使用例外狀況。
注意事項 WRL 使用 HRESULT 值,且不會擲回例外狀況。此外,WRL 使用智慧型指標和 RAII 模式來確保,在您的應用程式程式碼擲回例外狀況時物件正確被終結。如需智慧型指標和 RAII 的詳細資訊,請參閱 智慧型指標 (現代的 C++) 和 物件擁有的資源 (RAII)。
WRL 的用途和設計是被 Active Template Library (ATL) 所啟發,那是一組簡化 COM 物件的樣板架構的 C++ 類別。由於 WRL 使用 Standard C++ 包裝 Windows 執行階段,您可以更容易移植和互動撰寫在 ATL 中的許多現有 COM 元件和Windows 執行階段。如果您已經知道 ATL,您可能會發現 WRL 程式設計更容易。
使用者入門
這樣可幫助您取得同時使用 WRL 一起使用的某些資源。
Windows 執行階段執行階段程式庫 (WRL)
在這個 Channel 9 視訊,請了解 WRL 說明您如何撰寫 Windows 市集 應用程式和如何撰寫和使用 Windows 執行階段 元件。如何:利用 WRL 啟動與使用 Windows 執行階段元件
顯示如何使用 WRL 使用 Windows 執行階段 和啟動和使用 Windows 執行階段 元件。如何:使用 WRL 完成非同步作業
本文件將示範如何使用 WRL 來啟動非同步作業和執行工作,當作業完成時。如何:使用 WRL 處理事件
顯示如何使用 WRL 來訂閱和處理 Windows 執行階段 物件的事件。逐步解說:使用 WRL 建立基本 Windows 執行階段元件
顯示如何使用 WRL 建立將兩個數字相加的基本 Windows 執行階段 元件。同時也示範了如何引發事件並使用從使用 JavaScript 的 Windows 市集 應用程式的元件。逐步解說:使用 WRL 和媒體基礎建立 Windows 市集應用程式
學習如何建立使用 Microsoft 媒體基礎的 Windows 市集 應用程式。如何:使用 WRL 建立傳統 COM 元件
顯示如何使用 WRL 建立基本的 COM 元件和基本方法註冊和使用傳統型應用程式的 COM 元件。如何:直接執行個體化 WRL 元件
學習如何使用 Microsoft::WRL::Make 和 Microsoft::WRL::Details::MakeAndInitialize 函式具現化從定義它的模組中的元件。逐步解說:使用工作和 XML HTTP 要求 (IXHR2) 連線
說明如何使用 IXMLHTTPRequest2 和 IXMLHTTPRequest2Callback 介面和工作一起傳送 HTTP GET 和 POST 要求至 Windows 市集 應用程式中的 Web 服務。Bing 地圖旅程最佳化工具範例
使用定義在 逐步解說:使用工作和 XML HTTP 要求 (IXHR2) 連線 完整 Windows 市集 應用程式中的 HttpRequest 類別。混合應用程式 DLL 伺服器的建立範例
示範如何使用 WRL 宣告和實作介面並使用屬性、方法和事件。DirectX 大理石迷宮遊戲範例
示範如何使用 WRL 管理 COM 元件的存留期(如 DirectX 和 Media Foundation在一個完整的 3D 遊戲內容中。從桌上型電腦應用程式範例送出toast 通知
示範如何使用 WRL 與桌上型電腦應用程式的 toast 通知一起使用。
WRL和 ATL比較
因為您可以用來建立小,快速的 COM 物件,WRL 類似 Active Template Library (ATL)。WRL 和 ATL 也共用概念 (例如是在模組中的物件定義,明確註冊的介面,並使用 Factory開啟物件。如果您熟悉 ATL,可能對 WRL 感到滿意。
WRL 支援對於 Windows 市集 應用程式所需的 COM 功能。因此,,因為它省略直接支援 COM 功能 (例如,它與 ATL 不同:
彙總
內建實作
雙重介面 (IDispatch)
標準列舉程式介面
連接點
Tear-Off 介面
OLE 內嵌
ActiveX 控制項
COM+
概念
WRL 提供代表某些基本概念的型別。下列章節將說明此型別:
ComPtr
ComPtr 是表示由樣板參數指定之介面的智慧型指標型別。使用 ComPtr 來宣告可以存取從介面衍生的物件的成員的變數。ComPtr自動維護基礎介面指標上的參考次數並釋放介面,當參考計數歸零時 。
RuntimeClass
RuntimeClass 表示繼承一組指定之介面的具現化類別。RuntimeClass 物件可提供一或多個 Windows 執行階段 COM 介面提供支援的組合或對元件的弱式參考。
模組
模組表示相關物件的集合。Module 物件處理 Class Factory 物件,此物件建立物件和註冊,讓其他應用程式使用物件。
回呼
回呼 函式建立成員函式是事件處理常式的物件 (回呼方法)。使用 Callback 函式撰寫非同步作業。
EventSource
EventSource 用來處理 委派 事件處理常式。使用 WRL 實作委派,並使用 EventSource 加入、移除,並叫用委派。
AsyncBase
AsyncBase 提供代表 Windows 執行階段 非同步程式設計模型的虛擬方法。覆寫這個類別的成員來建立可以開始,停止或檢查非同步作業進度的自訂類別。
FtmBase
FtmBase代表無限制執行緒封送處理器物件。FtmBase 建立全域介面表 (GIT),並協助管理封送處理和 Proxy 物件。
WeakRef
WeakRef 是代表弱式參考的智慧型指標型別,其會參考可能是也可能不是可存取的物件。WeakRef 物件可以只被 Windows 執行階段使用,而不是一般 COM。
WeakRef 物件通常代表其存在是由外部執行緒或應用程式控制項的物件。例如, WeakRef 物件可以參考檔案物件。在檔案開啟時, WeakRef 有效,而且參考的檔案是可存取的。不過,只有在檔案關閉時, WeakRef 是無效,而且檔案無法存取。
相關主題
說明如何存取 WRL 類別庫專案範本。這個範本可協助簡化使用 Visual Studio 建立 Windows 執行階段 元件之工作。 |
|
反白顯示主要 WRL 型別、函式和巨集。 |
|
包含關於 WRL 的參考資訊。 |
|
簡要說明支援 Windows 執行階段的 C++/CX 功能。 |
|
示範如何使用 C++/CX以建立基本Windows 執行階段 元件。 |