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로 초기화됩니다.