winrt:: Windows:: Foundation:: IUnknown 구조체 (c + +/WinRT)winrt::Windows::Foundation::IUnknown struct (C++/WinRT)

모든 c + +/WinRT 런타임 클래스 (Windows 또는 타사 런타임 클래스 인지 여부)는 WinRT:: windows:: Foundation:: IUnknown에서 파생 됩니다.Every C++/WinRT runtime class (whether a Windows or a third party runtime class) derives from winrt::Windows::Foundation::IUnknown. COM IUnknown 인터페이스를 나타내며, 다른 인터페이스, abi 함수 및 비교 연산자에 대 한 쿼리와 같은 기능을 제공 합니다.It represents the COM IUnknown interface, and it provides facilities such as querying for a different interface, abi functions, and comparison operators.

구문Syntax

struct IUnknown

요구 사항Requirements

지원 되는 최소 SDK: Windows SDK 버전 10.0.17134.0 (Windows 10, 버전 1803)Minimum supported SDK: Windows SDK version 10.0.17134.0 (Windows 10, version 1803)

네임 스페이스: winrtNamespace: winrt

헤더 % windowssdkdir% Include <WindowsTargetPlatformVersion> \cppwinrt\winrt\base.h (기본적으로 포함 됨)Header %WindowsSdkDir%Include<WindowsTargetPlatformVersion>\cppwinrt\winrt\base.h (included by default)

생성자Constructors

생성자Constructor DescriptionDescription
IUnknown:: IUnknown 생성자IUnknown::IUnknown constructor 선택적으로 입력 데이터를 복사 하거나 이동 하 여 IUnknown 구조체의 새 인스턴스를 초기화 합니다.Initializes a new instance of the IUnknown struct, optionally with a copy or move of the input data.

멤버 함수Member functions

함수Function DescriptionDescription
IUnknown:: as 함수IUnknown::as function 지원 되는 경우 요청 된 인터페이스를 반환 합니다.Returns the requested interface, if it is supported. 이이 아니면 throw 합니다.Throws if it is not.
IUnknown:: try_as 함수IUnknown::try_as function 지원 되는 경우 요청 된 인터페이스를 반환 합니다.Returns the requested interface, if it is supported. null이거나, false 그렇지 않으면를 반환 합니다.Returns null, or false, if it is not.

멤버 연산자Member operators

연산자Operator DescriptionDescription
IUnknown:: operator boolIUnknown::operator bool IUnknown 개체가 인터페이스를 참조 하는지 여부를 확인 합니다.Checks whether or not the IUnknown object is referencing an interface.
IUnknown:: operator = (대입 연산자)IUnknown::operator= (assignment operator) IUnknown 개체에 값을 할당 합니다.Assigns a value to the IUnknown object.

Free 함수Free functions

함수Function DescriptionDescription
attach_abi 함수attach_abi function 대상에 대 한 참조를 소유 하는 원시 포인터에 IUnknown 개체를 연결 합니다. 추가 참조는 추가 되지 않습니다.Attaches an IUnknown object to a raw pointer that owns a reference to its target; an additional reference is not added.
copy_from_abi 함수copy_from_abi function 다른 포인터의 IUnknown 개체에 복사 합니다.Copies to an IUnknown object from another pointer. 현재 참조 된 인터페이스 또는 개체의 참조 횟수를 감소 시키고, 원시 포인터 매개 변수를 복사 하 고, 인터페이스가 가리키는 인터페이스 또는 개체의 수명 관리를 시작 합니다.Decrements the reference count on any currently referenced interface or object, copies the raw pointer parameter, and begins managing the lifetime of the interface or object pointed to by it.
copy_to_abi 함수copy_to_abi function IUnknown 개체의 다른 포인터로 복사 합니다.Copies to another pointer from an IUnknown object. 현재 참조 된 인터페이스 또는 개체의 참조 횟수를 증가 시키고 해당 인터페이스 또는 개체의 메모리 주소를 매개 변수로 복사 합니다.Increments the reference count on any currently referenced interface or object, and copies that interface or object's memory address into the parameter.
detach_abi 함수detach_abi function 참조 횟수를 감소 시 키 지 않고 원시 IUnknown 인터페이스 에서 분리 하 여 호출자에 게 반환 합니다.Detaches from the raw IUnknown interface without decrementing the reference count, perhaps to return it to a caller.
get_abi 함수get_abi function 는 함수에 전달 해야 하는 기본 원시 IUnknown 인터페이스 포인터를 반환 합니다.Returns the underlying raw IUnknown interface pointer should you need to pass it to a function.
get_unknown 함수get_unknown function 프로젝션 된 형식의 개체에 대 한 기본 원시 IUnknown 인터페이스 의 주소를 반환 하는 도우미 함수입니다.A helper function that returns the address of the underlying raw IUnknown interface of an object of a projected type.
put_abi 함수put_abi function 기본 원시 IUnknown 인터페이스 포인터의 주소를 void에 대 한 포인터에 대 한 포인터로 반환 합니다. 이 함수를 통해 void에 대 한 포인터에 대 한 포인터를 통해 참조를 out 매개 변수로 반환 하는 메서드 (예: COM 메서드)를 호출할 수 있습니다.Returns the address of the underlying raw IUnknown interface pointer as a pointer to a pointer to void; this function helps you call methods (such as COM methods) that return references as out parameters via a pointer to a pointer to void.
swap 함수swap function IUnknown 매개 변수의 내용을 다른 하나의 대상을 가리키도록 바꿉니다.Swaps the contents of the two IUnknown parameters so that they point at one another's target.

무료 연산자Free operators

함수Function DescriptionDescription
operator! = (같지 않음 연산자)operator!= (inequality operator) 두 매개 변수가 서로 다른 대상을 참조 하는지 여부를 나타내는 값을 반환 합니다.Returns a value indicating whether the two parameters refer to different targets.
연산자< (보다 작음 연산자)operator< (less-than operator) 첫 번째 매개 변수의 대상이 두 번째 매개 변수의 이전 메모리에서 발생 하는지 여부를 나타내는 값을 반환 합니다.Returns a value indicating whether the first parameter's target occurs earlier in memory than that of the second parameter.
연산자<= (작거나 같음 연산자)operator<= (less-than-or-equal-to operator) 첫 번째 매개 변수의 대상이의 메모리에서 이전에 발생 하는지 또는 두 번째 매개 변수의 동일한 위치에서 발생 하는지 여부를 나타내는 값을 반환 합니다.Returns a value indicating whether the first parameter's target occurs earlier in memory than, or at the same location as, that of the second parameter.
operator = = (같음 연산자)operator== (equality operator) 두 매개 변수가 동일한 인터페이스 및/또는 개체를 참조 하는지 여부를 나타내는 값을 반환 합니다.Returns a value indicating whether the two parameters refer to the same interface and/or object.
연산자> (보다 큼 연산자)operator> (greater-than operator) 첫 번째 매개 변수의 대상이 두 번째 매개 변수 보다 나중에 메모리에서 발생 하는지 여부를 나타내는 값을 반환 합니다.Returns a value indicating whether the first parameter's target occurs later in memory than that of the second parameter.
연산자>= (크거나 같음 연산자)operator>= (greater-than-or-equal-to operator) 첫 번째 매개 변수의 대상이의 메모리에서 나중에 발생 하는지 또는 두 번째 매개 변수의 동일한 위치에서 발생 하는지 여부를 나타내는 값을 반환 합니다.Returns a value indicating whether the first parameter's target occurs later in memory than, or at the same location as, that of the second parameter.

IUnknown:: IUnknown 생성자IUnknown::IUnknown constructor

선택적으로 입력 데이터를 복사 하거나 이동 하 여 IUnknown 구조체의 새 인스턴스를 초기화 합니다.Initializes a new instance of the IUnknown struct, optionally with a copy or move of the input data.

구문Syntax

IUnknown() noexcept;
IUnknown(std::nullptr_t) noexcept;
IUnknown(winrt::Windows::Foundation::IUnknown const& other) noexcept;
IUnknown(winrt::Windows::Foundation::IUnknown&& other) noexcept;

매개 변수Parameters

otherIunknown 개체를 초기화 하는 또 다른 iunknown 입니다.other Another IUnknown that initializes the IUnknown object.

IUnknown:: as 함수IUnknown::as function

지원 되는 경우 요청 된 인터페이스를 반환 합니다.Returns the requested interface, if it is supported. 이이 아니면 throw 합니다.Throws if it is not. 이 함수는 호출자에 게 다시 전달 하지 않아도 되는 인터페이스를 쿼리해야 할 경우에 유용 합니다.This function is useful if you want to query for an interface that you don't need to pass back to your caller.

구문Syntax

template <typename To> auto as() const;
template <typename To> void as(To& to) const;

템플릿 매개 변수Template parameters

typename To 요청 된 인터페이스의 형식입니다.typename To The type of the requested interface.

매개 변수Parameters

to 요청 된 인터페이스를 받을 값에 대 한 참조입니다.to A reference to a value to receive the requested interface.

반환 값Return value

요청 된 인터페이스를 참조 하는 com_ptr 또는 요청 된 인터페이스에 대 한 강력한 형식의 스마트 포인터 (c + +/winrt 또는 타사에 의해 선언 됨)A com_ptr referencing the requested interface, or a strongly-typed smart pointer for the requested interface (either declared by C++/WinRT or by a third party).

IUnknown:: try_as 함수IUnknown::try_as function

지원 되는 경우 요청 된 인터페이스를 반환 합니다.Returns the requested interface, if it is supported. null(반환 auto 오버 로드) 또는 (반환 되는 false bool 오버 로드) (없는 경우)를 반환 합니다.Returns null (the auto-returning overload), or false (the bool-returning overload), if it is not. 이 함수는 호출자에 게 다시 전달 하지 않아도 되는 인터페이스를 쿼리해야 할 경우에 유용 합니다.This function is useful if you want to query for an interface that you don't need to pass back to your caller.

구문Syntax

template <typename To> auto try_as() const noexcept;
template <typename To> bool try_as(To& to) const noexcept;

템플릿 매개 변수Template parameters

typename To 요청 된 인터페이스의 형식입니다.typename To The type of the requested interface.

매개 변수Parameters

to 요청 된 인터페이스를 받을 값에 대 한 참조입니다.to A reference to a value to receive the requested interface.

반환 값Return value

요청 된 인터페이스가 지원 되는 경우 요청 된 인터페이스를 참조 하는 com_ptr , 요청 된 인터페이스가 지원 되 면 ( null auto -반환 오버 로드) 또는 false (반환 되는 bool 오버 로드)입니다.A com_ptr referencing the requested interface, or a strongly-typed smart pointer for the requested interface (either declared by C++/WinRT or by a third party), if the requested interface is supported, otherwise null (the auto-returning overload) or false (the bool-returning overload).

IUnknown:: operator boolIUnknown::operator bool

IUnknown 개체가 인터페이스를 참조 하는지 여부를 확인 합니다.Checks whether or not the IUnknown object is referencing an interface. IUnknown 개체가 인터페이스를 참조 하지 않는 경우에는 논리적으로 null입니다. 그렇지 않으면 논리적으로 null이 아닙니다.If the IUnknown object is not referencing an interface, then it is logically null; otherwise it is logically not null.

구문Syntax

explicit operator bool() const noexcept;

반환 값Return value

trueIUnknown 개체가 인터페이스 (논리적으로 null이 아님)를 참조 하는 경우이 고, 그렇지 않으면 false (논리적으로 null)입니다.true if the IUnknown object is referencing an interface (logically not null), otherwise false (logically null).

IUnknown:: operator = (대입 연산자)IUnknown::operator= (assignment operator)

IUnknown 개체에 값을 할당 합니다.Assigns a value to the IUnknown object.

구문Syntax

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;

매개 변수Parameters

otherIunknown 개체 (복사 또는 이동)에 할당할 iunknown 값입니다.other An IUnknown value to assign to the IUnknown object, either by copy or by move.

반환 값Return value

IUnknown 개체에 대 한 참조입니다.A reference to the IUnknown object.

attach_abi 함수attach_abi function

대상에 대 한 참조를 소유 하는 원시 포인터에 IUnknown 개체를 연결 합니다. 추가 참조는 추가 되지 않습니다.Attaches an IUnknown object to a raw pointer that owns a reference to its target; an additional reference is not added. 필요한 경우이 함수를 사용 하 여 참조를 병합할 수 있습니다.If needed, you can use this function to coalesce references.

구문Syntax

void attach_abi(winrt::Windows::Foundation::IUnknown& object, void* value) noexcept;

매개 변수Parameters

object 작업할 IUnknown 값입니다.object An IUnknown value to operate on.

value 대상에 대 한 참조를 소유 하는 원시 포인터입니다.value A raw pointer that owns a reference to its target.

copy_from_abi 함수copy_from_abi function

다른 포인터의 IUnknown 개체에 복사 합니다.Copies to an IUnknown object from another pointer. 현재 참조 된 인터페이스 또는 개체의 참조 횟수를 감소 시키고, 원시 포인터 매개 변수를 복사 하 고, 인터페이스가 가리키는 인터페이스 또는 개체의 수명 관리를 시작 합니다.Decrements the reference count on any currently referenced interface or object, copies the raw pointer parameter, and begins managing the lifetime of the interface or object pointed to by it.

구문Syntax

void copy_from_abi(winrt::Windows::Foundation::IUnknown& object, void* value) noexcept;

매개 변수Parameters

object 작업할 IUnknown 값입니다.object An IUnknown value to operate on.

value 해당 수명을 IUnknown 개체에서 관리 해야 하는 대상에 대 한 원시 포인터입니다.value A raw pointer to a target whose lifetime should be managed by the IUnknown object.

copy_to_abi 함수copy_to_abi function

IUnknown 개체의 다른 포인터로 복사 합니다.Copies to another pointer from an IUnknown object. 현재 참조 된 인터페이스 또는 개체의 참조 횟수를 증가 시키고 해당 인터페이스 또는 개체의 메모리 주소를 매개 변수로 복사 합니다.Increments the reference count on any currently referenced interface or object, and copies that interface or object's memory address into the parameter. 이 함수를 사용 하면 QueryInterface를 호출 하지 않고 동일한 인터페이스에 대 한 참조를 전달할 수 있습니다.This function lets you hand out a reference to the same interface without calling QueryInterface.

구문Syntax

void copy_to_abi(winrt::Windows::Foundation::IUnknown const& object, void*& value) noexcept;

매개 변수Parameters

object 작업할 IUnknown 값입니다.object An IUnknown value to operate on.

value 원시 포인터 참조입니다. 포인터를 IUnknown 개체의 대상에 복사할입니다.value A raw pointer reference; via which to copy the pointer to the IUnknown object's target.

detach_abi 함수detach_abi function

참조 횟수를 감소 시 키 지 않고 호출자에 게 반환 하는 것 처럼 원시 iunknown 인터페이스 에서 iunknown 개체를 분리 합니다.Detaches an IUnknown object from its raw IUnknown interface without decrementing the reference count, perhaps to return it to a caller.

구문Syntax

void* detach_abi(winrt::Windows::Foundation::IUnknown& object) noexcept;
void* detach_abi(winrt::Windows::Foundation::IUnknown&& object) noexcept;

매개 변수Parameters

object 작업할 IUnknown 값입니다.object An IUnknown value to operate on.

반환 값Return value

Iunknown 개체가 참조 하는 원시 IUnknown 인터페이스 에 대 한 포인터입니다.A pointer to the raw IUnknown interface referenced by the IUnknown object.

get_abi 함수get_abi function

는 함수에 전달 해야 하는 기본 원시 IUnknown 인터페이스 포인터를 반환 합니다.Returns the underlying raw IUnknown interface pointer should you need to pass it to a function. 반환 된 포인터에서 AddRef, Release또는 QueryInterface 를 호출할 수 있습니다.You may call AddRef, Release, or QueryInterface on the returned pointer.

구문Syntax

void* get_abi(winrt::Windows::Foundation::IUnknown const& object) noexcept;

매개 변수Parameters

object 작업할 IUnknown 값입니다.object An IUnknown value to operate on.

반환 값Return value

Iunknown 개체가 참조 하는 원시 IUnknown 인터페이스 에 대 한 포인터입니다.A pointer to the raw IUnknown interface referenced by the IUnknown object.

operator! = (같지 않음 연산자)operator!= (inequality operator)

두 매개 변수가 서로 다른 대상을 참조 하는지 여부를 나타내는 값을 반환 합니다.Returns a value indicating whether the two parameters refer to different targets.

구문Syntax

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

매개 변수Parameters

left``right대상의 메모리 주소가 다른 매개 변수와 비교할 IUnknown 값입니다.left right An IUnknown value whose target's memory address to compare with that of the other parameter.

반환 값Return value

true 두 매개 변수가 서로 다른 대상을 가리키면이 고, 그렇지 않으면 false 입니다.true if the two parameters point to different targets, otherwise false.

연산자< (보다 작음 연산자)operator< (less-than operator)

첫 번째 매개 변수의 대상이 두 번째 매개 변수의 이전 메모리에서 발생 하는지 여부를 나타내는 값을 반환 합니다.Returns a value indicating whether the first parameter's target occurs earlier in memory than that of the second parameter.

구문Syntax

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

매개 변수Parameters

left``right대상의 메모리 주소가 다른 매개 변수와 비교할 IUnknown 값입니다.left right An IUnknown value whose target's memory address to compare with that of the other parameter.

반환 값Return value

true 첫 번째 매개 변수의 target's 주소가 두 번째 매개 변수의 값 보다 작은 경우이 고, 그렇지 않으면 false 입니다.true if the first parameter's target's memory address is less than that of the second parameter, otherwise false.

연산자<= (작거나 같음 연산자)operator<= (less-than-or-equal-to operator)

첫 번째 매개 변수의 대상이의 메모리에서 이전에 발생 하는지 또는 두 번째 매개 변수의 동일한 위치에서 발생 하는지 여부를 나타내는 값을 반환 합니다.Returns a value indicating whether the first parameter's target occurs earlier in memory than, or at the same location as, that of the second parameter.

구문Syntax

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

매개 변수Parameters

left``right대상의 메모리 주소가 다른 매개 변수와 비교할 IUnknown 값입니다.left right An IUnknown value whose target's memory address to compare with that of the other parameter.

반환 값Return value

true 첫 번째 매개 변수의 target's 주소가 두 번째 매개 변수의 값 보다 작거나 같으면이 고, 그렇지 않으면 false 입니다.true if the first parameter's target's memory address is less than or equal to that of the second parameter, otherwise false.

operator = = (같음 연산자)operator== (equality operator)

두 매개 변수가 동일한 인터페이스 및/또는 개체를 참조 하는지 여부를 나타내는 값을 반환 합니다.Returns a value indicating whether the two parameters refer to the same interface and/or object.

구문Syntax

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

매개 변수Parameters

left``right대상의 메모리 주소가 다른 매개 변수와 비교할 IUnknown 값입니다.left right An IUnknown value whose target's memory address to compare with that of the other parameter.

반환 값Return value

true 두 매개 변수가 동일한 대상을 가리키면이 고, 그렇지 않으면 false 입니다.true if the two parameters point to the same target, otherwise false.

연산자> (보다 큼 연산자)operator> (greater-than operator)

첫 번째 매개 변수의 대상이 두 번째 매개 변수 보다 나중에 메모리에서 발생 하는지 여부를 나타내는 값을 반환 합니다.Returns a value indicating whether the first parameter's target occurs later in memory than that of the second parameter.

구문Syntax

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

매개 변수Parameters

left``right대상의 메모리 주소가 다른 매개 변수와 비교할 IUnknown 값입니다.left right An IUnknown value whose target's memory address to compare with that of the other parameter.

반환 값Return value

true 첫 번째 매개 변수의 target's 주소가 두 번째 매개 변수의 값 보다 크면이 고, 그렇지 않으면 false 입니다.true if the first parameter's target's memory address is greater than that of the second parameter, otherwise false.

연산자>= (크거나 같음 연산자)operator>= (greater-than-or-equal-to operator)

첫 번째 매개 변수의 대상이의 메모리에서 나중에 발생 하는지 또는 두 번째 매개 변수의 동일한 위치에서 발생 하는지 여부를 나타내는 값을 반환 합니다.Returns a value indicating whether the first parameter's target occurs later in memory than, or at the same location as, that of the second parameter.

구문Syntax

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

매개 변수Parameters

left``right대상의 메모리 주소가 다른 매개 변수와 비교할 IUnknown 값입니다.left right An IUnknown value whose target's memory address to compare with that of the other parameter.

반환 값Return value

true 첫 번째 매개 변수의 target's 주소가 두 번째 매개 변수의 값 보다 크거나 같으면이 고, 그렇지 않으면 false 입니다.true if the first parameter's target's memory address is greater than or equal to that of the second parameter, otherwise false.

put_abi 함수put_abi function

기본 원시 IUnknown 인터페이스 포인터의 주소를 void에 대 한 포인터에 대 한 포인터로 반환 합니다. 이 함수를 통해 void에 대 한 포인터에 대 한 포인터를 통해 참조를 out 매개 변수로 반환 하는 메서드 (예: COM 메서드)를 호출할 수 있습니다.Returns the address of the underlying raw IUnknown interface pointer as a pointer to a pointer to void; this function helps you call methods (such as COM methods) that return references as out parameters via a pointer to a pointer to void.

구문Syntax

void** put_abi(winrt::Windows::Foundation::IUnknown& object) noexcept;

매개 변수Parameters

object 작업할 IUnknown 값입니다.object An IUnknown value to operate on.

반환 값Return value

기본 원시 IUnknown 인터페이스 포인터의 주소입니다.The address of the underlying raw IUnknown interface pointer.

swap 함수swap function

IUnknown 매개 변수의 내용을 다른 하나의 대상을 가리키도록 바꿉니다.Swaps the contents of the two IUnknown parameters so that they point at one another's target.

구문Syntax

void swap(winrt::Windows::Foundation::IUnknown& left, winrt::Windows::Foundation::IUnknown& right) noexcept;

매개 변수Parameters

left``right다른 매개 변수와 상호 교환 하는 포인터를 포함 하는 IUnknown 값입니다.left right An IUnknown value whose pointer to mutually swap with that of the other parameter.

추가 정보See also