ReactOS 0.4.15-dev-8131-g4988de4
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 CreateInstance ([in, unique] IUnknown *pUnkOuter, [in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
 
HRESULT RemoteCreateInstance ([in] REFIID riid, [out, iid_is(riid)] IUnknown **ppvObject)
 
HRESULT LockServer ([in] BOOL fLock)
 
HRESULT RemoteLockServer ([in] BOOL fLock)
 
- Public Member Functions inherited from IUnknown
HRESULT QueryInterface ([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
 
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 209 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 }
CLSID m_classId
Definition: activex.cpp:5944
LONG m_refCount
Definition: activex.cpp:5943

◆ ~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 }
const GUID IID_IUnknown
REFIID riid
Definition: atlbase.h:39
unsigned m_libIndex
Definition: activex.cpp:5945
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD _Outptr_opt_ void ** ppvObject
Definition: wincrypt.h:6082
#define CLASS_E_NOAGGREGATION
Definition: winerror.h:2662

◆ 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:52

◆ 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 }
const GUID IID_IClassFactory
#define NULL
Definition: types.h:112
#define E_NOINTERFACE
Definition: winerror.h:2364

◆ STDMETHODIMP_() [1/2]

virtual ClassFactory::STDMETHODIMP_ ( ULONG  )
inlinevirtual

Definition at line 5974 of file activex.cpp.

5975 {
5977 }
#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 }
#define InterlockedDecrement
Definition: armddk.h:52
GLdouble n
Definition: glext.h:7729
long LONG
Definition: pedump.c:60

Member Data Documentation

◆ cf

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

Definition at line 60 of file main.c.

◆ fnCreateInstance

CreateInstanceFunc ClassFactory::fnCreateInstance

Definition at line 212 of file main.c.

◆ IClassFactory_iface

IClassFactory ClassFactory::IClassFactory_iface

Definition at line 210 of file main.c.

Referenced by DllGetClassObject().

◆ m_classId

CLSID ClassFactory::m_classId
private

Definition at line 5944 of file activex.cpp.

Referenced by CreateInstance().

◆ m_libIndex

unsigned ClassFactory::m_libIndex
private

Definition at line 5945 of file activex.cpp.

Referenced by CreateInstance().

◆ m_refCount

◆ 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 211 of file main.c.


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