ReactOS  0.4.13-dev-544-gede3fdd
CPortFilterTopology Class Reference
Inheritance diagram for CPortFilterTopology:
Collaboration diagram for CPortFilterTopology:

Public Member Functions

STDMETHODIMP QueryInterface (REFIID InterfaceId, PVOID *Interface)
 
 STDMETHODIMP_ (ULONG) AddRef()
 
 STDMETHODIMP_ (ULONG) Release()
 
 CPortFilterTopology (IUnknown *OuterUnknown)
 
virtual ~CPortFilterTopology ()
 

Public Attributes

 IMP_IPortFilterTopology
 

Protected Attributes

IPortTopology * m_Port
 
SUBDEVICE_DESCRIPTORm_Descriptor
 
ISubdevice * m_SubDevice
 
LONG m_Ref
 

Detailed Description

Definition at line 17 of file filter_topology.cpp.

Constructor & Destructor Documentation

◆ CPortFilterTopology()

CPortFilterTopology::CPortFilterTopology ( IUnknown OuterUnknown)
inline

Definition at line 39 of file filter_topology.cpp.

39 {}

◆ ~CPortFilterTopology()

virtual CPortFilterTopology::~CPortFilterTopology ( )
inlinevirtual

Definition at line 40 of file filter_topology.cpp.

40 {}

Member Function Documentation

◆ QueryInterface()

NTSTATUS NTAPI CPortFilterTopology::QueryInterface ( REFIID  InterfaceId,
PVOID Interface 
)

Definition at line 52 of file filter_topology.cpp.

55 {
56 
57  if (IsEqualGUIDAligned(refiid, IID_IIrpTarget) ||
59  {
60  *Output = PVOID(PUNKNOWN(this));
61  PUNKNOWN(*Output)->AddRef();
62  return STATUS_SUCCESS;
63  }
64  else if (IsEqualGUIDAligned(refiid, IID_IPort))
65  {
67  PUNKNOWN(*Output)->AddRef();
68  return STATUS_SUCCESS;
69  }
70 
71  return STATUS_UNSUCCESSFUL;
72 }
IUnknown * PUNKNOWN
Definition: com_apitest.h:45
#define IsEqualGUIDAligned(guid1, guid2)
Definition: wdm.template.h:233
void * PVOID
Definition: retypes.h:9
const GUID IID_IUnknown
ULONG AddRef()
#define STATUS_UNSUCCESSFUL
Definition: udferr_usr.h:132
Definition: arc.h:85
return STATUS_SUCCESS
Definition: btrfs.c:2777
IPortTopology * m_Port

◆ STDMETHODIMP_() [1/2]

CPortFilterTopology::STDMETHODIMP_ ( ULONG  )
inline

Definition at line 22 of file filter_topology.cpp.

23  {
25  return m_Ref;
26  }
#define InterlockedIncrement
Definition: armddk.h:53

◆ STDMETHODIMP_() [2/2]

CPortFilterTopology::STDMETHODIMP_ ( ULONG  )
inline

Definition at line 27 of file filter_topology.cpp.

28  {
30 
31  if (!m_Ref)
32  {
33  delete this;
34  return 0;
35  }
36  return m_Ref;
37  }
#define InterlockedDecrement
Definition: armddk.h:52

Member Data Documentation

◆ IMP_IPortFilterTopology

CPortFilterTopology::IMP_IPortFilterTopology

Definition at line 38 of file filter_topology.cpp.

◆ m_Descriptor

SUBDEVICE_DESCRIPTOR* CPortFilterTopology::m_Descriptor
protected

Definition at line 44 of file filter_topology.cpp.

◆ m_Port

IPortTopology* CPortFilterTopology::m_Port
protected

Definition at line 43 of file filter_topology.cpp.

Referenced by QueryInterface().

◆ m_Ref

LONG CPortFilterTopology::m_Ref
protected

Definition at line 46 of file filter_topology.cpp.

Referenced by STDMETHODIMP_().

◆ m_SubDevice

ISubdevice* CPortFilterTopology::m_SubDevice
protected

Definition at line 45 of file filter_topology.cpp.


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