MCPcopy Create free account
hub / github.com/TortoiseGit/TortoiseGit / QueryInterface

Method QueryInterface

src/TortoiseShell/ShellExt.cpp:86–116  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

84}
85
86STDMETHODIMP 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
118STDMETHODIMP_(ULONG) CShellExt::AddRef()
119{

Callers 5

ExplorerMonitorThreadFunction · 0.45
DllGetClassObjectFunction · 0.45
OnOKMethod · 0.45
DoInitializeJumpListMethod · 0.45

Calls

no outgoing calls

Tested by

no test coverage detected