Biblioteka szablonów języka C++ środowiska wykonawczego systemu Windows (WRL)

Biblioteka szablonów C++ środowiska wykonawczego systemu Windows (WRL) to biblioteka szablonów, która zapewnia niskopoziomowy sposób tworzenia i używania składników Środowisko wykonawcze systemu Windows.

Zalety

WRL pozwala łatwiej wdrażać i wykorzystywać składniki Component Object Model (COM).Zapewnia techniki porządkowe, takie jak zliczanie odwołań, aby zarządzać okresem istnienia obiektów i badać wartości HRESULT w celu określenia, czy operacja zakończyła się pomyślnie, czy też się nie udała.Aby z powodzeniem używać WRL, należy dokładnie przestrzegać tych zasad i technik.

Rozszerzenia składników dla programu Visual C++ (C++/CX) to wysokopoziomowy, oparty na języku sposób używania składników Środowisko wykonawcze systemu Windows.Biblioteka WRL i rozszerzenia C++/CX uproszczają pisanie kodu dla środowiska Środowisko wykonawcze systemu Windows przez automatyczne wykonywanie zadań porządkowych w Twoim imieniu.

WRL i C++/CX oferują różne korzyści.Oto kilka powodów, dla których warto używać WRL zamiast C++/CX:

  • WRLdodaje pewien poziom abstrakcji ponad binarnym interfejsem aplikacji (ABI), co daje możliwość sterowania podstawowym kodem, aby lepiej tworzyć lub korzystać z API.

  • C++/CXreprezentuje wartości COM HRESULT jako wyjątki.Jeśli już odziedziczyłeś bazę kodów używających COM lub taką, która nie korzysta z wyjątków, być może stwierdzisz, że WRL to bardziej naturalny sposób pracy z Środowisko wykonawcze systemu Windows, ponieważ nie trzeba używać wyjątków.

    [!UWAGA]

    WRL korzysta z wartości HRESULT i nie generuje wyjątków.Dodatkowo, WRL stosuje inteligentne wskaźniki i wzór RAII w celu zagwarantowania, że obiekty są poprawnie niszczone, gdy kod aplikacji zgłasza wyjątek.Aby uzyskać więcej informacji dotyczących inteligentnych wskaźników i idiomu RAII, zobacz Wskaźniki inteligentne (Modern C++) i Obiekty posiadają zasoby (RAII).

  • Cel i projekt WRL są inspirowane przez Active Template Library (ATL), która stanowi zestaw klas C++ opartych na szablonach, które upraszczają programowanie obiektów COM.Ponieważ biblioteka WRL wykorzystuje standardową składnię C++ do otaczania środowiska Środowisko wykonawcze systemu Windows, można łatwiej integrować ze środowiskiem Środowisko wykonawcze systemu Windows wiele istniejących składników COM napisanych przy użyciu biblioteki ATL i dokonywać z nimi interakcji.Jeśli już znasz ATL, programowanie WRL będzie łatwiejsze.

Wprowadzenie

Oto zasoby, które pomogą Ci od razu rozpocząć pracę z WRL.

WRL W porównaniu z ATL

WRL przypomina Active Template Library (ATL), ponieważ można go używać do tworzenia małych, szybkich obiektów COM.WRLi ATL również współdzielą pojęcia, takie jak definicje obiektów w modułach, jawna rejestracja interfejsów i otwarte tworzenie obiektów przy użyciu fabryk.Użytkownicy zaznajomieni z ATL bez trudu poradzą sobie z WRL.

WRL obsługuje funkcję COM, wymaganą dla aplikacji.W związku z tym różni się od ATL, ponieważ pomija bezpośrednią obsługę funkcji COM, takich jak:

  • agregacja

  • implementacje magazynu

  • dwa interfejsy (IDispatch)

  • standardowe interfejsy modułu wyliczającego

  • punkty połączeń

  • interfejsy odrywania

  • Osadzanie OLE

  • Formanty ActiveX

  • COM+

Pojęcia

WRL udostępnia typy, które reprezentują kilka podstawowych pojęć.W poniższych sekcjach opisano te typy.

ComPtr

ComPtr jest typem inteligentnego wskaźnika, który reprezentuje interfejs, który jest określony przez parametr szablonu.Użyj ComPtr, aby zadeklarować zmienną, która ma dostęp do członków obiektu, który pochodzi z interfejsu.Klasa ComPtr automatycznie przechowuje licznik odwołań dla podstawowego wskaźnika interfejsu i zwalnia interfejs, gdy liczba odwołań osiąga zero.

RuntimeClass

RuntimeClass reprezentuje skonkretyzowaną klasę, która dziedziczy zestaw określonych interfejsów.Obiekt RuntimeClass może zapewnić kombinację obsługi dla jednego lub więcej interfejsów COM środowiska Środowisko wykonawcze systemu Windows lub słabe odwołanie do składnika.

Moduł

Moduł reprezentuje kolekcję obiektów pokrewnych.Obiekt Module zarządza fabrykami klas, w których są tworzone obiekty, i rejestracjami, które umożliwiają innym aplikacjom używanie obiektu.

Wywołanie zwrotne

Funkcja Wywołania zwrotnego tworzy obiekt, którego funkcją członka jest program obsługi zdarzeń (metody wywołania zwrotnego).Użyj funkcji Callback, aby pisać operacje asynchroniczne.

EventSource

EventSource jest używana do zarządzania delegowaniem procedur obsługi zdarzeń.Użyj WRL, aby zaimplementować delegata, i użyj EventSource, aby dodawać, usuwać i wywoływać delegatów.

AsyncBase

Klasa AsyncBase dostarcza metody wirtualne, które reprezentują model programowania asynchronicznego środowiska Środowisko wykonawcze systemu Windows.Zastąp członków w tej klasie, aby utworzyć klasę niestandardową, która może uruchomić, zatrzymać lub sprawdzić postęp operacji asynchronicznej.

FtmBase

FtmBase reprezentuje obiekt bezwątkowego organizowania danych.FtmBase tworzy tabelę interfejsu globalnego (GIT) i pomaga zarządzać obiektami organizowania i pośredniczących.

WeakRef

WeakRef to typ wskaźnika inteligentnego, który reprezentuje odwołanie słabe, odwołujące się do obiektu, który może być lub może nie być dostępny.Obiekt WeakRef może być używany tylko przez środowisko Środowisko wykonawcze systemu Windows, a nie przez klasyczny model COM.

Obiekt WeakRef zazwyczaj reprezentuje obiekt, którego istnienie jest kontrolowane przez zewnętrzny wątek lub aplikację.Na przykład, obiekt WeakRef może się odwoływać do obiektu pliku.Po otwarciu pliku WeakRef jest prawidłowa i plik będący odniesieniem jest dostępny.Jednak po zamknięciu pliku klasa WeakRef jest nieprawidłowa i ten plik nie jest dostępny.

Tematy pokrewne

Szablon projektu biblioteki klas WRL

Opisuje sposób dostępu do szablonu projektu biblioteki klas WRL.Ten szablon pomaga uprościć zadanie przy użyciu programu Visual Studio do tworzenia składników Środowisko wykonawcze systemu Windows.

Kluczowe interfejsy API biblioteki WRL według kategorii

Podświetla podstawowe typy, funkcje i makra WRL.

Odwołanie do biblioteki WRL

Zawiera informacje dotyczące biblioteki WRL.

Krótki przewodnik (Środowisko wykonawcze systemu Windows i Visual C++)

Zawiera krótki opis funkcji rozszerzeń C++/CX obsługujących środowisko Środowisko wykonawcze systemu Windows.

Używanie składników środowiska uruchomieniowego systemu Windows w programie Visual C++

Pokazuje, jak użyć C++/CX do utworzenia podstawowego składnika Środowisko wykonawcze systemu Windows.