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 virtual HRESULT WINAPI MarkFullscreenWindow(HWND hwnd, BOOL fFullscreen); 28 29 /*** ITaskbarList methods ***/ 30 virtual HRESULT STDMETHODCALLTYPE HrInit(); 31 virtual HRESULT STDMETHODCALLTYPE AddTab(HWND hwnd); 32 virtual HRESULT STDMETHODCALLTYPE DeleteTab(HWND hwnd); 33 virtual HRESULT STDMETHODCALLTYPE ActivateTab(HWND hwnd); 34 virtual HRESULT STDMETHODCALLTYPE SetActiveAlt(HWND hwnd); 35 36 37 DECLARE_REGISTRY_RESOURCEID(IDR_TASKBARLIST) 38 DECLARE_NOT_AGGREGATABLE(CTaskbarList) 39 40 DECLARE_PROTECT_FINAL_CONSTRUCT() 41 42 BEGIN_COM_MAP(CTaskbarList) 43 COM_INTERFACE_ENTRY_IID(IID_ITaskbarList2, ITaskbarList2) 44 COM_INTERFACE_ENTRY_IID(IID_ITaskbarList, ITaskbarList) 45 END_COM_MAP() 46 }; 47 48 49 #endif // _CTASKBARLIST_H_ 50