Changeset 720


Ignore:
Timestamp:
12/6/2008 1:04:51 AM (6 years ago)
Author:
lowjoel
Message:

-Renamed the variables to follow the rest of the project's conventions.
-Don't ownerdraw the menu when the drag-and-drop handler is called - somehow IContextMenu3 is not supported there.

Location:
branches/eraser6/ShellExt
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/eraser6/ShellExt/CtxMenu.cpp

    r719 r720  
    8484 
    8585namespace Eraser { 
    86     const wchar_t* CCtxMenu::m_szMenuTitle = L"Eraser"; 
     86    const wchar_t* CCtxMenu::MenuTitle = L"Eraser"; 
    8787 
    8888    HRESULT CCtxMenu::Initialize(LPCITEMIDLIST pidlFolder, LPDATAOBJECT pDataObj, 
     
    9090    { 
    9191        //Initialise member variables. 
    92         m_itemID = 0; 
     92        MenuID = 0; 
    9393         
    9494        //Determine where the shell extension was invoked from. 
     
    113113                return E_FAIL; 
    114114 
    115             m_szDestinationDirectory = dropTargetPath; 
     115            DragDropDestinationDirectory = dropTargetPath; 
    116116        } 
    117117 
     
    154154            } 
    155155 
    156             m_szSelectedFiles.push_back(std::wstring(buffer, charsWritten)); 
     156            SelectedFiles.push_back(std::wstring(buffer, charsWritten)); 
    157157        } 
    158158 
     
    199199            { 
    200200                std::auto_ptr<MENUITEMINFO> separator(GetSeparator()); 
    201                 InsertMenuItem(hSubmenu, 0, FALSE, separator); 
     201                InsertMenuItem(hSubmenu, 0, FALSE, separator.get()); 
    202202            } 
    203203 
     
    212212            mii.fMask = MIIM_SUBMENU | MIIM_STRING | MIIM_ID; 
    213213            mii.hSubMenu = hSubmenu; 
    214             mii.dwTypeData = const_cast<wchar_t*>(m_szMenuTitle); 
     214            mii.dwTypeData = const_cast<wchar_t*>(MenuTitle); 
    215215 
    216216            //Set the bitmap for the registered item. Vista machines will be set using a DIB, 
     
    226226                mii.hbmpUnchecked = GetMenuBitmap(); 
    227227            } 
    228             else 
     228            else if (InvokeReason != INVOKEREASON_DRAGDROP) 
    229229            { 
    230230                mii.fMask |= MIIM_FTYPE; 
     
    232232            } 
    233233 
    234             m_itemID = uMenuIndex++; 
    235             InsertMenuItem(hmenu, m_itemID, TRUE, &mii); 
     234            MenuID = uMenuIndex++; 
     235            InsertMenuItem(hmenu, MenuID, TRUE, &mii); 
    236236        } 
    237237 
     
    254254            { 
    255255                MEASUREITEMSTRUCT* mis = reinterpret_cast<MEASUREITEMSTRUCT*>(lParam); 
    256                 if (mis->CtlID == m_itemID) 
     256                if (mis->CtlID == MenuID) 
    257257                    handleResult = OnMeasureItem(mis->itemWidth, mis->itemHeight); 
    258258                else 
     
    264264            { 
    265265                DRAWITEMSTRUCT* dis = reinterpret_cast<DRAWITEMSTRUCT*>(lParam); 
    266                 if (dis->CtlID == m_itemID) 
     266                if (dis->CtlID == MenuID) 
    267267                    handleResult = OnDrawItem(dis->hDC, dis->rcItem, dis->itemAction, dis->itemState); 
    268268                else 
     
    287287        SelectObject(screenDC, font); 
    288288        SIZE textSize; 
    289         if (!GetTextExtentPoint32(screenDC, m_szMenuTitle, static_cast<DWORD>(wcslen(m_szMenuTitle)), &textSize)) 
     289        if (!GetTextExtentPoint32(screenDC, MenuTitle, static_cast<DWORD>(wcslen(MenuTitle)), &textSize)) 
    290290            return false; 
    291291 
     
    334334 
    335335        SIZE textSize; 
    336         if (!GetTextExtentPoint32(hdc, m_szMenuTitle, static_cast<DWORD>(wcslen(m_szMenuTitle)), &textSize)) 
     336        if (!GetTextExtentPoint32(hdc, MenuTitle, static_cast<DWORD>(wcslen(MenuTitle)), &textSize)) 
    337337            return false; 
    338338 
     
    342342        if (state & ODS_NOACCEL) 
    343343            flags |= DSS_HIDEPREFIX; 
    344         ::DrawState(hdc, NULL, NULL, reinterpret_cast<LPARAM>(m_szMenuTitle), wcslen(m_szMenuTitle), 
     344        ::DrawState(hdc, NULL, NULL, reinterpret_cast<LPARAM>(MenuTitle), wcslen(MenuTitle), 
    345345            rect.left, rect.top + (rect.bottom - rect.top - textSize.cy) / 2, textSize.cx, textSize.cy, flags); 
    346346        SetTextColor(hdc, oldColour); 
     
    431431 
    432432                //Add every item selected onto the command line. 
    433                 for (string_list::const_iterator i = m_szSelectedFiles.begin(); 
    434                     i != m_szSelectedFiles.end(); ++i) 
     433                for (string_list::const_iterator i = SelectedFiles.begin(); 
     434                    i != SelectedFiles.end(); ++i) 
    435435                { 
    436436                    //Check if the current item is a file or folder. 
     
    564564 
    565565        //Remove actions that don't apply to the current invocation reason. 
    566         for (std::list<std::wstring>::const_iterator i = m_szSelectedFiles.begin(); 
    567             i != m_szSelectedFiles.end(); ++i) 
     566        for (std::list<std::wstring>::const_iterator i = SelectedFiles.begin(); 
     567            i != SelectedFiles.end(); ++i) 
    568568        { 
    569569            //Remove trailing slashes if they are directories. 
  • branches/eraser6/ShellExt/CtxMenu.h

    r716 r720  
    9090 
    9191    protected: 
    92         InvokeReasons InvokeReason; 
     92        static const wchar_t*       MenuTitle; 
    9393 
    94         UINT        m_itemID; 
    95         string_list m_szSelectedFiles; 
    96         string_type m_szDestinationDirectory; 
    97         std::vector<Actions> VerbMenuIndices; 
    98  
    99         static const wchar_t* m_szMenuTitle; 
     94        InvokeReasons               InvokeReason; 
     95        UINT                        MenuID; 
     96        std::wstring                DragDropDestinationDirectory; 
     97        std::list<std::wstring>     SelectedFiles; 
     98        std::vector<Actions>        VerbMenuIndices; 
    10099 
    101100    public: 
Note: See TracChangeset for help on using the changeset viewer.