다음을 통해 공유


CComCachedTearOffObject 클래스

이 클래스는 분리 인터페이스에 대해 IUnknown 을 구현합니다.

구문

template
<class contained>
class CComCachedTearOffObject : public
    IUnknown,
public CComObjectRootEx<contained
::_ThreadModel::ThreadModelNoCS>

매개 변수

contained
해체 개체에서 CComTearOffObjectBase 파생된 분리 클래스 및 지원하려는 인터페이스입니다.

멤버

공용 생성자

속성 설명
CComCachedTearOffObject::CComCachedTearOffObject 생성자입니다.
CComCachedTearOffObject::~CComCachedTearOffObject 소멸자입니다.

공용 메서드

이름 설명
CComCachedTearOffObject::AddRef 개체에 대한 CComCachedTearOffObject 참조 수를 증분합니다.
CComCachedTearOffObject::FinalConstruct m_contained::FinalConstruct (tear-off 클래스' 메서드)를 호출합니다.
CComCachedTearOffObject::FinalRelease m_contained::FinalRelease (tear-off 클래스' 메서드)를 호출합니다.
CComCachedTearOffObject::QueryInterface 개체의 IUnknown CComCachedTearOffObject 포인터 또는 분리 클래스(클래스 contained)의 요청된 인터페이스에 대한 포인터를 반환합니다.
CComCachedTearOffObject::Release 개체에 대한 CComCachedTearOffObject 참조 수를 감소시키고 참조 수가 0이면 삭제합니다.

공용 데이터 멤버

속성 설명
CComCachedTearOffObject::m_contained CComContainedObject 분리 클래스(클래스contained)에서 파생된 개체입니다.

설명

CComCachedTearOffObject분리 인터페이스에 대한 IUnknown 을 구현합니다. 이 클래스는 소유자 개체 IUnknown 와 분리된 자체 IUnknown클래스가 있는 CComCachedTearOffObject 클래스와 다릅니다CComTearOffObject(소유자는 해체를 만드는 개체임). CComCachedTearOffObject 는 자체 참조 개수를 유지하고 참조 수가 IUnknown 0이 되면 자체적으로 삭제합니다. 그러나 분리 인터페이스를 쿼리하는 경우 소유자 개체의 IUnknown 참조 수가 증가합니다.

분리를 CComCachedTearOffObject 구현하는 개체가 이미 인스턴스화되어 있고 분리 인터페이스가 다시 쿼리되면 동일한 CComCachedTearOffObject 개체가 다시 사용됩니다. 반면에 a에 의해 CComTearOffObject 구현된 분리 인터페이스가 소유자 개체를 통해 다시 쿼리되면 다른 CComTearOffObject 인터페이스가 인스턴스화됩니다.

소유자 클래스는 해당 참조 수를 감소시키는 캐시된 IUnknown CComCachedTearOffObject클래스를 구현 FinalRelease 하고 호출 Release 해야 합니다. 이로 인해 CComCachedTearOffObject's FinalRelease 가 호출되고 해체가 삭제됩니다.

상속 계층 구조

CComObjectRootBase

CComObjectRootEx

IUnknown

CComCachedTearOffObject

요구 사항

헤더: atlcom.h

CComCachedTearOffObject::AddRef

개체의 참조 수를 CComCachedTearOffObject 1씩 증분합니다.

STDMETHOD_(ULONG, AddRef)();

Return Value

진단 및 테스트에 유용할 수 있는 값입니다.

CComCachedTearOffObject::CComCachedTearOffObject

생성자입니다.

CComCachedTearOffObject(void* pv);

매개 변수

pv
[in] 의 CComCachedTearOffObject포인터 IUnknown 입니다.

설명

M_containedCComContainedObject멤버를 초기화합니다.

CComCachedTearOffObject::~CComCachedTearOffObject

소멸자입니다.

~CComCachedTearOffObject();

설명

할당된 모든 리소스를 해제하고 FinalRelease를 호출 합니다.

CComCachedTearOffObject::FinalConstruct

m_contained::FinalConstruct 만들기 m_contained호출 -containedCComContainedObject<> 분리 클래스에서 구현하는 인터페이스에 액세스하는 데 사용되는 개체입니다.

HRESULT FinalConstruct();

Return Value

표준 HRESULT 값입니다.

CComCachedTearOffObject::FinalRelease

개체인 freem_contained를>contained<CComContainedObject 호출 m_contained::FinalRelease 합니다.

void FinalRelease();

CComCachedTearOffObject::m_contained

분리 클래스에서 파생된 CComContainedObject 개체입니다.

CcomContainedObject <contained> m_contained;

매개 변수

contained
[in] 해체 개체에서 CComTearOffObjectBase 파생된 분리 클래스 및 지원하려는 인터페이스입니다.

설명

상속되는 메서드 m_contained 는 캐시된 해체 개체를 통해 분리 클래스의 QueryInterfaceFinalConstructFinalRelease분리 인터페이스에 액세스하는 데 사용됩니다.

CComCachedTearOffObject::QueryInterface

요청된 인터페이스에 대한 포인터를 검색합니다.

STDMETHOD(QueryInterface)(REFIID iid, void** ppvObject);

매개 변수

iid
[in] 요청되는 인터페이스의 GUID입니다.

ppvObject
[out] iid로 식별되는 인터페이스 포인터에 대한 포인터이거나, 인터페이스를 찾을 수 없는 경우 NULL입니다.

Return Value

표준 HRESULT 값입니다.

설명

요청된 인터페이스인 IUnknown경우 '자체 IUnknown 에 대한 포인터를 CComCachedTearOffObject반환하고 참조 수를 증분합니다. 그렇지 않으면 상속된 CComObjectRootExInternalQueryInterface 메서드를 사용하여 분리 클래스의 인터페이스를 쿼리합니다.

CComCachedTearOffObject::Release

참조 수를 1로 감소시키고 참조 수가 0이면 개체를 CComCachedTearOffObject 삭제합니다.

STDMETHOD_(ULONG, Release)();

Return Value

디버그가 아닌 빌드에서는 항상 0을 반환합니다. 디버그 빌드에서 진단 또는 테스트에 유용할 수 있는 값을 반환합니다.

참고 항목

CComTearOffObject 클래스
CComObjectRootEx 클래스
클래스 개요