Author: gadamopoulos
Date: Wed Dec 17 11:35:07 2014
New Revision: 65698
URL: 
http://svn.reactos.org/svn/reactos?rev=65698&view=rev
Log:
[BROWSEUI]
* Simplify a lot of methods my using helpers from shlwapi.
* Remove declarations for undocumented functions that are already declared in our headers.
* Move definitions of IID_IAugmentedShellFolder and CLSID_MergedFolder to our headers.
* Remove definitions of functions that are already implemented in shlwapi.
* Add CreateMergedFolder and CreateMenuBand functions in precomp.h in order to simplify
creating these objects when using rshell.
Modified:
    trunk/reactos/dll/win32/browseui/addressband.cpp
    trunk/reactos/dll/win32/browseui/bandproxy.cpp
    trunk/reactos/dll/win32/browseui/brandband.cpp
    trunk/reactos/dll/win32/browseui/internettoolbar.cpp
    trunk/reactos/dll/win32/browseui/precomp.h
    trunk/reactos/dll/win32/browseui/shellbrowser.cpp
    trunk/reactos/dll/win32/browseui/toolsband.cpp
    trunk/reactos/include/reactos/shlguid_undoc.h
    trunk/reactos/include/reactos/shlwapi_undoc.h
    trunk/reactos/include/reactos/undocshell.h
Modified: trunk/reactos/dll/win32/browseui/addressband.cpp
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/browseui/address…
==============================================================================
--- trunk/reactos/dll/win32/browseui/addressband.cpp    [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/browseui/addressband.cpp    [iso-8859-1] Wed Dec 17 11:35:07
2014
@@ -29,13 +29,6 @@
 HRESULT CreateAddressEditBox(REFIID riid, void **ppv);
-extern "C"
-HRESULT WINAPI SHGetImageList(
-    _In_   int iImageList,
-    _In_   REFIID riid,
-    _Out_  void **ppv
-    );
-
 /*
 TODO:
 ****Add command handler for show/hide Go button to OnWinEvent
@@ -283,13 +276,7 @@
 HRESULT STDMETHODCALLTYPE CAddressBand::QueryStatus(
     const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[  ], OLECMDTEXT *pCmdText)
 {
-    CComPtr<IOleCommandTarget>              oleCommandTarget;
-    HRESULT                                 hResult;
-
-    hResult = fAddressEditBox->QueryInterface(IID_PPV_ARG(IOleCommandTarget,
&oleCommandTarget));
-    if (FAILED_UNEXPECTEDLY(hResult))
-        return hResult;
-    return oleCommandTarget->QueryStatus(pguidCmdGroup, cCmds, prgCmds, pCmdText);
+    return IUnknown_QueryStatus(fAddressEditBox, *pguidCmdGroup, cCmds, prgCmds,
pCmdText);
 }
 HRESULT STDMETHODCALLTYPE CAddressBand::Exec(const GUID *pguidCmdGroup,
@@ -329,15 +316,9 @@
 HRESULT STDMETHODCALLTYPE CAddressBand::UIActivateIO(BOOL fActivate, LPMSG lpMsg)
 {
-    CComPtr<IInputObjectSite>               inputObjectSite;
-    HRESULT                                 hResult;
-
     if (fActivate)
     {
-        hResult = fSite->QueryInterface(IID_PPV_ARG(IInputObjectSite,
&inputObjectSite));
-        if (FAILED_UNEXPECTEDLY(hResult))
-            return hResult;
-        hResult = inputObjectSite->OnFocusChangeIS(static_cast<IDeskBand
*>(this), fActivate);
+        IUnknown_OnFocusChangeIS(fSite, static_cast<IDeskBand *>(this), fActivate);
         SetFocus();
     }
     return S_OK;
Modified: trunk/reactos/dll/win32/browseui/bandproxy.cpp
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/browseui/bandpro…
==============================================================================
--- trunk/reactos/dll/win32/browseui/bandproxy.cpp      [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/browseui/bandproxy.cpp      [iso-8859-1] Wed Dec 17 11:35:07
2014
@@ -37,20 +37,15 @@
 HRESULT CBandProxy::FindBrowserWindow(IUnknown **browser)
 {
-    CComPtr<IServiceProvider>               serviceProvider;
-    CComPtr<IWebBrowser2>                   webBrowser;
-    HRESULT                                 hResult;
+    IWebBrowser2* webBrowser;
+    HRESULT hResult;
     if (browser == NULL)
         return E_POINTER;
-    hResult = fSite->QueryInterface(IID_PPV_ARG(IServiceProvider,
&serviceProvider));
+    hResult = IUnknown_QueryService(fSite, SID_IWebBrowserApp, IID_PPV_ARG(IWebBrowser2,
&webBrowser));
     if (FAILED_UNEXPECTEDLY(hResult))
         return hResult;
-    hResult = serviceProvider->QueryService(
-        SID_IWebBrowserApp, IID_PPV_ARG(IWebBrowser2, &webBrowser));
-    if (FAILED_UNEXPECTEDLY(hResult))
-        return hResult;
-    *browser = webBrowser.Detach();
+    *browser = webBrowser;
     return S_OK;
 }
Modified: trunk/reactos/dll/win32/browseui/brandband.cpp
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/browseui/brandba…
==============================================================================
--- trunk/reactos/dll/win32/browseui/brandband.cpp      [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/browseui/brandband.cpp      [iso-8859-1] Wed Dec 17 11:35:07
2014
@@ -43,17 +43,6 @@
     ::ExtTextOut(dc, 0, 0, ETO_OPAQUE, bounds, NULL, 0, NULL);
 }
-long GetScreenDepth()
-{
-    HDC                                     tempDC;
-    long                                    depth;
-
-    tempDC = GetDC(NULL);
-    depth = GetDeviceCaps(tempDC, BITSPIXEL) * GetDeviceCaps(tempDC, PLANES);
-    ReleaseDC(NULL, tempDC);
-    return depth;
-}
-
 static const int                            gSmallImageSize = 22;
 static const int                            gMediumImageSize = 26;
 static const int                            gLargeImageSize = 38;
@@ -100,7 +89,7 @@
     BITMAP                                  bitmapInfo;
     int                                     resourceID;
-    screenDepth = GetScreenDepth();
+    screenDepth = SHGetCurColorRes();
     GetClientRect(&clientRect);
     clientWidth = clientRect.right - clientRect.left;
     clientHeight = clientRect.bottom - clientRect.top;
Modified: trunk/reactos/dll/win32/browseui/internettoolbar.cpp
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/browseui/interne…
==============================================================================
--- trunk/reactos/dll/win32/browseui/internettoolbar.cpp        [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/browseui/internettoolbar.cpp        [iso-8859-1] Wed Dec 17
11:35:07 2014
@@ -29,14 +29,7 @@
 #define GET_X_LPARAM(lp) ((int)(short)LOWORD(lp))
 #define GET_Y_LPARAM(lp) ((int)(short)HIWORD(lp))
-#define USE_CUSTOM_MENUBAND 1
-HMODULE g_hRShell = NULL;
-
 #if 1
-// TODO: declare these GUIDs and interfaces in the right place (whatever that may be)
-
-IID IID_IAugmentedShellFolder = { 0x91EA3F8C, 0xC99B, 0x11D0, { 0x98, 0x15, 0x00, 0xC0,
0x4F, 0xD9, 0x19, 0x72 } };
-CLSID CLSID_MergedFolder = { 0x26FDC864, 0xBE88, 0x46E7, { 0x92, 0x35, 0x03, 0x2D, 0x8E,
0xA5, 0x16, 0x2E } };
 interface IAugmentedShellFolder : public IShellFolder
 {
@@ -89,35 +82,6 @@
 extern HRESULT CreateBrandBand(REFIID riid, void **ppv);
 extern HRESULT CreateBandProxy(REFIID riid, void **ppv);
 extern HRESULT CreateAddressBand(REFIID riid, void **ppv);
-
-typedef HRESULT(WINAPI * PMENUBAND_CONSTRUCTOR)(REFIID riid, void **ppv);
-typedef HRESULT(WINAPI * PMERGEDFOLDER_CONSTRUCTOR)(REFIID riid, void **ppv);
-
-HMODULE hRShell = NULL;
-PMERGEDFOLDER_CONSTRUCTOR pCMergedFolder_Constructor = NULL;
-PMENUBAND_CONSTRUCTOR     pCMenuBand_Constructor = NULL;
-
-HRESULT IUnknown_HasFocusIO(IUnknown * punk)
-{
-    CComPtr<IInputObject> pio;
-    HRESULT hr;
-    hr = punk->QueryInterface(IID_PPV_ARG(IInputObject, &pio));
-    if (FAILED_UNEXPECTEDLY(hr))
-        return hr;
-    return pio->HasFocusIO();
-}
-
-HRESULT IUnknown_TranslateAcceleratorIO(IUnknown * punk, MSG * pmsg)
-{
-    CComPtr<IInputObject> pio;
-    HRESULT hr;
-    if (!punk)
-        return E_FAIL;
-    hr = punk->QueryInterface(IID_PPV_ARG(IInputObject, &pio));
-    if (FAILED_UNEXPECTEDLY(hr))
-        return hr;
-    return pio->TranslateAcceleratorIO(pmsg);
-}
 HRESULT IUnknown_RelayWinEvent(IUnknown * punk, HWND hWnd, UINT uMsg, WPARAM wParam,
LPARAM lParam, LRESULT *theResult)
 {
@@ -478,28 +442,7 @@
     if (FAILED_UNEXPECTEDLY(hr))
         return hr;
-#if 1
-    if (!hRShell)
-    {
-        hRShell = GetModuleHandle(L"rshell.dll");
-        if (!hRShell)
-            hRShell = LoadLibrary(L"rshell.dll");
-    }
-
-    if (!pCMergedFolder_Constructor)
-        pCMergedFolder_Constructor = (PMERGEDFOLDER_CONSTRUCTOR) GetProcAddress(hRShell,
"CMergedFolder_Constructor");
-
-    if (pCMergedFolder_Constructor)
-    {
-        hr = pCMergedFolder_Constructor(IID_PPV_ARG(IAugmentedShellFolder, &pasf));
-    }
-    else
-    {
-        hr = E_FAIL;
-    }
-#else
-    hr = CoCreateInstance(CLSID_MergedFolder, NULL, CLSCTX_INPROC_SERVER,
IID_PPV_ARG(IAugmentedShellFolder, &pasf));
-#endif
+    hr = CreateMergedFolder(IID_PPV_ARG(IAugmentedShellFolder, &pasf));
     if (FAILED_UNEXPECTEDLY(hr))
     {
         *ppsfFavorites = psfUserFavorites.Detach();
@@ -560,30 +503,7 @@
     if (fFavoritesMenu.p == NULL)
     {
-#if USE_CUSTOM_MENUBAND
-        if (!hRShell)
-        {
-            hRShell = GetModuleHandle(L"rshell.dll");
-            if (!hRShell)
-                hRShell = LoadLibrary(L"rshell.dll");
-        }
-
-        if (!pCMenuBand_Constructor)
-            pCMenuBand_Constructor = (PMENUBAND_CONSTRUCTOR) GetProcAddress(hRShell,
"CMenuBand_Constructor");
-
-        if (pCMenuBand_Constructor)
-        {
-            hResult = pCMenuBand_Constructor(IID_PPV_ARG(IShellMenu, &newMenu));
-        }
-        else
-        {
-            hResult = CoCreateInstance(CLSID_MenuBand, NULL, CLSCTX_INPROC_SERVER,
-                IID_PPV_ARG(IShellMenu, &newMenu));
-        }
-#else
-        hResult = CoCreateInstance(CLSID_MenuBand, NULL, CLSCTX_INPROC_SERVER,
-            IID_PPV_ARG(IShellMenu, &newMenu));
-#endif
+        hResult = CreateMenuBand(IID_PPV_ARG(IShellMenu, &newMenu));
         if (FAILED_UNEXPECTEDLY(hResult))
             return hResult;
         hResult = newMenu->Initialize(this, FCIDM_MENU_FAVORITES, -1, SMINIT_VERTICAL
| SMINIT_CACHED);
@@ -751,29 +671,9 @@
     *pMenuBar = NULL;
-    hResult = E_FAIL;
-#if USE_CUSTOM_MENUBAND
-    if (!g_hRShell) g_hRShell = GetModuleHandleW(L"rshell.dll");
-
-    if (!g_hRShell) g_hRShell = LoadLibraryW(L"rshell.dll");
-
-    if (g_hRShell)
-    {
-        PMENUBAND_CONSTRUCTOR func = (PMENUBAND_CONSTRUCTOR) GetProcAddress(g_hRShell,
"CMenuBand_Constructor");
-        if (func)
-        {
-            hResult = func(IID_PPV_ARG(IShellMenu, &menubar));
-        }
-    }
-#endif
-
-    if (FAILED_UNEXPECTEDLY(hResult))
-    {
-        hResult = CoCreateInstance(CLSID_MenuBand, NULL, CLSCTX_INPROC_SERVER,
-            IID_PPV_ARG(IShellMenu, &menubar));
-        if (FAILED_UNEXPECTEDLY(hResult))
-            return hResult;
-    }
+    hResult = CreateMenuBand(IID_PPV_ARG(IShellMenu, &menubar));
+    if (FAILED_UNEXPECTEDLY(hResult))
+        return hResult;
     hResult = fMenuCallback->QueryInterface(IID_PPV_ARG(IShellMenuCallback,
&callback));
     if (FAILED_UNEXPECTEDLY(hResult))
@@ -1403,8 +1303,6 @@
 HRESULT STDMETHODCALLTYPE CInternetToolbar::SetSite(IUnknown *pUnkSite)
 {
     CComPtr<IBrowserService>                browserService;
-    CComPtr<IServiceProvider>               serviceProvider;
-    CComPtr<IOleWindow>                     oleWindow;
     HWND                                    ownerWindow;
     HWND                                    dockContainer;
     HRESULT                                 hResult;
@@ -1419,10 +1317,7 @@
     else
     {
         // get window handle of owner
-        hResult = pUnkSite->QueryInterface(IID_PPV_ARG(IOleWindow, &oleWindow));
-        if (FAILED_UNEXPECTEDLY(hResult))
-            return hResult;
-        hResult = oleWindow->GetWindow(&ownerWindow);
+        hResult = IUnknown_GetWindow(pUnkSite, &ownerWindow);
         if (FAILED_UNEXPECTEDLY(hResult))
             return hResult;
         if (ownerWindow == NULL)
@@ -1447,9 +1342,7 @@
             return E_FAIL;
         // take advice to watch events
-        hResult = pUnkSite->QueryInterface(IID_PPV_ARG(IServiceProvider,
&serviceProvider));
-        hResult = serviceProvider->QueryService(
-            SID_SShellBrowser, IID_PPV_ARG(IBrowserService, &browserService));
+        hResult = IUnknown_QueryService(pUnkSite, SID_SShellBrowser,
IID_PPV_ARG(IBrowserService, &browserService));
         hResult = AtlAdvise(browserService, static_cast<IDispatch *>(this),
DIID_DWebBrowserEvents, &fAdviseCookie);
     }
     return S_OK;
@@ -1467,7 +1360,6 @@
 HRESULT STDMETHODCALLTYPE CInternetToolbar::QueryService(REFGUID guidService, REFIID
riid, void **ppvObject)
 {
-    CComPtr<IServiceProvider>               serviceProvider;
     HRESULT                                 hResult;
     if (IsEqualIID(guidService, IID_IBandSite))
@@ -1577,15 +1469,10 @@
 LRESULT CInternetToolbar::OnTravelBack(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL
&bHandled)
 {
-    CComPtr<IServiceProvider>               serviceProvider;
     CComPtr<IWebBrowser>                    webBrowser;
     HRESULT                                 hResult;
-    hResult = fSite->QueryInterface(IID_PPV_ARG(IServiceProvider,
&serviceProvider));
-    if (FAILED_UNEXPECTEDLY(hResult))
-        return 0;
-    hResult = serviceProvider->QueryService(SID_SShellBrowser,
-        IID_PPV_ARG(IWebBrowser, &webBrowser));
+    hResult = IUnknown_QueryService(fSite, SID_SShellBrowser, IID_PPV_ARG(IWebBrowser,
&webBrowser));
     if (FAILED_UNEXPECTEDLY(hResult))
         return 0;
     hResult = webBrowser->GoBack();
@@ -1594,15 +1481,10 @@
 LRESULT CInternetToolbar::OnTravelForward(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL
&bHandled)
 {
-    CComPtr<IServiceProvider>               serviceProvider;
     CComPtr<IWebBrowser>                    webBrowser;
     HRESULT                                 hResult;
-    hResult = fSite->QueryInterface(IID_PPV_ARG(IServiceProvider,
&serviceProvider));
-    if (FAILED_UNEXPECTEDLY(hResult))
-        return 0;
-    hResult = serviceProvider->QueryService(
-        SID_SShellBrowser, IID_PPV_ARG(IWebBrowser, &webBrowser));
+    hResult = IUnknown_QueryService(fSite, SID_SShellBrowser, IID_PPV_ARG(IWebBrowser,
&webBrowser));
     if (FAILED_UNEXPECTEDLY(hResult))
         return 0;
     hResult = webBrowser->GoForward();
@@ -1611,13 +1493,7 @@
 LRESULT CInternetToolbar::OnUpLevel(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL
&bHandled)
 {
-    CComPtr<IOleCommandTarget>              oleCommandTarget;
-    HRESULT                                 hResult;
-
-    hResult = fSite->QueryInterface(IID_PPV_ARG(IOleCommandTarget,
&oleCommandTarget));
-    if (FAILED_UNEXPECTEDLY(hResult))
-        return hResult;
-    hResult = oleCommandTarget->Exec(&CGID_ShellBrowser, IDM_GOTO_UPONELEVEL, 0,
NULL, NULL);
+    IUnknown_Exec(fSite, CGID_ShellBrowser, IDM_GOTO_UPONELEVEL, 0, NULL, NULL);
     return 1;
 }
@@ -1654,13 +1530,7 @@
 LRESULT CInternetToolbar::OnFolders(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL
&bHandled)
 {
-    CComPtr<IOleCommandTarget>              oleCommandTarget;
-    HRESULT                                 hResult;
-
-    hResult = fSite->QueryInterface(IID_PPV_ARG(IOleCommandTarget,
&oleCommandTarget));
-    if (FAILED_UNEXPECTEDLY(hResult))
-        return hResult;
-    hResult = oleCommandTarget->Exec(&CGID_Explorer, 0x23, 0, NULL, NULL);
+    IUnknown_Exec(fSite, CGID_Explorer, 0x23, 0, NULL, NULL);
     return 1;
 }
@@ -1677,7 +1547,6 @@
 LRESULT CInternetToolbar::OnMenuDropDown(UINT idControl, NMHDR *pNMHDR, BOOL
&bHandled)
 {
-    CComPtr<IServiceProvider>               serviceProvider;
     CComPtr<IBrowserService>                browserService;
     CComPtr<IOleCommandTarget>              commandTarget;
     CComPtr<ITravelLog>                     travelLog;
@@ -1703,14 +1572,11 @@
     {
         case IDM_GOTO_BACK:
             newMenu = CreatePopupMenu();
-            hResult = fSite->QueryInterface(IID_PPV_ARG(IServiceProvider,
&serviceProvider));
-            hResult = serviceProvider->QueryService(
-                SID_SShellBrowser, IID_PPV_ARG(IBrowserService, &browserService));
+            hResult = IUnknown_QueryService(fSite, SID_SShellBrowser,
IID_PPV_ARG(IBrowserService, &browserService));
             hResult = browserService->GetTravelLog(&travelLog);
             hResult = travelLog->InsertMenuEntries(browserService, newMenu, 0, 1, 9,
TLMENUF_BACK);
-            hResult = browserService->QueryInterface(IID_PPV_ARG(IOleCommandTarget,
&commandTarget));
             commandInfo.cmdID = 0x1d;
-            hResult = commandTarget->QueryStatus(&CGID_Explorer, 1,
&commandInfo, NULL);
+            hResult = IUnknown_QueryStatus(browserService, CGID_Explorer, 1,
&commandInfo, NULL);
             if ((commandInfo.cmdf & (OLECMDF_ENABLED | OLECMDF_LATCHED)) ==
OLECMDF_ENABLED &&
                 travelLog->CountEntries(browserService) > 1)
             {
@@ -1733,13 +1599,11 @@
             break;
         case IDM_GOTO_FORWARD:
             newMenu = CreatePopupMenu();
-            hResult = fSite->QueryInterface(IID_PPV_ARG(IServiceProvider,
&serviceProvider));
-            hResult = serviceProvider->QueryService(SID_SShellBrowser,
IID_PPV_ARG(IBrowserService, &browserService));
+            hResult = IUnknown_QueryService(fSite, SID_SShellBrowser,
IID_PPV_ARG(IBrowserService, &browserService));
             hResult = browserService->GetTravelLog(&travelLog);
             hResult = travelLog->InsertMenuEntries(browserService, newMenu, 0, 1, 9,
TLMENUF_FORE);
-            hResult = browserService->QueryInterface(IID_PPV_ARG(IOleCommandTarget,
&commandTarget));
             commandInfo.cmdID = 0x1d;
-            hResult = commandTarget->QueryStatus(&CGID_Explorer, 1,
&commandInfo, NULL);
+            hResult = IUnknown_QueryStatus(browserService, CGID_Explorer, 1,
&commandInfo, NULL);
             if ((commandInfo.cmdf & (OLECMDF_ENABLED | OLECMDF_LATCHED)) ==
OLECMDF_ENABLED &&
                 travelLog->CountEntries(browserService) > 1)
             {
Modified: trunk/reactos/dll/win32/browseui/precomp.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/browseui/precomp…
==============================================================================
--- trunk/reactos/dll/win32/browseui/precomp.h  [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/browseui/precomp.h  [iso-8859-1] Wed Dec 17 11:35:07 2014
@@ -46,4 +46,47 @@
 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");
+
+    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");
+
+    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_ */
Modified: trunk/reactos/dll/win32/browseui/shellbrowser.cpp
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/browseui/shellbr…
==============================================================================
--- trunk/reactos/dll/win32/browseui/shellbrowser.cpp   [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/browseui/shellbrowser.cpp   [iso-8859-1] Wed Dec 17 11:35:07
2014
@@ -25,11 +25,6 @@
 #include <strsafe.h>
 #define USE_CUSTOM_EXPLORERBAND 1
-
-extern "C"
-BOOL WINAPI Shell_GetImageLists(
-    _Out_  HIMAGELIST *phiml,
-    _Out_  HIMAGELIST *phimlSmall);
 extern HRESULT IUnknown_ShowDW(IUnknown * punk, BOOL fShow);
@@ -148,34 +143,6 @@
 // temporary
 extern HRESULT CreateInternetToolbar(REFIID riid, void **ppv);
-
-
-HMENU SHGetMenuFromID(HMENU topMenu, int theID)
-{
-    MENUITEMINFO                            menuItemInfo;
-
-    menuItemInfo.cbSize = sizeof(menuItemInfo);
-    menuItemInfo.fMask = MIIM_SUBMENU;
-    if (!GetMenuItemInfo(topMenu, theID, FALSE, &menuItemInfo))
-        return NULL;
-    return menuItemInfo.hSubMenu;
-}
-
-void SHCheckMenuItem(HMENU theMenu, int theID, BOOL checked)
-{
-    MENUITEMINFO                            menuItemInfo;
-
-    menuItemInfo.cbSize = sizeof(menuItemInfo);
-    menuItemInfo.fMask = MIIM_STATE;
-    if (GetMenuItemInfo(theMenu, theID, FALSE, &menuItemInfo))
-    {
-        if (checked)
-            menuItemInfo.fState |= MF_CHECKED;
-        else
-            menuItemInfo.fState &= ~MF_CHECKED;
-        SetMenuItemInfo(theMenu, theID, FALSE, &menuItemInfo);
-    }
-}
 void DeleteMenuItems(HMENU theMenu, unsigned int firstIDToDelete, unsigned int
lastIDToDelete)
 {
@@ -985,9 +952,7 @@
         ::SendMessage(fCurrentShellViewWindow, WM_SETREDRAW, 0, 0);
     // set site
-    hResult = newShellView->QueryInterface(IID_PPV_ARG(IObjectWithSite,
&objectWithSite));
-    if (SUCCEEDED(hResult) && objectWithSite.p != NULL)
-        hResult = objectWithSite->SetSite(static_cast<IDropTarget *>(this));
+    hResult = IUnknown_SetSite(newShellView, static_cast<IDropTarget *>(this));
     // update folder and view
     saveCurrentShellFolder = fCurrentShellFolder;
@@ -2582,8 +2547,6 @@
     return E_NOTIMPL;
 }
-extern HRESULT IUnknown_HasFocusIO(IUnknown * punk);
-extern HRESULT IUnknown_TranslateAcceleratorIO(IUnknown * punk, MSG * pmsg);
 HRESULT STDMETHODCALLTYPE CShellBrowser::v_MayTranslateAccelerator(MSG *pmsg)
 {
     for (int i = 0; i < 3; i++)
Modified: trunk/reactos/dll/win32/browseui/toolsband.cpp
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/browseui/toolsba…
==============================================================================
--- trunk/reactos/dll/win32/browseui/toolsband.cpp      [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/browseui/toolsband.cpp      [iso-8859-1] Wed Dec 17 11:35:07
2014
@@ -261,7 +261,6 @@
 HRESULT STDMETHODCALLTYPE CToolsBand::SetSite(IUnknown* pUnkSite){
     HWND                    parentWindow;
-    IOleWindow              *oleWindow;
     HWND                    toolbar;
     HRESULT                 hResult;
@@ -273,13 +272,8 @@
     if (FAILED_UNEXPECTEDLY(hResult))
         return hResult;
     parentWindow = NULL;
-    hResult = pUnkSite->QueryInterface(IID_PPV_ARG(IOleWindow, &oleWindow));
-    if (SUCCEEDED(hResult))
-    {
-        oleWindow->GetWindow(&parentWindow);
-        oleWindow->Release();
-    }
-    if (!::IsWindow(parentWindow))
+    hResult = IUnknown_GetWindow(pUnkSite, &parentWindow);
+    if (FAILED(hResult) || !::IsWindow(parentWindow))
         return E_FAIL;
     toolbar = CreateWindowEx(
Modified: trunk/reactos/include/reactos/shlguid_undoc.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/shlguid_un…
==============================================================================
--- trunk/reactos/include/reactos/shlguid_undoc.h       [iso-8859-1] (original)
+++ trunk/reactos/include/reactos/shlguid_undoc.h       [iso-8859-1] Wed Dec 17 11:35:07
2014
@@ -107,6 +107,10 @@
 DEFINE_GUID(CLSID_ExeDropHandler,                 0x86C86720, 0x42A0, 0x1069, 0xA2, 0xE8,
0x08, 0x00, 0x2B, 0x30, 0x30, 0x9D);
+DEFINE_GUID(IID_IAugmentedShellFolder,     0x91EA3F8C, 0xC99B, 0x11D0, 0x98, 0x15, 0x00,
0xC0, 0x4F, 0xD9, 0x19, 0x72);
+DEFINE_GUID(CLSID_MergedFolder,            0x26FDC864, 0xBE88, 0x46E7, 0x92, 0x35, 0x03,
0x2D, 0x8E, 0xA5, 0x16, 0x2E);
+
+
 #define CGID_IExplorerToolbar IID_IExplorerToolbar
 #define SID_IExplorerToolbar IID_IExplorerToolbar
 #define SID_ITargetFrame2 IID_ITargetFrame2
Modified: trunk/reactos/include/reactos/shlwapi_undoc.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/shlwapi_un…
==============================================================================
--- trunk/reactos/include/reactos/shlwapi_undoc.h       [iso-8859-1] (original)
+++ trunk/reactos/include/reactos/shlwapi_undoc.h       [iso-8859-1] Wed Dec 17 11:35:07
2014
@@ -33,13 +33,6 @@
 HWND WINAPI SHSetParentHwnd(HWND hWnd, HWND hWndParent);
 HRESULT WINAPI ConnectToConnectionPoint(IUnknown *lpUnkSink, REFIID riid, BOOL
bAdviseOnly, IUnknown *lpUnknown, LPDWORD lpCookie, IConnectionPoint **lppCP);
 BOOL WINAPI SHIsSameObject(IUnknown *lpInt1, IUnknown *lpInt2);
-HRESULT WINAPI IUnknown_GetWindow(IUnknown *lpUnknown, HWND *lphWnd);
-HRESULT WINAPI IUnknown_SetOwner(IUnknown *pUnk, ULONG arg);
-HRESULT WINAPI IUnknown_SetSite(IUnknown *obj, IUnknown *site);
-HRESULT WINAPI IUnknown_GetClassID(IUnknown *lpUnknown, CLSID *lpClassId);
-HRESULT WINAPI IUnknown_QueryService(IUnknown* lpUnknown, REFGUID sid, REFIID riid,
LPVOID *lppOut);
-HRESULT WINAPI IUnknown_QueryServiceExec(IUnknown *lpUnknown, REFIID service, const GUID
*group, DWORD cmdId, DWORD cmdOpt, VARIANT *pIn, VARIANT *pOut);
-HRESULT WINAPI IUnknown_UIActivateIO(IUnknown *unknown, BOOL activate, LPMSG msg);
 BOOL WINAPI SHLoadMenuPopup(HINSTANCE hInst, LPCWSTR szName);
 void WINAPI SHPropagateMessage(HWND hWnd, UINT uiMsgId, WPARAM wParam, LPARAM lParam,
BOOL bSend);
 DWORD WINAPI SHRemoveAllSubMenus(HMENU hMenu);
@@ -47,9 +40,6 @@
 DWORD WINAPI SHCheckMenuItem(HMENU hMenu, UINT uID, BOOL bCheck);
 DWORD WINAPI SHRegisterClassA(WNDCLASSA *wndclass);
 BOOL WINAPI SHSimulateDrop(IDropTarget *pDrop, IDataObject *pDataObj, DWORD grfKeyState,
PPOINTL lpPt, DWORD* pdwEffect);
-HRESULT WINAPI IUnknown_TranslateAcceleratorOCS(IUnknown *lpUnknown, LPMSG lpMsg, DWORD
dwModifiers);
-HRESULT WINAPI IUnknown_OnFocusOCS(IUnknown *lpUnknown, BOOL fGotFocus);
-HRESULT WINAPI IUnknown_HandleIRestrict(LPUNKNOWN lpUnknown, PVOID lpArg1, PVOID lpArg2,
PVOID lpArg3, PVOID lpArg4);
 HMENU WINAPI SHGetMenuFromID(HMENU hMenu, UINT uID);
 DWORD WINAPI SHGetCurColorRes(void);
 DWORD WINAPI SHWaitForSendMessageThread(HANDLE hand, DWORD dwTimeout);
@@ -84,6 +74,17 @@
 #define SHCreateWorkerWindow SHCreateWorkerWindowA
 #endif
+HRESULT WINAPI IUnknown_SetOwner(IUnknown *pUnk, ULONG arg);
+HRESULT WINAPI IUnknown_GetClassID(IUnknown *lpUnknown, CLSID *lpClassId);
+HRESULT WINAPI IUnknown_QueryServiceExec(IUnknown *lpUnknown, REFIID service, const GUID
*group, DWORD cmdId, DWORD cmdOpt, VARIANT *pIn, VARIANT *pOut);
+HRESULT WINAPI IUnknown_UIActivateIO(IUnknown *unknown, BOOL activate, LPMSG msg);
+HRESULT WINAPI IUnknown_TranslateAcceleratorOCS(IUnknown *lpUnknown, LPMSG lpMsg, DWORD
dwModifiers);
+HRESULT WINAPI IUnknown_OnFocusOCS(IUnknown *lpUnknown, BOOL fGotFocus);
+HRESULT WINAPI IUnknown_HandleIRestrict(LPUNKNOWN lpUnknown, PVOID lpArg1, PVOID lpArg2,
PVOID lpArg3, PVOID lpArg4);
+HRESULT WINAPI IUnknown_HasFocusIO(IUnknown * punk);
+HRESULT WINAPI IUnknown_TranslateAcceleratorIO(IUnknown * punk, MSG * pmsg);
+HRESULT WINAPI IUnknown_OnFocusChangeIS(LPUNKNOWN lpUnknown, LPUNKNOWN pFocusObject, BOOL
bFocus);
+
 #ifdef __cplusplus
 } /* extern "C" */
 #endif /* defined(__cplusplus) */
Modified: trunk/reactos/include/reactos/undocshell.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/undocshell…
==============================================================================
--- trunk/reactos/include/reactos/undocshell.h  [iso-8859-1] (original)
+++ trunk/reactos/include/reactos/undocshell.h  [iso-8859-1] Wed Dec 17 11:35:07 2014
@@ -539,6 +539,8 @@
 #define SMC_EXEC 4
 INT WINAPI Shell_GetCachedImageIndex(LPCWSTR szPath, INT nIndex, UINT bSimulateDoc);
+
+HRESULT WINAPI SHGetImageList(int iImageList, REFIID riid, void **ppv);
 static inline ULONG
 Win32DbgPrint(const char *filename, int line, const char *lpFormat, ...)