다음을 통해 공유


WeakReference 클래스

WRL 인프라를 지원하며 사용자 코드에서 직접 사용할 수 없습니다.

구문

class WeakReference;

설명

Windows 런타임 또는 클래식 COM과 함께 사용할 수 있는 약한 참조를 나타냅니다. 약한 참조는 액세스할 수 있거나 액세스할 수 없는 개체를 나타냅니다.

개체는 WeakReference 개체에 대한 포인터인 강력한 참조메서드에 의해 Resolve() 배포된 강력한 참조의 복사본 수인 강력한 참조 수를 유지 관리합니다. 강력한 참조 수는 0이 아니지만 강력한 참조는 유효하며 개체에 액세스할 수 있습니다. 강력한 참조 수가 0이 되면 강력한 참조가 유효하지 않으며 개체에 액세스할 수 없습니다.

WeakReference 개체는 일반적으로 해당 존재가 외부 스레드 또는 애플리케이션에 의해 제어되는 개체를 나타내는 데 사용됩니다. 예를 들어 파일 개체에 WeakReference 대한 참조에서 개체를 생성합니다. 파일이 열려 있는 동안 강력한 참조는 유효합니다. 그러나 파일이 닫히면 강력한 참조는 유효하지 않게 됩니다.

메서드는 WeakReference 스레드로부터 안전합니다.

멤버

공용 생성자

속성 설명
WeakReference::WeakReference WeakReference 클래스의 새 인스턴스를 초기화합니다.
WeakReference::~WeakReference 클래스의 현재 인스턴스를 초기화(삭제)합니다 WeakReference .

공용 메서드

이름 설명
WeakReference::D ecrementStrongReference 현재 WeakReference 개체의 강력한 참조 수를 줄입니다.
WeakReference::IncrementStrongReference 현재 WeakReference 개체의 강력한 참조 수를 증분합니다.
WeakReference::Resolve 강력한 참조 수가 0이 아닌 경우 지정된 포인터를 현재 강력한 참조 값으로 설정합니다.
WeakReference::SetUnknown 현재 WeakReference 개체의 강력한 참조를 지정된 인터페이스 포인터로 설정합니다.

상속 계층 구조

WeakReference

요구 사항

헤더: implements.h

네임스페이스: Microsoft::WRL::D etails

WeakReference::~WeakReference

WRL 인프라를 지원하며 사용자 코드에서 직접 사용할 수 없습니다.

virtual ~WeakReference();

Return Value

설명

클래스의 현재 인스턴스를 초기화합니다 WeakReference .

WeakReference::D ecrementStrongReference

WRL 인프라를 지원하며 사용자 코드에서 직접 사용할 수 없습니다.

ULONG DecrementStrongReference();

설명

현재 WeakReference 개체의 강력한 참조 수를 줄입니다.

강력한 참조 수가 0이 되면 강력한 참조가 로 nullptr설정됩니다.

Return Value

감소된 강력한 참조 수입니다.

WeakReference::IncrementStrongReference

WRL 인프라를 지원하며 사용자 코드에서 직접 사용할 수 없습니다.

ULONG IncrementStrongReference();

Return Value

증가된 강력한 참조 수입니다.

설명

현재 WeakReference 개체의 강력한 참조 수를 증분합니다.

WeakReference::Resolve

WRL 인프라를 지원하며 사용자 코드에서 직접 사용할 수 없습니다.

STDMETHOD(Resolve)
   (REFIID riid,
   _Deref_out_opt_ IInspectable **ppvObject
);

매개 변수

riid
인터페이스 ID입니다.

ppvObject
이 작업이 완료되면 강력한 참조 수가 0이 아닌 경우 현재 강력한 참조의 복사본입니다.

Return Value

  • 이 작업이 성공하고 강력한 참조 수가 0이면 S_OK. ppvObject 매개 변수가 .로 nullptr설정됩니다.

  • 이 작업이 성공하고 강력한 참조 수가 0이 아닌지 S_OK. ppvObject 매개 변수는 강력한 참조로 설정됩니다.

  • 그렇지 않으면 이 작업이 실패한 이유를 나타내는 HRESULT입니다.

설명

강력한 참조 수가 0이 아닌 경우 지정된 포인터를 현재 강력한 참조 값으로 설정합니다.

WeakReference::SetUnknown

WRL 인프라를 지원하며 사용자 코드에서 직접 사용할 수 없습니다.

void SetUnknown(
   _In_ IUnknown* unk
);

매개 변수

unk
개체의 인터페이스에 IUnknown 대한 포인터입니다.

설명

현재 WeakReference 개체의 강력한 참조를 지정된 인터페이스 포인터로 설정합니다.

WeakReference::WeakReference

WRL 인프라를 지원하며 사용자 코드에서 직접 사용할 수 없습니다.

WeakReference();

설명

WeakReference 클래스의 새 인스턴스를 초기화합니다.

개체에 대한 WeakReference 강력한 참조 포인터가 초기화 nullptr되고 강력한 참조 수가 1로 초기화됩니다.