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
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
호출 -contained
CComContainedObject
<> 분리 클래스에서 구현하는 인터페이스에 액세스하는 데 사용되는 개체입니다.
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
는 캐시된 해체 개체를 통해 분리 클래스의 QueryInterface
FinalConstruct
FinalRelease
분리 인터페이스에 액세스하는 데 사용됩니다.
CComCachedTearOffObject::QueryInterface
요청된 인터페이스에 대한 포인터를 검색합니다.
STDMETHOD(QueryInterface)(REFIID iid, void** ppvObject);
매개 변수
iid
[in] 요청되는 인터페이스의 GUID입니다.
ppvObject
[out] iid로 식별되는 인터페이스 포인터에 대한 포인터이거나, 인터페이스를 찾을 수 없는 경우 NULL입니다.
Return Value
표준 HRESULT 값입니다.
설명
요청된 인터페이스인 IUnknown
경우 '자체 IUnknown
에 대한 포인터를 CComCachedTearOffObject
반환하고 참조 수를 증분합니다. 그렇지 않으면 상속된 CComObjectRootEx
InternalQueryInterface 메서드를 사용하여 분리 클래스의 인터페이스를 쿼리합니다.
CComCachedTearOffObject::Release
참조 수를 1로 감소시키고 참조 수가 0이면 개체를 CComCachedTearOffObject
삭제합니다.
STDMETHOD_(ULONG, Release)();
Return Value
디버그가 아닌 빌드에서는 항상 0을 반환합니다. 디버그 빌드에서 진단 또는 테스트에 유용할 수 있는 값을 반환합니다.