| 39 | } |
| 40 | |
| 41 | STDMETHODIMP |
| 42 | DIFF_EXT::QueryInterface(REFIID refiid, void** ppv) |
| 43 | { |
| 44 | HRESULT ret = E_NOINTERFACE; |
| 45 | *ppv = nullptr; |
| 46 | |
| 47 | if(IsEqualIID(refiid, IID_IShellExtInit) || IsEqualIID(refiid, IID_IUnknown)) |
| 48 | { |
| 49 | *ppv = static_cast<IShellExtInit*>(this); |
| 50 | } |
| 51 | else if(IsEqualIID(refiid, IID_IContextMenu)) |
| 52 | { |
| 53 | *ppv = static_cast<IContextMenu*>(this); |
| 54 | } |
| 55 | |
| 56 | if(*ppv != nullptr) |
| 57 | { |
| 58 | AddRef(); |
| 59 | |
| 60 | ret = NOERROR; |
| 61 | } |
| 62 | |
| 63 | return ret; |
| 64 | } |
| 65 | |
| 66 | STDMETHODIMP_(ULONG) |
| 67 | DIFF_EXT::AddRef() |