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;

매개 변수

otherIUnknown 개체를 초기화하는 또 다른 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 (autobool반환 오버로드).

가 null 참조이면 to 또는 false를 반환합니다null.

IUnknown::operator bool

IUnknown 개체가 인터페이스를 참조하는지 여부를 확인합니다. IUnknown 개체가 인터페이스를 참조하지 않는 경우 논리적으로 null입니다. 그렇지 않으면 논리적으로 null이 아닙니다.

구문

explicit operator bool() const noexcept;

반환 값

trueIUnknown 개체가 인터페이스를 참조하는 경우(논리적으로 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 값입니다.

valueIUnknown 개체에서 수명을 관리해야 하는 대상에 대한 원시 포인터입니다.

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;

매개 변수

leftright 대상의 메모리 주소가 다른 매개 변수의 메모리 주소와 비교할 IUnknown 값입니다.

반환 값

true 두 매개 변수가 다른 대상을 가리키면 이고, 그렇지 않으면 false입니다.

연산자< (보다 작음 연산자)

첫 번째 매개 변수의 대상이 두 번째 매개 변수보다 메모리에서 일찍 발생하는지 여부를 나타내는 값을 반환합니다.

구문

bool operator<(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;

매개 변수

leftright 대상의 메모리 주소가 다른 매개 변수의 메모리 주소와 비교할 IUnknown 값입니다.

반환 값

true 첫 번째 매개 변수의 대상 메모리 주소가 두 번째 매개 변수의 메모리 주소보다 작으면 이고, 그렇지 않으면 false입니다.

operator<= (less-than-or-equal-to 연산자)

첫 번째 매개 변수의 대상이 두 번째 매개 변수의 대상보다 이전 메모리에서 발생하는지 또는 동일한 위치에서 발생하는지 여부를 나타내는 값을 반환합니다.

구문

bool operator<=(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;

매개 변수

leftright 대상의 메모리 주소가 다른 매개 변수의 메모리 주소와 비교할 IUnknown 값입니다.

반환 값

true 첫 번째 매개 변수의 대상 메모리 주소가 두 번째 매개 변수의 메모리 주소보다 작거나 같으면 이고, 그렇지 않으면 false입니다.

operator== (같음 연산자)

두 매개 변수가 동일한 인터페이스 및/또는 개체를 참조하는지 여부를 나타내는 값을 반환합니다.

구문

bool operator==(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;

매개 변수

leftright 대상의 메모리 주소가 다른 매개 변수의 메모리 주소와 비교할 IUnknown 값입니다.

반환 값

true 두 매개 변수가 동일한 대상을 가리키면 이고, 그렇지 않으면 false입니다.

연산자> (보다 큼 연산자)

첫 번째 매개 변수의 대상이 두 번째 매개 변수의 대상보다 메모리에서 나중에 발생하는지 여부를 나타내는 값을 반환합니다.

구문

bool operator>(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;

매개 변수

leftright 대상의 메모리 주소가 다른 매개 변수의 메모리 주소와 비교할 IUnknown 값입니다.

반환 값

true 첫 번째 매개 변수의 대상 메모리 주소가 두 번째 매개 변수의 메모리 주소보다 크면 이고, 그렇지 않으면 false입니다.

operator>= (greater-than-or-equal-to 연산자)

첫 번째 매개 변수의 대상이 두 번째 매개 변수의 대상보다 나중에 메모리에서 발생하는지 또는 동일한 위치에서 발생하는지 여부를 나타내는 값을 반환합니다.

구문

bool operator>=(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;

매개 변수

leftright 대상의 메모리 주소가 다른 매개 변수의 메모리 주소와 비교할 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;

매개 변수

leftright 포인터가 다른 매개 변수의 포인터와 상호 교환되는 IUnknown 값입니다.

추가 정보