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