- if (!m_menusLoaded)
- {
- MENUITEMINFOW mii = { 0 };
-
- /* initialize EDIT menu */
- mii.cbSize = sizeof(mii);
- mii.fMask = MIIM_SUBMENU;
- if (::GetMenuItemInfoW(m_hMenu, FCIDM_MENU_EDIT, FALSE, &mii))
- {
- HMENU hSubMenu = mii.hSubMenu;
-
- HMENU menubase = ::LoadMenuW(shell32_hInstance, L"MENU_003");
-
- int count = ::GetMenuItemCount(menubase);
- for (int i = 0; i < count; i++)
- {
- WCHAR label[128];
-
- ZeroMemory(&mii, sizeof(mii));
- mii.cbSize = sizeof(mii);
- mii.fMask = MIIM_STATE | MIIM_ID | MIIM_SUBMENU | MIIM_CHECKMARKS | MIIM_DATA | MIIM_STRING | MIIM_BITMAP | MIIM_FTYPE;
- mii.dwTypeData = label;
- mii.cch = _countof(label);
- ::GetMenuItemInfoW(menubase, i, TRUE, &mii);
-
- TRACE("Adding item %d label %S type %d\n", mii.wID, mii.dwTypeData, mii.fType);
-
- mii.fType |= MFT_RADIOCHECK;
-
- ::InsertMenuItemW(hSubMenu, FCIDM_MENU_VIEW_SEP_OPTIONS, FALSE, &mii);
- }
-
- ::DestroyMenu(menubase);
- }
-
- /* initialize VIEW menu */
-
- mii.cbSize = sizeof(mii);
- mii.fMask = MIIM_SUBMENU;
- if (::GetMenuItemInfoW(m_hMenu, FCIDM_MENU_VIEW, FALSE, &mii))
- {
- HMENU menubase = ::LoadMenuW(shell32_hInstance, L"MENU_001");
-
- HMENU hSubMenu = mii.hSubMenu;
-
- m_hView = CreatePopupMenu();
-
- _InsertMenuItemW(hSubMenu, FCIDM_MENU_VIEW_SEP_OPTIONS, FALSE, 0, MFT_SEPARATOR, NULL, MFS_ENABLED);
-
- int count = ::GetMenuItemCount(menubase);
- for (int i = 0; i < count; i++)
- {
- WCHAR label[128];
-
- ZeroMemory(&mii, sizeof(mii));
- mii.cbSize = sizeof(mii);
- mii.fMask = MIIM_STATE | MIIM_ID | MIIM_SUBMENU | MIIM_CHECKMARKS | MIIM_DATA | MIIM_STRING | MIIM_BITMAP | MIIM_FTYPE;
- mii.dwTypeData = label;
- mii.cch = _countof(label);
- ::GetMenuItemInfoW(menubase, i, TRUE, &mii);
-
- ::AppendMenuW(m_hView, mii.fType, mii.wID, mii.dwTypeData);
-
- TRACE("Adding item %d label %S type %d\n", mii.wID, mii.dwTypeData, mii.fType);
-
- mii.fType |= MFT_RADIOCHECK;
-
- ::InsertMenuItemW(hSubMenu, FCIDM_MENU_VIEW_SEP_OPTIONS, FALSE, &mii);
- }
-
- ::DestroyMenu(menubase);
- }
-
-
- TRACE("-- before fnSetMenuSB\n");
- m_pShellBrowser->SetMenuSB(m_hMenu, 0, m_hWnd);
-
- m_menusLoaded = TRUE;
- }