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

Method CreateObject

LegacyUpdate/ElevationHelper.cpp:132–157  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

130#pragma mark - IElevationHelper
131
132STDMETHODIMP CElevationHelper::CreateObject(BSTR progID, IDispatch **retval) {
133 if (progID == NULL) {
134 return E_INVALIDARG;
135 }
136 if (retval == NULL) {
137 return E_POINTER;
138 }
139
140 *retval = NULL;
141 HRESULT hr = S_OK;
142 CComPtr<IDispatch> object;
143 CLSID clsid;
144
145 if (!ProgIDIsPermitted(progID)) {
146 return E_ACCESSDENIED;
147 }
148
149 hr = CLSIDFromProgID(progID, &clsid);
150 CHECK_HR_OR_RETURN(L"CLSIDFromProgID");
151
152 hr = object.CoCreateInstance(clsid, IID_IDispatch, NULL, CLSCTX_INPROC_SERVER);
153 CHECK_HR_OR_RETURN(L"CoCreateInstance");
154
155 *retval = object.Detach();
156 return hr;
157}
158
159STDMETHODIMP CElevationHelper::SetBrowserHwnd(IUpdateInstaller *installer, LONG_PTR hwnd) {
160 if (installer == NULL) {

Callers

nothing calls this directly

Calls 3

ProgIDIsPermittedFunction · 0.85
CoCreateInstanceMethod · 0.80
DetachMethod · 0.80

Tested by

no test coverage detected