@@ -141,16 +141,16 @@ struct MenuCleanup
141141 }
142142 ~MenuCleanup ()
143143 {
144- if (m_hMenu)
145- {
146- DestroyMenu (m_hMenu);
147- m_hMenu = NULL ;
148- }
149144 if (m_pCM)
150145 {
151146 IUnknown_SetSite (m_pCM, NULL );
152147 m_pCM.Release ();
153148 }
149+ if (m_hMenu)
150+ {
151+ DestroyMenu (m_hMenu);
152+ m_hMenu = NULL ;
153+ }
154154 }
155155};
156156
@@ -497,7 +497,7 @@ class CDefView :
497497 LRESULT OnNotify (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled);
498498 LRESULT OnChangeNotify (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled);
499499 LRESULT OnUpdateStatusbar (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled);
500- LRESULT OnCustomItem (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled);
500+ LRESULT OnMenuMessage (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled);
501501 LRESULT OnSettingChange (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled);
502502 LRESULT OnInitMenuPopup (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled);
503503 LRESULT OnChangeCBChain (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled);
@@ -548,8 +548,8 @@ class CDefView :
548548 MESSAGE_HANDLER (SHV_CHANGE_NOTIFY, OnChangeNotify)
549549 MESSAGE_HANDLER (SHV_UPDATESTATUSBAR, OnUpdateStatusbar)
550550 MESSAGE_HANDLER (WM_CONTEXTMENU, OnContextMenu)
551- MESSAGE_HANDLER (WM_DRAWITEM, OnCustomItem )
552- MESSAGE_HANDLER (WM_MEASUREITEM, OnCustomItem )
551+ MESSAGE_HANDLER (WM_DRAWITEM, OnMenuMessage )
552+ MESSAGE_HANDLER (WM_MEASUREITEM, OnMenuMessage )
553553 MESSAGE_HANDLER (WM_SHOWWINDOW, OnShowWindow)
554554 MESSAGE_HANDLER (WM_GETDLGCODE, OnGetDlgCode)
555555 MESSAGE_HANDLER (WM_DESTROY, OnDestroy)
@@ -3009,30 +3009,17 @@ LRESULT CDefView::OnChangeNotify(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &
30093009 return TRUE ;
30103010}
30113011
3012- HRESULT SHGetMenuIdFromMenuMsg (UINT uMsg, LPARAM lParam, UINT *CmdId);
3013- HRESULT SHSetMenuIdInMenuMsg (UINT uMsg, LPARAM lParam, UINT CmdId);
3014-
3015- LRESULT CDefView::OnCustomItem (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
3012+ LRESULT CDefView::OnMenuMessage (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
30163013{
30173014 if (!m_pCM)
30183015 {
30193016 /* no menu */
30203017 ERR (" no context menu\n " );
30213018 return FALSE ;
30223019 }
3023-
3024- // lParam of WM_DRAWITEM WM_MEASUREITEM contains a menu id and
3025- // this also needs to be changed to a menu identifier offset
3026- UINT CmdID;
3027- HRESULT hres = SHGetMenuIdFromMenuMsg (uMsg, lParam, &CmdID);
3028- if (SUCCEEDED (hres))
3029- SHSetMenuIdInMenuMsg (uMsg, lParam, CmdID - CONTEXT_MENU_BASE_ID);
3030-
3031- /* Forward the message to the IContextMenu2 */
3032- LRESULT result;
3033- hres = SHForwardContextMenuMsg (m_pCM, uMsg, wParam, lParam, &result, TRUE );
3034-
3035- return (SUCCEEDED (hres));
3020+ LRESULT result = 0 ;
3021+ HRESULT hres = SHForwardContextMenuMsg (m_pCM, uMsg, wParam, lParam, &result, TRUE );
3022+ return SUCCEEDED (hres);
30363023}
30373024
30383025LRESULT CDefView::OnSettingChange (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
@@ -3049,10 +3036,12 @@ LRESULT CDefView::OnInitMenuPopup(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL
30493036{
30503037 HMENU hmenu = (HMENU) wParam;
30513038 int nPos = LOWORD (lParam);
3052- UINT menuItemId;
3039+ UINT menuItemId;
30533040
3041+ if (m_isEditing)
3042+ ListView_CancelEditLabel (m_ListView);
30543043 if (m_pCM)
3055- OnCustomItem (uMsg, wParam, lParam, bHandled);
3044+ OnMenuMessage (uMsg, wParam, lParam, bHandled);
30563045
30573046 HMENU hViewMenu = GetSubmenuByID (m_hMenu, FCIDM_MENU_VIEW);
30583047
0 commit comments