Sdílet prostřednictvím


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

Knihovna šablon C++ prostředí Windows Runtime (WRL) je knihovna šablon, která umožňuje vytvářet a používat součásti prostředí Windows Runtime na nižší úrovni.

Výhody

WRL umožňuje snadněji implementovat a používat komponenty modelu COM (Component Object Model).Poskytuje metody údržby pořádku jako počítání odkazů ke správě platnosti objektů a testování hodnot HRESULT k určení, zda operace proběhla úspěšně nebo se nezdařila.Chcete-li úspěšně použít WRL, je třeba pečlivě dodržovat tato pravidla a postupy.

rozšíření komponent v jazyce Visual C++ (C++/CX) je způsob použití komponent prostředí Windows Runtime vysoké úrovni založený na jazyce.Obě možnosti WRL a C++/CX zjednodušují zápis kódu pro prostředí Windows Runtime automatickým prováděním údržby pořádku za vás.

WRL a C++/CX poskytují různé výhody.Zde jsou některé důvody, proč můžete chcete použít WRL místo C++/CX:

  • WRL přidá trochu abstrakce přes rozhraní ABI (Application Binary Interface) prostředí Windows Runtime, poskytující možnost lépe ovládat základní kód pro lepší tvorbu nebo zpracování rozhraní API prostředí Windows Runtime.

  • C++/CX představuje hodnoty HRESULT modelu COM jako výjimky.Jestliže jste zdědili základ kódu, který používá COM, nebo který výjimky nepoužívá, můžete zjistit, že WRL je přirozenější způsob, jak pracovat s prostředí Windows Runtime, protože není nutné používat výjimky.

    [!POZNÁMKA]

    WRL používá hodnoty HRESULT a nevyvolává výjimky.Kromě toho WRL používá inteligentní ukazatele a vzorek RAII, aby bylo jednodušší zajistit, že objekty jsou správně zničeny, když kód aplikace vyvolá výjimku.Další informace o inteligentních ukazatelích a RAII naleznete v tématu Chytré ukazatele (moderní verze jazyka C++) a Prostředky ve vlastnictví objektů (RAII).

  • Účel a návrh je v případě WRL inspirován knihovnou ATL (Active Template Library), což je sada šablonových tříd C++ , které zjednodušují programování objektů COM.Vzhledem k tomu, že WRL používá standardní C++ pro zalomení prostředí Windows Runtime, můžete snadněji portovat a pracovat s mnoha stávající komponentami modelu COM v ATL na prostředí Windows Runtime.Pokud již znáte ATL, může se stát, že programování WRL je jednodušší.

Začínáme

Zde jsou některé zdroje, které vám mohou pomoci ihned začít pracovat s WRL.

WRL porovnané s ATL.

WRL se podobá chování aktivní šablony knihovny (ATL), protože můžete vytvořit malé, rychlé objekty modelu COM.WRL a ATL také sdílí koncepty, jako jsou definice objektů v modulech, explicitní registraci rozhraní a otevře vytváření objektů pomocí továren.S WRL se vám může dobře pracovat, pokud ovládáte práci s knihovnou ATL.

WRL podporuje funkce modelu COM vyžadované pro aplikace Windows Store.Proto se liší od knihovny ATL, protože vynechá přímou podporu funkcí modelu COM, jako například:

  • agregace

  • uložené implementace

  • duální rozhraní (IDispatch)

  • standardní rozhraní čítače

  • spojovací body

  • rozhraní s odnímatelnými nabídkami

  • Vložení OLE

  • Ovládací prvky ActiveX

  • COM+

Koncepty

WRL poskytuje typy, které představují několik základních pojmů.Následující části tyto typy popisují.

ComPtr

ComPtr je typ inteligentní ukazatel, který představuje rozhraní, které je určeno parametrem šablony.Za pomoci ComPtr deklarujte proměnnou, která má přístup ke členům objektu, který je odvozen z rozhraní.ComPtr automaticky udržuje počet odkazů pro základního ukazatele rozhraní a uvolní rozhraní, když se počet odkazů sníží na nulu.

RuntimeClass

RuntimeClass představuje instance třídy, která dědí sadu zadaných rozhraní.Objekt RuntimeClass může poskytovat podporu pro jednu nebo více kombinací rozhraní COM prostředí Windows Runtime nebo slabý odkaz na komponentu.

Modul

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

Zpětné volání

Funkce Zpětné volání vytvoří objekt, jehož členská funkce je obslužnou rutinu události (metoda zpětného volání).Pomocí funkce Callback zapište asynchronní operace.

EventSource

EventSource slouží ke správě obslužné rutiny událostí delegate.Pomocí WRL delegáta implementujete a pomocí EventSource je přidáte, odeberete nebo vyvoláte.

AsyncBase

AsyncBase poskytuje virtuální metody, které představují asynchronní model programování prostředí Windows Runtime.Přepište členy této třídy pro vytvoření vlastní třídy, která může spustit, zastavit nebo zkontrolovat průběh asynchronní operace.

FtmBase

FtmBase představuje objekt s volným zařazováním vláken.FtmBase vytvoří globální tabulku rozhraní (GIT) a pomáhá spravovat objekty zařazování a proxy.

WeakRef

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

Objekt WeakRef obvykle představuje objekt, jehož existence je řízena vnějším vláknem nebo aplikací.Například objekt WeakRef může odkazovat na objekt v souboru.Při otevření souboru je WeakRef platné a odkazovaný soubor je přístupný.Ale při zavření souboru je WeakRef neplatné a soubor není přístupný.

Příbuzná témata

Šablona projektu knihovny tříd WRL

Popisuje, jak získat přístup k šabloně projektu Knihovna tříd WRL.Tato šablona umožňuje zjednodušit úlohu pomocí sady Visual Studio a vytvořit tak komponenty prostředí Windows Runtime.

Nejdůležitější rozhraní API knihovny WRL podle kategorie

Zvýrazní primární typy, funkce a makra WRL.

Referenční dokumentace ke knihovně WRL

Obsahuje referenční informace pro WRL.

Rychlá referenční příručka (Windows Runtime a Visual C++)

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

Použití součástí prostředí Windows Runtime v jazyce Visual C++

Ukazuje, jak použít C++/CX, chcete-li vytvořit základní součást prostředí Windows Runtime.