winrt:: com_ptr 구조체 템플릿 (c + +/WinRT)winrt::com_ptr struct template (C++/WinRT)

참조 횟수가 계산 되는 COM 스마트 포인터 템플릿입니다.A reference-counted COM smart pointer template. com_ptr 는 템플릿 매개 변수로 지정 된 인터페이스 또는 런타임 클래스 구현 형식에 대 한 포인터를 나타냅니다.com_ptr represents a pointer to the interface or runtime class implementation type specified by the template parameter. Private raw 포인터를 통해 대상의 참조 횟수를 자동으로 관리 합니다.It automatically manages the reference count for its target through a private raw pointer.

SyntaxSyntax

template <typename T>
struct com_ptr

템플릿 매개 변수Template parameters

typename T 인터페이스 또는 런타임 클래스 구현 형식으로 com_ptr 가 나타내는 포인터입니다.typename T The interface, or runtime class implementation type, a pointer to which is represented by the com_ptr. 이는 스마트 포인터 대상의 형식입니다.This is the type of the smart pointer's target.

요구 사항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)

멤버 유형 별칭Member type aliases

별칭 이름Alias name 형식Type
com_ptr:: 형식com_ptr::type 구현에서 정의 된 템플릿 매개 변수의 표현에 대 한 동의어입니다 typename T .A synonym for an implementation-defined representation of the typename T template parameter.

생성자Constructors

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

멤버 함수Member functions

기능Function DescriptionDescription
com_ptr:: as 함수com_ptr::as function 지원 되는 경우 요청 된 인터페이스를 반환 합니다.Returns the requested interface, if it is supported. 이이 아니면 throw 합니다.Throws if it is not.
com_ptr:: attach 함수com_ptr::attach function 대상에 대 한 참조를 소유 하는 원시 포인터에 연결 합니다. 추가 참조는 추가 되지 않습니다.Attaches to a raw pointer that owns a reference to its target; an additional reference is not added.
com_ptr:: capture 함수com_ptr::capture function 지정 된 함수 또는 메서드 (자동으로 winrt:: check_hresult 을 호출)를 호출 하 고 함수 또는 메서드에서 출력 되는 인터페이스 포인터를로 캡처합니다 void** .Calls a specified function or method (automatically calling winrt::check_hresult on it), and captures the interface pointer that's output from the function or method as a void**.
com_ptr:: copy_from 함수com_ptr::copy_from function 다른 포인터에서 복사 합니다.Copies 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.
com_ptr:: copy_to 함수com_ptr::copy_to function Com_ptr 개체의 다른 포인터로 복사 합니다.Copies to another pointer from the com_ptr object. 현재 참조 된 인터페이스 또는 개체의 참조 횟수를 증가 시키고 해당 인터페이스 또는 개체의 메모리 주소를 매개 변수로 복사 합니다.Increments the reference count on any currently referenced interface or object, and copies that interface or object's memory address into the parameter.
com_ptr::d etach 함수com_ptr::detach function 참조 횟수를 감소 시 키 지 않고 참조 된 인터페이스 또는 개체에서 분리 하 여 호출자에 게 반환 합니다.Detaches from the referenced interface or object without decrementing the reference count, perhaps to return it to a caller.
com_ptr:: get 함수com_ptr::get function 는 함수에 전달 해야 하는 기본 원시 포인터를 반환 합니다.Returns the underlying raw pointer should you need to pass it to a function.
com_ptr::p 및 함수com_ptr::put function 기본 원시 포인터의 주소를 반환 합니다. 이 함수를 사용 하면 포인터에 대 한 포인터를 통해 참조를 out 매개 변수로 반환 하는 메서드 (예: COM 메서드)를 호출할 수 있습니다.Returns the address of the underlying raw pointer; this function helps you call methods (such as COM methods) that return references as out parameters via a pointer to a pointer.
com_ptr::p ut_void 함수com_ptr::put_void function Void 에 대 한 포인터에 대 한 포인터를 사용 하 여 기본 원시 포인터의 주소를 반환 합니다. 이 함수를 통해 void 에 대 한 포인터에 대 한 포인터를 통해 참조를 out 매개 변수로 반환 하는 메서드 (예: COM 메서드)를 호출할 수 있습니다.Returns the address of the underlying raw 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.
com_ptr:: try_as 함수com_ptr::try_as function 지원 되는 경우 요청 된 인터페이스를 반환 합니다.Returns the requested interface, if it is supported. nullptr이거나, false 그렇지 않으면를 반환 합니다.Returns nullptr, or false, if it is not.
com_ptr:: try_capture 함수com_ptr::try_capture function 오류가 발생 한 경우를 throw 하지 않고 대신를 반환 하는 com_ptr:: capture 버전은 성공 하면를 반환 하 고 그렇지 않으면를 반환 true false 합니다.A version of com_ptr::capture that doesn't throw on failure but instead returns returns true if successful or false if not.

멤버 연산자Member operators

연산자Operator DescriptionDescription
com_ptr:: operator boolcom_ptr::operator bool 스마트 포인터가 인터페이스 또는 개체를 참조 하는지 여부를 확인 합니다.Checks whether or not the smart pointer is referencing an interface or object.
com_ptr:: operator * (간접 참조 연산자)com_ptr::operator* (indirection operator) 대상 형식 T 에 대 한 참조가 필요한 함수에 전달할 수 있도록 com_ptr 의 대상에 대 한 참조를 반환 합니다.Returns a reference to the com_ptr's target so that you can pass it to a function that expects a reference to the target type T.
com_ptr:: operator = (대입 연산자)com_ptr::operator= (assignment operator) Com_ptr 개체에 값을 할당 합니다.Assigns a value to the com_ptr object.
com_ptr:: operator-> (화살표 연산자)com_ptr::operator-> (arrow operator) 참조 된 인터페이스 또는 개체의 메서드에 대 한 액세스를 허용 하려면 기본 원시 포인터를 반환 합니다.To afford access to the referenced interface or object's methods, returns the underlying raw pointer.

Free 함수Free functions

기능Function DescriptionDescription
attach_abi 함수attach_abi function 대상에 대 한 참조를 소유 하는 원시 포인터에 com_ptr 개체를 연결 합니다. 추가 참조는 추가 되지 않습니다.Attaches a com_ptr object to a raw pointer that owns a reference to its target; an additional reference is not added.
detach_abi 함수detach_abi function 참조 횟수를 감소 시 키 지 않고 호출자에 게 반환 하는 것 처럼 원시 인터페이스에서 com_ptr 개체를 분리 합니다.Detaches a com_ptr object from its raw interface without decrementing the reference count, perhaps to return it to a caller.
swap 함수swap function 두 개의 com_ptr 매개 변수를 다른 대상으로 지정 하 여 내용을 바꿉니다.Swaps the contents of the two com_ptr 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.

com_ptr:: com_ptr 생성자com_ptr::com_ptr constructor

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

SyntaxSyntax

com_ptr(winrt::com_ptr const& other) noexcept;
com_ptr(std::nullptr_t = nullptr) noexcept;
template <typename U> com_ptr(winrt::com_ptr<U> const& other) noexcept;
template <typename U> com_ptr(winrt::com_ptr<U>&& other) noexcept;

템플릿 매개 변수Template parameters

typename U 입력 스마트 포인터가 가리키는 대상 형식입니다.typename U The target type pointed to by the input smart pointer.

매개 변수Parameters

otherCom_ptr 개체를 초기화 하는 다른 com_ptr 입니다.other Another com_ptr that initializes the com_ptr object. 매개 변수의 tCom_ptr 개체의 t 로 변환할 수 있어야 합니다.The parameter's T must be convertible to the com_ptr object's T.

com_ptr:: as 함수com_ptr::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.

SyntaxSyntax

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).

com_ptr:: attach 함수com_ptr::attach function

대상에 대 한 참조를 소유 하는 원시 포인터에 연결 합니다. 추가 참조는 추가 되지 않습니다.Attaches 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(T* value) noexcept;

매개 변수Parameters

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

com_ptr:: capture 함수com_ptr::capture function

지정 된 함수 또는 메서드 (자동으로 winrt:: check_hresult 을 호출)를 호출 하 고 함수 또는 메서드에서 출력 되는 인터페이스 포인터를로 캡처합니다 void** .Calls a specified function or method (automatically calling winrt::check_hresult on it), and captures the interface pointer that's output from the function or method as a void**.

SyntaxSyntax

template <typename F, typename...Args>
void capture(F function, Args&&...args);

template <typename O, typename M, typename...Args>
void capture(winrt::com_ptr<O> const& object, M method, Args&&...args);

템플릿 매개 변수Template parameters

typename F Free 함수 또는 std:: function 과 같은 함수 개체 형식입니다.typename F A function object type, such as a free function, or std::function.

typename O 인터페이스 형식입니다.typename O An interface type.

typename M 메서드 형식입니다.typename M A method type.

typename Args 0 개 이상의 인수 형식입니다.typename Args Zero or more argument types.

매개 변수Parameters

function 형식의 함수 개체 F 입니다.function A function object of type F.

object 형식의 winrt:: com_ptr O 입니다.object A winrt::com_ptr of type O.

method 형식의에서 구현 되는 메서드입니다 O M .method A method (implemented by O) of type M.

args 형식이 인 0 개 이상의 인수 Args 입니다.args Zero or more arguments of type Args.

설명Remarks

  • capture(F function, Args&&...args)오버 로드는 함수 개체를 호출 합니다.The capture(F function, Args&&...args) overload invokes the function object.
  • capture(winrt::com_ptr<O> const& object, M method, Args&&...args)오버 로드는 개체에서 메서드를 호출 합니다.The capture(winrt::com_ptr<O> const& object, M method, Args&&...args) overload invokes the method on the object.

두 오버 로드는 모두 사용자가 제공 하는 추가 인수를 invokee에 전달 합니다.Both overloads pass through (to the invokee) any additional arguments that you provide. 두 오버 로드는 모두 invokees가 요구 하는 두 개의 추가 인수를 전달 합니다 — . 즉, refiid ( winrt:: com_ptr 대상의 ID) 및 void * * ( winrt:: com_ptr 의 대상에 대 한 포인터 주소)가 필요 합니다.Both overloads also pass the two additional arguments that such invokees require—specifically, a REFIID (the ID of the target of the winrt::com_ptr), and a void** (The address of a pointer to the target of the winrt::com_ptr).

예제Example

winrt::com_ptr<IDXGIAdapter> adapter
...
winrt::com_ptr<IDXGIFactory2> factory;
factory.capture(adapter, &IDXGIAdapter::GetParent);

com_ptr:: copy_from 함수com_ptr::copy_from function

다른 포인터에서 복사 합니다.Copies 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(T* other) noexcept;

매개 변수Parameters

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

com_ptr:: copy_to 함수com_ptr::copy_to function

Com_ptr 개체의 다른 포인터로 복사 합니다.Copies to another pointer from the com_ptr 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(T** other) const noexcept;

매개 변수Parameters

other 원시 포인터의 주소입니다. 포인터를 com_ptr 개체의 대상에 복사할입니다.other A raw pointer's address; into which to copy the pointer to the com_ptr object's target.

com_ptr::d etach 함수com_ptr::detach function

참조 횟수를 감소 시 키 지 않고 참조 된 인터페이스 또는 개체에서 분리 하 여 호출자에 게 반환 합니다.Detaches from the referenced interface or object without decrementing the reference count, perhaps to return it to a caller.

구문Syntax

T* detach() noexcept;

반환 값Return value

Com_ptr 개체에서 참조 하는 인터페이스 또는 개체에 대 한 포인터입니다.A pointer to the interface or object referenced by the com_ptr object.

com_ptr:: get 함수com_ptr::get function

는 함수에 전달 해야 하는 기본 원시 포인터를 반환 합니다.Returns the underlying raw 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

T* get() const noexcept;

반환 값Return value

Com_ptr 개체에서 참조 하는 인터페이스 또는 개체에 대 한 포인터입니다.A pointer to the interface or object referenced by the com_ptr object.

com_ptr::p 및 함수com_ptr::put function

기본 원시 포인터의 주소를 반환 합니다. 이 함수를 사용 하면 포인터에 대 한 포인터를 통해 참조를 out 매개 변수로 반환 하는 메서드 (예: COM 메서드)를 호출할 수 있습니다.Returns the address of the underlying raw pointer; this function helps you call methods (such as COM methods) that return references as out parameters via a pointer to a pointer. Com_ptr 개체에 이미 대상이 있는 경우에는 nullptr 이 함수를 호출 하기 전에 com_ptr 개체에를 할당 합니다. 그렇지 않으면 함수가를 어설션 합니다.If the com_ptr object already has a target, then assign nullptr to the com_ptr object before calling this function, otherwise the function will assert.

구문Syntax

T** put() noexcept;

반환 값Return value

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

com_ptr::p ut_void 함수com_ptr::put_void function

Void 에 대 한 포인터에 대 한 포인터를 사용 하 여 기본 원시 포인터의 주소를 반환 합니다. 이 함수를 통해 void 에 대 한 포인터에 대 한 포인터를 통해 참조를 out 매개 변수로 반환 하는 메서드 (예: COM 메서드)를 호출할 수 있습니다.Returns the address of the underlying raw 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. Com_ptr 개체에 이미 대상이 있는 경우에는 nullptr 이 함수를 호출 하기 전에 com_ptr 개체에를 할당 합니다. 그렇지 않으면 함수가를 어설션 합니다.If the com_ptr object already has a target, then assign nullptr to the com_ptr object before calling this function, otherwise the function will assert.

구문Syntax

void** put_void() noexcept;

반환 값Return value

Void 에 대 한 포인터에 대 한 포인터로 기본 원시 포인터의 주소입니다.The address of the underlying raw pointer as a pointer to a pointer to void.

com_ptr:: try_as 함수com_ptr::try_as function

지원 되는 경우 요청 된 인터페이스를 반환 합니다.Returns the requested interface, if it is supported. nullptr(반환 auto 오버 로드) 또는 (반환 되는 false bool 오버 로드) (없는 경우)를 반환 합니다.Returns nullptr (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.

SyntaxSyntax

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 , 요청 된 인터페이스가 지원 되는 경우 (c + +/winrt 또는 타사에 의해 선언 됨), 요청 된 인터페이스가 지원 되 면 ( nullptr 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 nullptr (the auto-returning overload), or false (the bool-returning overload).

com_ptr:: try_capture 함수com_ptr::try_capture function

오류가 발생 한 경우를 throw 하지 않고 대신를 반환 하는 com_ptr:: capture 버전은 성공 하면를 반환 하 고 그렇지 않으면를 반환 true false 합니다.A version of com_ptr::capture that doesn't throw on failure but instead returns returns true if successful or false if not.

com_ptr:: operator boolcom_ptr::operator bool

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

구문Syntax

explicit operator bool() const noexcept;

반환 값Return value

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

com_ptr:: operator * (간접 참조 연산자)com_ptr::operator* (indirection operator)

대상 형식 T 에 대 한 참조가 필요한 함수에 전달할 수 있도록 com_ptr 의 대상에 대 한 참조를 반환 합니다.Returns a reference to the com_ptr's target so that you can pass it to a function that expects a reference to the target type T.

구문Syntax

T& operator*() const noexcept;

반환 값Return value

Com_ptr 의 대상에 대 한 참조입니다.A reference to the com_ptr's target.

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

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

SyntaxSyntax

winrt::com_ptr& operator=(winrt::com_ptr const& other) noexcept;
template <typename U> winrt::com_ptr& operator=(winrt::com_ptr<U> const& other) noexcept;
template <typename U> winrt::com_ptr& operator=(winrt::com_ptr<U>&& other) noexcept;

템플릿 매개 변수Template parameters

typename U 할당 되는 값이 가리키는 형식입니다.typename U The type pointed to by the value being assigned.

매개 변수Parameters

otherCom_ptr 개체에 할당할 com_ptr 값입니다.other A com_ptr value to assign to the com_ptr object. 매개 변수의 tCom_ptr 개체의 t 로 변환할 수 있어야 합니다.The parameter's T must be convertible to the com_ptr object's T.

반환 값Return value

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

com_ptr:: operator-> (화살표 연산자)com_ptr::operator-> (arrow operator)

참조 된 인터페이스 또는 개체의 메서드에 대 한 액세스를 허용 하려면 기본 원시 포인터를 반환 합니다.To afford access to the referenced interface or object's methods, returns the underlying raw pointer. 반환 된 포인터에서 AddRefRelease 를 호출 하지 않을 수 있지만 QueryInterface를 호출할 수 있습니다.You may not call AddRef nor Release on the returned pointer, but you may call QueryInterface.

구문Syntax

auto operator->() const noexcept;

반환 값Return value

Com_ptr 개체에서 참조 하는 인터페이스 또는 개체에 대 한 포인터입니다.A pointer to the interface or object referenced by the com_ptr object.

attach_abi 함수attach_abi function

대상에 대 한 참조를 소유 하는 원시 포인터에 com_ptr 개체를 연결 합니다. 추가 참조는 추가 되지 않습니다.Attaches a com_ptr 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::com_ptr<T>& object, T* value) noexcept;

매개 변수Parameters

object 작업할 com_ptr 개체입니다.object A com_ptr object to operate on.

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

detach_abi 함수detach_abi function

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

구문Syntax

auto detach_abi(winrt::com_ptr<T>& object) noexcept;

매개 변수Parameters

object 작업할 com_ptr 개체입니다.object A com_ptr object to operate on.

반환 값Return value

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

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

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

구문Syntax

template <typename T> bool operator!=(winrt::com_ptr<T> const& left, winrt::com_ptr<T> const& right) noexcept;
template <typename T> bool operator!=(winrt::com_ptr<T> const& left, std::nullptr_t) noexcept;
template <typename T> bool operator!=(std::nullptr_t, winrt::com_ptr<T> const& right) noexcept;

매개 변수Parameters

left``right대상의 메모리 주소가 다른 매개 변수와 비교할 com_ptr 값입니다.left right A com_ptr 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

template <typename T> bool operator<(winrt::com_ptr<T> const& left, winrt::com_ptr<T> const& right) noexcept;

매개 변수Parameters

left``right대상의 메모리 주소가 다른 매개 변수와 비교할 com_ptr 값입니다.left right A com_ptr 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

template <typename T> bool operator<=(winrt::com_ptr<T> const& left, winrt::com_ptr<T> const& right) noexcept;

매개 변수Parameters

left``right대상의 메모리 주소가 다른 매개 변수와 비교할 com_ptr 값입니다.left right A com_ptr 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

template <typename T> bool operator==(winrt::com_ptr<T> const& left, std::nullptr_t) noexcept;
template <typename T> bool operator==(std::nullptr_t, winrt::com_ptr<T> const& right) noexcept;

매개 변수Parameters

left``right대상의 메모리 주소가 다른 매개 변수와 비교할 com_ptr 값입니다.left right A com_ptr 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

template <typename T> bool operator>(winrt::com_ptr<T> const& left, winrt::com_ptr<T> const& right) noexcept;

매개 변수Parameters

left``right대상의 메모리 주소가 다른 매개 변수와 비교할 com_ptr 값입니다.left right A com_ptr 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

template <typename T> bool operator>=(winrt::com_ptr<T> const& left, winrt::com_ptr<T> const& right) noexcept;

매개 변수Parameters

left``right대상의 메모리 주소가 다른 매개 변수와 비교할 com_ptr 값입니다.left right A com_ptr 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.

swap 함수swap function

두 개의 com_ptr 매개 변수를 다른 대상으로 지정 하 여 내용을 바꿉니다.Swaps the contents of the two com_ptr parameters so that they point at one another's target.

구문Syntax

void swap(winrt::com_ptr& left, winrt::com_ptr& right) noexcept;

매개 변수Parameters

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

추가 정보See also