| 26 | } |
| 27 | |
| 28 | STDMETHODIMP CClassFactory::QueryInterface(REFIID riid, void **ppvObject) { |
| 29 | if (ppvObject == NULL) { |
| 30 | return E_POINTER; |
| 31 | } |
| 32 | |
| 33 | *ppvObject = NULL; |
| 34 | |
| 35 | if (IsEqualIID(riid, IID_IUnknown) || IsEqualIID(riid, IID_IClassFactory)) { |
| 36 | *ppvObject = this; |
| 37 | AddRef(); |
| 38 | return S_OK; |
| 39 | } |
| 40 | |
| 41 | return E_NOINTERFACE; |
| 42 | } |
| 43 | |
| 44 | STDMETHODIMP_(ULONG) CClassFactory::AddRef(void) { |
| 45 | return InterlockedIncrement(&m_refCount); |