#pragma once // ElevationHelper.h : Declaration of the CElevationHelper class. #include #include "resource.h" #include "LegacyUpdate_i.h" BOOL ProgIDIsPermitted(PWSTR progID); STDMETHODIMP CoCreateInstanceAsAdmin(HWND hwnd, __in REFCLSID rclsid, __in REFIID riid, __deref_out void **ppv); // CElevationHelper class ATL_NO_VTABLE CElevationHelper : public CComObjectRootEx, public CComCoClass, public ISupportErrorInfo, public IDispatchImpl { public: CElevationHelper() {} DECLARE_REGISTRY_RESOURCEID(IDR_ELEVATIONHELPER) BEGIN_COM_MAP(CElevationHelper) COM_INTERFACE_ENTRY(IElevationHelper) COM_INTERFACE_ENTRY(IDispatch) COM_INTERFACE_ENTRY(ISupportErrorInfo) END_COM_MAP() // ISupportsErrorInfo STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid) { return IsEqualGUID(riid, IID_IElevationHelper) ? S_OK : S_FALSE; } // IElevationHelper DECLARE_PROTECT_FINAL_CONSTRUCT() HRESULT FinalConstruct() { return S_OK; } void FinalRelease() {} STDMETHODIMP CreateObject(BSTR progID, IDispatch **retval); }; OBJECT_ENTRY_AUTO(__uuidof(ElevationHelper), CElevationHelper)