winrt::Windows::Foundation::IUnknown 구조체(C++/WinRT)
모든 C++/WinRT 런타임 클래스(Windows 또는 타사 런타임 클래스)는 winrt::Windows::Foundation::IUnknown파생됩니다. COM IUnknown 인터페이스를 나타내며 다른 인터페이스, abi 함수 및 비교 연산자 쿼리와 같은 기능을 제공합니다.
통사론
struct IUnknown
요구 사항
지원되는 최소 SDK: Windows SDK 버전 10.0.17134.0(Windows 10 버전 1803)
Namespace: 윈트
헤더: %WindowsSdkDir%Include<WindowsTargetPlatformVersion>\cppwinrt\winrt\base.h(기본적으로 포함)
생성자
생성자 | 묘사 |
---|---|
IUnknown::IUnknown 생성자 | 필요에 따라 입력 데이터의 복사 또는 이동을 사용하여 IUnknown 구조체의 새 인스턴스를 초기화합니다. |
멤버 함수
기능 | 묘사 |
---|---|
IUnknown::as 함수 | 지원되는 경우 요청된 인터페이스를 반환합니다. 그렇지 않으면 throw합니다. |
IUnknown::try_as 함수 | 지원되는 경우 요청된 인터페이스를 반환합니다.
null 반환하거나 그렇지 않으면 false 반환합니다. |
멤버 연산자
연산자 | 묘사 |
---|---|
IUnknown::operator bool | IUnknown 개체가 인터페이스를 참조하는지 여부를 확인합니다. |
IUnknown::operator=(대입 연산자) | IUnknown 개체에 값을 할당합니다. |
Free 함수
기능 | 묘사 |
---|---|
attach_abi 함수 | 대상에 대한 참조를 소유하는 원시 포인터에 IUnknown 개체를 연결합니다. 추가 참조가 추가되지 않습니다. |
copy_from_abi 함수 | 다른 포인터에서 IUnknown 개체에 복사합니다. 현재 참조된 인터페이스 또는 개체에 대한 참조 수를 감소시키고, 원시 포인터 매개 변수를 복사하고, 이 매개 변수가 가리키는 인터페이스 또는 개체의 수명 관리를 시작합니다. |
copy_to_abi 함수 | IUnknown 개체에서 다른 포인터로 복사합니다. 현재 참조된 인터페이스 또는 개체에 대한 참조 횟수를 증가시키고 해당 인터페이스 또는 개체의 메모리 주소를 매개 변수에 복사합니다. |
detach_abi 함수 | 참조 수를 감소하지 않고 원시 IUnknown 인터페이스 분리하여 호출자에게 반환할 수 있습니다. |
get_abi 함수 | 함수에 전달해야 하는 경우 기본 원시 IUnknown 인터페이스 포인터를 반환합니다. |
get_unknown 함수 | 프로젝션된 형식의 개체에 기본 원시 |
put_abi 함수 | 기본 원시 IUnknown 인터페이스 포인터의 주소를 void포인터로 반환합니다. 이 함수는 void대한 포인터를 통해 참조를 out 매개 변수로 반환하는 메서드(예: COM 메서드)를 호출하는 데 도움이 됩니다. |
스왑 함수 | 두 IUnknown 매개 변수의 내용을 서로의 대상을 가리키도록 바꿉니다. |
무료 연산자
기능 | 묘사 |
---|---|
연산자!= (같지 않음 연산자) | 두 매개 변수가 서로 다른 대상을 참조하는지 여부를 나타내는 값을 반환합니다. |
연산자<(연산자보다 작음) | 첫 번째 매개 변수의 대상이 두 번째 매개 변수의 대상보다 메모리에서 일찍 발생하는지 여부를 나타내는 값을 반환합니다. |
연산자<= (보다 작거나 같음 연산자) | 첫 번째 매개 변수의 대상이 두 번째 매개 변수의 대상보다 이전 메모리에서 발생하는지 또는 동일한 위치에서 발생하는지 여부를 나타내는 값을 반환합니다. |
operator==(같음 연산자) | 두 매개 변수가 동일한 인터페이스 및/또는 개체를 참조하는지 여부를 나타내는 값을 반환합니다. |
연산자>(보다 큼 연산자) | 첫 번째 매개 변수의 대상이 두 번째 매개 변수의 대상보다 나중에 메모리에서 발생하는지 여부를 나타내는 값을 반환합니다. |
연산자>= (보다 크거나 같음 연산자) | 첫 번째 매개 변수의 대상이 두 번째 매개 변수의 대상보다 나중에 메모리에서 발생하는지 또는 동일한 위치에서 발생하는지 여부를 나타내는 값을 반환합니다. |
IUnknown::IUnknown 생성자
필요에 따라 입력 데이터의 복사 또는 이동을 사용하여 IUnknown 구조체의 새 인스턴스를 초기화합니다.
통사론
IUnknown() noexcept;
IUnknown(std::nullptr_t) noexcept;
IUnknown(winrt::Windows::Foundation::IUnknown const& other) noexcept;
IUnknown(winrt::Windows::Foundation::IUnknown&& other) noexcept;
매개 변수
other
IUnknown 개체를 초기화하는 다른 IUnknown.
IUnknown::as 함수
지원되는 경우 요청된 인터페이스를 반환합니다. 그렇지 않으면 throw합니다. 이 함수는 호출자에게 다시 전달할 필요가 없는 인터페이스를 쿼리하려는 경우에 유용합니다.
통사론
template <typename To> auto as() const;
template <typename To> void as(To& to) const;
템플릿 매개 변수
typename To
요청된 인터페이스의 형식입니다.
매개 변수
to
요청된 인터페이스를 받을 값에 대한 참조입니다.
반환 값
요청된 인터페이스를 참조하는 com_ptr 또는 요청된 인터페이스에 대한 강력한 형식의 스마트 포인터(C++/WinRT 또는 타사에서 선언됨)입니다.
IUnknown::try_as 함수
지원되는 경우 요청된 인터페이스를 반환합니다. 그렇지 않은 경우 null
(auto
반환 오버로드) 또는 false
(bool
반환 오버로드)를 반환합니다. 이 함수는 호출자에게 다시 전달할 필요가 없는 인터페이스를 쿼리하려는 경우에 유용합니다.
통사론
template <typename To> auto try_as() const noexcept;
template <typename To> bool try_as(To& to) const noexcept;
템플릿 매개 변수
typename To
요청된 인터페이스의 형식입니다.
매개 변수
to
요청된 인터페이스를 받을 값에 대한 참조입니다. null 참조일 수 있습니다.
반환 값
요청된 인터페이스를 참조하는 com_ptr 또는 요청된 인터페이스(C++/WinRT 또는 타사에 의해 선언됨)에 대한 강력한 형식의 스마트 포인터(요청된 인터페이스가 지원되는 경우) 그렇지 않으면 null
(auto
반환 오버로드) 또는 false
(bool
반환 오버로드)입니다.
to
null 참조이면 null
또는 false
반환합니다.
IUnknown::operator bool
IUnknown 개체가 인터페이스를 참조하는지 여부를 확인합니다. IUnknown 개체가 인터페이스를 참조하지 않는 경우 논리적으로 null입니다. 그렇지 않으면 논리적으로 null이 아닙니다.
통사론
explicit operator bool() const noexcept;
반환 값
IUnknown 개체가 인터페이스를 참조하는 경우(논리적으로 null이 아님) true
, 그렇지 않으면 false
(논리적으로 null)입니다.
IUnknown::operator=(대입 연산자)
IUnknown 개체에 값을 할당합니다.
통사론
winrt::Windows::Foundation::IUnknown& operator=(winrt::Windows::Foundation::IUnknown const& other) noexcept;
winrt::Windows::Foundation::IUnknown& operator=(winrt::Windows::Foundation::IUnknown&& other) noexcept;
winrt::Windows::Foundation::IUnknown& operator=(std::nullptr_t) noexcept;
매개 변수
other
복사 또는 이동으로 IUnknown 개체에 할당할 IUnknown 값입니다.
반환 값
IUnknown 개체에 대한 참조입니다.
attach_abi 함수
대상에 대한 참조를 소유하는 원시 포인터에 IUnknown 개체를 연결합니다. 추가 참조가 추가되지 않습니다. 필요한 경우 이 함수를 사용하여 참조를 병합할 수 있습니다.
통사론
void attach_abi(winrt::Windows::Foundation::IUnknown& object, void* value) noexcept;
매개 변수
object
작동할 IUnknown 값입니다.
value
대상에 대한 참조를 소유하는 원시 포인터입니다.
copy_from_abi 함수
다른 포인터에서 IUnknown 개체에 복사합니다. 현재 참조된 인터페이스 또는 개체에 대한 참조 수를 감소시키고, 원시 포인터 매개 변수를 복사하고, 이 매개 변수가 가리키는 인터페이스 또는 개체의 수명 관리를 시작합니다.
통사론
void copy_from_abi(winrt::Windows::Foundation::IUnknown& object, void* value) noexcept;
매개 변수
object
작동할 IUnknown 값입니다.
value
IUnknown 개체에서 수명을 관리해야 하는 대상에 대한 원시 포인터입니다.
copy_to_abi 함수
IUnknown 개체에서 다른 포인터로 복사합니다. 현재 참조된 인터페이스 또는 개체에 대한 참조 횟수를 증가시키고 해당 인터페이스 또는 개체의 메모리 주소를 매개 변수에 복사합니다. 이 함수를 사용하면 QueryInterface호출하지 않고도 동일한 인터페이스에 대한 참조를 전달할 수 있습니다.
통사론
void copy_to_abi(winrt::Windows::Foundation::IUnknown const& object, void*& value) noexcept;
매개 변수
object
작동할 IUnknown 값입니다.
원시 포인터 참조를 value
; 을 통해 IUnknown 개체의 대상에 대한 포인터를 복사합니다.
detach_abi 함수
참조 수를 줄이지 않고 IUnknown 개체를 원시 IUnknown 인터페이스 분리하여 호출자에게 반환할 수 있습니다.
통사론
void* detach_abi(winrt::Windows::Foundation::IUnknown& object) noexcept;
void* detach_abi(winrt::Windows::Foundation::IUnknown&& object) noexcept;
매개 변수
object
작동할 IUnknown 값입니다.
반환 값
IUnknown 개체에서 참조하는 원시 IUnknown 인터페이스 대한 포인터입니다.
get_abi 함수
함수에 전달해야 하는 경우 기본 원시 IUnknown 인터페이스 포인터를 반환합니다. 반환된 포인터에서
통사론
void* get_abi(winrt::Windows::Foundation::IUnknown const& object) noexcept;
매개 변수
object
작동할 IUnknown 값입니다.
반환 값
IUnknown 개체에서 참조하는 원시 IUnknown 인터페이스 대한 포인터입니다.
operator!= (같지 않음 연산자)
두 매개 변수가 서로 다른 대상을 참조하는지 여부를 나타내는 값을 반환합니다.
통사론
bool operator!=(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;
매개 변수
left
right
대상의 메모리 주소가 다른 매개 변수의 메모리 주소와 비교할 IUnknown 값입니다.
반환 값
두 매개 변수가 서로 다른 대상을 가리키면 true
, 그렇지 않으면 false
.
연산자<(보다 작음 연산자)
첫 번째 매개 변수의 대상이 두 번째 매개 변수의 대상보다 메모리에서 일찍 발생하는지 여부를 나타내는 값을 반환합니다.
통사론
bool operator<(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;
매개 변수
left
right
대상의 메모리 주소가 다른 매개 변수의 메모리 주소와 비교할 IUnknown 값입니다.
반환 값
true
첫 번째 매개 변수의 대상 메모리 주소가 두 번째 매개 변수의 메모리 주소보다 작으면 false
.
operator<= (less-than-or-equal-to 연산자)
첫 번째 매개 변수의 대상이 두 번째 매개 변수의 대상보다 이전 메모리에서 발생하는지 또는 동일한 위치에서 발생하는지 여부를 나타내는 값을 반환합니다.
통사론
bool operator<=(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;
매개 변수
left
right
대상의 메모리 주소가 다른 매개 변수의 메모리 주소와 비교할 IUnknown 값입니다.
반환 값
true
첫 번째 매개 변수의 대상 메모리 주소가 두 번째 매개 변수의 메모리 주소보다 작거나 같으면 false
.
operator==(같음 연산자)
두 매개 변수가 동일한 인터페이스 및/또는 개체를 참조하는지 여부를 나타내는 값을 반환합니다.
통사론
bool operator==(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;
매개 변수
left
right
대상의 메모리 주소가 다른 매개 변수의 메모리 주소와 비교할 IUnknown 값입니다.
반환 값
두 매개 변수가 동일한 대상을 가리키면 true
, 그렇지 않으면 false
.
연산자>(보다 큼 연산자)
첫 번째 매개 변수의 대상이 두 번째 매개 변수의 대상보다 나중에 메모리에서 발생하는지 여부를 나타내는 값을 반환합니다.
통사론
bool operator>(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;
매개 변수
left
right
대상의 메모리 주소가 다른 매개 변수의 메모리 주소와 비교할 IUnknown 값입니다.
반환 값
첫 번째 매개 변수의 대상 메모리 주소가 두 번째 매개 변수의 메모리 주소보다 크면 true
, 그렇지 않으면 false
.
operator>= (greater-than-or-equal-to 연산자)
첫 번째 매개 변수의 대상이 두 번째 매개 변수의 대상보다 나중에 메모리에서 발생하는지 또는 동일한 위치에서 발생하는지 여부를 나타내는 값을 반환합니다.
통사론
bool operator>=(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;
매개 변수
left
right
대상의 메모리 주소가 다른 매개 변수의 메모리 주소와 비교할 IUnknown 값입니다.
반환 값
첫 번째 매개 변수의 대상 메모리 주소가 두 번째 매개 변수의 메모리 주소보다 크거나 같은지 true
, 그렇지 않으면 false
.
put_abi 함수
기본 원시 IUnknown 인터페이스 포인터의 주소를 void포인터로 반환합니다. 이 함수는 void대한 포인터를 통해 참조를 out 매개 변수로 반환하는 메서드(예: COM 메서드)를 호출하는 데 도움이 됩니다.
통사론
void** put_abi(winrt::Windows::Foundation::IUnknown& object) noexcept;
매개 변수
object
작동할 IUnknown 값입니다.
반환 값
기본 원시 IUnknown 인터페이스 포인터의 주소입니다.
swap 함수
두 IUnknown 매개 변수의 내용을 서로의 대상을 가리키도록 바꿉니다.
통사론
void swap(winrt::Windows::Foundation::IUnknown& left, winrt::Windows::Foundation::IUnknown& right) noexcept;
매개 변수
left
right
포인터가 다른 매개 변수의 포인터와 상호 교환되는 IUnknown 값입니다.
참고 항목
- winrt 네임스페이스