共用方式為


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 預設包含 ()

另請參閱