Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Eine Hilfsfunktion, die die Adresse (d. h. einen Zeiger auf) die zugrunde liegende unformatierte IUnknown-Schnittstelle eines Objekts eines projizierten Typs zurückgibt (informationen zu projektierten Typen finden Sie unter Verwenden von APIs mit C++/WinRT).
Diese Funktion hilft Ihnen beim Aufrufen von Methoden (z. B. COM-Methoden), die einen Zeiger auf ::IUnknown erwarten. Weitere Details finden Sie im Abschnitt "Beispiel " in diesem Thema. Siehe auch die winrt::Windows::Foundation::IUnknown struct.
Es empfiehlt sich, #include <unknwn.h> explizit immer aufzunehmen, wenn du winrt::get_unknown verwendest, auch wenn dieser Header bereits in einem anderen Header enthalten ist.
Syntax
inline ::IUnknown* get_unknown(winrt::Windows::Foundation::IUnknown const& object) noexcept;
Parameter
objectEin Objekt eines projektierten Typs, auf dem ausgeführt werden soll (oder winrt::Windows::Foundation:::IUnknown-Wert).
Rückgabewert
Die Adresse der zugrunde liegenden unformatierten IUnknown-Schnittstelle als Zeiger auf IUnknown.
Beispiel
#include <dxgi1_2.h>
#include <d3d12.h>
#include <unknwn.h>
#include <winrt/Windows.UI.Core.h>
...
winrt::com_ptr<::IDXGIFactory2> factory;
winrt::com_ptr<::ID3D12CommandQueue> commandQueue;
winrt::Windows::UI::Core::CoreWindow coreWindow{ nullptr };
DXGI_SWAP_CHAIN_DESC1 swapChainDesc{};
winrt::com_ptr<::IDXGISwapChain1> swapChain;
// Initialize the variables here.
winrt::check_hresult(
factory->CreateSwapChainForCoreWindow(
commandQueue.get(),
winrt::get_unknown(coreWindow),
&swapChainDesc,
nullptr,
swapChain.put())
);
Die get_unknown-Funktion ist nicht für Fälle vorgesehen, in denen Sie einen Typ erstellen, der eine COM-Schnittstelle implementiert, das jedoch keinen Windows-Runtime Typ implementiert. In einem Fall wie diesem können Sie einen Zeiger an Ihren Typ übergeben, wo immer ::IUnknown erwartet wird, wie unten dargestellt.
HRESULT FunctionThatExpectsAnIUnknown(::IUnknown * pUnk);
...
struct MyRuntimeClass : winrt::implements<MyRuntimeClass, IMyCOMInterface>
{
...
HRESULT MyRuntimeClass::MemberFunction()
{
return FunctionThatExpectsAnIUnknown(this);
}
}
Weitere Informationen finden Sie unter Erstellen von APIs mit C++/WinRT.
Anforderungen
Mindest unterstützte SDK: Windows SDK Version 10.0.17134.0 (Windows 10, Version 1803)
Namespace: winrt
Header: %WindowsSdkDir%IncludeWindowsTargetPlatformVersion<>\cppwinrt\winrt\base.h (standardmäßig enthalten)