다음을 통해 공유


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 함수 프로젝션된 형식의 개체에 기본 원시 IUnknown 인터페이스의 주소를 반환하는 도우미 함수입니다.
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 인터페이스 포인터를 반환합니다. 반환된 포인터에서 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 값입니다.

참고 항목

  • winrt 네임스페이스