mirror of
https://github.com/reactos/reactos.git
synced 2025-06-27 22:59:42 +00:00
[RSHELL]
* Change C-style casts to static_cast where possible, and reinterpret_cast elsewhere. * Make coding style and formatting more consistent. svn path=/branches/shell-experiments/; revision=62239
This commit is contained in:
parent
46e9b4d1e3
commit
2b63295fea
5 changed files with 202 additions and 303 deletions
|
@ -163,7 +163,7 @@ static CDesktopBrowser *SHDESK_Create(HWND hWnd, LPCREATESTRUCT lpCreateStruct)
|
||||||
CComObject<CDesktopBrowser> *pThis;
|
CComObject<CDesktopBrowser> *pThis;
|
||||||
HRESULT hRet;
|
HRESULT hRet;
|
||||||
|
|
||||||
ShellDesk = (IShellDesktopTray *)lpCreateStruct->lpCreateParams;
|
ShellDesk = static_cast<IShellDesktopTray *>(lpCreateStruct->lpCreateParams);
|
||||||
if (ShellDesk == NULL)
|
if (ShellDesk == NULL)
|
||||||
{
|
{
|
||||||
WARN("No IShellDesk interface provided!");
|
WARN("No IShellDesk interface provided!");
|
||||||
|
@ -203,7 +203,7 @@ BOOL CDesktopBrowser::CreateDeskWnd()
|
||||||
|
|
||||||
fs.ViewMode = FVM_ICON;
|
fs.ViewMode = FVM_ICON;
|
||||||
fs.fFlags = FWF_DESKTOP | FWF_NOCLIENTEDGE | FWF_NOSCROLL | FWF_TRANSPARENT;
|
fs.fFlags = FWF_DESKTOP | FWF_NOCLIENTEDGE | FWF_NOSCROLL | FWF_TRANSPARENT;
|
||||||
hRet = DesktopView->CreateViewWindow(NULL, &fs, (IShellBrowser *)this, &rcClient, &hWndShellView);
|
hRet = DesktopView->CreateViewWindow(NULL, &fs, static_cast<IShellBrowser *>(this), &rcClient, &hWndShellView);
|
||||||
if (!SUCCEEDED(hRet))
|
if (!SUCCEEDED(hRet))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
|
@ -321,10 +321,7 @@ HRESULT STDMETHODCALLTYPE CDesktopBrowser::SendControlMsg(UINT id, UINT uMsg, WP
|
||||||
hWnd = DesktopGetWindowControl(id);
|
hWnd = DesktopGetWindowControl(id);
|
||||||
if (hWnd != NULL)
|
if (hWnd != NULL)
|
||||||
{
|
{
|
||||||
*pret = SendMessageW(hWnd,
|
*pret = SendMessageW(hWnd, uMsg, wParam, lParam);
|
||||||
uMsg,
|
|
||||||
wParam,
|
|
||||||
lParam);
|
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -395,8 +392,7 @@ LRESULT CALLBACK CDesktopBrowser::ProgmanWindowProc(IN HWND hwnd, IN UINT uMsg,
|
||||||
|
|
||||||
if (uMsg != WM_NCCREATE)
|
if (uMsg != WM_NCCREATE)
|
||||||
{
|
{
|
||||||
pThis = (CDesktopBrowser*)GetWindowLongPtrW(hwnd,
|
pThis = reinterpret_cast<CDesktopBrowser*>(GetWindowLongPtrW(hwnd, 0));
|
||||||
0);
|
|
||||||
if (pThis == NULL)
|
if (pThis == NULL)
|
||||||
goto DefMsgHandler;
|
goto DefMsgHandler;
|
||||||
}
|
}
|
||||||
|
@ -409,7 +405,7 @@ LRESULT CALLBACK CDesktopBrowser::ProgmanWindowProc(IN HWND hwnd, IN UINT uMsg,
|
||||||
return (LRESULT) PaintDesktop((HDC) wParam);
|
return (LRESULT) PaintDesktop((HDC) wParam);
|
||||||
|
|
||||||
case WM_GETISHELLBROWSER:
|
case WM_GETISHELLBROWSER:
|
||||||
Ret = (LRESULT)((IShellBrowser *)pThis);
|
Ret = reinterpret_cast<LRESULT>(static_cast<IShellBrowser *>(pThis));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WM_SIZE:
|
case WM_SIZE:
|
||||||
|
@ -560,7 +556,7 @@ HANDLE WINAPI SHCreateDesktop(IShellDesktopTray *ShellDesk)
|
||||||
*/
|
*/
|
||||||
BOOL WINAPI SHDesktopMessageLoop(HANDLE hDesktop)
|
BOOL WINAPI SHDesktopMessageLoop(HANDLE hDesktop)
|
||||||
{
|
{
|
||||||
CDesktopBrowser *Desk = (CDesktopBrowser *)hDesktop;
|
CDesktopBrowser *Desk = reinterpret_cast<CDesktopBrowser *>(hDesktop);
|
||||||
|
|
||||||
if (Desk == NULL || Desk->Tag != SHDESK_TAG)
|
if (Desk == NULL || Desk->Tag != SHDESK_TAG)
|
||||||
{
|
{
|
||||||
|
|
|
@ -56,6 +56,7 @@ public:
|
||||||
HRESULT OnHotItemChange(const NMTBHOTITEM * hot);
|
HRESULT OnHotItemChange(const NMTBHOTITEM * hot);
|
||||||
|
|
||||||
HRESULT PopupSubMenu(UINT index, IShellMenu* childShellMenu);
|
HRESULT PopupSubMenu(UINT index, IShellMenu* childShellMenu);
|
||||||
|
HRESULT DoContextMenu(IContextMenu* contextMenu);
|
||||||
|
|
||||||
static LRESULT CALLBACK s_SubclassProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
static LRESULT CALLBACK s_SubclassProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
||||||
protected:
|
protected:
|
||||||
|
@ -281,7 +282,7 @@ public:
|
||||||
END_COM_MAP()
|
END_COM_MAP()
|
||||||
|
|
||||||
private:
|
private:
|
||||||
HRESULT _CallCB(UINT uMsg, WPARAM wParam, LPARAM lParam);
|
HRESULT _CallCB(UINT uMsg, WPARAM wParam, LPARAM lParam, UINT id = 0, LPITEMIDLIST pidl = NULL);
|
||||||
};
|
};
|
||||||
|
|
||||||
extern "C"
|
extern "C"
|
||||||
|
@ -850,14 +851,14 @@ HRESULT CMenuToolbarBase::Close()
|
||||||
HRESULT CMenuToolbarBase::CreateToolbar(HWND hwndParent, DWORD dwFlags)
|
HRESULT CMenuToolbarBase::CreateToolbar(HWND hwndParent, DWORD dwFlags)
|
||||||
{
|
{
|
||||||
LONG tbStyles = WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN |
|
LONG tbStyles = WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN |
|
||||||
TBSTYLE_TOOLTIPS | TBSTYLE_TRANSPARENT | TBSTYLE_REGISTERDROP | TBSTYLE_LIST | TBSTYLE_FLAT |
|
TBSTYLE_TOOLTIPS | TBSTYLE_TRANSPARENT | TBSTYLE_REGISTERDROP | TBSTYLE_LIST | TBSTYLE_FLAT | TBSTYLE_CUSTOMERASE |
|
||||||
CCS_NODIVIDER | CCS_NOPARENTALIGN | CCS_NORESIZE | CCS_TOP;
|
CCS_NODIVIDER | CCS_NOPARENTALIGN | CCS_NORESIZE | CCS_TOP;
|
||||||
LONG tbExStyles = TBSTYLE_EX_DOUBLEBUFFER;
|
LONG tbExStyles = TBSTYLE_EX_DOUBLEBUFFER;
|
||||||
|
|
||||||
if (dwFlags & SMINIT_VERTICAL)
|
if (dwFlags & SMINIT_VERTICAL)
|
||||||
{
|
{
|
||||||
tbStyles |= CCS_VERT;
|
tbStyles |= CCS_VERT;
|
||||||
tbExStyles |= TBSTYLE_EX_VERTICAL;
|
tbExStyles |= TBSTYLE_EX_VERTICAL | WS_EX_TOOLWINDOW;
|
||||||
}
|
}
|
||||||
|
|
||||||
RECT rc;
|
RECT rc;
|
||||||
|
@ -921,7 +922,7 @@ HRESULT CMenuToolbarBase::GetWindow(HWND *phwnd)
|
||||||
|
|
||||||
LRESULT CALLBACK CMenuToolbarBase::s_SubclassProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
LRESULT CALLBACK CMenuToolbarBase::s_SubclassProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
CMenuToolbarBase * pthis = (CMenuToolbarBase *) GetWindowLongPtr(hWnd, GWLP_USERDATA);
|
CMenuToolbarBase * pthis = reinterpret_cast<CMenuToolbarBase *>(GetWindowLongPtr(hWnd, GWLP_USERDATA));
|
||||||
return pthis->SubclassProc(hWnd, uMsg, wParam, lParam);
|
return pthis->SubclassProc(hWnd, uMsg, wParam, lParam);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1023,6 +1024,36 @@ HRESULT CMenuToolbarBase::PopupSubMenu(UINT index, IShellMenu* childShellMenu)
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HRESULT CMenuToolbarBase::DoContextMenu(IContextMenu* contextMenu)
|
||||||
|
{
|
||||||
|
HRESULT hr;
|
||||||
|
HMENU hPopup = CreatePopupMenu();
|
||||||
|
|
||||||
|
if (hPopup == NULL)
|
||||||
|
return E_FAIL;
|
||||||
|
|
||||||
|
hr = contextMenu->QueryContextMenu(hPopup, 0, 0, UINT_MAX, CMF_NORMAL);
|
||||||
|
if (FAILED(hr))
|
||||||
|
{
|
||||||
|
DestroyMenu(hPopup);
|
||||||
|
return hr;
|
||||||
|
}
|
||||||
|
|
||||||
|
DWORD dwPos = GetMessagePos();
|
||||||
|
UINT uCommand = ::TrackPopupMenu(hPopup, TPM_RETURNCMD, GET_X_LPARAM(dwPos), GET_Y_LPARAM(dwPos), 0, m_hwnd, NULL);
|
||||||
|
if (uCommand == 0)
|
||||||
|
return S_FALSE;
|
||||||
|
|
||||||
|
CMINVOKECOMMANDINFO cmi = { 0 };
|
||||||
|
cmi.cbSize = sizeof(cmi);
|
||||||
|
cmi.lpVerb = MAKEINTRESOURCEA(uCommand);
|
||||||
|
cmi.hwnd = m_hwnd;
|
||||||
|
hr = contextMenu->InvokeCommand(&cmi);
|
||||||
|
|
||||||
|
DestroyMenu(hPopup);
|
||||||
|
return hr;
|
||||||
|
}
|
||||||
|
|
||||||
BOOL
|
BOOL
|
||||||
AllocAndGetMenuString(HMENU hMenu, UINT ItemIDByPosition, WCHAR** String)
|
AllocAndGetMenuString(HMENU hMenu, UINT ItemIDByPosition, WCHAR** String)
|
||||||
{
|
{
|
||||||
|
@ -1095,7 +1126,7 @@ HRESULT CMenuStaticToolbar::FillToolbar()
|
||||||
if (!AllocAndGetMenuString(m_hmenu, i, &MenuString))
|
if (!AllocAndGetMenuString(m_hmenu, i, &MenuString))
|
||||||
return E_OUTOFMEMORY;
|
return E_OUTOFMEMORY;
|
||||||
if (::GetSubMenu(m_hmenu, i) != NULL)
|
if (::GetSubMenu(m_hmenu, i) != NULL)
|
||||||
tbb.fsStyle |= BTNS_WHOLEDROPDOWN;
|
tbb.fsStyle |= BTNS_DROPDOWN;
|
||||||
tbb.iString = (INT_PTR) MenuString;
|
tbb.iString = (INT_PTR) MenuString;
|
||||||
tbb.idCommand = info.wID;
|
tbb.idCommand = info.wID;
|
||||||
|
|
||||||
|
@ -1126,47 +1157,7 @@ HRESULT CMenuStaticToolbar::OnContextMenu(NMMOUSE * rclick)
|
||||||
if (hr != S_OK)
|
if (hr != S_OK)
|
||||||
return hr;
|
return hr;
|
||||||
|
|
||||||
HMENU hPopup = CreatePopupMenu();
|
return DoContextMenu(contextMenu);
|
||||||
|
|
||||||
if (hPopup == NULL)
|
|
||||||
return E_FAIL;
|
|
||||||
|
|
||||||
int ID_SHELL_CMD_FIRST = 0xF;
|
|
||||||
int ID_SHELL_CMD_LAST = 0x7fef;
|
|
||||||
hr = contextMenu->QueryContextMenu(hPopup, 0, ID_SHELL_CMD_FIRST, ID_SHELL_CMD_LAST, CMF_VERBSONLY);
|
|
||||||
if (FAILED(hr))
|
|
||||||
{
|
|
||||||
DestroyMenu(hPopup);
|
|
||||||
return hr;
|
|
||||||
}
|
|
||||||
|
|
||||||
POINT pt = rclick->pt;
|
|
||||||
if (!ClientToScreen(m_hwnd, &pt))
|
|
||||||
{
|
|
||||||
DestroyMenu(hPopup);
|
|
||||||
return HRESULT_FROM_WIN32(GetLastError());
|
|
||||||
}
|
|
||||||
|
|
||||||
CComPtr<IOleWindow> site;
|
|
||||||
hr = m_menuBand->GetSite(IID_PPV_ARG(IOleWindow, &site));
|
|
||||||
if (FAILED(hr))
|
|
||||||
{
|
|
||||||
DestroyMenu(hPopup);
|
|
||||||
return hr;
|
|
||||||
}
|
|
||||||
|
|
||||||
HWND hwndSite;
|
|
||||||
hr = site->GetWindow(&hwndSite);
|
|
||||||
if (FAILED(hr))
|
|
||||||
{
|
|
||||||
DestroyMenu(hPopup);
|
|
||||||
return hr;
|
|
||||||
}
|
|
||||||
|
|
||||||
::TrackPopupMenu(hPopup, 0, pt.x, pt.y, 0, hwndSite, NULL);
|
|
||||||
|
|
||||||
DestroyMenu(hPopup);
|
|
||||||
return S_OK;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT CMenuStaticToolbar::OnCommand(WPARAM wParam, LPARAM lParam, LRESULT *theResult)
|
HRESULT CMenuStaticToolbar::OnCommand(WPARAM wParam, LPARAM lParam, LRESULT *theResult)
|
||||||
|
@ -1246,7 +1237,7 @@ HRESULT CMenuSFToolbar::FillToolbar()
|
||||||
|
|
||||||
if (attrs != 0)
|
if (attrs != 0)
|
||||||
{
|
{
|
||||||
tbb.fsStyle |= BTNS_WHOLEDROPDOWN;
|
tbb.fsStyle |= BTNS_DROPDOWN;
|
||||||
}
|
}
|
||||||
|
|
||||||
tbb.idCommand = i++;
|
tbb.idCommand = i++;
|
||||||
|
@ -1325,53 +1316,14 @@ LPITEMIDLIST CMenuSFToolbar::GetPidlFromId(UINT uItem, INT* pIndex)
|
||||||
HRESULT CMenuSFToolbar::OnContextMenu(NMMOUSE * rclick)
|
HRESULT CMenuSFToolbar::OnContextMenu(NMMOUSE * rclick)
|
||||||
{
|
{
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
CComPtr<IOleWindow> site;
|
|
||||||
CComPtr<IContextMenu> contextMenu;
|
CComPtr<IContextMenu> contextMenu;
|
||||||
|
LPCITEMIDLIST pidl = reinterpret_cast<LPCITEMIDLIST>(rclick->dwItemData);
|
||||||
|
|
||||||
hr = m_menuBand->GetSite(IID_PPV_ARG(IOleWindow, &site));
|
hr = m_shellFolder->GetUIObjectOf(m_hwnd, 1, &pidl, IID_IContextMenu, NULL, reinterpret_cast<VOID **>(&contextMenu));
|
||||||
if (FAILED(hr))
|
|
||||||
{
|
|
||||||
return hr;
|
|
||||||
}
|
|
||||||
|
|
||||||
HWND hwndSite;
|
|
||||||
hr = site->GetWindow(&hwndSite);
|
|
||||||
if (FAILED(hr))
|
|
||||||
{
|
|
||||||
return hr;
|
|
||||||
}
|
|
||||||
|
|
||||||
LPITEMIDLIST pidl = GetPidlFromId(rclick->dwItemData, NULL);
|
|
||||||
|
|
||||||
hr = m_shellFolder->GetUIObjectOf(hwndSite, 1, (LPCITEMIDLIST *) &pidl, IID_IContextMenu, NULL, (PVOID *) &contextMenu);
|
|
||||||
if (hr != S_OK)
|
if (hr != S_OK)
|
||||||
return hr;
|
return hr;
|
||||||
|
|
||||||
HMENU hPopup = CreatePopupMenu();
|
return DoContextMenu(contextMenu);
|
||||||
|
|
||||||
if (hPopup == NULL)
|
|
||||||
return E_FAIL;
|
|
||||||
|
|
||||||
int ID_SHELL_CMD_FIRST = 0xF;
|
|
||||||
int ID_SHELL_CMD_LAST = 0x7fef;
|
|
||||||
hr = contextMenu->QueryContextMenu(hPopup, 0, ID_SHELL_CMD_FIRST, ID_SHELL_CMD_LAST, CMF_VERBSONLY);
|
|
||||||
if (FAILED(hr))
|
|
||||||
{
|
|
||||||
DestroyMenu(hPopup);
|
|
||||||
return hr;
|
|
||||||
}
|
|
||||||
|
|
||||||
POINT pt = rclick->pt;
|
|
||||||
if (!ClientToScreen(m_hwnd, &pt))
|
|
||||||
{
|
|
||||||
DestroyMenu(hPopup);
|
|
||||||
return HRESULT_FROM_WIN32(GetLastError());
|
|
||||||
}
|
|
||||||
|
|
||||||
::TrackPopupMenu(hPopup, 0, pt.x, pt.y, 0, hwndSite, NULL);
|
|
||||||
|
|
||||||
DestroyMenu(hPopup);
|
|
||||||
return S_OK;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT CMenuSFToolbar::OnCommand(WPARAM wParam, LPARAM lParam, LRESULT *theResult)
|
HRESULT CMenuSFToolbar::OnCommand(WPARAM wParam, LPARAM lParam, LRESULT *theResult)
|
||||||
|
@ -1581,8 +1533,6 @@ HRESULT STDMETHODCALLTYPE CMenuBand::GetWindow(
|
||||||
|
|
||||||
HRESULT STDMETHODCALLTYPE CMenuBand::OnPosRectChangeDB(RECT *prc)
|
HRESULT STDMETHODCALLTYPE CMenuBand::OnPosRectChangeDB(RECT *prc)
|
||||||
{
|
{
|
||||||
SIZE sizeStaticX = { 0 };
|
|
||||||
SIZE sizeShlFldX = { 0 };
|
|
||||||
SIZE sizeStaticY = { 0 };
|
SIZE sizeStaticY = { 0 };
|
||||||
SIZE sizeShlFldY = { 0 };
|
SIZE sizeShlFldY = { 0 };
|
||||||
HWND hwndStatic = NULL;
|
HWND hwndStatic = NULL;
|
||||||
|
@ -1604,8 +1554,6 @@ HRESULT STDMETHODCALLTYPE CMenuBand::OnPosRectChangeDB(RECT *prc)
|
||||||
|
|
||||||
if (hwndStatic) SendMessageW(hwndStatic, TB_GETIDEALSIZE, TRUE, (LPARAM) &sizeStaticY);
|
if (hwndStatic) SendMessageW(hwndStatic, TB_GETIDEALSIZE, TRUE, (LPARAM) &sizeStaticY);
|
||||||
if (hwndShlFld) SendMessageW(hwndShlFld, TB_GETIDEALSIZE, TRUE, (LPARAM) &sizeShlFldY);
|
if (hwndShlFld) SendMessageW(hwndShlFld, TB_GETIDEALSIZE, TRUE, (LPARAM) &sizeShlFldY);
|
||||||
if (hwndStatic) SendMessageW(hwndStatic, TB_GETIDEALSIZE, FALSE, (LPARAM) &sizeStaticX);
|
|
||||||
if (hwndShlFld) SendMessageW(hwndShlFld, TB_GETIDEALSIZE, FALSE, (LPARAM) &sizeShlFldX);
|
|
||||||
|
|
||||||
int sy = max(prc->bottom - prc->top, sizeStaticY.cy + sizeShlFldY.cy);
|
int sy = max(prc->bottom - prc->top, sizeStaticY.cy + sizeShlFldY.cy);
|
||||||
|
|
||||||
|
@ -1958,14 +1906,14 @@ HRESULT STDMETHODCALLTYPE CMenuBand::OnWinEvent(HWND hWnd, UINT uMsg, WPARAM wPa
|
||||||
return S_OK;
|
return S_OK;
|
||||||
|
|
||||||
case WM_NOTIFY:
|
case WM_NOTIFY:
|
||||||
NMHDR * hdr = (LPNMHDR) lParam;
|
NMHDR * hdr = reinterpret_cast<LPNMHDR>(lParam);
|
||||||
NMTBCUSTOMDRAW * cdraw;
|
NMTBCUSTOMDRAW * cdraw;
|
||||||
NMTBHOTITEM * hot;
|
NMTBHOTITEM * hot;
|
||||||
NMMOUSE * rclick;
|
NMMOUSE * rclick;
|
||||||
switch (hdr->code)
|
switch (hdr->code)
|
||||||
{
|
{
|
||||||
case TBN_HOTITEMCHANGE:
|
case TBN_HOTITEMCHANGE:
|
||||||
hot = (NMTBHOTITEM*) hdr;
|
hot = reinterpret_cast<LPNMTBHOTITEM>(hdr);
|
||||||
|
|
||||||
if (m_staticToolbar && m_staticToolbar->IsWindowOwner(hWnd))
|
if (m_staticToolbar && m_staticToolbar->IsWindowOwner(hWnd))
|
||||||
{
|
{
|
||||||
|
@ -1980,7 +1928,7 @@ HRESULT STDMETHODCALLTYPE CMenuBand::OnWinEvent(HWND hWnd, UINT uMsg, WPARAM wPa
|
||||||
return S_OK;
|
return S_OK;
|
||||||
|
|
||||||
case NM_RCLICK:
|
case NM_RCLICK:
|
||||||
rclick = (LPNMMOUSE) hdr;
|
rclick = reinterpret_cast<LPNMMOUSE>(hdr);
|
||||||
|
|
||||||
if (m_staticToolbar && m_staticToolbar->IsWindowOwner(hWnd))
|
if (m_staticToolbar && m_staticToolbar->IsWindowOwner(hWnd))
|
||||||
{
|
{
|
||||||
|
@ -1994,7 +1942,7 @@ HRESULT STDMETHODCALLTYPE CMenuBand::OnWinEvent(HWND hWnd, UINT uMsg, WPARAM wPa
|
||||||
|
|
||||||
return S_OK;
|
return S_OK;
|
||||||
case NM_CUSTOMDRAW:
|
case NM_CUSTOMDRAW:
|
||||||
cdraw = (LPNMTBCUSTOMDRAW) hdr;
|
cdraw = reinterpret_cast<LPNMTBCUSTOMDRAW>(hdr);
|
||||||
switch (cdraw->nmcd.dwDrawStage)
|
switch (cdraw->nmcd.dwDrawStage)
|
||||||
{
|
{
|
||||||
case CDDS_PREPAINT:
|
case CDDS_PREPAINT:
|
||||||
|
@ -2121,35 +2069,17 @@ HRESULT STDMETHODCALLTYPE CMenuBand::IsEmpty(THIS)
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT CMenuBand::CallCBWithId(UINT Id, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
HRESULT CMenuBand::CallCBWithId(UINT id, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
if (!m_psmc)
|
return _CallCB(uMsg, wParam, lParam, id);
|
||||||
return S_FALSE;
|
|
||||||
|
|
||||||
HWND hwnd;
|
|
||||||
GetWindow(&hwnd);
|
|
||||||
|
|
||||||
SMDATA smData = { 0 };
|
|
||||||
smData.punk = (IShellMenu2*)this;
|
|
||||||
smData.uId = Id;
|
|
||||||
smData.uIdParent = m_uId;
|
|
||||||
smData.uIdAncestor = m_uIdAncestor;
|
|
||||||
smData.hwnd = hwnd;
|
|
||||||
if (m_staticToolbar)
|
|
||||||
{
|
|
||||||
smData.hmenu = m_hmenu;
|
|
||||||
}
|
|
||||||
smData.pvUserData = NULL;
|
|
||||||
if (m_SFToolbar)
|
|
||||||
m_SFToolbar->GetShellFolder(NULL, &smData.pidlFolder, IID_PPV_ARG(IShellFolder, &smData.psf));
|
|
||||||
HRESULT hr = m_psmc->CallbackSM(&smData, uMsg, wParam, lParam);
|
|
||||||
ILFree(smData.pidlFolder);
|
|
||||||
if (smData.psf)
|
|
||||||
smData.psf->Release();
|
|
||||||
return hr;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT CMenuBand::CallCBWithPidl(LPITEMIDLIST pidl, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
HRESULT CMenuBand::CallCBWithPidl(LPITEMIDLIST pidl, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||||
|
{
|
||||||
|
return _CallCB(uMsg, wParam, lParam, 0, pidl);
|
||||||
|
}
|
||||||
|
|
||||||
|
HRESULT CMenuBand::_CallCB(UINT uMsg, WPARAM wParam, LPARAM lParam, UINT id, LPITEMIDLIST pidl)
|
||||||
{
|
{
|
||||||
if (!m_psmc)
|
if (!m_psmc)
|
||||||
return S_FALSE;
|
return S_FALSE;
|
||||||
|
@ -2158,7 +2088,8 @@ HRESULT CMenuBand::CallCBWithPidl(LPITEMIDLIST pidl, UINT uMsg, WPARAM wParam, L
|
||||||
GetWindow(&hwnd);
|
GetWindow(&hwnd);
|
||||||
|
|
||||||
SMDATA smData = { 0 };
|
SMDATA smData = { 0 };
|
||||||
smData.punk = (IShellMenu2*)this;
|
smData.punk = static_cast<IShellMenu2*>(this);
|
||||||
|
smData.uId = id;
|
||||||
smData.uIdParent = m_uId;
|
smData.uIdParent = m_uId;
|
||||||
smData.uIdAncestor = m_uIdAncestor;
|
smData.uIdAncestor = m_uIdAncestor;
|
||||||
smData.hwnd = hwnd;
|
smData.hwnd = hwnd;
|
||||||
|
@ -2176,31 +2107,4 @@ HRESULT CMenuBand::CallCBWithPidl(LPITEMIDLIST pidl, UINT uMsg, WPARAM wParam, L
|
||||||
smData.psf->Release();
|
smData.psf->Release();
|
||||||
return hr;
|
return hr;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT CMenuBand::_CallCB(UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|
||||||
{
|
|
||||||
if (!m_psmc)
|
|
||||||
return S_FALSE;
|
|
||||||
|
|
||||||
HWND hwnd;
|
|
||||||
GetWindow(&hwnd);
|
|
||||||
|
|
||||||
SMDATA smData = { 0 };
|
|
||||||
smData.punk = (IShellMenu2*)this;
|
|
||||||
smData.uIdParent = m_uId;
|
|
||||||
smData.uIdAncestor = m_uIdAncestor;
|
|
||||||
smData.hwnd = hwnd;
|
|
||||||
if (m_staticToolbar)
|
|
||||||
{
|
|
||||||
smData.hmenu = m_hmenu;
|
|
||||||
}
|
|
||||||
smData.pvUserData = NULL;
|
|
||||||
if (m_SFToolbar)
|
|
||||||
m_SFToolbar->GetShellFolder(NULL, &smData.pidlFolder, IID_PPV_ARG(IShellFolder, &smData.psf));
|
|
||||||
HRESULT hr = m_psmc->CallbackSM(&smData, uMsg, wParam, lParam);
|
|
||||||
ILFree(smData.pidlFolder);
|
|
||||||
if (smData.psf)
|
|
||||||
smData.psf->Release();
|
|
||||||
return hr;
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
|
@ -58,7 +58,7 @@ public:
|
||||||
CMenuSite();
|
CMenuSite();
|
||||||
~CMenuSite() {}
|
~CMenuSite() {}
|
||||||
|
|
||||||
DECLARE_WND_CLASS_EX(_T("MenuSite"), 0, COLOR_WINDOW)
|
DECLARE_WND_CLASS_EX(_T("MenuSite"), 0, COLOR_MENU)
|
||||||
|
|
||||||
DECLARE_NOT_AGGREGATABLE(CMenuSite)
|
DECLARE_NOT_AGGREGATABLE(CMenuSite)
|
||||||
DECLARE_PROTECT_FINAL_CONSTRUCT()
|
DECLARE_PROTECT_FINAL_CONSTRUCT()
|
||||||
|
@ -119,7 +119,7 @@ public:
|
||||||
virtual HRESULT STDMETHODCALLTYPE SetModeDBC(DWORD dwMode);
|
virtual HRESULT STDMETHODCALLTYPE SetModeDBC(DWORD dwMode);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
IUnknown * ToIUnknown() { return (IDeskBarClient*)this; }
|
IUnknown * ToIUnknown() { return static_cast<IDeskBarClient*>(this); }
|
||||||
};
|
};
|
||||||
|
|
||||||
extern "C"
|
extern "C"
|
||||||
|
@ -421,6 +421,7 @@ BOOL CMenuSite::ProcessWindowMessage(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM
|
||||||
{
|
{
|
||||||
RECT Rect = { 0 };
|
RECT Rect = { 0 };
|
||||||
GetClientRect(&Rect);
|
GetClientRect(&Rect);
|
||||||
|
Rect.right = Rect.right;
|
||||||
pMenuPopup->OnPosRectChangeDB(&Rect);
|
pMenuPopup->OnPosRectChangeDB(&Rect);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -428,7 +429,7 @@ BOOL CMenuSite::ProcessWindowMessage(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM
|
||||||
lResult = 1;
|
lResult = 1;
|
||||||
break;
|
break;
|
||||||
case WM_NOTIFY:
|
case WM_NOTIFY:
|
||||||
hWndTarget = ((NMHDR *)lParam)->hwndFrom;
|
hWndTarget = reinterpret_cast<LPNMHDR>(lParam)->hwndFrom;
|
||||||
break;
|
break;
|
||||||
case WM_COMMAND:
|
case WM_COMMAND:
|
||||||
hWndTarget = (HWND) lParam;
|
hWndTarget = (HWND) lParam;
|
||||||
|
|
|
@ -260,9 +260,7 @@ public:
|
||||||
|
|
||||||
extern "C"
|
extern "C"
|
||||||
HRESULT
|
HRESULT
|
||||||
CStartMenu_Constructor(
|
CStartMenu_Constructor(REFIID riid, void **ppv)
|
||||||
REFIID riid,
|
|
||||||
void **ppv)
|
|
||||||
{
|
{
|
||||||
IShellMenu* pShellMenu;
|
IShellMenu* pShellMenu;
|
||||||
IBandSite* pBandSite;
|
IBandSite* pBandSite;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue