mirror of
https://github.com/reactos/reactos.git
synced 2025-05-25 12:14:32 +00:00
[BROWSEUI]
- Use the _CreateInstance postfix for all functions that instantiate a class. - Move the the CreateInstance functions of the exported classes to browseui.h where we can select uniformly which built in classes we use. svn path=/trunk/; revision=72053
This commit is contained in:
parent
dea009126c
commit
fdff190335
15 changed files with 147 additions and 174 deletions
|
@ -27,8 +27,6 @@ Implements the navigation band of the cabinet window
|
||||||
#include <shlwapi_undoc.h>
|
#include <shlwapi_undoc.h>
|
||||||
#include <shellapi.h>
|
#include <shellapi.h>
|
||||||
|
|
||||||
HRESULT CreateAddressEditBox(REFIID riid, void **ppv);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
TODO:
|
TODO:
|
||||||
****Add command handler for show/hide Go button to OnWinEvent
|
****Add command handler for show/hide Go button to OnWinEvent
|
||||||
|
@ -155,19 +153,9 @@ HRESULT STDMETHODCALLTYPE CAddressBand::SetSite(IUnknown *pUnkSite)
|
||||||
|
|
||||||
fEditControl = reinterpret_cast<HWND>(SendMessage(CBEM_GETEDITCONTROL, 0, 0));
|
fEditControl = reinterpret_cast<HWND>(SendMessage(CBEM_GETEDITCONTROL, 0, 0));
|
||||||
fComboBox = reinterpret_cast<HWND>(SendMessage(CBEM_GETCOMBOCONTROL, 0, 0));
|
fComboBox = reinterpret_cast<HWND>(SendMessage(CBEM_GETCOMBOCONTROL, 0, 0));
|
||||||
#if 1
|
hResult = CAddressEditBox_CreateInstance(IID_PPV_ARG(IAddressEditBox, &fAddressEditBox));
|
||||||
hResult = CoCreateInstance(CLSID_AddressEditBox, NULL, CLSCTX_INPROC_SERVER,
|
|
||||||
IID_PPV_ARG(IAddressEditBox, &fAddressEditBox));
|
|
||||||
#else
|
|
||||||
hResult = E_FAIL;
|
|
||||||
#endif
|
|
||||||
if (FAILED_UNEXPECTEDLY(hResult))
|
|
||||||
{
|
|
||||||
// instantiate new version
|
|
||||||
hResult = CreateAddressEditBox(IID_PPV_ARG(IAddressEditBox, &fAddressEditBox));
|
|
||||||
if (FAILED_UNEXPECTEDLY(hResult))
|
if (FAILED_UNEXPECTEDLY(hResult))
|
||||||
return hResult;
|
return hResult;
|
||||||
}
|
|
||||||
|
|
||||||
hResult = fAddressEditBox->QueryInterface(IID_PPV_ARG(IShellService, &shellService));
|
hResult = fAddressEditBox->QueryInterface(IID_PPV_ARG(IShellService, &shellService));
|
||||||
if (FAILED_UNEXPECTEDLY(hResult))
|
if (FAILED_UNEXPECTEDLY(hResult))
|
||||||
|
@ -642,11 +630,6 @@ LRESULT CAddressBand::OnWindowPosChanging(UINT uMsg, WPARAM wParam, LPARAM lPara
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT CreateAddressBand(REFIID riid, void **ppv)
|
|
||||||
{
|
|
||||||
return ShellObjectCreator<CAddressBand>(riid, ppv);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CAddressBand::CreateGoButton()
|
void CAddressBand::CreateGoButton()
|
||||||
{
|
{
|
||||||
const TBBUTTON buttonInfo [] = { { 0, 1, TBSTATE_ENABLED, 0 } };
|
const TBBUTTON buttonInfo [] = { { 0, 1, TBSTATE_ENABLED, 0 } };
|
||||||
|
|
|
@ -330,8 +330,3 @@ HRESULT STDMETHODCALLTYPE CAddressEditBox::GetSizeMax(ULARGE_INTEGER *pcbSize)
|
||||||
{
|
{
|
||||||
return E_NOTIMPL;
|
return E_NOTIMPL;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT CreateAddressEditBox(REFIID riid, void **ppv)
|
|
||||||
{
|
|
||||||
return ShellObjectCreator<CAddressEditBox>(riid, ppv);
|
|
||||||
}
|
|
||||||
|
|
|
@ -125,8 +125,3 @@ HRESULT STDMETHODCALLTYPE CBandProxy::NavigateToURL(long paramC, long param10)
|
||||||
{
|
{
|
||||||
return E_NOTIMPL;
|
return E_NOTIMPL;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT CreateBandProxy(REFIID riid, void **ppv)
|
|
||||||
{
|
|
||||||
return ShellObjectCreator<CBandProxy>(riid, ppv);
|
|
||||||
}
|
|
||||||
|
|
|
@ -548,7 +548,7 @@ LRESULT CBaseBar::OnCaptureChanged(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT CreateBaseBar(REFIID riid, void **ppv, BOOL vertical)
|
HRESULT CBaseBar_CreateInstance(REFIID riid, void **ppv, BOOL vertical)
|
||||||
{
|
{
|
||||||
return ShellObjectCreatorInit<CBaseBar, BOOL>(vertical, riid, ppv);
|
return ShellObjectCreatorInit<CBaseBar, BOOL>(vertical, riid, ppv);
|
||||||
}
|
}
|
||||||
|
|
|
@ -830,7 +830,7 @@ HRESULT CBaseBarSite::ShowBand(DWORD dwBandID)
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT CreateBaseBarSite(REFIID riid, void **ppv, BOOL bVertical)
|
HRESULT CBaseBarSite_CreateInstance(REFIID riid, void **ppv, BOOL bVertical)
|
||||||
{
|
{
|
||||||
return ShellObjectCreatorInit<CBaseBarSite, BOOL>(bVertical, riid, ppv);
|
return ShellObjectCreatorInit<CBaseBarSite, BOOL>(bVertical, riid, ppv);
|
||||||
}
|
}
|
||||||
|
|
|
@ -456,8 +456,3 @@ LRESULT CBrandBand::OnTimer(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHand
|
||||||
Invalidate(FALSE);
|
Invalidate(FALSE);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT CreateBrandBand(REFIID riid, void **ppv)
|
|
||||||
{
|
|
||||||
return ShellObjectCreator<CBrandBand>(riid, ppv);
|
|
||||||
}
|
|
||||||
|
|
122
reactos/dll/win32/browseui/browseui.h
Normal file
122
reactos/dll/win32/browseui/browseui.h
Normal file
|
@ -0,0 +1,122 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#define USE_CUSTOM_MENUBAND 1
|
||||||
|
#define USE_CUSTOM_MERGEDFOLDER 1
|
||||||
|
#define USE_CUSTOM_ADDRESSBAND 1
|
||||||
|
#define USE_CUSTOM_ADDRESSEDITBOX 1
|
||||||
|
#define USE_CUSTOM_BANDPROXY 1
|
||||||
|
#define USE_CUSTOM_BRANDBAND 1
|
||||||
|
#define USE_CUSTOM_EXPLORERBAND 1
|
||||||
|
#define USE_CUSTOM_INTERNETTOOLBAR 1
|
||||||
|
|
||||||
|
/* Constructors for the classes that are not exported */
|
||||||
|
HRESULT CTravelLog_CreateInstance(REFIID riid, void **ppv);
|
||||||
|
HRESULT CBaseBar_CreateInstance(REFIID riid, void **ppv, BOOL vertical);
|
||||||
|
HRESULT CBaseBarSite_CreateInstance(REFIID riid, void **ppv, BOOL bVertical);
|
||||||
|
HRESULT CToolsBand_CreateInstance(REFIID riid, void **ppv);
|
||||||
|
|
||||||
|
static inline
|
||||||
|
HRESULT CAddressBand_CreateInstance(REFIID riid, void **ppv)
|
||||||
|
{
|
||||||
|
#if USE_CUSTOM_ADDRESSBAND
|
||||||
|
return ShellObjectCreator<CAddressBand>(riid, ppv);
|
||||||
|
#else
|
||||||
|
return CoCreateInstance(CLSID_SH_AddressBand, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARG(IUnknown, toolsBar));
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline
|
||||||
|
HRESULT CAddressEditBox_CreateInstance(REFIID riid, void **ppv)
|
||||||
|
{
|
||||||
|
#if USE_CUSTOM_ADDRESSEDITBOX
|
||||||
|
return ShellObjectCreator<CAddressEditBox>(riid, ppv);
|
||||||
|
#else
|
||||||
|
return CoCreateInstance(CLSID_AddressEditBox, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARG(riid, &ppv));
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline
|
||||||
|
HRESULT CBandProxy_CreateInstance(REFIID riid, void **ppv)
|
||||||
|
{
|
||||||
|
#if USE_CUSTOM_BANDPROXY
|
||||||
|
return ShellObjectCreator<CBandProxy>(riid, ppv);
|
||||||
|
#else
|
||||||
|
return CoCreateInstance(CLSID_BandProxy, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARG(riid, &ppv));
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline
|
||||||
|
HRESULT CBrandBand_CreateInstance(REFIID riid, void **ppv)
|
||||||
|
{
|
||||||
|
#if USE_CUSTOM_BRANDBAND
|
||||||
|
return ShellObjectCreator<CBrandBand>(riid, ppv);
|
||||||
|
#else
|
||||||
|
return CoCreateInstance(CLSID_BrandBand, NULL, CLSCTX_INPROC_SERVER, riid, ppv);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline
|
||||||
|
HRESULT WINAPI CExplorerBand_CreateInstance(REFIID riid, LPVOID *ppv)
|
||||||
|
{
|
||||||
|
#if USE_CUSTOM_EXPLORERBAND
|
||||||
|
return ShellObjectCreator<CExplorerBand>(riid, ppv);
|
||||||
|
#else
|
||||||
|
return CoCreateInstance(CLSID_ExplorerBand, NULL, CLSCTX_INPROC_SERVER, riid, ppv);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline
|
||||||
|
HRESULT CInternetToolbar_CreateInstance(REFIID riid, void **ppv)
|
||||||
|
{
|
||||||
|
#if USE_CUSTOM_INTERNETTOOLBAR
|
||||||
|
return ShellObjectCreator<CInternetToolbar>(riid, ppv);
|
||||||
|
#else
|
||||||
|
return CoCreateInstance(CLSID_InternetToolbar, NULL, CLSCTX_INPROC_SERVER, riid, ppv);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
typedef HRESULT(WINAPI * PMENUBAND_CONSTRUCTOR)(REFIID riid, void **ppv);
|
||||||
|
typedef HRESULT(WINAPI * PMERGEDFOLDER_CONSTRUCTOR)(REFIID riid, void **ppv);
|
||||||
|
|
||||||
|
static inline
|
||||||
|
HRESULT CMergedFolder_CreateInstance(REFIID riid, void **ppv)
|
||||||
|
{
|
||||||
|
#if USE_CUSTOM_MERGEDFOLDER
|
||||||
|
HMODULE hRShell = GetModuleHandle(L"rshell.dll");
|
||||||
|
if (!hRShell)
|
||||||
|
hRShell = LoadLibrary(L"rshell.dll");
|
||||||
|
|
||||||
|
if (hRShell)
|
||||||
|
{
|
||||||
|
PMERGEDFOLDER_CONSTRUCTOR pCMergedFolder_Constructor = (PMERGEDFOLDER_CONSTRUCTOR)
|
||||||
|
GetProcAddress(hRShell, "CMergedFolder_Constructor");
|
||||||
|
|
||||||
|
if (pCMergedFolder_Constructor)
|
||||||
|
{
|
||||||
|
return pCMergedFolder_Constructor(riid, ppv);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
return CoCreateInstance(CLSID_MergedFolder, NULL, CLSCTX_INPROC_SERVER, riid, ppv);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline
|
||||||
|
HRESULT CMenuBand_CreateInstance(REFIID iid, LPVOID *ppv)
|
||||||
|
{
|
||||||
|
#if USE_CUSTOM_MENUBAND
|
||||||
|
HMODULE hRShell = GetModuleHandleW(L"rshell.dll");
|
||||||
|
|
||||||
|
if (!hRShell)
|
||||||
|
hRShell = LoadLibraryW(L"rshell.dll");
|
||||||
|
|
||||||
|
if (hRShell)
|
||||||
|
{
|
||||||
|
PMENUBAND_CONSTRUCTOR func = (PMENUBAND_CONSTRUCTOR) GetProcAddress(hRShell, "CMenuBand_Constructor");
|
||||||
|
if (func)
|
||||||
|
{
|
||||||
|
return func(iid , ppv);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
return CoCreateInstance(CLSID_MenuBand, NULL, CLSCTX_INPROC_SERVER, iid, ppv);
|
||||||
|
}
|
|
@ -28,12 +28,6 @@
|
||||||
#define UNIMPLEMENTED DbgPrint("%s is UNIMPLEMENTED!\n", __FUNCTION__)
|
#define UNIMPLEMENTED DbgPrint("%s is UNIMPLEMENTED!\n", __FUNCTION__)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern "C"
|
|
||||||
HRESULT WINAPI CExplorerBand_Constructor(REFIID riid, LPVOID *ppv)
|
|
||||||
{
|
|
||||||
return ShellObjectCreator<CExplorerBand>(riid, ppv);
|
|
||||||
}
|
|
||||||
|
|
||||||
CExplorerBand::CExplorerBand() :
|
CExplorerBand::CExplorerBand() :
|
||||||
pSite(NULL), fVisible(FALSE), bNavigating(FALSE), dwBandID(0)
|
pSite(NULL), fVisible(FALSE), bNavigating(FALSE), dwBandID(0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -184,6 +184,3 @@ public:
|
||||||
MESSAGE_HANDLER(WM_RBUTTONDOWN, ContextMenuHack)
|
MESSAGE_HANDLER(WM_RBUTTONDOWN, ContextMenuHack)
|
||||||
END_MSG_MAP()
|
END_MSG_MAP()
|
||||||
};
|
};
|
||||||
|
|
||||||
extern "C"
|
|
||||||
HRESULT WINAPI CExplorerBand_Constructor(REFIID riid, LPVOID *ppv);
|
|
|
@ -78,10 +78,6 @@ TODO:
|
||||||
*/
|
*/
|
||||||
|
|
||||||
extern HRESULT WINAPI SHBindToFolder(LPCITEMIDLIST path, IShellFolder **newFolder);
|
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)
|
HRESULT IUnknown_RelayWinEvent(IUnknown * punk, HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *theResult)
|
||||||
{
|
{
|
||||||
|
@ -442,7 +438,7 @@ static HRESULT GetFavoritesFolder(IShellFolder ** ppsfFavorites, LPITEMIDLIST *
|
||||||
if (FAILED_UNEXPECTEDLY(hr))
|
if (FAILED_UNEXPECTEDLY(hr))
|
||||||
return hr;
|
return hr;
|
||||||
|
|
||||||
hr = CreateMergedFolder(IID_PPV_ARG(IAugmentedShellFolder, &pasf));
|
hr = CMergedFolder_CreateInstance(IID_PPV_ARG(IAugmentedShellFolder, &pasf));
|
||||||
if (FAILED_UNEXPECTEDLY(hr))
|
if (FAILED_UNEXPECTEDLY(hr))
|
||||||
{
|
{
|
||||||
*ppsfFavorites = psfUserFavorites.Detach();
|
*ppsfFavorites = psfUserFavorites.Detach();
|
||||||
|
@ -503,7 +499,7 @@ HRESULT STDMETHODCALLTYPE CMenuCallback::GetObject(LPSMDATA psmd, REFIID riid, v
|
||||||
|
|
||||||
if (fFavoritesMenu.p == NULL)
|
if (fFavoritesMenu.p == NULL)
|
||||||
{
|
{
|
||||||
hResult = CreateMenuBand(IID_PPV_ARG(IShellMenu, &newMenu));
|
hResult = CMenuBand_CreateInstance(IID_PPV_ARG(IShellMenu, &newMenu));
|
||||||
if (FAILED_UNEXPECTEDLY(hResult))
|
if (FAILED_UNEXPECTEDLY(hResult))
|
||||||
return hResult;
|
return hResult;
|
||||||
hResult = newMenu->Initialize(this, FCIDM_MENU_FAVORITES, -1, SMINIT_VERTICAL | SMINIT_CACHED);
|
hResult = newMenu->Initialize(this, FCIDM_MENU_FAVORITES, -1, SMINIT_VERTICAL | SMINIT_CACHED);
|
||||||
|
@ -671,7 +667,7 @@ HRESULT CInternetToolbar::CreateMenuBar(IShellMenu **pMenuBar)
|
||||||
|
|
||||||
*pMenuBar = NULL;
|
*pMenuBar = NULL;
|
||||||
|
|
||||||
hResult = CreateMenuBand(IID_PPV_ARG(IShellMenu, &menubar));
|
hResult = CMenuBand_CreateInstance(IID_PPV_ARG(IShellMenu, &menubar));
|
||||||
if (FAILED_UNEXPECTEDLY(hResult))
|
if (FAILED_UNEXPECTEDLY(hResult))
|
||||||
return hResult;
|
return hResult;
|
||||||
|
|
||||||
|
@ -719,29 +715,6 @@ HRESULT CInternetToolbar::CreateMenuBar(IShellMenu **pMenuBar)
|
||||||
return S_OK;
|
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)
|
HRESULT CInternetToolbar::LockUnlockToolbars(bool locked)
|
||||||
{
|
{
|
||||||
REBARBANDINFOW rebarBandInfo;
|
REBARBANDINFOW rebarBandInfo;
|
||||||
|
@ -817,7 +790,7 @@ HRESULT CInternetToolbar::CreateAndInitBandProxy()
|
||||||
hResult = serviceProvider->QueryService(SID_IBandProxy, IID_PPV_ARG(IBandProxy, &fBandProxy));
|
hResult = serviceProvider->QueryService(SID_IBandProxy, IID_PPV_ARG(IBandProxy, &fBandProxy));
|
||||||
if (FAILED_UNEXPECTEDLY(hResult))
|
if (FAILED_UNEXPECTEDLY(hResult))
|
||||||
{
|
{
|
||||||
hResult = CreateBandProxy(IID_PPV_ARG(IBandProxy, &fBandProxy));
|
hResult = CBandProxy_CreateInstance(IID_PPV_ARG(IBandProxy, &fBandProxy));
|
||||||
if (FAILED_UNEXPECTEDLY(hResult))
|
if (FAILED_UNEXPECTEDLY(hResult))
|
||||||
return hResult;
|
return hResult;
|
||||||
hResult = fBandProxy->SetSite(fSite);
|
hResult = fBandProxy->SetSite(fSite);
|
||||||
|
@ -1048,7 +1021,7 @@ HRESULT STDMETHODCALLTYPE CInternetToolbar::InitNew()
|
||||||
// and it will put them in their own row, sized to take up the whole row.
|
// and it will put them in their own row, sized to take up the whole row.
|
||||||
#if 0
|
#if 0
|
||||||
/* Create and attach the brand/logo to the rebar */
|
/* Create and attach the brand/logo to the rebar */
|
||||||
hResult = CreateBrandBand(&logoBar);
|
hResult = CBrandBand_CreateInstance(IID_PPV_ARG(IUnknown, &logoBar));
|
||||||
if (FAILED_UNEXPECTEDLY(hResult))
|
if (FAILED_UNEXPECTEDLY(hResult))
|
||||||
return hResult;
|
return hResult;
|
||||||
AddDockItem(logoBar, ITBBID_BRANDBAND, CDockSite::ITF_NOGRIPPER | CDockSite::ITF_NOTITLE | CDockSite::ITF_FIXEDSIZE);
|
AddDockItem(logoBar, ITBBID_BRANDBAND, CDockSite::ITF_NOGRIPPER | CDockSite::ITF_NOTITLE | CDockSite::ITF_FIXEDSIZE);
|
||||||
|
@ -1056,7 +1029,7 @@ HRESULT STDMETHODCALLTYPE CInternetToolbar::InitNew()
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Create and attach the standard toolbar to the rebar */
|
/* Create and attach the standard toolbar to the rebar */
|
||||||
hResult = CreateToolsBar(&toolsBar);
|
hResult = CToolsBand_CreateInstance(IID_PPV_ARG(IUnknown, &toolsBar));
|
||||||
if (FAILED_UNEXPECTEDLY(hResult))
|
if (FAILED_UNEXPECTEDLY(hResult))
|
||||||
return hResult;
|
return hResult;
|
||||||
AddDockItem(toolsBar, ITBBID_TOOLSBAND, CDockSite::ITF_NOTITLE | CDockSite::ITF_NEWBANDALWAYS | CDockSite::ITF_GRIPPERALWAYS);
|
AddDockItem(toolsBar, ITBBID_TOOLSBAND, CDockSite::ITF_NOTITLE | CDockSite::ITF_NEWBANDALWAYS | CDockSite::ITF_GRIPPERALWAYS);
|
||||||
|
@ -1066,7 +1039,7 @@ HRESULT STDMETHODCALLTYPE CInternetToolbar::InitNew()
|
||||||
return hResult;
|
return hResult;
|
||||||
|
|
||||||
/* Create and attach the address/navigation toolbar to the rebar */
|
/* 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))
|
if (FAILED_UNEXPECTEDLY(hResult))
|
||||||
return hResult;
|
return hResult;
|
||||||
AddDockItem(navigationBar, ITBBID_ADDRESSBAND, CDockSite::ITF_NEWBANDALWAYS | CDockSite::ITF_GRIPPERALWAYS);
|
AddDockItem(navigationBar, ITBBID_ADDRESSBAND, CDockSite::ITF_NEWBANDALWAYS | CDockSite::ITF_GRIPPERALWAYS);
|
||||||
|
@ -1875,7 +1848,3 @@ LRESULT CInternetToolbar::OnLUp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &b
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT CreateInternetToolbar(REFIID riid, void **ppv)
|
|
||||||
{
|
|
||||||
return ShellObjectCreator<CInternetToolbar>(riid, ppv);
|
|
||||||
}
|
|
||||||
|
|
|
@ -98,9 +98,7 @@ public:
|
||||||
void AddDockItem(IUnknown *newItem, int bandID, int flags);
|
void AddDockItem(IUnknown *newItem, int bandID, int flags);
|
||||||
HRESULT ReserveBorderSpace(LONG maxHeight = -1);
|
HRESULT ReserveBorderSpace(LONG maxHeight = -1);
|
||||||
HRESULT CreateMenuBar(IShellMenu **menuBar);
|
HRESULT CreateMenuBar(IShellMenu **menuBar);
|
||||||
HRESULT CreateBrandBand(IUnknown **logoBar);
|
|
||||||
HRESULT CreateToolsBar(IUnknown **toolsBar);
|
HRESULT CreateToolsBar(IUnknown **toolsBar);
|
||||||
HRESULT CreateAddressBand(IUnknown **toolsBar);
|
|
||||||
HRESULT LockUnlockToolbars(bool locked);
|
HRESULT LockUnlockToolbars(bool locked);
|
||||||
HRESULT CommandStateChanged(bool newValue, int commandID);
|
HRESULT CommandStateChanged(bool newValue, int commandID);
|
||||||
HRESULT CreateAndInitBandProxy();
|
HRESULT CreateAndInitBandProxy();
|
||||||
|
|
|
@ -49,57 +49,9 @@
|
||||||
#include "regtreeoptions.h"
|
#include "regtreeoptions.h"
|
||||||
#include "explorerband.h"
|
#include "explorerband.h"
|
||||||
#include "CProgressDialog.h"
|
#include "CProgressDialog.h"
|
||||||
|
#include "browseui.h"
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
WINE_DEFAULT_DEBUG_CHANNEL(browseui);
|
WINE_DEFAULT_DEBUG_CHANNEL(browseui);
|
||||||
|
|
||||||
|
|
||||||
#define USE_CUSTOM_MENUBAND 1
|
|
||||||
|
|
||||||
typedef HRESULT(WINAPI * PMENUBAND_CONSTRUCTOR)(REFIID riid, void **ppv);
|
|
||||||
typedef HRESULT(WINAPI * PMERGEDFOLDER_CONSTRUCTOR)(REFIID riid, void **ppv);
|
|
||||||
|
|
||||||
static inline
|
|
||||||
HRESULT CreateMergedFolder(REFIID riid, void **ppv)
|
|
||||||
{
|
|
||||||
#if 1
|
|
||||||
HMODULE hRShell = GetModuleHandle(L"rshell.dll");
|
|
||||||
if (!hRShell)
|
|
||||||
hRShell = LoadLibrary(L"rshell.dll");
|
|
||||||
|
|
||||||
if (hRShell)
|
|
||||||
{
|
|
||||||
PMERGEDFOLDER_CONSTRUCTOR pCMergedFolder_Constructor = (PMERGEDFOLDER_CONSTRUCTOR)
|
|
||||||
GetProcAddress(hRShell, "CMergedFolder_Constructor");
|
|
||||||
|
|
||||||
if (pCMergedFolder_Constructor)
|
|
||||||
{
|
|
||||||
return pCMergedFolder_Constructor(riid, ppv);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
return CoCreateInstance(CLSID_MergedFolder, NULL, CLSCTX_INPROC_SERVER, riid, ppv);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline
|
|
||||||
HRESULT CreateMenuBand(REFIID iid, LPVOID *ppv)
|
|
||||||
{
|
|
||||||
#if USE_CUSTOM_MENUBAND
|
|
||||||
HMODULE hRShell = GetModuleHandleW(L"rshell.dll");
|
|
||||||
|
|
||||||
if (!hRShell)
|
|
||||||
hRShell = LoadLibraryW(L"rshell.dll");
|
|
||||||
|
|
||||||
if (hRShell)
|
|
||||||
{
|
|
||||||
PMENUBAND_CONSTRUCTOR func = (PMENUBAND_CONSTRUCTOR) GetProcAddress(hRShell, "CMenuBand_Constructor");
|
|
||||||
if (func)
|
|
||||||
{
|
|
||||||
return func(iid , ppv);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
return CoCreateInstance(CLSID_MenuBand, NULL, CLSCTX_INPROC_SERVER, iid, ppv);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* _BROWSEUI_PCH_ */
|
#endif /* _BROWSEUI_PCH_ */
|
||||||
|
|
|
@ -24,8 +24,6 @@
|
||||||
#include <htiframe.h>
|
#include <htiframe.h>
|
||||||
#include <strsafe.h>
|
#include <strsafe.h>
|
||||||
|
|
||||||
#define USE_CUSTOM_EXPLORERBAND 1
|
|
||||||
|
|
||||||
extern HRESULT IUnknown_ShowDW(IUnknown * punk, BOOL fShow);
|
extern HRESULT IUnknown_ShowDW(IUnknown * punk, BOOL fShow);
|
||||||
|
|
||||||
#include "newatlinterfaces.h"
|
#include "newatlinterfaces.h"
|
||||||
|
@ -129,14 +127,6 @@ BOOL createNewStuff = false;
|
||||||
// this class is private to browseui.dll and is not registered externally?
|
// this class is private to browseui.dll and is not registered externally?
|
||||||
//DEFINE_GUID(CLSID_ShellFldSetExt, 0x6D5313C0, 0x8C62, 0x11D1, 0xB2, 0xCD, 0x00, 0x60, 0x97, 0xDF, 0x8C, 0x11);
|
//DEFINE_GUID(CLSID_ShellFldSetExt, 0x6D5313C0, 0x8C62, 0x11D1, 0xB2, 0xCD, 0x00, 0x60, 0x97, 0xDF, 0x8C, 0x11);
|
||||||
|
|
||||||
|
|
||||||
extern HRESULT CreateTravelLog(REFIID riid, void **ppv);
|
|
||||||
extern HRESULT CreateBaseBar(REFIID riid, void **ppv, BOOL vertical);
|
|
||||||
extern HRESULT CreateBaseBarSite(REFIID riid, void **ppv, BOOL vertical);
|
|
||||||
|
|
||||||
// temporary
|
|
||||||
extern HRESULT CreateInternetToolbar(REFIID riid, void **ppv);
|
|
||||||
|
|
||||||
void DeleteMenuItems(HMENU theMenu, unsigned int firstIDToDelete, unsigned int lastIDToDelete)
|
void DeleteMenuItems(HMENU theMenu, unsigned int firstIDToDelete, unsigned int lastIDToDelete)
|
||||||
{
|
{
|
||||||
MENUITEMINFO menuItemInfo;
|
MENUITEMINFO menuItemInfo;
|
||||||
|
@ -325,7 +315,7 @@ public:
|
||||||
HRESULT BrowseToPath(IShellFolder *newShellFolder, LPCITEMIDLIST absolutePIDL,
|
HRESULT BrowseToPath(IShellFolder *newShellFolder, LPCITEMIDLIST absolutePIDL,
|
||||||
FOLDERSETTINGS *folderSettings, long flags);
|
FOLDERSETTINGS *folderSettings, long flags);
|
||||||
HRESULT GetMenuBand(REFIID riid, void **shellMenu);
|
HRESULT GetMenuBand(REFIID riid, void **shellMenu);
|
||||||
HRESULT GetBaseBar(bool vertical, IUnknown **theBaseBar);
|
HRESULT GetBaseBar(bool vertical, REFIID riid, void **theBaseBar);
|
||||||
BOOL IsBandLoaded(const CLSID clsidBand, bool verticali, DWORD *pdwBandID);
|
BOOL IsBandLoaded(const CLSID clsidBand, bool verticali, DWORD *pdwBandID);
|
||||||
HRESULT ShowBand(const CLSID &classID, bool vertical);
|
HRESULT ShowBand(const CLSID &classID, bool vertical);
|
||||||
HRESULT NavigateToParent();
|
HRESULT NavigateToParent();
|
||||||
|
@ -740,15 +730,9 @@ HRESULT CShellBrowser::Initialize(LPITEMIDLIST pidl, long b, long c, long d)
|
||||||
if (m_hWnd == NULL)
|
if (m_hWnd == NULL)
|
||||||
return E_FAIL;
|
return E_FAIL;
|
||||||
|
|
||||||
#if 0
|
hResult = CInternetToolbar_CreateInstance(IID_PPV_ARG(IUnknown, &clientBar));
|
||||||
hResult = CoCreateInstance(CLSID_InternetToolbar, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARG(IUnknown, &fClientBars[BIInternetToolbar].clientBar));
|
|
||||||
if (FAILED_UNEXPECTEDLY(hResult))
|
if (FAILED_UNEXPECTEDLY(hResult))
|
||||||
return hResult;
|
return hResult;
|
||||||
#else
|
|
||||||
hResult = CreateInternetToolbar(IID_PPV_ARG(IUnknown, &clientBar));
|
|
||||||
if (FAILED_UNEXPECTEDLY(hResult))
|
|
||||||
return hResult;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
fClientBars[BIInternetToolbar].clientBar = clientBar;
|
fClientBars[BIInternetToolbar].clientBar = clientBar;
|
||||||
|
|
||||||
|
@ -1105,7 +1089,7 @@ HRESULT CShellBrowser::GetMenuBand(REFIID riid, void **shellMenu)
|
||||||
return deskBand->QueryInterface(riid, shellMenu);
|
return deskBand->QueryInterface(riid, shellMenu);
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT CShellBrowser::GetBaseBar(bool vertical, IUnknown **theBaseBar)
|
HRESULT CShellBrowser::GetBaseBar(bool vertical, REFIID riid, void **theBaseBar)
|
||||||
{
|
{
|
||||||
CComPtr<IUnknown> newBaseBar;
|
CComPtr<IUnknown> newBaseBar;
|
||||||
CComPtr<IDeskBar> deskBar;
|
CComPtr<IDeskBar> deskBar;
|
||||||
|
@ -1120,10 +1104,10 @@ HRESULT CShellBrowser::GetBaseBar(bool vertical, IUnknown **theBaseBar)
|
||||||
cache = &fClientBars[BIHorizontalBaseBar].clientBar.p;
|
cache = &fClientBars[BIHorizontalBaseBar].clientBar.p;
|
||||||
if (*cache == NULL)
|
if (*cache == NULL)
|
||||||
{
|
{
|
||||||
hResult = CreateBaseBar(IID_PPV_ARG(IUnknown, &newBaseBar), vertical);
|
hResult = CBaseBar_CreateInstance(IID_PPV_ARG(IUnknown, &newBaseBar), vertical);
|
||||||
if (FAILED_UNEXPECTEDLY(hResult))
|
if (FAILED_UNEXPECTEDLY(hResult))
|
||||||
return hResult;
|
return hResult;
|
||||||
hResult = CreateBaseBarSite(IID_PPV_ARG(IUnknown, &newBaseBarSite), vertical);
|
hResult = CBaseBarSite_CreateInstance(IID_PPV_ARG(IUnknown, &newBaseBarSite), vertical);
|
||||||
if (FAILED_UNEXPECTEDLY(hResult))
|
if (FAILED_UNEXPECTEDLY(hResult))
|
||||||
return hResult;
|
return hResult;
|
||||||
|
|
||||||
|
@ -1152,13 +1136,12 @@ HRESULT CShellBrowser::GetBaseBar(bool vertical, IUnknown **theBaseBar)
|
||||||
return hResult;
|
return hResult;
|
||||||
|
|
||||||
}
|
}
|
||||||
return (*cache)->QueryInterface(IID_PPV_ARG(IUnknown, theBaseBar));
|
return (*cache)->QueryInterface(riid, theBaseBar);
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL CShellBrowser::IsBandLoaded(const CLSID clsidBand, bool vertical, DWORD *pdwBandID)
|
BOOL CShellBrowser::IsBandLoaded(const CLSID clsidBand, bool vertical, DWORD *pdwBandID)
|
||||||
{
|
{
|
||||||
HRESULT hResult;
|
HRESULT hResult;
|
||||||
CComPtr<IUnknown> baseBar;
|
|
||||||
CComPtr<IDeskBar> deskBar;
|
CComPtr<IDeskBar> deskBar;
|
||||||
CComPtr<IUnknown> baseBarSite;
|
CComPtr<IUnknown> baseBarSite;
|
||||||
CComPtr<IBandSite> bandSite;
|
CComPtr<IBandSite> bandSite;
|
||||||
|
@ -1168,10 +1151,7 @@ BOOL CShellBrowser::IsBandLoaded(const CLSID clsidBand, bool vertical, DWORD *pd
|
||||||
DWORD i;
|
DWORD i;
|
||||||
|
|
||||||
/* Get our basebarsite to be able to enumerate bands */
|
/* Get our basebarsite to be able to enumerate bands */
|
||||||
hResult = GetBaseBar(vertical, &baseBar);
|
hResult = GetBaseBar(vertical, IID_PPV_ARG(IDeskBar, &deskBar));
|
||||||
if (FAILED_UNEXPECTEDLY(hResult))
|
|
||||||
return FALSE;
|
|
||||||
hResult = baseBar->QueryInterface(IID_PPV_ARG(IDeskBar, &deskBar));
|
|
||||||
if (FAILED_UNEXPECTEDLY(hResult))
|
if (FAILED_UNEXPECTEDLY(hResult))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
hResult = deskBar->GetClient(&baseBarSite);
|
hResult = deskBar->GetClient(&baseBarSite);
|
||||||
|
@ -1213,17 +1193,12 @@ HRESULT CShellBrowser::ShowBand(const CLSID &classID, bool vertical)
|
||||||
CComPtr<IDockingWindow> dockingWindow;
|
CComPtr<IDockingWindow> dockingWindow;
|
||||||
CComPtr<IUnknown> baseBarSite;
|
CComPtr<IUnknown> baseBarSite;
|
||||||
CComPtr<IUnknown> newBand;
|
CComPtr<IUnknown> newBand;
|
||||||
CComPtr<IUnknown> theBaseBar;
|
|
||||||
CComPtr<IDeskBar> deskBar;
|
CComPtr<IDeskBar> deskBar;
|
||||||
VARIANT vaIn;
|
VARIANT vaIn;
|
||||||
HRESULT hResult;
|
HRESULT hResult;
|
||||||
DWORD dwBandID;
|
DWORD dwBandID;
|
||||||
|
|
||||||
hResult = GetBaseBar(vertical, (IUnknown **)&theBaseBar);
|
hResult = GetBaseBar(vertical, IID_PPV_ARG(IDeskBar, &deskBar));
|
||||||
if (FAILED_UNEXPECTEDLY(hResult))
|
|
||||||
return hResult;
|
|
||||||
|
|
||||||
hResult = theBaseBar->QueryInterface(IID_PPV_ARG(IDeskBar, &deskBar));
|
|
||||||
if (FAILED_UNEXPECTEDLY(hResult))
|
if (FAILED_UNEXPECTEDLY(hResult))
|
||||||
return hResult;
|
return hResult;
|
||||||
|
|
||||||
|
@ -1231,23 +1206,21 @@ HRESULT CShellBrowser::ShowBand(const CLSID &classID, bool vertical)
|
||||||
if (FAILED_UNEXPECTEDLY(hResult))
|
if (FAILED_UNEXPECTEDLY(hResult))
|
||||||
return hResult;
|
return hResult;
|
||||||
|
|
||||||
hResult = theBaseBar->QueryInterface(IID_PPV_ARG(IDockingWindow, &dockingWindow));
|
hResult = deskBar->QueryInterface(IID_PPV_ARG(IDockingWindow, &dockingWindow));
|
||||||
if (FAILED_UNEXPECTEDLY(hResult))
|
if (FAILED_UNEXPECTEDLY(hResult))
|
||||||
return hResult;
|
return hResult;
|
||||||
|
|
||||||
if (!IsBandLoaded(classID, vertical, &dwBandID))
|
if (!IsBandLoaded(classID, vertical, &dwBandID))
|
||||||
{
|
{
|
||||||
#if USE_CUSTOM_EXPLORERBAND
|
|
||||||
TRACE("ShowBand called for CLSID %s, vertical=%d...\n", wine_dbgstr_guid(&classID), vertical);
|
TRACE("ShowBand called for CLSID %s, vertical=%d...\n", wine_dbgstr_guid(&classID), vertical);
|
||||||
if (IsEqualCLSID(CLSID_ExplorerBand, classID))
|
if (IsEqualCLSID(CLSID_ExplorerBand, classID))
|
||||||
{
|
{
|
||||||
TRACE("CLSID_ExplorerBand requested, building internal band.\n");
|
TRACE("CLSID_ExplorerBand requested, building internal band.\n");
|
||||||
hResult = CExplorerBand_Constructor(IID_PPV_ARG(IUnknown, &newBand));
|
hResult = CExplorerBand_CreateInstance(IID_PPV_ARG(IUnknown, &newBand));
|
||||||
if (FAILED_UNEXPECTEDLY(hResult))
|
if (FAILED_UNEXPECTEDLY(hResult))
|
||||||
return hResult;
|
return hResult;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif
|
|
||||||
{
|
{
|
||||||
TRACE("A different CLSID requested, using CoCreateInstance.\n");
|
TRACE("A different CLSID requested, using CoCreateInstance.\n");
|
||||||
hResult = CoCreateInstance(classID, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARG(IUnknown, &newBand));
|
hResult = CoCreateInstance(classID, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARG(IUnknown, &newBand));
|
||||||
|
@ -2388,7 +2361,7 @@ HRESULT STDMETHODCALLTYPE CShellBrowser::GetTravelLog(ITravelLog **pptl)
|
||||||
*pptl = NULL;
|
*pptl = NULL;
|
||||||
if (fTravelLog.p == NULL)
|
if (fTravelLog.p == NULL)
|
||||||
{
|
{
|
||||||
hResult = CreateTravelLog(IID_PPV_ARG(ITravelLog, &fTravelLog));
|
hResult = CTravelLog_CreateInstance(IID_PPV_ARG(ITravelLog, &fTravelLog));
|
||||||
if (FAILED_UNEXPECTEDLY(hResult))
|
if (FAILED_UNEXPECTEDLY(hResult))
|
||||||
return hResult;
|
return hResult;
|
||||||
}
|
}
|
||||||
|
|
|
@ -433,7 +433,7 @@ LRESULT CToolsBand::OnGetButtonInfo(UINT idControl, NMHDR *pNMHDR, BOOL &bHandle
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT CreateToolsBar(REFIID riid, void **ppv)
|
HRESULT CToolsBand_CreateInstance(REFIID riid, void **ppv)
|
||||||
{
|
{
|
||||||
return ShellObjectCreator<CToolsBand>(riid, ppv);
|
return ShellObjectCreator<CToolsBand>(riid, ppv);
|
||||||
}
|
}
|
||||||
|
|
|
@ -624,7 +624,7 @@ HRESULT STDMETHODCALLTYPE CTravelLog::Revert()
|
||||||
return E_NOTIMPL;
|
return E_NOTIMPL;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT CreateTravelLog(REFIID riid, void **ppv)
|
HRESULT CTravelLog_CreateInstance(REFIID riid, void **ppv)
|
||||||
{
|
{
|
||||||
return ShellObjectCreatorInit<CTravelLog>(riid, ppv);
|
return ShellObjectCreatorInit<CTravelLog>(riid, ppv);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue