ReactOS 0.4.16-dev-1946-g52006dd
CClassFactory Class Reference
Inheritance diagram for CClassFactory:
Collaboration diagram for CClassFactory:

Public Member Functions

 CClassFactory (LPFNCONSTRUCTOR ctor)
 
virtual ~CClassFactory ()
 
STDMETHODIMP QueryInterface (REFIID riid, void **ppvObj) override
 
 STDMETHODIMP_ (ULONG) AddRef() override
 
 STDMETHODIMP_ (ULONG) Release() override
 
STDMETHODIMP CreateInstance (_In_ IUnknown *pUnkOuter, _In_ REFIID riid, _Out_ void **ppvObject) override
 
STDMETHODIMP LockServer (_In_ BOOL fLock) override
 
STDMETHODIMP QueryInterface (REFIID InterfaceId, PVOID *Interface)
 
 STDMETHODIMP_ (ULONG) AddRef()
 
 STDMETHODIMP_ (ULONG) Release()
 
HRESULT WINAPI CreateInstance (LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObject)
 
HRESULT WINAPI LockServer (BOOL fLock)
 
 CClassFactory (LPFNCREATEINSTANCE lpfnCI, PLONG pcRefDll, IID *riidInst)
 
virtual ~CClassFactory ()
 
STDMETHODIMP QueryInterface (REFIID InterfaceId, PVOID *Interface)
 
 STDMETHODIMP_ (ULONG) AddRef()
 
 STDMETHODIMP_ (ULONG) Release()
 
HRESULT WINAPI CreateInstance (LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObject)
 
HRESULT WINAPI LockServer (BOOL fLock)
 
 CClassFactory (LPFNCREATEINSTANCE lpfnCI, PLONG pcRefDll, IID *riidInst)
 
virtual ~CClassFactory ()
 
STDMETHODIMP QueryInterface (REFIID InterfaceId, PVOID *Interface)
 
 STDMETHODIMP_ (ULONG) AddRef()
 
 STDMETHODIMP_ (ULONG) Release()
 
HRESULT WINAPI CreateInstance (LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObject)
 
HRESULT WINAPI LockServer (BOOL fLock)
 
 CClassFactory (LPFNCREATEINSTANCE lpfnCI, PLONG pcRefDll, IID *riidInst)
 
virtual ~CClassFactory ()
 
STDMETHODIMP QueryInterface (REFIID InterfaceId, PVOID *Interface)
 
 STDMETHODIMP_ (ULONG) AddRef()
 
 STDMETHODIMP_ (ULONG) Release()
 
HRESULT WINAPI CreateInstance (LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObject)
 
HRESULT WINAPI LockServer (BOOL fLock)
 
 CClassFactory (LPFNCREATEINSTANCE lpfnCI, PLONG pcRefDll, IID *riidInst)
 
virtual ~CClassFactory ()
 
- 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 ()
 

Protected Attributes

LONG m_cRefs
 
LPFNCONSTRUCTOR m_ctor
 
LONG m_Ref
 
LPFNCREATEINSTANCE m_lpfnCI
 
IIDm_IID
 

Additional Inherited Members

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

Detailed Description

Definition at line 61 of file msctf.cpp.

Constructor & Destructor Documentation

◆ CClassFactory() [1/5]

CClassFactory::CClassFactory ( LPFNCONSTRUCTOR  ctor)

Definition at line 85 of file msctf.cpp.

86 : m_cRefs(1)
87 , m_ctor(ctor)
88{
89}
LONG m_cRefs
Definition: msctf.cpp:81
LPFNCONSTRUCTOR m_ctor
Definition: msctf.cpp:82
LPFNCONSTRUCTOR ctor
Definition: msctf.cpp:51

◆ ~CClassFactory() [1/5]

CClassFactory::~CClassFactory ( )
virtual

Definition at line 91 of file msctf.cpp.

92{
93 TRACE("Destroying class factory %p\n", this);
94}
#define TRACE(s)
Definition: solgame.cpp:4

◆ CClassFactory() [2/5]

CClassFactory::CClassFactory ( LPFNCREATEINSTANCE  lpfnCI,
PLONG  pcRefDll,
IID riidInst 
)
inline

Definition at line 38 of file classfactory.cpp.

38 : m_Ref(1), m_lpfnCI(lpfnCI), m_IID(riidInst)
39 {};
LPFNCREATEINSTANCE m_lpfnCI
LPFNCREATEINSTANCE lpfnCI
Definition: shellole.c:61

◆ ~CClassFactory() [2/5]

virtual CClassFactory::~CClassFactory ( )
inlinevirtual

Definition at line 41 of file classfactory.cpp.

41{};

◆ CClassFactory() [3/5]

CClassFactory::CClassFactory ( LPFNCREATEINSTANCE  lpfnCI,
PLONG  pcRefDll,
IID riidInst 
)
inline

Definition at line 36 of file classfactory.cpp.

36 : m_Ref(1), m_lpfnCI(lpfnCI), m_IID(riidInst)
37 {};

◆ ~CClassFactory() [3/5]

virtual CClassFactory::~CClassFactory ( )
inlinevirtual

Definition at line 39 of file classfactory.cpp.

39{};

◆ CClassFactory() [4/5]

CClassFactory::CClassFactory ( LPFNCREATEINSTANCE  lpfnCI,
PLONG  pcRefDll,
IID riidInst 
)
inline

Definition at line 38 of file classfactory.cpp.

38 : m_Ref(1), m_lpfnCI(lpfnCI), m_IID(riidInst)
39 {};

◆ ~CClassFactory() [4/5]

virtual CClassFactory::~CClassFactory ( )
inlinevirtual

Definition at line 41 of file classfactory.cpp.

41{};

◆ CClassFactory() [5/5]

CClassFactory::CClassFactory ( LPFNCREATEINSTANCE  lpfnCI,
PLONG  pcRefDll,
IID riidInst 
)
inline

Definition at line 38 of file classfactory.cpp.

38 : m_Ref(1), m_lpfnCI(lpfnCI), m_IID(riidInst)
39 {};

◆ ~CClassFactory() [5/5]

virtual CClassFactory::~CClassFactory ( )
inlinevirtual

Definition at line 41 of file classfactory.cpp.

41{};

Member Function Documentation

◆ CreateInstance() [1/5]

STDMETHODIMP CClassFactory::CreateInstance ( _In_ IUnknown pUnkOuter,
_In_ REFIID  riid,
_Out_ void **  ppvObject 
)
override

Definition at line 123 of file msctf.cpp.

127{
128 TRACE("(%p, %p, %s, %p)\n", this, pUnkOuter, debugstr_guid(&riid), ppvObject);
129
130 IUnknown *obj;
131 HRESULT ret = m_ctor(pUnkOuter, &obj);
132 if (FAILED(ret))
133 return ret;
134 ret = obj->QueryInterface(riid, ppvObject);
135 obj->Release();
136 return ret;
137}
return ret
Definition: mutex.c:146
REFIID riid
Definition: atlbase.h:39
#define FAILED(hr)
Definition: intsafe.h:51
#define debugstr_guid
Definition: kernel32.h:35

◆ CreateInstance() [2/5]

HRESULT WINAPI CClassFactory::CreateInstance ( LPUNKNOWN  pUnkOuter,
REFIID  riid,
LPVOID ppvObject 
)

Definition at line 67 of file classfactory.cpp.

71{
72 *ppvObject = NULL;
73
75 {
76 return m_lpfnCI(pUnkOuter, riid, ppvObject);
77 }
78
79 return E_NOINTERFACE;
80}
#define NULL
Definition: types.h:112
const GUID IID_IUnknown
#define IsEqualCLSID(rclsid1, rclsid2)
Definition: guiddef.h:96
#define E_NOINTERFACE
Definition: winerror.h:3479

◆ CreateInstance() [3/5]

HRESULT WINAPI CClassFactory::CreateInstance ( LPUNKNOWN  pUnkOuter,
REFIID  riid,
LPVOID ppvObject 
)

◆ CreateInstance() [4/5]

HRESULT WINAPI CClassFactory::CreateInstance ( LPUNKNOWN  pUnkOuter,
REFIID  riid,
LPVOID ppvObject 
)

◆ CreateInstance() [5/5]

HRESULT WINAPI CClassFactory::CreateInstance ( LPUNKNOWN  pUnkOuter,
REFIID  riid,
LPVOID ppvObject 
)

◆ LockServer() [1/5]

STDMETHODIMP CClassFactory::LockServer ( _In_ BOOL  fLock)
override

Definition at line 139 of file msctf.cpp.

140{
141 TRACE("(%p)->(%x)\n", this, fLock);
142 return S_OK;
143}
#define S_OK
Definition: intsafe.h:52

◆ LockServer() [2/5]

HRESULT WINAPI CClassFactory::LockServer ( BOOL  fLock)

Implements IClassFactory.

Definition at line 84 of file classfactory.cpp.

86{
87 return E_NOTIMPL;
88}
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ LockServer() [3/5]

HRESULT WINAPI CClassFactory::LockServer ( BOOL  fLock)

Implements IClassFactory.

◆ LockServer() [4/5]

HRESULT WINAPI CClassFactory::LockServer ( BOOL  fLock)

Implements IClassFactory.

◆ LockServer() [5/5]

HRESULT WINAPI CClassFactory::LockServer ( BOOL  fLock)

Implements IClassFactory.

◆ QueryInterface() [1/5]

HRESULT WINAPI CClassFactory::QueryInterface ( REFIID  InterfaceId,
PVOID Interface 
)

Definition at line 51 of file classfactory.cpp.

54{
55 *ppvObj = NULL;
57 {
58 *ppvObj = PVOID(this);
60 return S_OK;
61 }
62 return E_NOINTERFACE;
63}
#define InterlockedIncrement
Definition: armddk.h:53
const GUID IID_IClassFactory
#define IsEqualIID(riid1, riid2)
Definition: guiddef.h:95
void * PVOID
Definition: typedefs.h:50

◆ QueryInterface() [2/5]

STDMETHODIMP CClassFactory::QueryInterface ( REFIID  InterfaceId,
PVOID Interface 
)

◆ QueryInterface() [3/5]

STDMETHODIMP CClassFactory::QueryInterface ( REFIID  InterfaceId,
PVOID Interface 
)

◆ QueryInterface() [4/5]

STDMETHODIMP CClassFactory::QueryInterface ( REFIID  InterfaceId,
PVOID Interface 
)

◆ QueryInterface() [5/5]

STDMETHODIMP CClassFactory::QueryInterface ( REFIID  riid,
void **  ppvObj 
)
override

Implements IUnknown.

Definition at line 96 of file msctf.cpp.

97{
98 *ppvObj = NULL;
100 {
101 AddRef();
102 *ppvObj = static_cast<IClassFactory *>(this);
103 return S_OK;
104 }
105
106 WARN("Unknown interface %s\n", debugstr_guid(&riid));
107 return E_NOINTERFACE;
108}
#define WARN(fmt,...)
Definition: precomp.h:61
ULONG AddRef()

◆ STDMETHODIMP_() [1/10]

CClassFactory::STDMETHODIMP_ ( ULONG  )
inline

Definition at line 19 of file classfactory.cpp.

20 {
22 return m_Ref;
23 }

◆ STDMETHODIMP_() [2/10]

CClassFactory::STDMETHODIMP_ ( ULONG  )
inline

Definition at line 16 of file classfactory.cpp.

17 {
19 return m_Ref;
20 }

◆ STDMETHODIMP_() [3/10]

CClassFactory::STDMETHODIMP_ ( ULONG  )
inline

Definition at line 19 of file classfactory.cpp.

20 {
22 return m_Ref;
23 }

◆ STDMETHODIMP_() [4/10]

CClassFactory::STDMETHODIMP_ ( ULONG  )
inline

Definition at line 19 of file classfactory.cpp.

20 {
22 return m_Ref;
23 }

◆ STDMETHODIMP_() [5/10]

CClassFactory::STDMETHODIMP_ ( ULONG  )
override

◆ STDMETHODIMP_() [6/10]

CClassFactory::STDMETHODIMP_ ( ULONG  )
inline

Definition at line 24 of file classfactory.cpp.

25 {
27 if (!m_Ref)
28 {
29 delete this;
30 return 0;
31 }
32 return m_Ref;
33 }
#define InterlockedDecrement
Definition: armddk.h:52

◆ STDMETHODIMP_() [7/10]

CClassFactory::STDMETHODIMP_ ( ULONG  )
inline

Definition at line 21 of file classfactory.cpp.

22 {
24
25 if (!m_Ref)
26 {
27 delete this;
28 return 0;
29 }
30 return m_Ref;
31 }

◆ STDMETHODIMP_() [8/10]

CClassFactory::STDMETHODIMP_ ( ULONG  )
inline

Definition at line 24 of file classfactory.cpp.

25 {
27 if (!m_Ref)
28 {
29 delete this;
30 return 0;
31 }
32 return m_Ref;
33 }

◆ STDMETHODIMP_() [9/10]

CClassFactory::STDMETHODIMP_ ( ULONG  )
inline

Definition at line 24 of file classfactory.cpp.

25 {
27 if (!m_Ref)
28 {
29 delete this;
30 return 0;
31 }
32 return m_Ref;
33 }

◆ STDMETHODIMP_() [10/10]

CClassFactory::STDMETHODIMP_ ( ULONG  )
override

Member Data Documentation

◆ m_cRefs

LONG CClassFactory::m_cRefs
protected

Definition at line 81 of file msctf.cpp.

Referenced by STDMETHODIMP_().

◆ m_ctor

LPFNCONSTRUCTOR CClassFactory::m_ctor
protected

Definition at line 82 of file msctf.cpp.

Referenced by CreateInstance().

◆ m_IID

IID * CClassFactory::m_IID
protected

Definition at line 46 of file classfactory.cpp.

Referenced by CreateInstance().

◆ m_lpfnCI

LPFNCREATEINSTANCE CClassFactory::m_lpfnCI
protected

Definition at line 45 of file classfactory.cpp.

Referenced by CreateInstance().

◆ m_Ref

LONG CClassFactory::m_Ref
protected

Definition at line 44 of file classfactory.cpp.

Referenced by QueryInterface(), and STDMETHODIMP_().


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