1 /* 2 * PROJECT: ReactOS browseui 3 * LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later) 4 * PURPOSE: IUserAssist implementation 5 * COPYRIGHT: Copyright 2020 Oleg Dubinskiy (oleg.dubinskij30@gmail.com) 6 */ 7 // See https://www.geoffchappell.com/studies/windows/ie/browseui/classes/userassist.htm 8 9 #pragma once 10 11 class CUserAssist : 12 public CComCoClass<CUserAssist, &CLSID_UserAssist>, 13 public CComObjectRootEx<CComMultiThreadModelNoCS>, 14 public IUserAssist 15 { 16 private: 17 public: 18 CUserAssist(); 19 ~CUserAssist(); 20 21 // *** IUserAssist methods *** 22 STDMETHODIMP FireEvent(GUID const *guid, INT param1, ULONG param2, WPARAM wparam, LPARAM lparam) override; 23 // FIXME: PVOID should point to undocumented UEMINFO structure. 24 STDMETHODIMP QueryEvent(GUID const *guid, INT param, WPARAM wparam, LPARAM lparam, PVOID ptr) override; 25 STDMETHODIMP SetEvent(GUID const *guid, INT param, WPARAM wparam, LPARAM lparam, PVOID ptr) override; 26 STDMETHODIMP Enable(BOOL bEnable) override; 27 28 public: 29 30 DECLARE_REGISTRY_RESOURCEID(IDR_USERASSIST) 31 DECLARE_NOT_AGGREGATABLE(CUserAssist) 32 33 DECLARE_PROTECT_FINAL_CONSTRUCT() 34 35 BEGIN_COM_MAP(CUserAssist) 36 COM_INTERFACE_ENTRY_IID(IID_IUserAssist, IUserAssist) 37 END_COM_MAP() 38 }; 39