| 84 | } |
| 85 | |
| 86 | STDMETHODIMP CShellExt::QueryInterface(REFIID riid, LPVOID FAR *ppv) |
| 87 | { |
| 88 | if (!ppv) |
| 89 | return E_POINTER; |
| 90 | |
| 91 | *ppv = nullptr; |
| 92 | |
| 93 | if (IsEqualIID(riid, IID_IShellExtInit) || IsEqualIID(riid, IID_IUnknown)) |
| 94 | *ppv = static_cast<LPSHELLEXTINIT>(this); |
| 95 | else if (IsEqualIID(riid, IID_IContextMenu)) |
| 96 | *ppv = static_cast<LPCONTEXTMENU>(this); |
| 97 | else if (IsEqualIID(riid, IID_IContextMenu2)) |
| 98 | *ppv = static_cast<LPCONTEXTMENU2>(this); |
| 99 | else if (IsEqualIID(riid, IID_IContextMenu3)) |
| 100 | *ppv = static_cast<LPCONTEXTMENU3>(this); |
| 101 | else if (IsEqualIID(riid, IID_IShellIconOverlayIdentifier)) |
| 102 | *ppv = static_cast<IShellIconOverlayIdentifier*>(this); |
| 103 | else if (IsEqualIID(riid, IID_IShellPropSheetExt)) |
| 104 | *ppv = static_cast<LPSHELLPROPSHEETEXT>(this); |
| 105 | else if (IsEqualIID(riid, IID_IShellCopyHook)) |
| 106 | *ppv = static_cast<ICopyHook*>(this); |
| 107 | else if (IsEqualIID(riid, IID_IExplorerCommand)) |
| 108 | *ppv = static_cast<IExplorerCommand*>(this); |
| 109 | else if (IsEqualIID(riid, IID_IObjectWithSite)) |
| 110 | *ppv = static_cast<IObjectWithSite*>(this); |
| 111 | else |
| 112 | return E_NOINTERFACE; |
| 113 | |
| 114 | AddRef(); |
| 115 | return S_OK; |
| 116 | } |
| 117 | |
| 118 | STDMETHODIMP_(ULONG) CShellExt::AddRef() |
| 119 | { |
no outgoing calls
no test coverage detected