IUnknown
| 15 | public: |
| 16 | // IUnknown |
| 17 | STDMETHODIMP QueryInterface(REFIID riid, void **ppvObject) { |
| 18 | if (ppvObject == NULL) { |
| 19 | return E_POINTER; |
| 20 | } |
| 21 | |
| 22 | *ppvObject = NULL; |
| 23 | |
| 24 | if (IsEqualIID(riid, IID_IUnknown) || IsEqualIID(riid, IID_IDispatch) || IsEqualIID(riid, __uuidof(TImpl))) { |
| 25 | *ppvObject = (TImpl *)this; |
| 26 | this->AddRef(); |
| 27 | return S_OK; |
| 28 | } |
| 29 | |
| 30 | return E_NOINTERFACE; |
| 31 | } |
| 32 | |
| 33 | // IDispatch |
| 34 | STDMETHODIMP GetTypeInfoCount(UINT *pctinfo) { |