xref: /reactos/dll/win32/browseui/CTaskbarList.h (revision bb297bc3)
1 /*
2  * PROJECT:     browseui
3  * LICENSE:     LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
4  * PURPOSE:     ITaskbarList header
5  * COPYRIGHT:   Copyright 2018 Mark Jansen (mark.jansen@reactos.org)
6  */
7 
8 #ifndef _CTASKBARLIST_H_
9 #define _CTASKBARLIST_H_
10 
11 class CTaskbarList :
12     public CComCoClass<CTaskbarList, &CLSID_TaskbarList>,
13     public CComObjectRootEx<CComMultiThreadModelNoCS>,
14     public ITaskbarList2
15 {
16     HWND m_hTaskWnd;
17     UINT m_ShellHookMsg;
18 
19     HWND TaskWnd();
20     void SendTaskWndShellHook(WPARAM wParam, HWND hWnd);
21 
22 public:
23     CTaskbarList();
24     virtual ~CTaskbarList();
25 
26     /*** ITaskbarList2 methods ***/
27     STDMETHOD(MarkFullscreenWindow)(HWND hwnd, BOOL fFullscreen) override;
28 
29     /*** ITaskbarList methods ***/
30     STDMETHOD(HrInit)() override;
31     STDMETHOD(AddTab)(HWND hwnd) override;
32     STDMETHOD(DeleteTab)(HWND hwnd) override;
33     STDMETHOD(ActivateTab)(HWND hwnd) override;
34     STDMETHOD(SetActiveAlt)(HWND hwnd) override;
35 
36     DECLARE_REGISTRY_RESOURCEID(IDR_TASKBARLIST)
37     DECLARE_NOT_AGGREGATABLE(CTaskbarList)
38 
39     DECLARE_PROTECT_FINAL_CONSTRUCT()
40 
41     BEGIN_COM_MAP(CTaskbarList)
42         COM_INTERFACE_ENTRY_IID(IID_ITaskbarList2, ITaskbarList2)
43         COM_INTERFACE_ENTRY_IID(IID_ITaskbarList, ITaskbarList)
44     END_COM_MAP()
45 };
46 
47 
48 #endif // _CTASKBARLIST_H_
49