MCPcopy Create free account
hub / github.com/LegacyUpdate/LegacyUpdate / GetElevatedHelper

Method GetElevatedHelper

LegacyUpdate/LegacyUpdateCtrl.cpp:238–258  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

236}
237
238STDMETHODIMP CLegacyUpdateCtrl::GetElevatedHelper(IElevationHelper **retval) {
239 if (retval == NULL) {
240 return E_POINTER;
241 }
242
243 IElevationHelper *elevatedHelper = m_elevatedHelper ? m_elevatedHelper : m_nonElevatedHelper;
244 if (elevatedHelper == NULL) {
245 // Use the helper directly, without elevation. It's the responsibility of the caller to ensure it
246 // is already running as admin on 2k/XP, or that it has requested elevation on Vista+.
247 HRESULT hr = CoCreateInstance(CLSID_ElevationHelper, NULL, CLSCTX_INPROC_SERVER, IID_IElevationHelper, (void **)&elevatedHelper);
248 CHECK_HR_OR_RETURN(L"CoCreateInstance");
249 if (elevatedHelper == NULL) {
250 return E_POINTER;
251 }
252
253 m_nonElevatedHelper = elevatedHelper;
254 }
255
256 *retval = elevatedHelper;
257 return S_OK;
258}
259
260#define DoIsPermittedCheck(void) { \
261 HRESULT hr = IsPermitted(); \

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected