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

Windows Runtime C++ šablony knihovny (WRL) je knihovna šablon, která poskytuje nízké úrovně způsob vytváření a používání komponent prostředí Windows Runtime.The Windows Runtime C++ Template Library (WRL) is a template library that provides a low-level way to author and use Windows Runtime components.

Poznámka

WRL je nyní nahrazena C + +/ WinRT, standard C ++ 17 jazyk projekci pro rozhraní API Windows Runtime.WRL is now superseded by C++/WinRT, a standard C++17 language projection for Windows Runtime APIs. C + +/ WinRT je k dispozici v sadě SDK Windows 10 verze 1803 dále.C++/WinRT is available in the Windows 10 SDK from version 1803 onward. C + +/ WinRT je implementované jenom v souborech hlaviček a navržená tak, aby poskytují přístup k prvotřídní moderní rozhraní Windows API.C++/WinRT is implemented entirely in header files, and designed to provide you with first-class access to the modern Windows API.

Pomocí C + +/ WinRT, můžete současně využívat a vytvářet rozhraní API Windows Runtime pomocí jakékoli standardům C ++ 17 kompilátoru.With C++/WinRT, you can both consume and author Windows Runtime APIs using any standards-compliant C++17 compiler. C + +/ WinRT obvykle vrací lepší výsledky a vytváří menší binárních souborů než jakékoli jiné možnosti jazyka prostředí Windows Runtime.C++/WinRT typically performs better and produces smaller binaries than any other language option for the Windows Runtime. Budeme dál podporovat C + +/ CX a WRL, ale důrazně doporučujeme, aby nové aplikace pomocí C + +/ WinRT.We will continue to support C++/CX and WRL, but highly recommend that new applications use C++/WinRT. Další informace najdete v tématu C + +/ WinRT.For more information, see C++/WinRT.

VýhodyBenefits

Knihovna šablon C++ Windows Runtime umožňuje snadněji implementovat a používat komponenty modelu COM (Component Object).The Windows Runtime C++ Template Library enables you to more easily implement and consume Component Object Model (COM) components. Poskytuje metody údržby pořádku jako počítání odkazů ke správě životnosti objektů a testování hodnoty HRESULT k určení, zda operace bylo úspěšné nebo neúspěšné.It provides housekeeping techniques like reference-counting to manage the lifetime of objects and testing HRESULT values to determine whether an operation succeeded or failed. Pro úspěšné fungování knihovna šablon C++ Windows Runtime, je třeba pečlivě dodržovat tato pravidla a postupy.To successfully use the Windows Runtime C++ Template Library, you must carefully follow these rules and techniques.

C + +/ CX se vysoké úrovně, založený na jazyce způsob použití součásti prostředí Windows Runtime.The C++/CX is a high-level, language-based way to use Windows Runtime components. Knihovna šablon C++ Runtime Windows i C + +/ CX zjednodušit psaní kódu pro Windows Runtime automatickým prováděním údržby pořádku za vás.Both the Windows Runtime C++ Template Library and C++/CX simplify the writing of code for the Windows Runtime by automatically performing housekeeping tasks on your behalf.

Knihovna šablon C++ Windows Runtime a C + +/ CX poskytují různé výhody.The Windows Runtime C++ Template Library and C++/CX provide different benefits. Tady jsou některé důvody může být vhodné nahrazujícím knihovna šablon C++ Windows Runtime jazyka C + +/ CX:Here are some reasons you might want to use the Windows Runtime C++ Template Library instead of C++/CX:

  • Knihovna šablon C++ Runtime Windows přidá trochu abstrakce přes Windows Runtime aplikace binární rozhraní (ABI), získáte možnost ovládat základní kód pro lepší tvorbu nebo zpracování rozhraní API Windows Runtime.Windows Runtime C++ Template Library adds little abstraction over the Windows Runtime Application Binary Interface (ABI), giving you the ability to control the underlying code to better create or consume Windows Runtime APIs.

  • C + +/ CX představuje hodnoty HRESULT modelu COM jako výjimky.C++/CX represents COM HRESULT values as exceptions. Jestliže jste zdědili základ kódu, který používá COM, nebo který výjimky nepoužívá, můžete zjistit, že knihovna šablon C++ Windows Runtime je přirozenější způsob, jak pracovat s modulem Windows Runtime, protože není nutné používat výjimky.If you’ve inherited a code base that uses COM, or one that doesn’t use exceptions, you might find that the Windows Runtime C++ Template Library is a more natural way to work with the Windows Runtime because you don't have to use exceptions.

    Poznámka

    Knihovna šablon C++ Windows Runtime používá hodnoty HRESULT a nevyvolává výjimky.The Windows Runtime C++ Template Library uses HRESULT values and does not throw exceptions. Kromě toho knihovna šablon C++ Windows Runtime používá inteligentní ukazatele a vzorek RAII, aby k zajištění, že objekty jsou správně zničeny, když kód aplikace vyvolá výjimku.In addition, the Windows Runtime C++ Template Library uses smart pointers and the RAII pattern to help guarantee that objects are destroyed correctly when your application code throws an exception. Další informace o inteligentních ukazatelích a RAII naleznete v tématu inteligentní ukazatele a objekty vlastní prostředky (RAII).For more info about smart pointers and RAII, see Smart Pointers and Objects Own Resources (RAII).

  • Účel a návrh knihovna šablon C++ Windows Runtime inspirován podle aktivní šablony knihovny (ATL), což je sada šablonových tříd C++ a, které zjednodušují programování objektů modelu COM.The purpose and design of the Windows Runtime C++ Template Library is inspired by the Active Template Library (ATL), which is a set of template-based C++ classes that simplify the programming of COM objects. Vzhledem k tomu, že knihovna šablon C++ Windows Runtime používá standardní C++ pro zalomení modulu Windows Runtime, můžete snadněji portovat a pracovat s mnoha stávající komponentami modelu COM v ATL do prostředí Windows Runtime.Because Windows Runtime C++ Template Library uses standard C++ to wrap the Windows Runtime, you can more easily port and interact with many existing COM components written in ATL to the Windows Runtime. Pokud již znáte ATL, můžete zjistit, že je knihovna šablon C++ Windows Runtime programování jednodušší.If you already know ATL, you might find that Windows Runtime C++ Template Library programming is easier.

ZačínámeGetting Started

Tady jsou některé prostředky, které můžete hned začít pracovat s knihovna šablon C++ Windows Runtime.Here are some resources that can help you get working with the Windows Runtime C++ Template Library right away.

Knihovna Windows Runtime (WRL)The Windows Runtime Library (WRL)
V tomto videu Channel 9 Další informace o tom, jak se knihovna šablon C++ Runtime Windows pomáhá zápisu aplikace univerzální platformy Windows (UPW) a jak vytvářet a využívat komponenty prostředí Windows Runtime.In this Channel 9 video, learn more about how the Windows Runtime C++ Template Library helps you write Universal Windows Platform (UWP) apps and how to author and consume Windows Runtime components.

Postupy: Aktivace a používání komponent prostředí Windows RuntimeHow to: Activate and Use a Windows Runtime Component
Ukazuje, jak pomocí šablony knihovna Windows Runtime C++ inicializovat Windows Runtime a aktivaci a používání komponent prostředí Windows Runtime.Shows how to use the Windows Runtime C++ Template Library to initialize the Windows Runtime and activate and use a Windows Runtime component.

Postupy: dokončení asynchronních operacíHow to: Complete Asynchronous Operations
Ukazuje způsob použití knihovny šablon jazyka C++ Runtime Windows ke spuštění asynchronních operací a provedení práce po dokončení operací.Shows how to use the Windows Runtime C++ Template Library to start asynchronous operations and perform work when the operations complete.

Postupy: zpracování událostíHow to: Handle Events
Ukazuje způsob použití knihovny šablon jazyka C++ Runtime Windows přihlásit k odběru a zpracování událostí objekt prostředí Windows Runtime.Shows how to use the Windows Runtime C++ Template Library to subscribe to and handle the events of a Windows Runtime object.

Návod: Vytvoření aplikace pro UPW s použitím knihovny WRL a platformy Media FoundationWalkthrough: Creating a UWP app using WRL and Media Foundation
Naučíte se vytvářet aplikace pro UPW, která používá Microsoft Media Foundation.Learn how to create a UWP app that uses Microsoft Media Foundation.

Postupy: vytvoření klasické komponenty COMHow to: Create a Classic COM Component
Ukazuje, jak pomocí šablony knihovna Windows Runtime C++ k vytvoření základní komponenty modelu COM a základní způsob, jak zaregistrovat a využívat komponenty modelu COM z desktopové aplikace.Shows how to use the Windows Runtime C++ Template Library to create a basic COM component and a basic way to register and consume the COM component from a desktop app.

Postupy: Přímé vytváření instancí komponent knihovny WRLHow to: Instantiate WRL Components Directly
Další informace o použití Microsoft::WRL:: Make a Microsoft::WRL::Details::MakeAndInitialize pro vytvoření instance komponenty z modulu, který ji definuje.Learn how to use the Microsoft::WRL::Make and Microsoft::WRL::Details::MakeAndInitialize functions to instantiate a component from the module that defines it.

Postupy: Vytváření souborů .h z metadat Windows pomocí nástrojů winmdidl.exe a midlrt.exeHow to: Use winmdidl.exe and midlrt.exe to create .h files from windows metadata
Ukazuje, jak využívat vlastní součásti prostředí Windows Runtime z WRL vytvořením souboru IDL z metadat .winmd.Shows how to consume custom Windows Runtime components from WRL by creating an IDL file from the .winmd metadata.

Návod: Připojení pomocí úloh a žádostí XML HTTPWalkthrough: Connecting Using Tasks and XML HTTP Requests
Ukazuje způsob použití IXMLHTTPRequest2 a IXMLHTTPRequest2Callback spolu s úkoly odesílajícími požadavky HTTP GET a POST na webovou službu v aplikaci UWP.Shows how to use the IXMLHTTPRequest2 and IXMLHTTPRequest2Callback interfaces together with tasks to send HTTP GET and POST requests to a web service in a UWP app.

Příklad optimalizace cesty mapy BingBing Maps Trip Optimizer sample
Používá HttpRequest třídu, která je definována v návod: připojení pomocí úloh a žádostí XML HTTP v souvislosti s kompletní aplikace pro UPW.Uses the HttpRequest class that's defined in Walkthrough: Connecting Using Tasks and XML HTTP Requests in the context of a complete UWP app.

Vytváření součásti modulu Windows Runtime s ukázkou jazyka C++Creating a Windows Runtime DLL component with C++ sample
Ukazuje, jak pomocí šablony knihovna Windows Runtime C++ vytvořit komponentu knihovny DLL v procesu a používat ji v jazyce C + +/ CX, JavaScriptu a C#.Shows how to use the Windows Runtime C++ Template Library to create an in-process DLL component and consume it from C++/CX, JavaScript, and C#.

Ukázka hry mramorového bludiště DirectXDirectX marble maze game sample
Popisuje způsob použití knihovny šablon jazyka C++ Runtime Windows ke správě životnosti komponent modelu COM, jako je rozhraní DirectX a platformy Media Foundation v souvislosti s kompletní 3D hrou.Demonstrates how to use the Windows Runtime C++ Template Library to manage the lifetime of COM components such as DirectX and Media Foundation in the context of a complete 3-D game.

Odesílání oznámení z ukázkové aplikace klasické pracovní plochySending toast notifications from desktop apps sample
Popisuje způsob použití knihovny šablon jazyka C++ Runtime Windows pro práci s oznámeními pro oznámení z desktopové aplikace.Demonstrates how to use the Windows Runtime C++ Template Library to work with toast notifications from a desktop app.

Knihovna šablon C++ prostředí Windows Runtime porovnané s ATL.Windows Runtime C++ Template Library Compared to ATL

Knihovna šablon C++ Windows Runtime podobá aktivní šablony knihovny (ATL), protože slouží k vytvoření malé, rychlé objekty modelu COM.Windows Runtime C++ Template Library resembles the Active Template Library (ATL) because you can use it to create small, fast COM objects. Knihovna šablon C++ Windows Runtime a knihovny ATL také sdílí koncepty, jako jsou definice objektů v modulech, explicitní registraci rozhraní a otevře vytváření objektů pomocí továren.Windows Runtime C++ Template Library and ATL also share concepts such as definition of objects in modules, explicit registration of interfaces, and open creation of objects by using factories. Vyhovuje knihovna šablon C++ Windows Runtime může být, pokud jste obeznámeni s knihovnou ATL.You might be comfortable with Windows Runtime C++ Template Library if you're familiar with ATL.

Knihovna šablon C++ Windows Runtime podporuje funkce modelu COM, která je požadována pro aplikace pro UPW.Windows Runtime C++ Template Library supports the COM functionality that is required for UWP apps. Proto se liší od knihovny ATL protože vynechá přímou podporu funkcí modelu COM, jako:Therefore, it differs from the ATL because it omits direct support for COM features such as:

  • Agregaceaggregation

  • uložené implementacestock implementations

  • duální rozhraní (IDispatch)dual interfaces (IDispatch)

  • standardní rozhraní čítačestandard enumerator interfaces

  • body připojeníconnection points

  • odtržených rozhranítear-off interfaces

  • Vložení OLEOLE embedding

  • ActiveX – ovládací prvkyActiveX controls

  • Model COM+COM+

KonceptyConcepts

Knihovna šablon C++ Windows Runtime poskytuje typy, které představují několik základních pojmů.Windows Runtime C++ Template Library provides types that represent a few basic concepts. Následující části popisují tyto typy.The following sections describe those types.

ComPtrComPtr

ComPtr je inteligentního ukazatele typ, který představuje rozhraní, které je určeno parametrem šablony.ComPtr is a smart pointer type that represents the interface that's specified by the template parameter. Použití ComPtr k deklaraci proměnné, které můžete přístup ke členům v objektu, který je odvozen z rozhraní.Use ComPtr to declare a variable that can access the members of an object that's derived from the interface. ComPtr automaticky udržuje počet odkazů pro základního ukazatele rozhraní a uvolní rozhraní, když počet odkazů dosáhne nuly.ComPtr automatically maintains a reference count for the underlying interface pointer and releases the interface when the reference count goes to zero.

RuntimeClassRuntimeClass

RuntimeClass představuje instance třídy, která dědí sadu zadaných rozhraní.RuntimeClass represents an instantiated class that inherits a set of specified interfaces. A RuntimeClass objektu můžete poskytovat kombinaci podpory pro jedno nebo více rozhraní Windows Runtime COM nebo Slabý odkaz na komponentu.A RuntimeClass object can provide a combination of support for one or more Windows Runtime COM interfaces, or a weak reference to a component.

ModulModule

Modul představuje kolekci souvisejících objektů.Module represents a collection of related objects. A Module objektu spravuje vytváření tříd, které vytvářejí objekty a registraci, což umožňuje jiným aplikacím použít objekt.A Module object manages class factories, which create objects, and registration, which enables other applications to use an object.

zpětné voláníCallback

Zpětného volání funkce vytvoří objekt, jehož členská funkce je obslužnou rutinu události (metoda zpětného volání).The Callback function creates an object whose member function is an event handler (a callback method). Použití Callback funkce zapište asynchronní operace.Use the Callback function to write asynchronous operations.

EventSourceEventSource

EventSource slouží ke správě delegovat obslužných rutin událostí.EventSource is used to manage delegate event handlers. Použití knihovny šablon jazyka C++ Windows Runtime delegáta implementujete a pomocí EventSource Pokud chcete přidat, odebrat nebo vyvoláte.Use Windows Runtime C++ Template Library to implement a delegate, and use EventSource to add, remove, and invoke delegates.

AsyncBaseAsyncBase

Asyncbase – poskytuje virtuální metody, které představují asynchronní programovací model Windows Runtime.AsyncBase provides virtual methods that represent the Windows Runtime asynchronous programming model. Přepište členy této třídy pro vytvoření vlastní třídy, které můžete spustit, zastavit nebo zkontrolovat průběh asynchronní operace.Override the members in this class to create a custom class that can start, stop, or check the progress of an asynchronous operation.

FtmBaseFtmBase

Ftmbase – představuje objekt s volným zařazováním vláken.FtmBase represents a free-threaded marshaler object. FtmBase vytvoří globální tabulku rozhraní (GIT) a pomáhá spravovat objekty zařazování a proxy.FtmBase creates a global interface table (GIT), and helps manage marshaling and proxy objects.

WeakRefWeakRef

Weakref – je typ inteligentního ukazatele, který představuje nestálý odkaz, které se odkazuje na objekt, který může nebo nemusí být dostupný.WeakRef is a smart-pointer type that represents a weak reference, which references an object that might or might not be accessible. A WeakRef objekt lze použít pouze modul runtime pro Windows a nikoli podle klasického modelu COM.A WeakRef object can be used by only the Windows Runtime, and not by classic COM.

A WeakRef objekt obvykle představuje objekt, jehož existence je řízena vnějším vláknem nebo aplikací.A WeakRef object typically represents an object whose existence is controlled by an external thread or application. Například WeakRef objekt může odkazovat na objekt v souboru.For example, a WeakRef object can reference a file object. Když je soubor otevřen, WeakRef platné a odkazovaný soubor je přístupný.When the file is open, the WeakRef is valid and the referenced file is accessible. Ale při zavření souboru je WeakRef není platný a soubor není přístupný.But when the file is closed, the WeakRef is invalid and the file is not accessible.

Nejdůležitější rozhraní API podle kategorieKey APIs by Category Zvýrazní primární typy knihovna šablon C++ Windows Runtime, funkcemi a makry.Highlights the primary Windows Runtime C++ Template Library types, functions, and macros.
Referenční informaceReference Obsahuje referenční informace pro knihovna šablon C++ Windows Runtime.Contains reference information for the Windows Runtime C++ Template Library.
Stručná referenční příručka (Windows Runtime a Visual C++)Quick Reference (Windows Runtime and Visual C++) Stručně popisuje C + +/ CX funkce, které podporují prostředí Windows Runtime.Briefly describes the C++/CX features that support the Windows Runtime.
Použití součástí prostředí Windows Runtime v jazyce Visual C++Using Windows Runtime Components in Visual C++ Ukazuje, jak použít C + +/ CX pro vytvoření základní komponenty prostředí Windows Runtime.Shows how to use C++/CX to create a basic Windows Runtime component.