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