25 lines
606 B
C
25 lines
606 B
C
|
#pragma once
|
||
|
|
||
|
#include <winrt/base.h>
|
||
|
#include <winrt/Windows.Foundation.h>
|
||
|
#include <winrt/Windows.Foundation.Collections.h>
|
||
|
#include <winrt/Windows.UI.Xaml.Interop.h>
|
||
|
|
||
|
template <typename T>
|
||
|
T from_cx(Platform::Object^ from)
|
||
|
{
|
||
|
T to{ nullptr };
|
||
|
|
||
|
winrt::check_hresult(reinterpret_cast<::IUnknown*>(from)
|
||
|
->QueryInterface(winrt::guid_of<T>(),
|
||
|
reinterpret_cast<void**>(winrt::put_abi(to))));
|
||
|
|
||
|
return to;
|
||
|
}
|
||
|
|
||
|
template <typename T>
|
||
|
T^ to_cx(winrt::Windows::Foundation::IUnknown const& from)
|
||
|
{
|
||
|
return safe_cast<T^>(reinterpret_cast<Platform::Object^>(winrt::get_abi(from)));
|
||
|
}
|