[0.4.11][BROWSEUI] Fix pos of taskbar toolbar right-click menu (#5421)

Don't call ClientToScreen in handling NM_RCLICK message because NMMOUSE.pt is already in screen coordinates.
CORE-18966

A backport of:
0.4.15-dev-6298-g b4e946f5b0

and strip EOL whitespace
This commit is contained in:
Joachim Henze 2023-08-17 00:08:26 +02:00
parent cc2f6571df
commit dd6d0edb98

View file

@ -23,10 +23,10 @@ TODO:
*/ */
//***************************************************************************************** //*****************************************************************************************
// *** CISFBand *** // *** CISFBand ***
CISFBand::CISFBand() : CISFBand::CISFBand() :
m_BandID(0), m_BandID(0),
m_pidl(NULL), m_pidl(NULL),
m_textFlag(true), m_textFlag(true),
m_iconFlag(true), m_iconFlag(true),
@ -34,7 +34,7 @@ CISFBand::CISFBand() :
{ {
} }
CISFBand::~CISFBand() CISFBand::~CISFBand()
{ {
CloseDW(0); CloseDW(0);
} }
@ -53,35 +53,35 @@ CISFBand::~CISFBand()
*--*/ *--*/
HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent) HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent)
{ {
// Declare and initialize local constants. // Declare and initialize local constants.
const DWORD buttonStyles = BTNS_AUTOSIZE; const DWORD buttonStyles = BTNS_AUTOSIZE;
// Create the toolbar. // Create the toolbar.
m_hWnd = CreateWindowEx(0, TOOLBARCLASSNAME, NULL, m_hWnd = CreateWindowEx(0, TOOLBARCLASSNAME, NULL,
WS_CHILD | TBSTYLE_FLAT | TBSTYLE_LIST | CCS_NORESIZE | CCS_NODIVIDER, CW_USEDEFAULT, CW_USEDEFAULT, 0, 0, WS_CHILD | TBSTYLE_FLAT | TBSTYLE_LIST | CCS_NORESIZE | CCS_NODIVIDER, CW_USEDEFAULT, CW_USEDEFAULT, 0, 0,
hWndParent, NULL, 0, NULL); hWndParent, NULL, 0, NULL);
if (m_hWnd == NULL) if (m_hWnd == NULL)
return E_FAIL; return E_FAIL;
if (!m_textFlag) if (!m_textFlag)
SendMessage(m_hWnd, TB_SETEXTENDEDSTYLE, 0, TBSTYLE_EX_MIXEDBUTTONS); SendMessage(m_hWnd, TB_SETEXTENDEDSTYLE, 0, TBSTYLE_EX_MIXEDBUTTONS);
// Set the image list. // Set the image list.
HIMAGELIST* piml; HIMAGELIST* piml;
HRESULT hr = SHGetImageList(SHIL_SMALL, IID_IImageList, (void**)&piml); HRESULT hr = SHGetImageList(SHIL_SMALL, IID_IImageList, (void**)&piml);
if (FAILED_UNEXPECTEDLY(hr)) if (FAILED_UNEXPECTEDLY(hr))
{ {
DestroyWindow(); DestroyWindow();
return hr; return hr;
} }
SendMessage(m_hWnd, TB_SETIMAGELIST, 0, (LPARAM)piml); SendMessage(m_hWnd, TB_SETIMAGELIST, 0, (LPARAM)piml);
// Enumerate objects // Enumerate objects
CComPtr<IEnumIDList> pEndl; CComPtr<IEnumIDList> pEndl;
LPITEMIDLIST pidl; LPITEMIDLIST pidl;
STRRET stret; STRRET stret;
hr = m_pISF->EnumObjects(0, SHCONTF_FOLDERS|SHCONTF_NONFOLDERS, &pEndl); hr = m_pISF->EnumObjects(0, SHCONTF_FOLDERS|SHCONTF_NONFOLDERS, &pEndl);
if (FAILED_UNEXPECTEDLY(hr)) if (FAILED_UNEXPECTEDLY(hr))
{ {
DestroyWindow(); DestroyWindow();
return hr; return hr;
@ -90,18 +90,18 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent)
for (int i=0; pEndl->Next(1, &pidl, NULL) != S_FALSE; i++) for (int i=0; pEndl->Next(1, &pidl, NULL) != S_FALSE; i++)
{ {
WCHAR sz[MAX_PATH]; WCHAR sz[MAX_PATH];
int index = SHMapPIDLToSystemImageListIndex(m_pISF, pidl, NULL); int index = SHMapPIDLToSystemImageListIndex(m_pISF, pidl, NULL);
hr = m_pISF->GetDisplayNameOf(pidl, SHGDN_NORMAL, &stret); hr = m_pISF->GetDisplayNameOf(pidl, SHGDN_NORMAL, &stret);
if (FAILED_UNEXPECTEDLY(hr)) if (FAILED_UNEXPECTEDLY(hr))
{ {
StringCchCopyW(sz, MAX_PATH, L"<Unknown-Name>"); StringCchCopyW(sz, MAX_PATH, L"<Unknown-Name>");
} }
else else
StrRetToBuf(&stret, pidl, sz, _countof(sz)); StrRetToBuf(&stret, pidl, sz, _countof(sz));
TBBUTTON tb = { MAKELONG(index, 0), i, TBSTATE_ENABLED, buttonStyles,{ 0 }, (DWORD_PTR)pidl, (INT_PTR)sz }; TBBUTTON tb = { MAKELONG(index, 0), i, TBSTATE_ENABLED, buttonStyles,{ 0 }, (DWORD_PTR)pidl, (INT_PTR)sz };
SendMessage(m_hWnd, TB_INSERTBUTTONW, i, (LPARAM)&tb); SendMessage(m_hWnd, TB_INSERTBUTTONW, i, (LPARAM)&tb);
} }
// Resize the toolbar, and then show it. // Resize the toolbar, and then show it.
SendMessage(m_hWnd, TB_AUTOSIZE, 0, 0); SendMessage(m_hWnd, TB_AUTOSIZE, 0, 0);
@ -111,7 +111,7 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent)
/*****************************************************************************/ /*****************************************************************************/
// *** IObjectWithSite *** // *** IObjectWithSite ***
STDMETHODIMP CISFBand::SetSite(IUnknown *pUnkSite) STDMETHODIMP CISFBand::SetSite(IUnknown *pUnkSite)
{ {
HRESULT hr; HRESULT hr;
@ -125,17 +125,17 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent)
TRACE("Querying site window failed: 0x%x\n", hr); TRACE("Querying site window failed: 0x%x\n", hr);
return hr; return hr;
} }
m_Site = pUnkSite; m_Site = pUnkSite;
hr = CreateSimpleToolbar(hwndParent); hr = CreateSimpleToolbar(hwndParent);
if (FAILED_UNEXPECTEDLY(hr)) if (FAILED_UNEXPECTEDLY(hr))
return hr; return hr;
return S_OK; return S_OK;
} }
STDMETHODIMP CISFBand::GetSite(IN REFIID riid, OUT VOID **ppvSite) STDMETHODIMP CISFBand::GetSite(IN REFIID riid, OUT VOID **ppvSite)
{ {
TRACE("CISFBand::GetSite(0x%p,0x%p)\n", riid, ppvSite); TRACE("CISFBand::GetSite(0x%p,0x%p)\n", riid, ppvSite);
HRESULT hr; HRESULT hr;
@ -143,44 +143,44 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent)
{ {
hr = m_Site->QueryInterface(riid, ppvSite); hr = m_Site->QueryInterface(riid, ppvSite);
if (FAILED(hr)) return hr; if (FAILED(hr)) return hr;
} }
*ppvSite = NULL; *ppvSite = NULL;
return E_FAIL; return E_FAIL;
} }
/*****************************************************************************/ /*****************************************************************************/
// *** IDeskBand *** // *** IDeskBand ***
STDMETHODIMP CISFBand::GetWindow(OUT HWND *phwnd) STDMETHODIMP CISFBand::GetWindow(OUT HWND *phwnd)
{ {
if (!m_hWnd) if (!m_hWnd)
return E_FAIL; return E_FAIL;
if (!phwnd) if (!phwnd)
return E_POINTER; return E_POINTER;
*phwnd = m_hWnd; *phwnd = m_hWnd;
return S_OK; return S_OK;
} }
STDMETHODIMP CISFBand::ContextSensitiveHelp(IN BOOL fEnterMode) STDMETHODIMP CISFBand::ContextSensitiveHelp(IN BOOL fEnterMode)
{ {
/* FIXME: Implement */ /* FIXME: Implement */
return E_NOTIMPL; return E_NOTIMPL;
} }
STDMETHODIMP CISFBand::ShowDW(IN BOOL bShow) STDMETHODIMP CISFBand::ShowDW(IN BOOL bShow)
{ {
if (m_hWnd) if (m_hWnd)
{ {
ShowWindow(bShow ? SW_SHOW : SW_HIDE); ShowWindow(bShow ? SW_SHOW : SW_HIDE);
return S_OK; return S_OK;
} }
return E_FAIL; return E_FAIL;
} }
STDMETHODIMP CISFBand::CloseDW(IN DWORD dwReserved) STDMETHODIMP CISFBand::CloseDW(IN DWORD dwReserved)
{ {
if (m_hWnd) if (m_hWnd)
{ {
ShowWindow(SW_HIDE); ShowWindow(SW_HIDE);
@ -189,7 +189,7 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent)
for (int i = 0; SendMessage(m_hWnd, TB_GETBUTTON, i, (LPARAM)&tb); i++) for (int i = 0; SendMessage(m_hWnd, TB_GETBUTTON, i, (LPARAM)&tb); i++)
{ {
CoTaskMemFree((LPITEMIDLIST)tb.dwData); CoTaskMemFree((LPITEMIDLIST)tb.dwData);
} }
DestroyWindow(); DestroyWindow();
m_hWnd = NULL; m_hWnd = NULL;
@ -199,7 +199,7 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent)
return E_FAIL; return E_FAIL;
} }
STDMETHODIMP CISFBand::ResizeBorderDW(LPCRECT prcBorder, IUnknown *punkToolbarSite, BOOL fReserved) STDMETHODIMP CISFBand::ResizeBorderDW(LPCRECT prcBorder, IUnknown *punkToolbarSite, BOOL fReserved)
{ {
/* No need to implement this method */ /* No need to implement this method */
@ -207,31 +207,31 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent)
} }
STDMETHODIMP CISFBand::GetBandInfo(IN DWORD dwBandID, IN DWORD dwViewMode, IN OUT DESKBANDINFO *pdbi) STDMETHODIMP CISFBand::GetBandInfo(IN DWORD dwBandID, IN DWORD dwViewMode, IN OUT DESKBANDINFO *pdbi)
{ {
TRACE("CTaskBand::GetBandInfo(0x%x,0x%x,0x%p) hWnd=0x%p\n", dwBandID, dwViewMode, pdbi, m_hWnd); TRACE("CTaskBand::GetBandInfo(0x%x,0x%x,0x%p) hWnd=0x%p\n", dwBandID, dwViewMode, pdbi, m_hWnd);
if (m_hWnd && pdbi) if (m_hWnd && pdbi)
{ {
m_BandID = dwBandID; m_BandID = dwBandID;
RECT actualRect; RECT actualRect;
POINTL actualSize; POINTL actualSize;
POINTL idealSize; POINTL idealSize;
POINTL maxSize; POINTL maxSize;
POINTL itemSize; POINTL itemSize;
GetWindowRect(&actualRect); GetWindowRect(&actualRect);
actualSize.x = actualRect.right - actualRect.left; actualSize.x = actualRect.right - actualRect.left;
actualSize.y = actualRect.bottom - actualRect.top; actualSize.y = actualRect.bottom - actualRect.top;
// Obtain the ideal size, to be used as min and max // Obtain the ideal size, to be used as min and max
SendMessageW(m_hWnd, TB_AUTOSIZE, 0, 0); SendMessageW(m_hWnd, TB_AUTOSIZE, 0, 0);
SendMessageW(m_hWnd, TB_GETMAXSIZE, 0, reinterpret_cast<LPARAM>(&maxSize)); SendMessageW(m_hWnd, TB_GETMAXSIZE, 0, reinterpret_cast<LPARAM>(&maxSize));
idealSize = maxSize; idealSize = maxSize;
SendMessageW(m_hWnd, TB_GETIDEALSIZE, FALSE, reinterpret_cast<LPARAM>(&idealSize)); SendMessageW(m_hWnd, TB_GETIDEALSIZE, FALSE, reinterpret_cast<LPARAM>(&idealSize));
// Obtain the button size, to be used as the integral size // Obtain the button size, to be used as the integral size
DWORD size = SendMessageW(m_hWnd, TB_GETBUTTONSIZE, 0, 0); DWORD size = SendMessageW(m_hWnd, TB_GETBUTTONSIZE, 0, 0);
itemSize.x = GET_X_LPARAM(size); itemSize.x = GET_X_LPARAM(size);
itemSize.y = GET_Y_LPARAM(size); itemSize.y = GET_Y_LPARAM(size);
@ -274,16 +274,16 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent)
if (pdbi->dwMask & DBIM_BKCOLOR) if (pdbi->dwMask & DBIM_BKCOLOR)
pdbi->dwMask &= ~DBIM_BKCOLOR; pdbi->dwMask &= ~DBIM_BKCOLOR;
return S_OK; return S_OK;
} }
return E_FAIL; return E_FAIL;
} }
/*****************************************************************************/ /*****************************************************************************/
// *** IPersistStream *** // *** IPersistStream ***
STDMETHODIMP CISFBand::GetClassID(OUT CLSID *pClassID) STDMETHODIMP CISFBand::GetClassID(OUT CLSID *pClassID)
{ {
*pClassID = CLSID_ISFBand; *pClassID = CLSID_ISFBand;
return S_OK; return S_OK;
@ -313,15 +313,15 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent)
STDMETHODIMP CISFBand::GetSizeMax(OUT ULARGE_INTEGER *pcbSize) STDMETHODIMP CISFBand::GetSizeMax(OUT ULARGE_INTEGER *pcbSize)
{ {
TRACE("CISFBand::GetSizeMax called\n"); TRACE("CISFBand::GetSizeMax called\n");
return S_OK; return S_OK;
} }
/*****************************************************************************/ /*****************************************************************************/
// *** IWinEventHandler *** // *** IWinEventHandler ***
STDMETHODIMP CISFBand::ContainsWindow(IN HWND hWnd) STDMETHODIMP CISFBand::ContainsWindow(IN HWND hWnd)
{ {
if (hWnd == m_hWnd || IsChild(hWnd)) if (hWnd == m_hWnd || IsChild(hWnd))
{ {
TRACE("CISFBand::ContainsWindow(0x%p) returns S_OK\n", hWnd); TRACE("CISFBand::ContainsWindow(0x%p) returns S_OK\n", hWnd);
@ -332,12 +332,12 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent)
} }
STDMETHODIMP CISFBand::OnWinEvent(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *theResult) STDMETHODIMP CISFBand::OnWinEvent(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *theResult)
{ {
switch (uMsg) switch (uMsg)
{ {
case WM_COMMAND: case WM_COMMAND:
{ {
TBBUTTON tb; TBBUTTON tb;
bool chk = SendMessage(m_hWnd, TB_GETBUTTON, LOWORD(wParam), (LPARAM)&tb); bool chk = SendMessage(m_hWnd, TB_GETBUTTON, LOWORD(wParam), (LPARAM)&tb);
if (chk) if (chk)
SHInvokeDefaultCommand(m_hWnd, m_pISF, (LPITEMIDLIST)tb.dwData); SHInvokeDefaultCommand(m_hWnd, m_pISF, (LPITEMIDLIST)tb.dwData);
@ -345,13 +345,13 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent)
if (theResult) if (theResult)
*theResult = TRUE; *theResult = TRUE;
break; break;
} }
case WM_NOTIFY: case WM_NOTIFY:
{ {
switch (((LPNMHDR)lParam)->code) switch (((LPNMHDR)lParam)->code)
{ {
case NM_RCLICK: case NM_RCLICK:
{ {
HRESULT hr; HRESULT hr;
POINT pt = ((LPNMMOUSE)lParam)->pt; POINT pt = ((LPNMMOUSE)lParam)->pt;
CComPtr<IContextMenu> picm; CComPtr<IContextMenu> picm;
@ -363,7 +363,6 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent)
if (chk) if (chk)
{ {
ClientToScreen(&pt);
hr = m_pISF->GetUIObjectOf(m_hWnd, 1, &pidl, IID_NULL_PPV_ARG(IContextMenu, &picm)); hr = m_pISF->GetUIObjectOf(m_hWnd, 1, &pidl, IID_NULL_PPV_ARG(IContextMenu, &picm));
if (FAILED_UNEXPECTEDLY(hr)) if (FAILED_UNEXPECTEDLY(hr))
return hr; return hr;
@ -387,7 +386,7 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent)
info.fMask |= CMIC_MASK_SHIFT_DOWN; info.fMask |= CMIC_MASK_SHIFT_DOWN;
} }
info.hwnd = m_hWnd; info.hwnd = m_hWnd;
info.lpVerb = MAKEINTRESOURCEA(id - 1); info.lpVerb = MAKEINTRESOURCEA(id - 1);
info.nShow = SW_SHOWNORMAL; info.nShow = SW_SHOWNORMAL;
info.ptInvoke = pt; info.ptInvoke = pt;
picm->InvokeCommand((LPCMINVOKECOMMANDINFO)&info); picm->InvokeCommand((LPCMINVOKECOMMANDINFO)&info);
@ -411,25 +410,25 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent)
*theResult = FALSE; *theResult = FALSE;
} }
return S_OK; return S_OK;
} }
STDMETHODIMP CISFBand::IsWindowOwner(HWND hWnd) STDMETHODIMP CISFBand::IsWindowOwner(HWND hWnd)
{ {
return (hWnd == m_hWnd) ? S_OK : S_FALSE; return (hWnd == m_hWnd) ? S_OK : S_FALSE;
} }
/*****************************************************************************/ /*****************************************************************************/
// *** IOleCommandTarget methods *** // *** IOleCommandTarget methods ***
STDMETHODIMP CISFBand::QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds [], OLECMDTEXT *pCmdText) STDMETHODIMP CISFBand::QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds [], OLECMDTEXT *pCmdText)
{ {
UNIMPLEMENTED; UNIMPLEMENTED;
return E_NOTIMPL; return E_NOTIMPL;
} }
STDMETHODIMP CISFBand::Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut) STDMETHODIMP CISFBand::Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut)
{ {
if (IsEqualIID(*pguidCmdGroup, IID_IBandSite)) if (IsEqualIID(*pguidCmdGroup, IID_IBandSite))
{ {
return S_OK; return S_OK;
@ -446,7 +445,7 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent)
} }
return S_OK; return S_OK;
} }
UNIMPLEMENTED; UNIMPLEMENTED;
return E_NOTIMPL; return E_NOTIMPL;
@ -511,20 +510,20 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent)
m_pISF = psf; m_pISF = psf;
} }
return S_OK; return S_OK;
} }
STDMETHODIMP CISFBand::SetBandInfoSFB( PBANDINFOSFB pbi) STDMETHODIMP CISFBand::SetBandInfoSFB( PBANDINFOSFB pbi)
{ {
if ((pbi->dwMask & ISFB_MASK_STATE) && if ((pbi->dwMask & ISFB_MASK_STATE) &&
(pbi->dwState & ISFB_STATE_QLINKSMODE) && (pbi->dwState & ISFB_STATE_QLINKSMODE) &&
(pbi->dwStateMask & ISFB_STATE_QLINKSMODE)) (pbi->dwStateMask & ISFB_STATE_QLINKSMODE))
{ {
m_QLaunch = true; m_QLaunch = true;
m_textFlag = false; m_textFlag = false;
if (m_hWnd) if (m_hWnd)
SendMessage(m_hWnd, TB_SETEXTENDEDSTYLE, 0, TBSTYLE_EX_MIXEDBUTTONS); SendMessage(m_hWnd, TB_SETEXTENDEDSTYLE, 0, TBSTYLE_EX_MIXEDBUTTONS);
} }
return E_NOTIMPL; return E_NOTIMPL;
@ -533,7 +532,7 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent)
/*****************************************************************************/ /*****************************************************************************/
// *** IContextMenu *** // *** IContextMenu ***
STDMETHODIMP CISFBand::GetCommandString(UINT_PTR idCmd, UINT uFlags, UINT *pwReserved, LPSTR pszName, UINT cchMax) STDMETHODIMP CISFBand::GetCommandString(UINT_PTR idCmd, UINT uFlags, UINT *pwReserved, LPSTR pszName, UINT cchMax)
{ {
/*HRESULT hr = E_INVALIDARG; /*HRESULT hr = E_INVALIDARG;
if (idCmd == IDM_DISPLAY) if (idCmd == IDM_DISPLAY)
@ -541,7 +540,7 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent)
switch (uFlags) switch (uFlags)
{ {
case GCS_HELPTEXTW: case GCS_HELPTEXTW:
// Only useful for pre-Vista versions of Windows that // Only useful for pre-Vista versions of Windows that
// have a Status bar. // have a Status bar.
hr = StringCchCopyW(reinterpret_cast<PWSTR>(pszName), hr = StringCchCopyW(reinterpret_cast<PWSTR>(pszName),
cchMax, cchMax,
@ -564,13 +563,13 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent)
} }
STDMETHODIMP CISFBand::InvokeCommand(LPCMINVOKECOMMANDINFO pici) STDMETHODIMP CISFBand::InvokeCommand(LPCMINVOKECOMMANDINFO pici)
{ {
if (!HIWORD(pici->lpVerb)) if (!HIWORD(pici->lpVerb))
{ {
switch (LOWORD(pici->lpVerb)) switch (LOWORD(pici->lpVerb))
{ {
case IDM_LARGE_ICONS: case IDM_LARGE_ICONS:
{ {
m_iconFlag = false; m_iconFlag = false;
HIMAGELIST* piml = (HIMAGELIST*) SendMessage(m_hWnd, TB_GETIMAGELIST, 0, 0); HIMAGELIST* piml = (HIMAGELIST*) SendMessage(m_hWnd, TB_GETIMAGELIST, 0, 0);
@ -582,7 +581,7 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent)
break; break;
} }
case IDM_SMALL_ICONS: case IDM_SMALL_ICONS:
{ {
m_iconFlag = true; m_iconFlag = true;
HIMAGELIST* piml = (HIMAGELIST*)SendMessage(m_hWnd, TB_GETIMAGELIST, 0, 0); HIMAGELIST* piml = (HIMAGELIST*)SendMessage(m_hWnd, TB_GETIMAGELIST, 0, 0);
@ -611,17 +610,17 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent)
break; break;
} }
case IDM_SHOW_TEXT: case IDM_SHOW_TEXT:
{ {
if (m_textFlag) if (m_textFlag)
{ {
m_textFlag = false; m_textFlag = false;
SendMessage(m_hWnd, TB_SETEXTENDEDSTYLE, 0, TBSTYLE_EX_MIXEDBUTTONS); SendMessage(m_hWnd, TB_SETEXTENDEDSTYLE, 0, TBSTYLE_EX_MIXEDBUTTONS);
HRESULT hr = IUnknown_Exec(m_Site, IID_IDeskBand, DBID_BANDINFOCHANGED, 0, NULL, NULL); HRESULT hr = IUnknown_Exec(m_Site, IID_IDeskBand, DBID_BANDINFOCHANGED, 0, NULL, NULL);
if (FAILED_UNEXPECTEDLY(hr)) return hr; if (FAILED_UNEXPECTEDLY(hr)) return hr;
} }
else else
{ {
m_textFlag = true; m_textFlag = true;
SendMessage(m_hWnd, TB_SETEXTENDEDSTYLE, 0, 0); SendMessage(m_hWnd, TB_SETEXTENDEDSTYLE, 0, 0);
HRESULT hr = IUnknown_Exec(m_Site, IID_IDeskBand, DBID_BANDINFOCHANGED, 0, NULL, NULL); HRESULT hr = IUnknown_Exec(m_Site, IID_IDeskBand, DBID_BANDINFOCHANGED, 0, NULL, NULL);
if (FAILED_UNEXPECTEDLY(hr)) return hr; if (FAILED_UNEXPECTEDLY(hr)) return hr;
@ -637,12 +636,12 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent)
} }
STDMETHODIMP CISFBand::QueryContextMenu(HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags) STDMETHODIMP CISFBand::QueryContextMenu(HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags)
{ {
HMENU qMenu = LoadMenu(GetModuleHandleW(L"browseui.dll"), MAKEINTRESOURCE(IDM_POPUPMENU)); HMENU qMenu = LoadMenu(GetModuleHandleW(L"browseui.dll"), MAKEINTRESOURCE(IDM_POPUPMENU));
if(m_textFlag) if(m_textFlag)
CheckMenuItem(qMenu, IDM_SHOW_TEXT, MF_CHECKED); CheckMenuItem(qMenu, IDM_SHOW_TEXT, MF_CHECKED);
else else
CheckMenuItem(qMenu, IDM_SHOW_TEXT, MF_UNCHECKED); CheckMenuItem(qMenu, IDM_SHOW_TEXT, MF_UNCHECKED);
if (m_iconFlag) if (m_iconFlag)
@ -661,7 +660,7 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent)
UINT idMax = Shell_MergeMenus(hmenu, GetSubMenu(qMenu, 0), indexMenu, idCmdFirst, idCmdLast, MM_SUBMENUSHAVEIDS); UINT idMax = Shell_MergeMenus(hmenu, GetSubMenu(qMenu, 0), indexMenu, idCmdFirst, idCmdLast, MM_SUBMENUSHAVEIDS);
DestroyMenu(qMenu); DestroyMenu(qMenu);
return MAKE_HRESULT(SEVERITY_SUCCESS, 0, USHORT(idMax - idCmdFirst +1)); return MAKE_HRESULT(SEVERITY_SUCCESS, 0, USHORT(idMax - idCmdFirst +1));
} }
/*****************************************************************************/ /*****************************************************************************/