ReactOS  0.4.13-dev-656-g74bcf30
ClassFactory Class Reference
Inheritance diagram for ClassFactory:
Collaboration diagram for ClassFactory:

Public Member Functions

 ClassFactory (REFCLSID rclsid, unsigned libIndex)
 
 ~ClassFactory ()
 
virtual STDMETHODIMP QueryInterface (REFIID riid, void **ppvObject)
 
virtual STDMETHODIMP_ (ULONG) AddRef()
 
virtual STDMETHODIMP_ (ULONG) Release()
 
virtual STDMETHODIMP CreateInstance (IUnknown *pUnkOuter, REFIID riid, void **ppvObject)
 
virtual STDMETHODIMP LockServer (BOOL fLock)
 
- Public Member Functions inherited from IClassFactory
HRESULT RemoteCreateInstance ([in] REFIID riid, [out, iid_is(riid)] IUnknown **ppvObject)
 
HRESULT RemoteLockServer ([in] BOOL fLock)
 
- Public Member Functions inherited from IUnknown
ULONG AddRef ()
 
ULONG Release ()
 

Public Attributes

IClassFactory IClassFactory_iface
 
LONG ref
 
CreateInstanceFunc fnCreateInstance
 
HRESULT(* cf )(IUnknown *, IUnknown **)
 
ClassFactoryCreateInstanceFunc pCreateInstance
 
HRESULT(* pfnCreateInstance )(IUnknown *pUnkOuter, LPVOID *ppObj)
 

Private Attributes

LONG m_refCount
 
CLSID m_classId
 
unsigned m_libIndex
 

Additional Inherited Members

- Public Types inherited from IClassFactory
typedef IClassFactoryLPCLASSFACTORY
 
- Public Types inherited from IUnknown
typedef IUnknownLPUNKNOWN
 

Detailed Description

Definition at line 202 of file main.c.

Constructor & Destructor Documentation

◆ ClassFactory()

ClassFactory::ClassFactory ( REFCLSID  rclsid,
unsigned  libIndex 
)
inline

Definition at line 5948 of file activex.cpp.

5948  :
5949  m_refCount(1),
5950  m_classId(rclsid)
5951  {
5952  lockServer();
5953  }
LONG m_refCount
Definition: activex.cpp:5943
CLSID m_classId
Definition: activex.cpp:5944

◆ ~ClassFactory()

ClassFactory::~ClassFactory ( )
inline

Definition at line 5955 of file activex.cpp.

5956  {
5957  unlockServer();
5958  }

Member Function Documentation

◆ CreateInstance()

virtual STDMETHODIMP ClassFactory::CreateInstance ( IUnknown pUnkOuter,
REFIID  riid,
void **  ppvObject 
)
inlinevirtual

Implements IClassFactory.

Definition at line 5989 of file activex.cpp.

5990  {
5991  if(pUnkOuter && riid != IID_IUnknown)
5992  return CLASS_E_NOAGGREGATION;
5993 
5994  return RdpClient::CreateInstance(m_classId, m_libIndex, pUnkOuter, riid, ppvObject);
5995  }
REFIID riid
Definition: precomp.h:44
const GUID IID_IUnknown
REFIID LPVOID * ppvObject
Definition: precomp.h:44
#define CLASS_E_NOAGGREGATION
Definition: winerror.h:2662
CLSID m_classId
Definition: activex.cpp:5944
unsigned m_libIndex
Definition: activex.cpp:5945

◆ LockServer()

virtual STDMETHODIMP ClassFactory::LockServer ( BOOL  fLock)
inlinevirtual

Implements IClassFactory.

Definition at line 5997 of file activex.cpp.

5998  {
5999  if(fLock)
6000  lockServer();
6001  else
6002  unlockServer();
6003 
6004  return S_OK;
6005  }
#define S_OK
Definition: intsafe.h:59

◆ QueryInterface()

virtual STDMETHODIMP ClassFactory::QueryInterface ( REFIID  riid,
void **  ppvObject 
)
inlinevirtual

Implements IUnknown.

Definition at line 5960 of file activex.cpp.

5961  {
5963  {
5964  *ppvObject = this;
5965  return S_OK;
5966  }
5967  else
5968  {
5969  *ppvObject = NULL;
5970  return E_NOINTERFACE;
5971  }
5972  }
#define E_NOINTERFACE
Definition: winerror.h:2364
REFIID riid
Definition: precomp.h:44
smooth NULL
Definition: ftsmooth.c:416
const GUID IID_IUnknown
REFIID LPVOID * ppvObject
Definition: precomp.h:44
#define S_OK
Definition: intsafe.h:59
const GUID IID_IClassFactory

◆ STDMETHODIMP_() [1/2]

virtual ClassFactory::STDMETHODIMP_ ( ULONG  )
inlinevirtual

Definition at line 5974 of file activex.cpp.

5975  {
5977  }
LONG m_refCount
Definition: activex.cpp:5943
#define InterlockedIncrement
Definition: armddk.h:53

◆ STDMETHODIMP_() [2/2]

virtual ClassFactory::STDMETHODIMP_ ( ULONG  )
inlinevirtual

Definition at line 5979 of file activex.cpp.

5980  {
5982 
5983  if(n == 0)
5984  delete this;
5985 
5986  return n;
5987  }
LONG m_refCount
Definition: activex.cpp:5943
GLdouble n
Definition: glext.h:7729
long LONG
Definition: pedump.c:60
#define InterlockedDecrement
Definition: armddk.h:52

Member Data Documentation

◆ cf

HRESULT(* ClassFactory::cf) (IUnknown *, IUnknown **)

Definition at line 62 of file main.c.

◆ fnCreateInstance

CreateInstanceFunc ClassFactory::fnCreateInstance

Definition at line 205 of file main.c.

◆ IClassFactory_iface

IClassFactory ClassFactory::IClassFactory_iface

Definition at line 203 of file main.c.

Referenced by DllGetClassObject().

◆ m_classId

CLSID ClassFactory::m_classId
private

Definition at line 5944 of file activex.cpp.

◆ m_libIndex

unsigned ClassFactory::m_libIndex
private

Definition at line 5945 of file activex.cpp.

◆ m_refCount

LONG ClassFactory::m_refCount
private

Definition at line 5943 of file activex.cpp.

◆ pCreateInstance

ClassFactoryCreateInstanceFunc ClassFactory::pCreateInstance

Definition at line 117 of file factory.c.

◆ pfnCreateInstance

HRESULT(* ClassFactory::pfnCreateInstance) (IUnknown *pUnkOuter, LPVOID *ppObj)

Definition at line 264 of file urlmon_main.c.

◆ ref

LONG ClassFactory::ref

Definition at line 204 of file main.c.


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