winrt::capture 함수 템플릿(C++/WinRT)
지정된 함수 또는 메서드를 호출하는 함수 템플릿(자동으로 winrt::check_hresult 호출)은 함수 또는 메서드에서 출력되는 인터페이스 포인터를 캡처하고, Windows::Foundation::IUnknown에서 파생되는 경우 T
템플릿 매개 변수 typename T
로 반환하고, 그렇지 않으면 winrt::com_ptr 반환합니다. 성공하지 못하면 throw합니다.
winrt::com_ptr::capture 함수도 참조하세요.
구문
template <typename T, typename F, typename...Args>
impl::com_ref<T> capture(F function, Args&& ...args);
template <typename T, typename O, typename M, typename...Args>
impl::com_ref<T> capture(O* p, M method, Args&& ...args);
template <typename T, typename O, typename M, typename...Args>
impl::com_ref<T> capture(com_ptr<O> const& object, M method, Args&& ...args);
템플릿 매개 변수
typename T
함수 또는 메서드에서 출력되는 인터페이스 포인터의 형식입니다.
typename F
free 함수 또는 std::function과 같은 함수 개체 형식입니다.
typename O
인터페이스 형식입니다.
typename M
메서드 형식입니다.
typename Args
0개 이상의 인수 형식입니다.
매개 변수
function
형식 F
의 함수 개체입니다.
p
형식 O
의 개체에 대한 포인터입니다.
object
winrt::com_ptr 형식O
입니다.
method
형식M
의 메서드(구현)O
입니다.
args
형식의 인수가 0개 이상입니다 Args
.
반환 값
T
Windows::Foundation::IUnknown에서 파생되는 경우 T
반환하고, 그렇지 않으면 winrt::com_ptr 반환합니다. 성공하지 못하면 throw합니다.
설명
- 오버로드는
capture(F function, Args&&...args)
함수 개체를 호출합니다. capture(O* p, M method, Args&& ...args)
오버로드는 포인터에서 메서드를 호출합니다.capture(winrt::com_ptr<O> const& object, M method, Args&&...args)
오버로드는 개체에서 메서드를 호출합니다.
모든 오버로드는 사용자가 제공하는 추가 인수를 호출 수신자에게 전달합니다. 또한 모든 오버로드는 이러한 호출에 필요한 두 개의 추가 인수, 특히 REFIID ( winrt::com_ptr 대상의 ID) 및 void** ( winrt::com_ptr 대상에 대한 포인터의 주소)를 전달합니다.
요구 사항
지원되는 최소 SDK: Windows SDK 버전 10.0.17134.0(Windows 10, 버전 1803)
네임스페이스: winrt
헤더: %WindowsSdkDir%IncludeWindowsTargetPlatformVersion<>\cppwinrt\winrt\base.h(기본적으로 포함)