Esempio n. 1
0
IFACEMETHODIMP ComposerShellMenu::QueryContextMenu(
    HMENU hMenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags)
{
    
    // Do nothing if uFlags include CMF_DEFAULTONLY.
    if (CMF_DEFAULTONLY & uFlags)
        return S_OK;
    
    // See if we have already written the menu.
    if (MenuExists(hMenu))
        return S_OK;

    // Get the target directory and status
    HRESULT hr = GetTargetData();
    if (SUCCEEDED(hr))
    {
        DWORD result = 0;
        if (!MenuBuild(hMenu, indexMenu, idCmdFirst, &result))
        {
            hr = HRESULT_FROM_WIN32(result);
        }
        else
        {
            hr = MAKE_HRESULT(SEVERITY_SUCCESS, 0, USHORT(result));
        }
    }
        
    return hr;
}
Esempio n. 2
0
// update one of the core menus
void Menu_Update(int id)
{
    switch (id)
    {
        case MENU_UPD_ROOT:
            // right click menu or any of its submenus
            if (MenuExists("Core_root")) {
                ShowMenu(MakeRootMenu("root", menuPath(NULL),
                    default_root_menu, false));
                break;
            }
            // fall though
        case MENU_UPD_CONFIG:
            // the core config menu
            if (MenuExists("Core_configuration"))
                ShowMenu(MakeConfigMenu(false));
            break;

        case MENU_UPD_TASKS:
            // desktop workspaces menu etc.
            if (MenuExists("Core_tasks"))
            {
                if (MenuExists("Core_tasks_workspace"))
                    ShowMenu(MakeDesktopMenu(0, false));
                else
                if (MenuExists("Core_tasks_icons"))
                    ShowMenu(MakeDesktopMenu(1, false));

                if (MenuExists("Core_tasks_menu"))
                    ShowMenu(MakeDesktopMenu(2, false));

                if (MenuExists("Core_tasks_recoverwindows"))
                    ShowMenu(MakeRecoverMenu(false));
            }
            break;
    }
}