winrt::get_unknown 函式 (C++/WinRT)
協助程式函式,會傳回 (位址,換句話說,指向) 投影類型之物件之基礎原始 IUnknown 介面 的指標,如需投影 (類型的相關資訊,請參閱 使用 C++/WinRT) 取 API 。
此函式可協助您呼叫方法 (,例如預期 指標為 ::IUnknown的 COM 方法) 。 See the Example section in this topic for more details. 另請參閱winrt::Windows::Foundation::IUnknown 結構。
每當使用 winrt::get_unknown 時,對 #include <unknwn.h>
而言的確是個不錯的選擇,即使該標頭已包含在另一個標頭中。
語法
inline ::IUnknown* get_unknown(winrt::Windows::Foundation::IUnknown const& object) noexcept;
參數
object
投影類型的物件,用於 (或任何winrt::Windows::Foundation::IUnknown值) 。
傳回值
基礎原始 IUnknown 介面 的位址,做為 IUnknown的指標。
範例
#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())
);
get_unknown函式不適用於您撰寫實作 COM 介面的類型,但不會實作Windows 執行階段類型的情況。 在這種情況下,您可以將指標傳遞至類型,無論預期 為 ::IUnknown ,如下所示。
HRESULT FunctionThatExpectsAnIUnknown(::IUnknown * pUnk);
...
struct MyRuntimeClass : winrt::implements<MyRuntimeClass, IMyCOMInterface>
{
...
HRESULT MyRuntimeClass::MemberFunction()
{
return FunctionThatExpectsAnIUnknown(this);
}
}
如需詳細資訊,請參閱使用 C++/WinRT 撰寫 API。
規格需求
最低支援的 SDK:Windows SDK 10.0.17134.0 版 (Windows 10版本 1803)
命名空間: winrt
標頭: %WindowsSdkDir%IncludeWindowsTargetPlatformVersion <> \cppwinrt\winrt\base.h 預設包含 ()