Knihovna šablon C++ prostředí Windows Runtime (WRL)

Knihovna šablon Windows Runtime C++ (WRL) je knihovna šablon, která poskytuje nízkonákladový způsob vytváření a používání komponent Windows Runtime.

Poznámka

Knihovnu WRL teď nahrazuje C++/WinRT, standardní projekce jazyka C++17 pro rozhraní API Windows Runtime. C++/WinRT je k dispozici v sadě Windows SDK od verze 1803 (10.0.17134.0) a novější. C++/WinRT je implementováno zcela v souborech hlaviček a navrženo tak, aby vám poskytovalo prvotřídní přístup k modernímu Windows API.

S C++/WinRT můžete využívat i vytvářet rozhraní API Windows Runtime pomocí libovolného kompilátoru C++17, který vyhovuje standardům. C++/WinRT obvykle provádí lepší výkon a vytváří menší binární soubory než jakákoli jiná jazyková možnost pro Windows Runtime. Budeme dál podporovat C++/CX a WRL, ale důrazně doporučujeme, aby nové aplikace používají C++/WinRT. Další informace najdete v tématu C++/WinRT.

Výhody

Knihovna šablon C++ Windows Runtime umožňuje snadněji implementovat a využívat komponenty modelu COM (Component Object Model). Poskytuje techniky pro správu, jako je počítání odkazů, pro správu životnosti objektů a testování hodnot HRESULT, aby bylo možné určit, jestli byla operace úspěšná nebo neúspěšná. Pokud chcete úspěšně používat knihovnu šablon C++ Windows Runtime, musíte pečlivě dodržovat tato pravidla a techniky.

C++/CX je způsob použití komponent Windows Runtime na vysoké úrovni. Knihovna šablon C++ Windows Runtime i C++/CX zjednodušují psaní kódu pro modul Windows Runtime tím, že za vás automaticky provádějí úlohy údržby.

Knihovna šablon C++ Windows Runtime a C++/CX poskytují různé výhody. Tady jsou některé důvody, proč byste mohli chtít použít knihovnu šablon C++ Windows Runtime místo C++/CX:

  • Knihovna šablon C++ modulu Windows Runtime přidává nad rozhraním ABI (Windows Runtime Application Binary Interface) malou abstrakci, což vám dává možnost řídit základní kód a lépe vytvářet nebo využívat rozhraní API Windows Runtime.

  • C++/CX představuje hodnoty COM HRESULT jako výjimky. Pokud jste zdědili základ kódu, který používá com, nebo ten, který používá výjimky, můžete zjistit, že knihovna šablon C++ modulu Windows Runtime je přirozenější způsob, jak pracovat s prostředím Windows Runtime, protože nemusíte používat výjimky.

    Poznámka

    Knihovna Windows Runtime C++ používá hodnoty HRESULT a nevy vyvolá výjimky. Kromě toho knihovna šablon C++ Windows Runtime používá inteligentní ukazatele a vzor RAII, aby pomohla zaručit správné zničení objektů, když kód aplikace vyvolá výjimku. Další informace o inteligentních ukazatelích a raii najdete v tématu Smart Pointers and Objects Own Resources (RAII).

  • Účel a návrh knihovny šablon C++ modulu Windows Runtime je inspirován knihovnou ATL (Active Template Library), což je sada tříd jazyka C++ založených na šablonách, která zjednodušuje programování objektů COM. Vzhledem k tomu, že knihovna šablon C++ modulu Windows Runtime používá standardní C++ k zabalení modulu Windows Runtime, můžete snadněji portovat a pracovat s mnoha existujícími komponentami modelu COM napsanými v knihovně ATL do Windows Runtime. Pokud knihovnu ATL už znáte, možná zjistíte, že Windows C++ Template Library pro modul runtime je jednodušší.

Začínáme

Tady je několik zdrojů informací, které vám pomůžou ihned pracovat s knihovnou šablon C++ Windows Runtime runtime.

Postupy: Aktivace a použití komponenty Windows Runtime
Ukazuje, jak pomocí knihovny šablon C++ Windows Runtime inicializovat modul Windows Runtime a aktivovat a používat komponentu Windows Runtime.

Postupy: Dokončení asynchronních operací
Ukazuje, jak používat knihovnu šablon C++ Windows Runtime ke spuštění asynchronních operací a provádění práce po dokončení operací.

Postupy: Zpracování událostí
Ukazuje, jak použít knihovnu šablon C++ Windows Runtime pro přihlášení k odběru a zpracování událostí objektu Windows Runtime.

Návod: Vytvoření aplikace pro UPW s použitím knihovny WRL a platformy Media Foundation
Zjistěte, jak vytvořit aplikaci pro UPW, která používá Microsoft Media Foundation.

Postupy: Vytvoření klasické komponenty MODELU COM
Ukazuje, jak pomocí Windows Runtime C++ Template Library vytvořit základní komponentu modelu COM a základní způsob, jak zaregistrovat a využívat komponentu modelu COM z desktopové aplikace.

Postupy: Přímé vytváření instancí komponent WRL
Naučte se používat funkce Microsoft::WRL::Make a Microsoft::WRL::D etails::MakeAndInitialize k vytvoření instance komponenty z modulu, který ji definuje.

Postupy: Vytváření souborů .h z metadat Windows pomocí nástrojů winmdidl.exe a midlrt.exe
Ukazuje, jak využívat vlastní komponenty Windows Runtime z knihovny WRL vytvořením souboru IDL z metadat .winmd.

Návod: Připojení pomocí úloh a požadavků HTTP XML
Ukazuje, jak používat rozhraní IXMLHTTPRequest2 a IXMLHTTPRequest2Callback společně s úkoly odesílání požadavků HTTP GET a POST do webové služby v aplikaci pro UPW.

Mapy Bing optimalizátoru cesty
Používá třídu definovanou v návodu: Připojení pomocí úloh a požadavků HTTP XML v kontextu HttpRequest kompletní aplikace pro UPW. HttpRequest

Vytvoření komponenty knihovny DLL Windows Runtime pomocí ukázky jazyka C++
Ukazuje, jak pomocí knihovny šablon C++ Windows Runtime vytvořit součást knihovny DLL v procesu a využívat ji z C++/CX, JavaScriptu a C#.

Ukázka hry se zabarvením DirectX
Demonstruje způsob použití knihovny šablon C++ Windows Runtime ke správě životnosti komponent modelu COM, jako jsou directX a Media Foundation, v kontextu celé 3D hry.

Informační zprávy z desktopových aplikací
Ukazuje, jak odesílat informační zprávy z desktopové aplikace.

Windows knihovny šablon C++ modulu runtime ve srovnání s ATL

Windows knihovna šablon C++ modulu runtime připomíná knihovnu ATL (Active Template Library), protože ji můžete použít k vytváření malých a rychlých objektů COM. Windows Runtime C++ Template Library a ATL také sdílejí koncepty, jako je definice objektů v modulech, explicitní registrace rozhraní a otevřené vytváření objektů pomocí továren. S knihovnou šablon C++ Windows Runtime se můžete seznámit, pokud znáte KNIHOVNU ATL.

Windows runtime knihovny šablon C++ podporuje funkce modelu COM, které jsou vyžadovány pro aplikace UPW. Proto se liší od ATL, protože vymešká přímou podporu pro funkce modelu COM, jako například:

  • Agregace

  • stock implementations

  • duální rozhraní ( IDispatch )

  • Standardní rozhraní enumerátoru

  • body připojení

  • odtržení rozhraní

  • Vkládání OLE

  • ActiveX – ovládací prvky

  • Model COM+

Koncepty

Windows runtime knihovny šablon C++ poskytuje typy, které představují několik základních konceptů. Tyto typy jsou popsány v následujících částech.

ComPtr

ComPtr je typ inteligentního ukazatele, který představuje rozhraní určené parametrem šablony. Slouží ComPtr k deklaraci proměnné, která má přístup ke členům objektu, který je odvozen z rozhraní. ComPtr automaticky udržuje počet odkazů pro podkladový ukazatel rozhraní a uvolní rozhraní, když počet odkazů přejde na nulu.

RuntimeClass

RuntimeClass představuje vytvořenou třídu, která dědí sadu zadaných rozhraní. Objekt může poskytovat kombinaci podpory pro jedno nebo více rozhraní Windows Runtime COM nebo slabý RuntimeClass odkaz na komponentu.

Modul

Modul představuje kolekci souvisejících objektů. Objekt Module spravuje objekty pro vytváření tříd, které vytvářejí objekty a registraci, což umožňuje ostatním aplikacím používat objekt.

Zpětného volání

Funkce zpětného volání vytvoří objekt, jehož členská funkce je obslužná rutina události (metoda zpětného volání). K Callback zápisu asynchronních operací použijte funkci .

EventSource

EventSource slouží ke správě obslužných rutin událostí delegáta. Pomocí Windows Runtime C++ Template Library implementujte delegáta a použijte k přidání, odebrání a EventSource vyvolání delegátů.

AsyncBase

AsyncBase poskytuje virtuální metody, které představují asynchronní programovací model Windows Runtime. Přepsáním členů v této třídě vytvoříte vlastní třídu, která může spustit, zastavit nebo zkontrolovat průběh asynchronní operace.

FtmBase

FtmBase představuje objekt zařazování volného vlákna. FtmBase vytvoří tabulku globálního rozhraní (GIT) a pomáhá spravovat zařazování a proxy objekty.

WeakRef

WeakRef je typ inteligentního ukazatele, který představuje slabý odkazodkazující na objekt, který může nebo nemusí být dostupný. Objekt může být používán pouze Windows Runtime, a WeakRef ne klasickým modelem COM.

Objekt WeakRef obvykle představuje objekt, jehož existence je řízena externím vláknem nebo aplikací. WeakRefObjekt může například odkazovat na objekt souboru. Když je soubor otevřený, WeakRef je platný a odkazovaný soubor je přístupný. Ale když je soubor zavřený, WeakRef je neplatný a soubor není přístupný.

Klíčová rozhraní API podle kategorie
zvýrazní primární typy, funkce a makra knihovny C++ prostředí Windows Runtime.

Odkaz
obsahuje referenční informace pro knihovnu šablon knihovny prostředí Windows Runtime C++.

Stručná referenční dokumentace (C++/CX)
stručně popisuje funkce C++/cx, které podporují prostředí Windows Runtime.

použití součástí prostředí Windows Runtime v Visual C++
ukazuje, jak pomocí C++/cx vytvořit základní komponentu prostředí Windows Runtime.