mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-08-27 03:43:36 +00:00
Split off CShellitemArray stub out CShellLibrary stub out CUserEventTimer rewrite some vista shellitem APIs Misc stubs for vista AddITaskbarList3/ITaskbarList4 --------- Co-authored-by: Oleb Dubinskiy <[email protected]> Co-authored-by: Mikhail Tyukin <[email protected]>
186 lines
3.9 KiB
C++
186 lines
3.9 KiB
C++
/*
|
|
* PROJECT: browseui
|
|
* LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
|
|
* PURPOSE: ITaskbarList implementation
|
|
* COPYRIGHT: Copyright 2018 Mark Jansen ([email protected])
|
|
*/
|
|
|
|
#include "precomp.h"
|
|
|
|
|
|
/***********************************************************************
|
|
* ITaskbarList2 implementation
|
|
*/
|
|
|
|
#define TWM_GETTASKSWITCH (WM_USER + 236)
|
|
|
|
CTaskbarList::CTaskbarList()
|
|
: m_hTaskWnd(NULL)
|
|
{
|
|
m_ShellHookMsg = RegisterWindowMessageW(L"SHELLHOOK");
|
|
}
|
|
|
|
CTaskbarList::~CTaskbarList()
|
|
{
|
|
}
|
|
|
|
HWND CTaskbarList::TaskWnd()
|
|
{
|
|
HWND hTrayWnd;
|
|
if (m_hTaskWnd && ::IsWindow(m_hTaskWnd))
|
|
return m_hTaskWnd;
|
|
|
|
hTrayWnd = FindWindowW(L"Shell_TrayWnd", NULL);
|
|
if (hTrayWnd)
|
|
{
|
|
m_hTaskWnd = (HWND)SendMessageW(hTrayWnd, TWM_GETTASKSWITCH, 0L, 0L);
|
|
}
|
|
return m_hTaskWnd;
|
|
}
|
|
|
|
void CTaskbarList::SendTaskWndShellHook(WPARAM wParam, HWND hWnd)
|
|
{
|
|
HWND hTaskWnd = TaskWnd();
|
|
if (hTaskWnd && m_ShellHookMsg)
|
|
::SendMessageW(hTaskWnd, m_ShellHookMsg, wParam, (LPARAM)hWnd);
|
|
}
|
|
|
|
/***********************************************************************
|
|
* ITaskbarList4 implementation
|
|
*/
|
|
HRESULT WINAPI CTaskbarList::SetTabProperties(HWND hwnd, STPFLAG stpFlags)
|
|
{
|
|
UNIMPLEMENTED;
|
|
return E_NOTIMPL;
|
|
}
|
|
|
|
|
|
/***********************************************************************
|
|
* ITaskbarList3 implementation
|
|
*/
|
|
|
|
HRESULT WINAPI CTaskbarList::SetProgressValue(HWND hwnd, ULONGLONG ullCompleted, ULONGLONG ullTotal)
|
|
{
|
|
UNIMPLEMENTED;
|
|
return E_NOTIMPL;
|
|
}
|
|
|
|
HRESULT WINAPI CTaskbarList::SetProgressState(HWND hwnd, TBPFLAG tbpFlags)
|
|
{
|
|
UNIMPLEMENTED;
|
|
return E_NOTIMPL;
|
|
}
|
|
|
|
HRESULT WINAPI CTaskbarList::RegisterTab(HWND hwnd, HWND hwndMDI)
|
|
{
|
|
UNIMPLEMENTED;
|
|
return E_NOTIMPL;
|
|
}
|
|
|
|
HRESULT WINAPI CTaskbarList::UnregisterTab(HWND hwndTab)
|
|
{
|
|
UNIMPLEMENTED;
|
|
return E_NOTIMPL;
|
|
}
|
|
|
|
HRESULT WINAPI CTaskbarList::SetTabOrder(HWND hwndTab, HWND hwndInsertBefore)
|
|
{
|
|
UNIMPLEMENTED;
|
|
return E_NOTIMPL;
|
|
}
|
|
|
|
|
|
HRESULT WINAPI CTaskbarList::SetTabActive(HWND hwndTab, HWND hwndMDI, DWORD dwReserved)
|
|
{
|
|
UNIMPLEMENTED;
|
|
return E_NOTIMPL;
|
|
}
|
|
|
|
HRESULT WINAPI CTaskbarList::ThumbBarAddButtons(HWND hwnd, UINT cButtons, LPTHUMBBUTTON pButton)
|
|
{
|
|
UNIMPLEMENTED;
|
|
return E_NOTIMPL;
|
|
}
|
|
|
|
HRESULT WINAPI CTaskbarList::ThumbBarUpdateButtons(HWND hwnd, UINT cButtons, LPTHUMBBUTTON pButton)
|
|
{
|
|
UNIMPLEMENTED;
|
|
return E_NOTIMPL;
|
|
}
|
|
|
|
HRESULT WINAPI CTaskbarList::ThumbBarSetImageList(HWND hwnd, HIMAGELIST himl)
|
|
{
|
|
UNIMPLEMENTED;
|
|
return E_NOTIMPL;
|
|
}
|
|
|
|
HRESULT WINAPI CTaskbarList::SetOverlayIcon(HWND hwnd, HICON hIcon, LPCWSTR pszDescription)
|
|
{
|
|
UNIMPLEMENTED;
|
|
return E_NOTIMPL;
|
|
}
|
|
|
|
HRESULT WINAPI CTaskbarList::SetThumbnailTooltip(HWND hwnd, LPCWSTR pszTip)
|
|
{
|
|
UNIMPLEMENTED;
|
|
return E_NOTIMPL;
|
|
}
|
|
|
|
HRESULT WINAPI CTaskbarList::SetThumbnailClip(HWND hwnd, RECT* prcClip)
|
|
{
|
|
UNIMPLEMENTED;
|
|
return E_NOTIMPL;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* ITaskbarList2 implementation
|
|
*/
|
|
|
|
|
|
HRESULT WINAPI CTaskbarList::MarkFullscreenWindow(HWND hwnd, BOOL fFullscreen)
|
|
{
|
|
UNIMPLEMENTED;
|
|
return E_NOTIMPL;
|
|
}
|
|
|
|
|
|
/***********************************************************************
|
|
* ITaskbarList implementation
|
|
*/
|
|
|
|
HRESULT WINAPI CTaskbarList::HrInit()
|
|
{
|
|
if (m_ShellHookMsg == NULL)
|
|
return E_OUTOFMEMORY;
|
|
|
|
if (!TaskWnd())
|
|
return E_HANDLE;
|
|
|
|
return S_OK;
|
|
}
|
|
|
|
HRESULT WINAPI CTaskbarList::AddTab(HWND hwnd)
|
|
{
|
|
SendTaskWndShellHook(HSHELL_WINDOWCREATED, hwnd);
|
|
return S_OK;
|
|
}
|
|
|
|
HRESULT WINAPI CTaskbarList::DeleteTab(HWND hwnd)
|
|
{
|
|
SendTaskWndShellHook(HSHELL_WINDOWDESTROYED, hwnd);
|
|
return S_OK;
|
|
}
|
|
|
|
HRESULT WINAPI CTaskbarList::ActivateTab(HWND hwnd)
|
|
{
|
|
SendTaskWndShellHook(HSHELL_WINDOWACTIVATED, hwnd);
|
|
return S_OK;
|
|
}
|
|
|
|
HRESULT WINAPI CTaskbarList::SetActiveAlt(HWND hwnd)
|
|
{
|
|
UNIMPLEMENTED;
|
|
return E_NOTIMPL;
|
|
}
|
|
|