ReactOS 0.4.17-dev-540-g8f54750
CTaskbarList.cpp
Go to the documentation of this file.
1/*
2 * PROJECT: browseui
3 * LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
4 * PURPOSE: ITaskbarList implementation
5 * COPYRIGHT: Copyright 2018 Mark Jansen (mark.jansen@reactos.org)
6 */
7
8#include "precomp.h"
9
10
11/***********************************************************************
12 * ITaskbarList2 implementation
13 */
14
15#define TWM_GETTASKSWITCH (WM_USER + 236)
16
18 : m_hTaskWnd(NULL)
19{
21}
22
24{
25}
26
28{
29 HWND hTrayWnd;
31 return m_hTaskWnd;
32
33 hTrayWnd = FindWindowW(L"Shell_TrayWnd", NULL);
34 if (hTrayWnd)
35 {
37 }
38 return m_hTaskWnd;
39}
40
42{
43 HWND hTaskWnd = TaskWnd();
44 if (hTaskWnd && m_ShellHookMsg)
46}
47
48/***********************************************************************
49 * ITaskbarList4 implementation
50 */
52{
54 return E_NOTIMPL;
55}
56
57
58/***********************************************************************
59 * ITaskbarList3 implementation
60 */
61
63{
65 return E_NOTIMPL;
66}
67
69{
71 return E_NOTIMPL;
72}
73
75{
77 return E_NOTIMPL;
78}
79
81{
83 return E_NOTIMPL;
84}
85
87{
89 return E_NOTIMPL;
90}
91
92
94{
96 return E_NOTIMPL;
97}
98
100{
102 return E_NOTIMPL;
103}
104
106{
108 return E_NOTIMPL;
109}
110
112{
114 return E_NOTIMPL;
115}
116
118{
120 return E_NOTIMPL;
121}
122
124{
126 return E_NOTIMPL;
127}
128
130{
132 return E_NOTIMPL;
133}
134
135/***********************************************************************
136 * ITaskbarList2 implementation
137 */
138
139
141{
143 return E_NOTIMPL;
144}
145
146
147/***********************************************************************
148 * ITaskbarList implementation
149 */
150
152{
153 if (m_ShellHookMsg == NULL)
154 return E_OUTOFMEMORY;
155
156 if (!TaskWnd())
157 return E_HANDLE;
158
159 return S_OK;
160}
161
163{
165 return S_OK;
166}
167
169{
171 return S_OK;
172}
173
175{
176 SendTaskWndShellHook(HSHELL_WINDOWACTIVATED, hwnd);
177 return S_OK;
178}
179
181{
183 return E_NOTIMPL;
184}
185
HWND hWnd
Definition: settings.c:17
#define TWM_GETTASKSWITCH
Definition: precomp.h:132
#define UNIMPLEMENTED
Definition: ntoskrnl.c:15
HIMAGELIST himl
STDMETHOD() HrInit() override
STDMETHOD() MarkFullscreenWindow(HWND hwnd, BOOL fFullscreen) override
STDMETHOD() SetTabProperties(HWND hwnd, STPFLAG stpFlags) override
STDMETHOD() SetOverlayIcon(HWND hwnd, HICON hIcon, LPCWSTR pszDescription) override
STDMETHOD() SetTabOrder(HWND hwndTab, HWND hwndInsertBefore) override
STDMETHOD() ThumbBarUpdateButtons(HWND hwnd, UINT cButtons, LPTHUMBBUTTON pButton) override
STDMETHOD() DeleteTab(HWND hwnd) override
STDMETHOD() ActivateTab(HWND hwnd) override
UINT m_ShellHookMsg
Definition: CTaskbarList.h:17
STDMETHOD() SetThumbnailClip(HWND hwnd, RECT *prcClip) override
STDMETHOD() SetProgressState(HWND hwnd, TBPFLAG tbpFlags) override
STDMETHOD() ThumbBarSetImageList(HWND hwnd, HIMAGELIST himl) override
STDMETHOD() AddTab(HWND hwnd) override
STDMETHOD() ThumbBarAddButtons(HWND hwnd, UINT cButtons, LPTHUMBBUTTON pButton) override
STDMETHOD() SetActiveAlt(HWND hwnd) override
STDMETHOD() RegisterTab(HWND hwnd, HWND hwndMDI) override
STDMETHOD() SetTabActive(HWND hwndTab, HWND hwndMDI, DWORD dwReserved) override
void SendTaskWndShellHook(WPARAM wParam, HWND hWnd)
virtual ~CTaskbarList()
STDMETHOD() SetThumbnailTooltip(HWND hwnd, LPCWSTR pszTip) override
STDMETHOD() UnregisterTab(HWND hwndTab) override
STDMETHOD() SetProgressValue(HWND hwnd, ULONGLONG ullCompleted, ULONGLONG ullTotal) override
WPARAM wParam
Definition: combotst.c:138
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define E_NOTIMPL
Definition: ddrawi.h:99
#define NULL
Definition: types.h:112
HANDLE HWND
Definition: compat.h:19
#define L(x)
Definition: resources.c:13
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
unsigned int UINT
Definition: sysinfo.c:13
#define S_OK
Definition: intsafe.h:52
LONG_PTR LPARAM
Definition: minwindef.h:175
UINT_PTR WPARAM
Definition: minwindef.h:174
static HICON
Definition: imagelist.c:80
HICON hIcon
Definition: msconfig.c:44
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
Definition: mswsock.h:95
* LPTHUMBBUTTON
Definition: shobjidl.idl:2180
const uint16_t * LPCWSTR
Definition: typedefs.h:57
uint64_t ULONGLONG
Definition: typedefs.h:67
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023
#define WINAPI
Definition: msvc.h:6
#define E_HANDLE
Definition: winerror.h:4117
BOOL WINAPI IsWindow(_In_opt_ HWND)
#define HSHELL_WINDOWDESTROYED
Definition: winuser.h:1267
#define HSHELL_WINDOWCREATED
Definition: winuser.h:1266
UINT WINAPI RegisterWindowMessageW(_In_ LPCWSTR)
HWND WINAPI FindWindowW(_In_opt_ LPCWSTR, _In_opt_ LPCWSTR)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)