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

Knihovna šablon jazyka prostředí Windows Runtime C++ (WRL) je knihovna šablon, která poskytuje nízkoúrovňový způsob vytváření a používání komponent prostředí Windows Runtime.

Poznámka

WRL je nyní nahrazen jazykem C++/WinRT, standardní projekcí jazyka C++17 pro prostředí Windows Runtime rozhraní API. C++/WinRT je k dispozici v sadě Windows SDK verze 1803 (10.0.17134.0) dále. C++/WinRT se implementuje zcela v souborech hlaviček a je navržený tak, aby vám poskytl prvotřídní přístup k modernímu rozhraní API systému Windows.

S C++/WinRT můžete využívat i vytvářet prostředí Windows Runtime rozhraní API pomocí libovolného kompilátoru C++17 vyhovujících standardům. C++/WinRT obvykle funguje lépe a vytváří menší binární soubory než jakákoli jiná možnost jazyka pro prostředí Windows Runtime. Budeme dál podporovat C++/CX a WRL, ale důrazně doporučujeme, aby nové aplikace používaly C++/WinRT. Další informace najdete v tématu C++/WinRT.

Zaměstnanecké výhody

Knihovna šablon jazyka C++ prostředí Windows Runtime umožňuje snadněji implementovat a využívat komponenty modelu COM (Component Object Model). Poskytuje techniky úklidu, jako je počítání odkazů pro správu životnosti objektů a testování hodnot HRESULT, aby bylo možné určit, jestli operace proběhla úspěšně nebo selhala. Chcete-li úspěšně používat knihovnu šablon jazyka C++ prostředí Windows Runtime, musíte pečlivě postupovat podle těchto pravidel a technik.

C++/CX je základní jazykový způsob použití komponent prostředí Windows Runtime. Knihovna šablon jazyka C++ prostředí Windows Runtime i C++/CX zjednodušují psaní kódu pro prostředí Windows Runtime tím, že za vás automaticky provádějí úkoly úklidu.

Knihovna šablon prostředí Windows Runtime C++ a C++/CX poskytují různé výhody. Tady je několik důvodů, proč místo C++/CX použít knihovnu šablon jazyka C++ prostředí Windows Runtime:

  • prostředí Windows Runtime knihovny šablon jazyka C++ přidává málo abstrakce přes binární rozhraní aplikace prostředí Windows Runtime (ABI), která umožňuje řídit základní kód, aby bylo možné lépe vytvářet nebo využívat prostředí Windows Runtime rozhraní API.

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

    Poznámka

    Knihovna šablon jazyka C++ prostředí Windows Runtime používá hodnoty HRESULT a nevyvolá výjimky. Kromě toho knihovna šablon jazyka prostředí Windows Runtime C++ používá inteligentní ukazatele a vzor RAII, aby bylo zaručeno, že objekty jsou zničeny správně, když kód aplikace vyvolá výjimku. Další informace o inteligentních ukazatelích a RAII naleznete v tématu Inteligentní ukazatele a objekty vlastní prostředky (RAII).

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

Začínáme

Tady jsou některé zdroje informací, které vám pomůžou okamžitě pracovat s knihovnou šablon jazyka C++ prostředí Windows Runtime.

Postupy: Aktivace a použití komponenty prostředí Windows Runtime
Ukazuje, jak pomocí knihovny šablon jazyka C++ prostředí Windows Runtime inicializovat prostředí Windows Runtime a aktivovat a použít komponentu prostředí Windows Runtime.

Postupy: Dokončení asynchronních operací
Ukazuje, jak pomocí prostředí Windows Runtime knihovny šablon jazyka C++ spustit asynchronní operace a provádět práci po dokončení operací.

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

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í knihovny šablon jazyka C++ prostředí Windows Runtime vytvořit základní komponentu MODELU COM a základní způsob, jak zaregistrovat a využívat komponentu COM z desktopové aplikace.

Postupy: Přímé vytváření instancí komponent knihovny WRL
Naučte se používat Microsoft::WRL::Make a Microsoft::WRL::D etails::MakeAndInitialize functions 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 prostředí Windows Runtime z knihovny WRL vytvořením souboru IDL z metadat .winmd.

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

Ukázka Mapy Optimalizátoru výletů Bingu
Používá třídu definovanou v návoduHttpRequest: Připojení použití úloh a požadavků HTTP XML v kontextu úplné aplikace UPW.

Vytvoření komponenty knihovny DLL prostředí Windows Runtime s ukázkou jazyka C++
Ukazuje, jak pomocí knihovny šablon jazyka C++ prostředí Windows Runtime vytvořit komponentu knihovny DLL v procesu a využívat ji z C++/CX, JavaScriptu a C#.

DirectX marble maze game sample
Ukazuje, jak používat prostředí Windows Runtime C++ Template Library ke správě životnosti komponent modelu COM, jako je DirectX a Media Foundation v kontextu kompletní 3D hry.

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

prostředí Windows Runtime knihovně šablon jazyka C++ ve srovnání s knihovnou ATL

prostředí Windows Runtime knihovně šablon jazyka C++ se podobá knihovně ATL (Active Template Library), protože ji můžete použít k vytváření malých a rychlých objektů modelu COM. prostředí Windows Runtime knihovně šablon C++ a knihovně ATL také sdílejí koncepty, jako je definice objektů v modulech, explicitní registrace rozhraní a otevření vytváření objektů pomocí továren. Pokud znáte knihovnu šablon jazyka C++, možná vám bude vyhovovat prostředí Windows Runtime knihovna šablon jazyka C++.

prostředí Windows Runtime knihovna šablon jazyka C++ podporuje funkce modelu COM vyžadované pro aplikace pro UPW. Proto se liší od knihovny ATL, protože vynechá přímou podporu funkcí modelu COM, jako jsou:

  • Agregace

  • implementace zásob

  • duální rozhraní (IDispatch)

  • standardní rozhraní enumerátoru

  • body připojení

  • rozhraní pro odtržení

  • Vkládání OLE

  • ActiveX – ovládací prvky

  • Model COM+

Koncepty

prostředí Windows Runtime knihovně šablon jazyka C++ poskytuje typy, které představují několik základních konceptů. Tyto typy popisují následující části.

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 k členům objektu odvozeného z rozhraní. ComPtr automaticky udržuje počet odkazů pro ukazatel základního rozhraní a uvolní rozhraní, když počet odkazů přejde na nulu.

RuntimeClass

RuntimeClass představuje instanci třídy, která dědí sadu zadaných rozhraní. Objekt RuntimeClass může poskytnout kombinaci podpory pro jedno nebo více prostředí Windows Runtime rozhraní COM nebo slabý 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 jiným aplikacím používat objekt.

Zpětné volání

Funkce Zpětné volání vytvoří objekt, jehož členová funkce je obslužná rutina události (metoda zpětného volání). Funkce slouží k zápisu Callback asynchronních operací.

EventSource

EventSource slouží ke správě obslužných rutin událostí delegáta . Pomocí prostředí Windows Runtime knihovny šablon jazyka C++ můžete implementovat delegáta a použít EventSource k přidání, odebrání a vyvolání delegátů.

AsyncBase

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

FtmBase

FtmBase představuje objekt zařazovač bez vláken. FtmBase vytvoří globální tabulku rozhraní (GIT) a pomáhá spravovat zařazování a proxy objekty.

WeakRef

WeakRef je typ inteligentního ukazatele, který představuje slabý odkaz, který odkazuje na objekt, který může nebo nemusí být přístupný. Objekt WeakRef lze použít pouze prostředí Windows Runtime, a ne klasickým objektem COM.

Objekt WeakRef obvykle představuje objekt, jehož existence je řízena externím vláknem nebo aplikací. Například WeakRef objekt může odkazovat na objekt souboru. Když je soubor otevřený, WeakRef je platný a odkazovaný soubor je přístupný. Když je ale 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 šablon jazyka C++ prostředí Windows Runtime.

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

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

Použití komponent prostředí Windows Runtime v jazyce Visual C++
Ukazuje, jak pomocí C++/CX vytvořit základní prostředí Windows Runtime komponentu.