xref: /reactos/dll/win32/browseui/CUserAssist.h (revision 3c5a56ed)
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);
23     // FIXME: PVOID should point to undocumented UEMINFO structure.
24     STDMETHODIMP QueryEvent(GUID const *guid, INT param, WPARAM wparam, LPARAM lparam, PVOID ptr);
25     STDMETHODIMP SetEvent(GUID const *guid, INT param, WPARAM wparam, LPARAM lparam, PVOID ptr);
26     STDMETHODIMP Enable(BOOL bEnable);
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