CComPtr<IInputObject> pio;
HRESULT hr;
hr = punk->QueryInterface(IID_PPV_ARG(IInputObject, &pio));
- if (FAILED(hr))
+ if (FAILED_UNEXPECTEDLY(hr))
return hr;
return pio->HasFocusIO();
}
if (!punk)
return E_FAIL;
hr = punk->QueryInterface(IID_PPV_ARG(IInputObject, &pio));
- if (FAILED(hr))
+ if (FAILED_UNEXPECTEDLY(hr))
return hr;
return pio->TranslateAcceleratorIO(pmsg);
}
fBandID = bandID;
fFlags = flags;
hResult = IUnknown_SetSite(containedBand, static_cast<IOleWindow *>(this));
- if (FAILED(hResult))
+ if (FAILED_UNEXPECTEDLY(hResult))
return hResult;
hResult = IUnknown_GetWindow(containedBand, &fChildWindow);
- if (FAILED(hResult))
+ if (FAILED_UNEXPECTEDLY(hResult))
return hResult;
memset(&bandInfo, 0, sizeof(bandInfo));
HRESULT hResult;
hResult = fContainedBand->QueryInterface(IID_PPV_ARG(IDeskBand, &deskBand));
- if (FAILED(hResult))
+ if (FAILED_UNEXPECTEDLY(hResult))
return hResult;
fDeskBandInfo.dwMask = DBIM_BKCOLOR | DBIM_MODEFLAGS | DBIM_TITLE | DBIM_ACTUAL |
bandInfo.lpText = textBuffer;
bandInfo.cch = sizeof(textBuffer) / sizeof(TCHAR);
hResult = GetRBBandInfo(bandInfo);
- if (FAILED(hResult))
+ if (FAILED_UNEXPECTEDLY(hResult))
return hResult;
index = (int)SendMessage(fRebarWindow, RB_IDTOINDEX, fBandID, 0);
SendMessage(fRebarWindow, RB_SETBANDINFOW, index, (LPARAM)&bandInfo);
{
// create favorites menu
hResult = psmd->punk->QueryInterface(IID_PPV_ARG(IShellMenu, &parentMenu));
- if (FAILED(hResult))
+ if (FAILED_UNEXPECTEDLY(hResult))
return hResult;
hResult = parentMenu->GetMenu(&parentHMenu, &ownerWindow, NULL);
- if (FAILED(hResult))
+ if (FAILED_UNEXPECTEDLY(hResult))
return hResult;
favoritesHMenu = GetSubMenu(parentHMenu, 3);
if (favoritesHMenu == NULL)
hResult = CoCreateInstance(CLSID_MenuBand, NULL, CLSCTX_INPROC_SERVER,
IID_PPV_ARG(IShellMenu, &newMenu));
#endif
- if (FAILED(hResult))
+ if (FAILED_UNEXPECTEDLY(hResult))
return hResult;
hResult = newMenu->Initialize(this, FCIDM_MENU_FAVORITES, -1, SMINIT_VERTICAL | SMINIT_CACHED);
- if (FAILED(hResult))
+ if (FAILED_UNEXPECTEDLY(hResult))
return hResult;
hResult = newMenu->SetMenu(favoritesHMenu, ownerWindow, SMSET_TOP | SMSET_DONTOWN);
- if (FAILED(hResult))
+ if (FAILED_UNEXPECTEDLY(hResult))
return hResult;
hResult = SHGetSpecialFolderLocation(NULL, CSIDL_FAVORITES, &favoritesPIDL);
- if (FAILED(hResult))
+ if (FAILED_UNEXPECTEDLY(hResult))
return hResult;
hResult = SHBindToFolder(favoritesPIDL, &favoritesFolder);
- if (FAILED(hResult))
+ if (FAILED_UNEXPECTEDLY(hResult))
return hResult;
RegCreateKeyEx(HKEY_CURRENT_USER, szFavoritesKey,
0, NULL, 0, KEY_READ | KEY_WRITE, NULL, &orderRegKey, &disposition);
fLocked = false;
fMenuBandWindow = NULL;
fNavigationWindow = NULL;
- fMenuCallback.AddRef();
+ fMenuCallback = new CComDebugObject<CMenuCallback>();
fToolbarWindow = NULL;
fAdviseCookie = 0;
+
+ fMenuCallback->AddRef();
}
CInternetToolbar::~CInternetToolbar()
RECT availableBorderSpace;
HRESULT hResult = fSite->QueryInterface(IID_PPV_ARG(IDockingWindowSite, &dockingWindowSite));
- if (FAILED(hResult))
+ if (FAILED_UNEXPECTEDLY(hResult))
return hResult;
hResult = dockingWindowSite->GetBorderDW(static_cast<IDockingWindow *>(this), &availableBorderSpace);
- if (FAILED(hResult))
+ if (FAILED_UNEXPECTEDLY(hResult))
return hResult;
if (availableBorderSpace.top > maxHeight)
return ResizeBorderDW(&availableBorderSpace, fSite, FALSE);
}
-HRESULT CInternetToolbar::CreateMenuBar(IShellMenu **menuBar)
+HRESULT CInternetToolbar::CreateMenuBar(IShellMenu **pMenuBar)
{
- CComPtr<IOleCommandTarget> siteCommandTarget;
- CComPtr<IOleWindow> oleWindow;
- CComPtr<IOleCommandTarget> commandTarget;
+ CComPtr<IShellMenu> menubar;
CComPtr<IShellMenuCallback> callback;
VARIANT menuOut;
HWND ownerWindow;
HRESULT hResult;
+ if (!pMenuBar)
+ return E_POINTER;
+
+
+ *pMenuBar = NULL;
+ hResult = E_FAIL;
#if USE_CUSTOM_MENUBAND
- HMODULE hrs = LoadLibraryW(L"rshell.dll");
+ HMODULE hrs = GetModuleHandleW(L"rshell.dll");
+
+ if (!hrs) hrs = LoadLibraryW(L"rshell.dll");
- if (!hrs)
+ if (hrs)
{
- DbgPrint("Failed: %d\n", GetLastError());
- return E_FAIL;
+ PMENUBAND_CONSTRUCTOR func = (PMENUBAND_CONSTRUCTOR) GetProcAddress(hrs, "CMenuBand_Constructor");
+ if (func)
+ {
+ hResult = func(IID_PPV_ARG(IShellMenu, &menubar));
+ }
}
+#endif
- PMENUBAND_CONSTRUCTOR func = (PMENUBAND_CONSTRUCTOR) GetProcAddress(hrs, "CMenuBand_Constructor");
- if (func)
- {
- hResult = func(IID_PPV_ARG(IShellMenu, menuBar));
- }
- else
- {
- DbgPrint("Failed: %d\n", GetLastError());
- hResult = E_FAIL;
- }
-
- if (FAILED(hResult))
+ menubar->AddRef();
+
+ if (FAILED_UNEXPECTEDLY(hResult))
{
hResult = CoCreateInstance(CLSID_MenuBand, NULL, CLSCTX_INPROC_SERVER,
- IID_PPV_ARG(IShellMenu, menuBar));
+ IID_PPV_ARG(IShellMenu, &menubar));
+ if (FAILED_UNEXPECTEDLY(hResult))
+ return hResult;
}
-#else
- hResult = CoCreateInstance(CLSID_MenuBand, NULL, CLSCTX_INPROC_SERVER,
- IID_PPV_ARG(IShellMenu, menuBar));
-#endif
- if (FAILED(hResult))
- return hResult;
- hResult = fMenuCallback.QueryInterface(IID_PPV_ARG(IShellMenuCallback, &callback));
- if (FAILED(hResult))
- return hResult;
- hResult = (*menuBar)->Initialize(callback, -1, ANCESTORDEFAULT, SMINIT_HORIZONTAL | SMINIT_TOPLEVEL);
- if (FAILED(hResult))
- return hResult;
- hResult = fSite->QueryInterface(IID_PPV_ARG(IOleWindow, &oleWindow));
- if (FAILED(hResult))
- return hResult;
- hResult = oleWindow->GetWindow(&ownerWindow);
- if (FAILED(hResult))
- return hResult;
- hResult = fSite->QueryInterface(IID_PPV_ARG(IOleCommandTarget, &siteCommandTarget));
- if (FAILED(hResult))
- return hResult;
- hResult = siteCommandTarget->Exec(&CGID_Explorer, 0x35, 0, NULL, &menuOut);
- if (FAILED(hResult))
+
+ hResult = fMenuCallback->QueryInterface(IID_PPV_ARG(IShellMenuCallback, &callback));
+ if (FAILED_UNEXPECTEDLY(hResult))
return hResult;
- if (V_VT(&menuOut) != VT_INT_PTR || V_INTREF(&menuOut) == NULL)
- return E_FAIL;
- hResult = (*menuBar)->SetMenu((HMENU)V_INTREF(&menuOut), ownerWindow, SMSET_DONTOWN);
- if (FAILED(hResult))
+
+ hResult = menubar->Initialize(callback, -1, ANCESTORDEFAULT, SMINIT_HORIZONTAL | SMINIT_TOPLEVEL);
+ if (FAILED_UNEXPECTEDLY(hResult))
return hResult;
- hResult = IUnknown_Exec(*menuBar, CGID_MenuBand, 3, 1, NULL, NULL);
- if (FAILED(hResult))
+
+ // Set Menu
+ {
+ hResult = IUnknown_Exec(fSite, CGID_Explorer, 0x35, 0, NULL, &menuOut);
+ if (FAILED_UNEXPECTEDLY(hResult))
+ return hResult;
+
+ if (V_VT(&menuOut) != VT_INT_PTR || V_INTREF(&menuOut) == NULL)
+ return E_FAIL;
+
+ hResult = IUnknown_GetWindow(fSite, &ownerWindow);
+ if (FAILED_UNEXPECTEDLY(hResult))
+ return hResult;
+
+ hResult = menubar->SetMenu((HMENU) V_INTREF(&menuOut), ownerWindow, SMSET_DONTOWN);
+ if (FAILED_UNEXPECTEDLY(hResult))
+ return hResult;
+ }
+
+ hResult = IUnknown_Exec(menubar, CGID_MenuBand, 3, 1, NULL, NULL);
+ if (FAILED_UNEXPECTEDLY(hResult))
return hResult;
+
+ *pMenuBar = menubar.Detach();
+
return S_OK;
}
HRESULT hResult;
hResult = fSite->QueryInterface(IID_PPV_ARG(IServiceProvider, &serviceProvider));
- if (FAILED(hResult))
+ if (FAILED_UNEXPECTEDLY(hResult))
return hResult;
hResult = serviceProvider->QueryService(SID_IBandProxy, IID_PPV_ARG(IBandProxy, &fBandProxy));
- if (FAILED(hResult))
+ if (FAILED_UNEXPECTEDLY(hResult))
{
hResult = CreateBandProxy(IID_PPV_ARG(IBandProxy, &fBandProxy));
- if (FAILED(hResult))
+ if (FAILED_UNEXPECTEDLY(hResult))
return hResult;
hResult = fBandProxy->SetSite(fSite);
- if (FAILED(hResult))
+ if (FAILED_UNEXPECTEDLY(hResult))
return hResult;
}
return S_OK;
CComPtr<IDockingWindowSite> dockingWindowSite;
HRESULT hResult = fSite->QueryInterface(IID_PPV_ARG(IDockingWindowSite, &dockingWindowSite));
- if (FAILED(hResult))
+ if (FAILED_UNEXPECTEDLY(hResult))
return hResult;
hResult = dockingWindowSite->RequestBorderSpaceDW(static_cast<IDockingWindow *>(this), &neededBorderSpace);
- if (FAILED(hResult))
+ if (FAILED_UNEXPECTEDLY(hResult))
return hResult;
hResult = dockingWindowSite->SetBorderSpaceDW(static_cast<IDockingWindow *>(this), &neededBorderSpace);
- if (FAILED(hResult))
+ if (FAILED_UNEXPECTEDLY(hResult))
return hResult;
return S_OK;
/* Create and attach the menubar to the rebar */
hResult = CreateMenuBar(&menuBar);
- if (FAILED(hResult))
+ if (FAILED_UNEXPECTEDLY(hResult))
return hResult;
AddDockItem(menuBar, ITBBID_MENUBAND, CDockSite::ITF_NOTITLE | CDockSite::ITF_NEWBANDALWAYS | CDockSite::ITF_GRIPPERALWAYS);
#if 0
/* Create and attach the brand/logo to the rebar */
hResult = CreateBrandBand(&logoBar);
- if (FAILED(hResult))
+ if (FAILED_UNEXPECTEDLY(hResult))
return hResult;
AddDockItem(logoBar, ITBBID_BRANDBAND, CDockSite::ITF_NOGRIPPER | CDockSite::ITF_NOTITLE | CDockSite::ITF_FIXEDSIZE);
fLogoBar.Attach(logoBar.Detach()); // transfer the ref count
/* Create and attach the standard toolbar to the rebar */
hResult = CreateToolsBar(&toolsBar);
- if (FAILED(hResult))
+ if (FAILED_UNEXPECTEDLY(hResult))
return hResult;
AddDockItem(toolsBar, ITBBID_TOOLSBAND, CDockSite::ITF_NOTITLE | CDockSite::ITF_NEWBANDALWAYS | CDockSite::ITF_GRIPPERALWAYS);
fControlsBar.Attach(toolsBar.Detach()); // transfer the ref count
hResult = IUnknown_GetWindow(fControlsBar, &fToolbarWindow);
- if (FAILED(hResult))
+ if (FAILED_UNEXPECTEDLY(hResult))
return hResult;
/* Create and attach the address/navigation toolbar to the rebar */
hResult = CreateAddressBand(&navigationBar);
- if (FAILED(hResult))
+ if (FAILED_UNEXPECTEDLY(hResult))
return hResult;
AddDockItem(navigationBar, ITBBID_ADDRESSBAND, CDockSite::ITF_NEWBANDALWAYS | CDockSite::ITF_GRIPPERALWAYS);
fNavigationBar.Attach(navigationBar.Detach());
fCommandTarget.Release();
hResult = theTarget->QueryInterface(IID_PPV_ARG(IOleCommandTarget, &fCommandTarget));
- if (FAILED(hResult))
+ if (FAILED_UNEXPECTEDLY(hResult))
return hResult;
fCommandCategory = *category;
return S_OK;
{
// get window handle of owner
hResult = pUnkSite->QueryInterface(IID_PPV_ARG(IOleWindow, &oleWindow));
- if (FAILED(hResult))
+ if (FAILED_UNEXPECTEDLY(hResult))
return hResult;
hResult = oleWindow->GetWindow(&ownerWindow);
- if (FAILED(hResult))
+ if (FAILED_UNEXPECTEDLY(hResult))
return hResult;
if (ownerWindow == NULL)
return E_FAIL;
if (fBandProxy.p == NULL)
{
hResult = CreateAndInitBandProxy();
- if (FAILED(hResult))
+ if (FAILED_UNEXPECTEDLY(hResult))
return hResult;
}
return fBandProxy->QueryInterface(riid, ppvObject);
HRESULT STDMETHODCALLTYPE CInternetToolbar::SetBandState(DWORD dwBandID, DWORD dwMask, DWORD dwState)
{
+ UNIMPLEMENTED;
return E_NOTIMPL;
}
HRESULT STDMETHODCALLTYPE CInternetToolbar::RemoveBand(DWORD dwBandID)
{
+ UNIMPLEMENTED;
return E_NOTIMPL;
}
HRESULT STDMETHODCALLTYPE CInternetToolbar::GetBandObject(DWORD dwBandID, REFIID riid, void **ppv)
{
+ UNIMPLEMENTED;
return E_NOTIMPL;
}
HRESULT STDMETHODCALLTYPE CInternetToolbar::SetBandSiteInfo(const BANDSITEINFO *pbsinfo)
{
+ UNIMPLEMENTED;
return E_NOTIMPL;
}
HRESULT STDMETHODCALLTYPE CInternetToolbar::GetBandSiteInfo(BANDSITEINFO *pbsinfo)
{
+ UNIMPLEMENTED;
return E_NOTIMPL;
}
HRESULT hResult;
hResult = fSite->QueryInterface(IID_PPV_ARG(IServiceProvider, &serviceProvider));
- if (FAILED(hResult))
+ if (FAILED_UNEXPECTEDLY(hResult))
return 0;
hResult = serviceProvider->QueryService(SID_SShellBrowser,
IID_PPV_ARG(IWebBrowser, &webBrowser));
- if (FAILED(hResult))
+ if (FAILED_UNEXPECTEDLY(hResult))
return 0;
hResult = webBrowser->GoBack();
return 1;
HRESULT hResult;
hResult = fSite->QueryInterface(IID_PPV_ARG(IServiceProvider, &serviceProvider));
- if (FAILED(hResult))
+ if (FAILED_UNEXPECTEDLY(hResult))
return 0;
hResult = serviceProvider->QueryService(
SID_SShellBrowser, IID_PPV_ARG(IWebBrowser, &webBrowser));
- if (FAILED(hResult))
+ if (FAILED_UNEXPECTEDLY(hResult))
return 0;
hResult = webBrowser->GoForward();
return 1;
HRESULT hResult;
hResult = fSite->QueryInterface(IID_PPV_ARG(IOleCommandTarget, &oleCommandTarget));
- if (FAILED(hResult))
+ if (FAILED_UNEXPECTEDLY(hResult))
return hResult;
hResult = oleCommandTarget->Exec(&CGID_ShellBrowser, IDM_GOTO_UPONELEVEL, 0, NULL, NULL);
return 1;
hResult = CoCreateInstance(CLSID_ShellSearchExt, NULL, CLSCTX_INPROC_SERVER,
IID_PPV_ARG(IContextMenu, &contextMenu));
- if (FAILED(hResult))
+ if (FAILED_UNEXPECTEDLY(hResult))
return 0;
hResult = contextMenu->QueryInterface(IID_PPV_ARG(IObjectWithSite, &objectWithSite));
- if (FAILED(hResult))
+ if (FAILED_UNEXPECTEDLY(hResult))
return 0;
hResult = objectWithSite->SetSite(fSite);
- if (FAILED(hResult))
+ if (FAILED_UNEXPECTEDLY(hResult))
return 0;
hResult = contextMenu->InvokeCommand(&commandInfo);
hResult = objectWithSite->SetSite(NULL);
HRESULT hResult;
hResult = fSite->QueryInterface(IID_PPV_ARG(IOleCommandTarget, &oleCommandTarget));
- if (FAILED(hResult))
+ if (FAILED_UNEXPECTEDLY(hResult))
return hResult;
hResult = oleCommandTarget->Exec(&CGID_Explorer, 0x23, 0, NULL, NULL);
return 1;
mii.cbSize = sizeof(mii);
mii.fMask = MIIM_STATE;
mii.fState = fLocked ? MFS_CHECKED : MFS_UNCHECKED;
- command = SetMenuItemInfo(contextMenu, IDM_TOOLBARS_LOCKTOOLBARS, FALSE, &mii);
+ SetMenuItemInfo(contextMenu, IDM_TOOLBARS_LOCKTOOLBARS, FALSE, &mii);
// TODO: use GetSystemMetrics(SM_MENUDROPALIGNMENT) to determine menu alignment
command = TrackPopupMenu(contextMenu, TPM_LEFTALIGN | TPM_TOPALIGN | TPM_RIGHTBUTTON | TPM_RETURNCMD,
hResult = travelLog->GetToolTipText(browserService,
(nID == (UINT)IDM_GOTO_BACK) ? TLOG_BACK : TLOG_FORE,
0, tempString, 299);
- if (FAILED(hResult))
+ if (FAILED_UNEXPECTEDLY(hResult))
{
bHandled = FALSE;
return 0;
if (theToolbar == NULL)
return E_OUTOFMEMORY;
hResult = theToolbar->QueryInterface (riid, reinterpret_cast<void **>(ppv));
- if (FAILED(hResult))
+ if (FAILED_UNEXPECTEDLY(hResult))
{
delete theToolbar;
return hResult;