*/
extern HRESULT WINAPI SHBindToFolder(LPCITEMIDLIST path, IShellFolder **newFolder);
-extern HRESULT CreateToolsBar(REFIID riid, void **ppv);
-extern HRESULT CreateBrandBand(REFIID riid, void **ppv);
-extern HRESULT CreateBandProxy(REFIID riid, void **ppv);
-extern HRESULT CreateAddressBand(REFIID riid, void **ppv);
HRESULT IUnknown_RelayWinEvent(IUnknown * punk, HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *theResult)
{
if (FAILED_UNEXPECTEDLY(hr))
return hr;
- hr = CreateMergedFolder(IID_PPV_ARG(IAugmentedShellFolder, &pasf));
+ hr = CMergedFolder_CreateInstance(IID_PPV_ARG(IAugmentedShellFolder, &pasf));
if (FAILED_UNEXPECTEDLY(hr))
{
*ppsfFavorites = psfUserFavorites.Detach();
if (fFavoritesMenu.p == NULL)
{
- hResult = CreateMenuBand(IID_PPV_ARG(IShellMenu, &newMenu));
+ hResult = CMenuBand_CreateInstance(IID_PPV_ARG(IShellMenu, &newMenu));
if (FAILED_UNEXPECTEDLY(hResult))
return hResult;
hResult = newMenu->Initialize(this, FCIDM_MENU_FAVORITES, -1, SMINIT_VERTICAL | SMINIT_CACHED);
if (FAILED_UNEXPECTEDLY(hResult))
return hResult;
- if (availableBorderSpace.top > maxHeight)
+ if (maxHeight && availableBorderSpace.bottom - availableBorderSpace.top > maxHeight)
{
- availableBorderSpace.top = maxHeight;
+ availableBorderSpace.bottom = availableBorderSpace.top + maxHeight;
}
return ResizeBorderDW(&availableBorderSpace, fSite, FALSE);
*pMenuBar = NULL;
- hResult = CreateMenuBand(IID_PPV_ARG(IShellMenu, &menubar));
+ hResult = CMenuBand_CreateInstance(IID_PPV_ARG(IShellMenu, &menubar));
if (FAILED_UNEXPECTEDLY(hResult))
return hResult;
return S_OK;
}
-HRESULT CInternetToolbar::CreateBrandBand(IUnknown **logoBar)
-{
-#if 1
- return ::CreateBrandBand(IID_PPV_ARG(IUnknown, logoBar));
-#else
- return CoCreateInstance(CLSID_BrandBand, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARG(IUnknown, logoBar));
-#endif
-}
-
-HRESULT CInternetToolbar::CreateToolsBar(IUnknown **toolsBar)
-{
- return ::CreateToolsBar(IID_PPV_ARG(IUnknown, toolsBar));
-}
-
-HRESULT CInternetToolbar::CreateAddressBand(IUnknown **toolsBar)
-{
-#if 1
- return ::CreateAddressBand(IID_PPV_ARG(IUnknown, toolsBar));
-#else
- return CoCreateInstance(CLSID_SH_AddressBand, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARG(IUnknown, toolsBar));
-#endif
-}
-
HRESULT CInternetToolbar::LockUnlockToolbars(bool locked)
{
REBARBANDINFOW rebarBandInfo;
SendMessage(fMainReBar, RB_SETBANDINFOW, x, (LPARAM)&rebarBandInfo);
}
}
- hResult = ReserveBorderSpace();
+ hResult = ReserveBorderSpace(0);
// TODO: refresh view menu?
}
// back
hResult = SetState(&CLSID_CommonButtons, IDM_GOTO_BACK, newValue ? TBSTATE_ENABLED : 0);
break;
+ case 3:
+ // up
+ hResult = SetState(&CLSID_CommonButtons, IDM_GOTO_UPONELEVEL, newValue ? TBSTATE_ENABLED : 0);
+ break;
}
return hResult;
}
hResult = serviceProvider->QueryService(SID_IBandProxy, IID_PPV_ARG(IBandProxy, &fBandProxy));
if (FAILED_UNEXPECTEDLY(hResult))
{
- hResult = CreateBandProxy(IID_PPV_ARG(IBandProxy, &fBandProxy));
+ hResult = CBandProxy_CreateInstance(IID_PPV_ARG(IBandProxy, &fBandProxy));
if (FAILED_UNEXPECTEDLY(hResult))
return hResult;
hResult = fBandProxy->SetSite(fSite);
return hResult;
ReleaseCComPtrExpectZero(fLogoBar);
}
+
+ SetSite(NULL);
return S_OK;
}
// RBSTR_CHANGERECT does not seem to set the proper size in the rect.
// Let's make sure we fetch the actual size properly.
- GetWindowRect(fMainReBar, &availableBorderSpace);
+ ::GetWindowRect(fMainReBar, &availableBorderSpace);
neededBorderSpace.left = 0;
neededBorderSpace.top = availableBorderSpace.bottom - availableBorderSpace.top;
if (!fLocked)
// and it will put them in their own row, sized to take up the whole row.
#if 0
/* Create and attach the brand/logo to the rebar */
- hResult = CreateBrandBand(&logoBar);
+ hResult = CBrandBand_CreateInstance(IID_PPV_ARG(IUnknown, &logoBar));
if (FAILED_UNEXPECTEDLY(hResult))
return hResult;
AddDockItem(logoBar, ITBBID_BRANDBAND, CDockSite::ITF_NOGRIPPER | CDockSite::ITF_NOTITLE | CDockSite::ITF_FIXEDSIZE);
#endif
/* Create and attach the standard toolbar to the rebar */
- hResult = CreateToolsBar(&toolsBar);
+ hResult = CToolsBand_CreateInstance(IID_PPV_ARG(IUnknown, &toolsBar));
if (FAILED_UNEXPECTEDLY(hResult))
return hResult;
AddDockItem(toolsBar, ITBBID_TOOLSBAND, CDockSite::ITF_NOTITLE | CDockSite::ITF_NEWBANDALWAYS | CDockSite::ITF_GRIPPERALWAYS);
return hResult;
/* Create and attach the address/navigation toolbar to the rebar */
- hResult = CreateAddressBand(&navigationBar);
+ hResult = CAddressBand_CreateInstance(IID_PPV_ARG(IUnknown, &navigationBar));
if (FAILED_UNEXPECTEDLY(hResult))
return hResult;
AddDockItem(navigationBar, ITBBID_ADDRESSBAND, CDockSite::ITF_NEWBANDALWAYS | CDockSite::ITF_GRIPPERALWAYS);
LRESULT CInternetToolbar::OnSearch(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
{
- CComPtr<IObjectWithSite> objectWithSite;
- CComPtr<IContextMenu> contextMenu;
- CMINVOKECOMMANDINFO commandInfo;
- const char *searchGUID = "{169A0691-8DF9-11d1-A1C4-00C04FD75D13}";
- HRESULT hResult;
-
- // TODO: Query shell if this command is enabled first
-
- memset(&commandInfo, 0, sizeof(commandInfo));
- commandInfo.cbSize = sizeof(commandInfo);
- commandInfo.hwnd = m_hWnd;
- commandInfo.lpParameters = searchGUID;
- commandInfo.nShow = SW_SHOWNORMAL;
-
- hResult = CoCreateInstance(CLSID_ShellSearchExt, NULL, CLSCTX_INPROC_SERVER,
- IID_PPV_ARG(IContextMenu, &contextMenu));
- if (FAILED_UNEXPECTEDLY(hResult))
- return 0;
- hResult = contextMenu->QueryInterface(IID_PPV_ARG(IObjectWithSite, &objectWithSite));
- if (FAILED_UNEXPECTEDLY(hResult))
- return 0;
- hResult = objectWithSite->SetSite(fSite);
- if (FAILED_UNEXPECTEDLY(hResult))
- return 0;
- hResult = contextMenu->InvokeCommand(&commandInfo);
- hResult = objectWithSite->SetSite(NULL);
- return 0;
+ return IUnknown_Exec(fSite, CLSID_CommonButtons, 0x123, 1, NULL, NULL);
}
LRESULT CInternetToolbar::OnFolders(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
VARIANT parmIn;
OLECMD commandInfo;
HRESULT hResult;
+ wchar_t templateString[200];
notifyInfo = (NMTOOLBARW *)pNMHDR;
if (notifyInfo->hdr.hwndFrom != fToolbarWindow)
if ((commandInfo.cmdf & (OLECMDF_ENABLED | OLECMDF_LATCHED)) == OLECMDF_ENABLED &&
travelLog->CountEntries(browserService) > 1)
{
- AppendMenu(newMenu, MF_SEPARATOR, -1, L"");
- AppendMenu(newMenu, MF_STRING /* | MF_OWNERDRAW */, IDM_EXPLORERBAR_HISTORY, L"&History\tCtrl+H");
+ AppendMenuW(newMenu, MF_SEPARATOR, -1, L"");
+
+ if (LoadStringW(_AtlBaseModule.GetResourceInstance(),
+ IDS_HISTORYTEXT, templateString, sizeof(templateString) / sizeof(wchar_t)) == 0)
+ StringCbCopyW(templateString, sizeof(templateString), L"&History\tCtrl+H");
+
+ AppendMenuW(newMenu, MF_STRING /* | MF_OWNERDRAW */, IDM_EXPLORERBAR_HISTORY, templateString);
}
- params.cbSize = sizeof (params);
+ params.cbSize = sizeof(params);
params.rcExclude = bounds;
selectedItem = TrackPopupMenuEx(newMenu, TPM_LEFTALIGN | TPM_TOPALIGN | TPM_RETURNCMD,
bounds.left, bounds.bottom, m_hWnd, ¶ms);
if ((commandInfo.cmdf & (OLECMDF_ENABLED | OLECMDF_LATCHED)) == OLECMDF_ENABLED &&
travelLog->CountEntries(browserService) > 1)
{
- AppendMenu(newMenu, MF_SEPARATOR, -1, L"");
- AppendMenu(newMenu, MF_STRING /* | MF_OWNERDRAW */, IDM_EXPLORERBAR_HISTORY, L"&History\tCtrl+H");
+ AppendMenuW(newMenu, MF_SEPARATOR, -1, L"");
+
+ if (LoadStringW(_AtlBaseModule.GetResourceInstance(),
+ IDS_HISTORYTEXT, templateString, sizeof(templateString) / sizeof(wchar_t)) == 0)
+ StringCbCopyW(templateString, sizeof(templateString), L"&History\tCtrl+H");
+
+ AppendMenuW(newMenu, MF_STRING /* | MF_OWNERDRAW */, IDM_EXPLORERBAR_HISTORY, templateString);
}
- params.cbSize = sizeof (params);
+ params.cbSize = sizeof(params);
params.rcExclude = bounds;
selectedItem = TrackPopupMenuEx(newMenu, TPM_LEFTALIGN | TPM_TOPALIGN | TPM_RETURNCMD,
bounds.left, bounds.bottom, m_hWnd, ¶ms);
RBHITTESTINFO hitTestInfo;
REBARBANDINFOW rebarBandInfo;
int bandID;
+ BOOL goButtonChecked;
clickLocation.x = LOWORD(lParam);
clickLocation.y = HIWORD(lParam);
SHCheckMenuItem(contextMenu, IDM_TOOLBARS_LINKSBAR, FALSE);
SHCheckMenuItem(contextMenu, IDM_TOOLBARS_CUSTOMIZE, FALSE);
SHCheckMenuItem(contextMenu, IDM_TOOLBARS_LOCKTOOLBARS, fLocked);
+ goButtonChecked = SHRegGetBoolUSValueW(L"Software\\Microsoft\\Internet Explorer\\Main", L"ShowGoButton", FALSE, TRUE);
+ SHCheckMenuItem(contextMenu, IDM_TOOLBARS_GOBUTTON, goButtonChecked);
// TODO: use GetSystemMetrics(SM_MENUDROPALIGNMENT) to determine menu alignment
command = TrackPopupMenu(contextMenu, TPM_LEFTALIGN | TPM_TOPALIGN | TPM_RIGHTBUTTON | TPM_RETURNCMD,
case IDM_TOOLBARS_CUSTOMIZE: // customize
SendMessage(fToolbarWindow, TB_CUSTOMIZE, 0, 0);
break;
+ case IDM_TOOLBARS_GOBUTTON:
+ SendMessage(fNavigationWindow, WM_COMMAND, IDM_TOOLBARS_GOBUTTON, 0);
+ break;
}
DestroyMenu(contextMenuBar);
CComPtr<ITravelLog> travelLog;
TOOLTIPTEXTW *pTTTW;
UINT nID;
- wchar_t tempString[300];
HRESULT hResult;
+ wchar_t tempString[300];
pTTTW = reinterpret_cast<TOOLTIPTEXTW *>(pNMHDR);
if ((pTTTW->uFlags & TTF_IDISHWND) != 0)
}
else
tempString[0] = 0;
- wcsncpy (pTTTW->szText, tempString, sizeof (pTTTW->szText) / sizeof (wchar_t));
+ wcsncpy (pTTTW->szText, tempString, sizeof(pTTTW->szText) / sizeof(wchar_t));
::SetWindowPos(pNMHDR->hwndFrom, HWND_TOP, 0, 0, 0, 0,
SWP_NOOWNERZORDER | SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE);
return 0;
fStartPosition.y = GET_Y_LPARAM(msgp);
RECT rc;
- GetWindowRect(m_hWnd, &rc);
+ GetWindowRect(&rc);
fStartHeight = rc.bottom - rc.top;
return 0;
}
-HRESULT CreateInternetToolbar(REFIID riid, void **ppv)
-{
- return ShellObjectCreator<CInternetToolbar>(riid, ppv);
-}