ReactOS 0.4.15-dev-5672-gf73ac17
CUnknownImpl< Interfaces > Class Template Reference

#include <private.hpp>

Inheritance diagram for CUnknownImpl< Interfaces >:
Collaboration diagram for CUnknownImpl< Interfaces >:

Public Member Functions

 STDMETHODIMP_ (ULONG) AddRef()
 
 STDMETHODIMP_ (ULONG) Release()
 

Protected Member Functions

 CUnknownImpl ()
 
virtual ~CUnknownImpl ()
 

Private Attributes

volatile LONG m_Ref
 

Detailed Description

template<typename... Interfaces>
class CUnknownImpl< Interfaces >

Definition at line 443 of file private.hpp.

Constructor & Destructor Documentation

◆ CUnknownImpl()

template<typename... Interfaces>
CUnknownImpl< Interfaces >::CUnknownImpl ( )
inlineprotected

Definition at line 448 of file private.hpp.

448 :
449 m_Ref(0)
450 {
451 }
volatile LONG m_Ref
Definition: private.hpp:446

◆ ~CUnknownImpl()

template<typename... Interfaces>
virtual CUnknownImpl< Interfaces >::~CUnknownImpl ( )
inlineprotectedvirtual

Definition at line 452 of file private.hpp.

453 {
454 }

Member Function Documentation

◆ STDMETHODIMP_() [1/2]

template<typename... Interfaces>
CUnknownImpl< Interfaces >::STDMETHODIMP_ ( ULONG  )
inline

Definition at line 456 of file private.hpp.

457 {
459 ASSERT(Ref < 0x10000);
460 return Ref;
461 }
#define InterlockedIncrement
Definition: armddk.h:53
#define ASSERT(a)
Definition: mode.c:44
uint32_t ULONG
Definition: typedefs.h:59

◆ STDMETHODIMP_() [2/2]

template<typename... Interfaces>
CUnknownImpl< Interfaces >::STDMETHODIMP_ ( ULONG  )
inline

Definition at line 462 of file private.hpp.

463 {
465 ASSERT(Ref < 0x10000);
466 if (!Ref)
467 {
468 delete this;
469 return 0;
470 }
471 return Ref;
472 }
#define InterlockedDecrement
Definition: armddk.h:52

Member Data Documentation

◆ m_Ref

template<typename... Interfaces>
volatile LONG CUnknownImpl< Interfaces >::m_Ref
private

Definition at line 446 of file private.hpp.

Referenced by CUnknownImpl< Interfaces >::STDMETHODIMP_().


The documentation for this class was generated from the following file: