[QCKLNCH] Remove qcklnch (#61)
authorGiannis Adamopoulos <johnyadams@outlook.com>
Mon, 16 Oct 2017 20:56:34 +0000 (23:56 +0300)
committerGitHub <noreply@github.com>
Mon, 16 Oct 2017 20:56:34 +0000 (23:56 +0300)
- Move CIFSBand to the shellbars static lib which is linked to browseui and rshell.
- Move CQuickLaunchBand to rshell.
- Make nescessary adjustments so that they can both be registered and instantiated.

39 files changed:
base/shell/rshell/CMakeLists.txt
base/shell/rshell/CQuickLaunchBand.cpp [moved from dll/shellext/qcklnch/CQuickLaunchBand.cpp with 93% similarity]
base/shell/rshell/CQuickLaunchBand.h [moved from dll/shellext/qcklnch/CQuickLaunchBand.h with 98% similarity]
base/shell/rshell/misc.cpp
dll/shellext/CMakeLists.txt
dll/shellext/qcklnch/CMakeLists.txt [deleted file]
dll/shellext/qcklnch/lang/en-US.rc [deleted file]
dll/shellext/qcklnch/precomp.h [deleted file]
dll/shellext/qcklnch/qcklnch.cpp [deleted file]
dll/shellext/qcklnch/qcklnch.rc [deleted file]
dll/shellext/qcklnch/qcklnch.spec [deleted file]
dll/shellext/qcklnch/resource.h [deleted file]
dll/shellext/qcklnch/rgs/qcklnch.rgs [deleted file]
dll/win32/browseui/browseui.cpp
dll/win32/browseui/browseui.rc
dll/win32/browseui/lang/bg-BG.rc
dll/win32/browseui/lang/de-DE.rc
dll/win32/browseui/lang/en-US.rc
dll/win32/browseui/lang/es-ES.rc
dll/win32/browseui/lang/fr-FR.rc
dll/win32/browseui/lang/he-IL.rc
dll/win32/browseui/lang/it-IT.rc
dll/win32/browseui/lang/ja-JP.rc
dll/win32/browseui/lang/pl-PL.rc
dll/win32/browseui/lang/pt-BR.rc
dll/win32/browseui/lang/ro-RO.rc
dll/win32/browseui/lang/ru-RU.rc
dll/win32/browseui/lang/sq-AL.rc
dll/win32/browseui/lang/tr-TR.rc
dll/win32/browseui/lang/uk-UA.rc
dll/win32/browseui/lang/zh-CN.rc
dll/win32/browseui/lang/zh-TW.rc
dll/win32/browseui/precomp.h
dll/win32/browseui/res/isfband.rgs [new file with mode: 0644]
dll/win32/browseui/resource.h
dll/win32/browseui/shellbars/CISFBand.cpp [moved from dll/shellext/qcklnch/CISFBand.cpp with 97% similarity]
dll/win32/browseui/shellbars/CISFBand.h [moved from dll/shellext/qcklnch/CISFBand.h with 96% similarity]
dll/win32/browseui/shellbars/CMakeLists.txt
dll/win32/browseui/shellbars/shellbars.h

index 3d70d6b..94337e9 100644 (file)
@@ -8,6 +8,7 @@ include_directories(
 spec2def(rshell.dll rshell.spec ADD_IMPORTLIB)
 
 list(APPEND SOURCE
+    CQuickLaunchBand.cpp
     misc.cpp
     ${CMAKE_CURRENT_BINARY_DIR}/rshell.def)
 
similarity index 93%
rename from dll/shellext/qcklnch/CQuickLaunchBand.cpp
rename to base/shell/rshell/CQuickLaunchBand.cpp
index 487fb97..6f3c6de 100644 (file)
@@ -6,9 +6,35 @@
  * PROGRAMMERS: Shriraj Sawant a.k.a SR13 <sr.official@hotmail.com>
  */
 
-#include "precomp.h"
 
-WINE_DEFAULT_DEBUG_CHANNEL(qcklnch);
+#define WIN32_NO_STATUS
+#define _INC_WINDOWS
+#define COM_NO_WINDOWS_H
+
+#define COBJMACROS
+
+#include <windef.h>
+#include <winbase.h>
+#include <winreg.h>
+#include <wingdi.h>
+#include <winnls.h>
+#include <wincon.h>
+#include <shellapi.h>
+#include <shlobj.h>
+#include <shlobj_undoc.h>
+#include <shlwapi.h>
+#include <shlguid_undoc.h>
+#include <atlbase.h>
+#include <atlcom.h>
+#include <atlwin.h>
+
+#include <undocshell.h>
+#include <shellutils.h>
+
+#include "CQuickLaunchBand.h"
+
+extern "C"
+HRESULT WINAPI CISFBand_CreateInstance(REFIID riid, void** ppv);
 
 // {260CB95D-4544-44F6-A079-575BAA60B72F}
 const GUID CLSID_QuickLaunchBand = { 0x260cb95d, 0x4544, 0x44f6, { 0xa0, 0x79, 0x57, 0x5b, 0xaa, 0x60, 0xb7, 0x2f } };
@@ -64,8 +90,7 @@ const GUID CLSID_QuickLaunchBand = { 0x260cb95d, 0x4544, 0x44f6, { 0xa0, 0x79, 0
             SHGetSpecialFolderLocation(hwnd, nCSIDL, &pidlRoot);
         }        
 
-        CString biTitle((LPCSTR)IDS_BROWSEINFO_TITLE);
-        BROWSEINFO bi = { hwnd, pidlRoot, path, biTitle, 0, NULL, 0, 0 };
+        BROWSEINFO bi = { hwnd, pidlRoot, path, L"Choose a folder", 0, NULL, 0, 0 };
         LPITEMIDLIST pidlSelected = SHBrowseForFolder(&bi);        
 
         return pidlSelected;
@@ -114,8 +139,6 @@ const GUID CLSID_QuickLaunchBand = { 0x260cb95d, 0x4544, 0x44f6, { 0xa0, 0x79, 0
 // IObjectWithSite
     STDMETHODIMP CQuickLaunchBand::SetSite(IUnknown *pUnkSite)
     { 
-        TRACE("CQuickLaunchBand::SetSite(0x%p)\n", pUnkSite);
-
         // Internal CISFBand Calls
         CComPtr<IObjectWithSite> pIOWS;
         HRESULT hr = m_punkISFB->QueryInterface(IID_PPV_ARG(IObjectWithSite, &pIOWS));
@@ -127,9 +150,6 @@ const GUID CLSID_QuickLaunchBand = { 0x260cb95d, 0x4544, 0x44f6, { 0xa0, 0x79, 0
 
     STDMETHODIMP CQuickLaunchBand::GetSite(IN REFIID riid, OUT VOID **ppvSite)
     {        
-        TRACE("CQuickLaunchBand::GetSite(0x%p,0x%p)\n", riid, ppvSite);
-
-        // Internal CISFBand Calls
         CComPtr<IObjectWithSite> pIOWS;
         HRESULT hr = m_punkISFB->QueryInterface(IID_PPV_ARG(IObjectWithSite, &pIOWS));
         if (FAILED(hr))
@@ -197,8 +217,6 @@ const GUID CLSID_QuickLaunchBand = { 0x260cb95d, 0x4544, 0x44f6, { 0xa0, 0x79, 0
 
     STDMETHODIMP CQuickLaunchBand::GetBandInfo(IN DWORD dwBandID, IN DWORD dwViewMode, IN OUT DESKBANDINFO *pdbi)
     {        
-        TRACE("CQuickLaunchBand::GetBandInfo(0x%x,0x%x,0x%p)\n", dwBandID, dwViewMode, pdbi);
-
         // Internal CISFBand Calls
         CComPtr<IDeskBand> pIDB;
         HRESULT hr = m_punkISFB->QueryInterface(IID_PPV_ARG(IDeskBand, &pIDB));
@@ -211,9 +229,7 @@ const GUID CLSID_QuickLaunchBand = { 0x260cb95d, 0x4544, 0x44f6, { 0xa0, 0x79, 0
 /*****************************************************************************/
 // IPersistStream
     STDMETHODIMP CQuickLaunchBand::GetClassID(OUT CLSID *pClassID)
-    {        
-        TRACE("CQuickLaunchBand::GetClassID(0x%p)\n", pClassID);
-        
+    {     
         // Internal CISFBand Calls
         CComPtr<IPersistStream> pIPS;
         HRESULT hr = m_punkISFB->QueryInterface(IID_PPV_ARG(IPersistStream, &pIPS));
@@ -236,9 +252,6 @@ const GUID CLSID_QuickLaunchBand = { 0x260cb95d, 0x4544, 0x44f6, { 0xa0, 0x79, 0
 
     STDMETHODIMP CQuickLaunchBand::Load(IN IStream *pStm)
     {
-        TRACE("CQuickLaunchBand::Load called\n");
-        
-        // Internal CISFBand Calls
         CComPtr<IPersistStream> pIPS;
         HRESULT hr = m_punkISFB->QueryInterface(IID_PPV_ARG(IPersistStream, &pIPS));
         if (FAILED(hr))
@@ -260,9 +273,6 @@ const GUID CLSID_QuickLaunchBand = { 0x260cb95d, 0x4544, 0x44f6, { 0xa0, 0x79, 0
 
     STDMETHODIMP CQuickLaunchBand::GetSizeMax(OUT ULARGE_INTEGER *pcbSize)
     {
-        TRACE("CQuickLaunchBand::GetSizeMax called\n");        
-       
-        // Internal CISFBand Calls
         CComPtr<IPersistStream> pIPS;
         HRESULT hr = m_punkISFB->QueryInterface(IID_PPV_ARG(IPersistStream, &pIPS));
         if (FAILED(hr))
similarity index 98%
rename from dll/shellext/qcklnch/CQuickLaunchBand.h
rename to base/shell/rshell/CQuickLaunchBand.h
index c8a71dc..2889e6e 100644 (file)
@@ -156,7 +156,6 @@ class CQuickLaunchBand :
 
 //*****************************************************************************************************
 
-    DECLARE_REGISTRY_RESOURCEID(IDR_QCKLNCH)
     DECLARE_NOT_AGGREGATABLE(CQuickLaunchBand)
     DECLARE_PROTECT_FINAL_CONSTRUCT()
 
index d984555..ce1eb7a 100644 (file)
@@ -50,6 +50,8 @@
 
 #include <shellutils.h>
 
+#include <CQuickLaunchBand.h>
+
 #include <wine/debug.h>
 
 extern "C"
@@ -177,24 +179,32 @@ DllCanUnloadNow(void)
 STDAPI
 DllRegisterServer(void)
 {
+#if 0
     RegisterComponent(CLSID_StartMenu, L"Shell Start Menu");
     RegisterComponent(CLSID_MenuDeskBar, L"Shell Menu Desk Bar");
     RegisterComponent(CLSID_MenuBand, L"Shell Menu Band");
     RegisterComponent(CLSID_MenuBandSite, L"Shell Menu Band Site");
     RegisterComponent(CLSID_MergedFolder, L"Merged Shell Folder");
     RegisterComponent(CLSID_RebarBandSite, L"Shell Rebar Band Site");
+#endif
+    RegisterComponent(CLSID_QuickLaunchBand, L"Quick Launch");
+    RegisterComCat();
     return S_OK;
 }
 
 STDAPI
 DllUnregisterServer(void)
 {
+#if 0
     UnregisterComponent(CLSID_StartMenu);
     UnregisterComponent(CLSID_MenuDeskBar);
     UnregisterComponent(CLSID_MenuBand);
     UnregisterComponent(CLSID_MenuBandSite);
     UnregisterComponent(CLSID_MergedFolder);
     UnregisterComponent(CLSID_RebarBandSite);
+#endif
+    UnregisterComponent(CLSID_QuickLaunchBand);
+    UnregisterComCat();
     return S_OK;
 }
 
@@ -235,6 +245,9 @@ public:
         if (IsEqualCLSID(m_Clsid, CLSID_MergedFolder))
             return RSHELL_CMergedFolder_CreateInstance(riid, ppvObject);
 
+        if (IsEqualCLSID(m_Clsid, CLSID_QuickLaunchBand))
+            return ShellObjectCreator<CQuickLaunchBand>(riid, ppvObject);
+
         return E_NOINTERFACE;
     }
 
index 2b5b3c6..56fabe1 100644 (file)
@@ -6,6 +6,5 @@ add_subdirectory(devcpux)
 add_subdirectory(fontext)
 add_subdirectory(netshell)
 add_subdirectory(ntobjshex)
-add_subdirectory(qcklnch)
 add_subdirectory(shellbtrfs)
 add_subdirectory(stobject)
diff --git a/dll/shellext/qcklnch/CMakeLists.txt b/dll/shellext/qcklnch/CMakeLists.txt
deleted file mode 100644 (file)
index 29b7ac8..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-
-project(SHELL)
-
-set_cpp(WITH_RUNTIME)
-
-if(NOT MSVC)
-    # HACK: this should be enabled globally!
-    add_compile_flags_language("-std=c++11" "CXX")
-endif()
-
-add_definitions(
-    -D_ATL_NO_EXCEPTIONS)
-
-include_directories(
-    ${REACTOS_SOURCE_DIR}/sdk/lib/atl
-    ${REACTOS_SOURCE_DIR})
-
-spec2def(qcklnch.dll qcklnch.spec)
-
-add_library(qcklnch SHARED   
-    qcklnch.rc
-    qcklnch.cpp    
-    CQuickLaunchBand.cpp
-    CISFBand.cpp
-    CQuickLaunchBand.h
-    CISFBand.h    
-    ${CMAKE_CURRENT_BINARY_DIR}/qcklnch.def)
-
-set_module_type(qcklnch win32dll UNICODE)
-target_link_libraries(qcklnch uuid wine atlnew)
-
-add_importlibs(qcklnch
-    advapi32
-    winmm
-    ole32
-    oleaut32
-    shlwapi
-    shell32
-    comctl32
-    msvcrt
-    gdi32
-    user32
-    kernel32
-    ntdll)
-
-add_cd_file(TARGET qcklnch DESTINATION reactos/system32 FOR all)
diff --git a/dll/shellext/qcklnch/lang/en-US.rc b/dll/shellext/qcklnch/lang/en-US.rc
deleted file mode 100644 (file)
index 81c08eb..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
-
-IDM_POPUPMENU MENUEX DISCARDABLE
-BEGIN
-    POPUP ""
-    BEGIN      
-        POPUP "&View", IDM_VIEW_MENU
-        BEGIN
-            MENUITEM "&Large Icons", IDM_LARGE_ICONS
-            MENUITEM "&Small Icons", IDM_SMALL_ICONS
-        END
-        MENUITEM "&Show Text", IDM_SHOW_TEXT
-    END    
-END
-
-STRINGTABLE
-BEGIN
-    IDS_BROWSEINFO_TITLE "Choose a folder"    
-END
diff --git a/dll/shellext/qcklnch/precomp.h b/dll/shellext/qcklnch/precomp.h
deleted file mode 100644 (file)
index 12b27a9..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-#pragma once
-
-#define WIN32_NO_STATUS
-#include <stdarg.h>
-#include <tchar.h>
-
-#define COBJMACROS
-#define WIN32_NO_STATUS
-#define _INC_WINDOWS
-#define COM_NO_WINDOWS_H
-#define NTOS_MODE_USER
-
-#include <windef.h>
-#include <winbase.h>
-#include <winreg.h>
-#include <winuser.h>
-#include <wincon.h>
-#include <ddeml.h>
-#include <shlguid_undoc.h>
-#include <shlwapi.h>
-#include <shlguid.h>
-#include <shlobj.h>
-#include <shlobj_undoc.h>
-#include <shlwapi_undoc.h>
-#include <tchar.h>
-#include <strsafe.h>
-#include <atlbase.h>
-#include <atlcom.h>
-#include <atlwin.h>
-#include <atlstr.h>
-#include <undocshell.h>
-#include <shellutils.h>
-
-#include <shellapi.h>
-
-#include <wine/debug.h>
-#include <wine/unicode.h>
-
-#include "resource.h"
-#include "CQuickLaunchBand.h"
-#include "CISFBand.h"
\ No newline at end of file
diff --git a/dll/shellext/qcklnch/qcklnch.cpp b/dll/shellext/qcklnch/qcklnch.cpp
deleted file mode 100644 (file)
index 79a5a45..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * PROJECT:     ReactOS shell extensions
- * LICENSE:     GPL - See COPYING in the top level directory
- * FILE:        dll/shellext/qcklnch/qcklnch.cpp
- * PURPOSE:     Quick Launch Toolbar (Taskbar Shell Extension)
- * PROGRAMMERS: Shriraj Sawant a.k.a SR13 <sr.official@hotmail.com>
- */
-
-#include "precomp.h"
-
-#include <atlwin.h>
-
-WINE_DEFAULT_DEBUG_CHANNEL(qcklnch);
-
-BEGIN_OBJECT_MAP(ObjectMap)    
-    OBJECT_ENTRY(CLSID_QuickLaunchBand, CQuickLaunchBand)
-END_OBJECT_MAP()
-
-HINSTANCE  g_hInstance;
-CComModule g_Module;
-
-STDAPI_(BOOL)
-DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID fImpLoad)
-{
-    if (fdwReason == DLL_PROCESS_ATTACH)
-    {
-        g_hInstance = hinstDLL;
-        DisableThreadLibraryCalls(g_hInstance);
-
-        g_Module.Init(ObjectMap, g_hInstance, NULL);
-    }
-    else if (fdwReason == DLL_PROCESS_DETACH)
-    {
-        g_hInstance = NULL;
-        g_Module.Term();
-    }
-    return TRUE;
-}
-
-STDAPI
-DllRegisterServer(void)
-{
-    HRESULT hr = g_Module.DllRegisterServer(FALSE);
-    if (FAILED(hr)) 
-        return hr;
-    
-    return RegisterComCat();
-}
-
-STDAPI
-DllUnregisterServer(void)
-{
-    HRESULT hr = UnregisterComCat();
-    if (FAILED(hr))
-        return hr;
-    
-    return g_Module.DllUnregisterServer(FALSE);
-}
-
-STDAPI
-DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
-{
-    return g_Module.DllGetClassObject(rclsid, riid, ppv);
-}
-
-STDAPI
-DllCanUnloadNow(void)
-{
-    return g_Module.DllCanUnloadNow();
-}
diff --git a/dll/shellext/qcklnch/qcklnch.rc b/dll/shellext/qcklnch/qcklnch.rc
deleted file mode 100644 (file)
index f44528e..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <windef.h>
-#include <winuser.h>
-#include <commctrl.h>
-#include "resource.h"
-
-LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
-
-IDR_QCKLNCH REGISTRY "rgs/qcklnch.rgs"
-
-#include <reactos/manifest_dll.rc>
-
-#ifdef LANGUAGE_EN_US
-    #include "lang/en-US.rc"
-#endif
-
diff --git a/dll/shellext/qcklnch/qcklnch.spec b/dll/shellext/qcklnch/qcklnch.spec
deleted file mode 100644 (file)
index 069be11..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-@ stdcall -private DllCanUnloadNow()
-@ stdcall -private DllGetClassObject(ptr ptr ptr)
-@ stdcall -private DllRegisterServer()
-@ stdcall -private DllUnregisterServer()
\ No newline at end of file
diff --git a/dll/shellext/qcklnch/resource.h b/dll/shellext/qcklnch/resource.h
deleted file mode 100644 (file)
index b5613db..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#pragma once
-
-#define IDR_QCKLNCH          1001
-
-#define IDM_POPUPMENU        2001
-#define IDM_LARGE_ICONS      1
-#define IDM_SMALL_ICONS      2
-#define IDM_SHOW_TEXT        3
-#define IDM_VIEW_MENU        4
-
-#define IDS_BROWSEINFO_TITLE 101
diff --git a/dll/shellext/qcklnch/rgs/qcklnch.rgs b/dll/shellext/qcklnch/rgs/qcklnch.rgs
deleted file mode 100644 (file)
index 3df55ca..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-HKCR
-{
-    NoRemove CLSID
-       {
-        ForceRemove {260CB95D-4544-44F6-A079-575BAA60B72F} = s 'Quick Launch'
-        {
-            InprocServer32 = s '%MODULE%'
-            {
-                val ThreadingModel = s 'Apartment'
-            }
-        }
-    }
-}
\ No newline at end of file
index 9de196c..6832678 100644 (file)
@@ -142,6 +142,7 @@ OBJECT_ENTRY(CLSID_InternetToolbar, CInternetToolbar)
 OBJECT_ENTRY(CLSID_CRegTreeOptions, CRegTreeOptions)
 OBJECT_ENTRY(CLSID_ExplorerBand, CExplorerBand)
 OBJECT_ENTRY(CLSID_ProgressDialog, CProgressDialog)
+OBJECT_ENTRY(CLSID_ISFBand, CISFBand)
 END_OBJECT_MAP()
 
 CBrowseUIModule                             gModule;
index efddc28..6badbc9 100644 (file)
@@ -45,6 +45,7 @@ IDR_EXPLORERBAND REGISTRY "res/explorerband.rgs"
 IDR_PROGRESSDIALOG REGISTRY "res/progressdialog.rgs"
 IDR_AUTOCOMPLETE REGISTRY "res/autocomplete.rgs"
 IDR_ACLISTISF REGISTRY "res/shellautocomplete.rgs"
+IDR_ISFBAND REGISTRY "res/isfband.rgs"
 
 #include <reactos/manifest_dll.rc>
 
index 6fe1f3c..de44ec5 100644 (file)
@@ -93,6 +93,19 @@ BEGIN
        MENUITEM "&Close toolbar", IDM_BAND_CLOSE
 END
 
+IDM_POPUPMENU MENUEX DISCARDABLE
+BEGIN
+    POPUP ""
+    BEGIN
+        POPUP "&View", IDM_VIEW_MENU
+        BEGIN
+            MENUITEM "&Large Icons", IDM_LARGE_ICONS
+            MENUITEM "&Small Icons", IDM_SMALL_ICONS
+        END
+        MENUITEM "&Show Text", IDM_SHOW_TEXT
+    END    
+END
+
 /* Dialogs */
 
 IDD_PROGRESS_DLG DIALOGEX 0, 0, 260, 85
index 9bcbd8b..283d28f 100644 (file)
@@ -111,6 +111,19 @@ BEGIN
        MENUITEM "&Close toolbar", IDM_BAND_CLOSE
 END
 
+IDM_POPUPMENU MENUEX DISCARDABLE
+BEGIN
+    POPUP ""
+    BEGIN
+        POPUP "&View", IDM_VIEW_MENU
+        BEGIN
+            MENUITEM "&Large Icons", IDM_LARGE_ICONS
+            MENUITEM "&Small Icons", IDM_SMALL_ICONS
+        END
+        MENUITEM "&Show Text", IDM_SHOW_TEXT
+    END    
+END
+
 /* Dialogs */
 
 IDD_PROGRESS_DLG DIALOGEX 0, 0, 260, 85
index 91bede9..2a005e9 100644 (file)
@@ -111,6 +111,19 @@ BEGIN
        MENUITEM "&Close toolbar", IDM_BAND_CLOSE
 END
 
+IDM_POPUPMENU MENUEX DISCARDABLE
+BEGIN
+    POPUP ""
+    BEGIN
+        POPUP "&View", IDM_VIEW_MENU
+        BEGIN
+            MENUITEM "&Large Icons", IDM_LARGE_ICONS
+            MENUITEM "&Small Icons", IDM_SMALL_ICONS
+        END
+        MENUITEM "&Show Text", IDM_SHOW_TEXT
+    END    
+END
+
 /* Dialogs */
 
 IDD_PROGRESS_DLG DIALOGEX 0, 0, 260, 85
index a27939b..414be97 100644 (file)
@@ -95,6 +95,19 @@ BEGIN
        MENUITEM "&Close toolbar", IDM_BAND_CLOSE
 END
 
+IDM_POPUPMENU MENUEX DISCARDABLE
+BEGIN
+    POPUP ""
+    BEGIN
+        POPUP "&View", IDM_VIEW_MENU
+        BEGIN
+            MENUITEM "&Large Icons", IDM_LARGE_ICONS
+            MENUITEM "&Small Icons", IDM_SMALL_ICONS
+        END
+        MENUITEM "&Show Text", IDM_SHOW_TEXT
+    END    
+END
+
 /* Dialogs */
 
 IDD_PROGRESS_DLG DIALOGEX 0, 0, 260, 85
index 61a0930..67f4fde 100644 (file)
@@ -111,6 +111,19 @@ BEGIN
        MENUITEM "&Close toolbar", IDM_BAND_CLOSE
 END
 
+IDM_POPUPMENU MENUEX DISCARDABLE
+BEGIN
+    POPUP ""
+    BEGIN
+        POPUP "&View", IDM_VIEW_MENU
+        BEGIN
+            MENUITEM "&Large Icons", IDM_LARGE_ICONS
+            MENUITEM "&Small Icons", IDM_SMALL_ICONS
+        END
+        MENUITEM "&Show Text", IDM_SHOW_TEXT
+    END    
+END
+
 /* Dialogs */
 
 IDD_PROGRESS_DLG DIALOGEX 0, 0, 260, 85
index 29ed7e5..2afa8d7 100644 (file)
@@ -95,6 +95,19 @@ BEGIN
        MENUITEM "&Close toolbar", IDM_BAND_CLOSE
 END
 
+IDM_POPUPMENU MENUEX DISCARDABLE
+BEGIN
+    POPUP ""
+    BEGIN
+        POPUP "&View", IDM_VIEW_MENU
+        BEGIN
+            MENUITEM "&Large Icons", IDM_LARGE_ICONS
+            MENUITEM "&Small Icons", IDM_SMALL_ICONS
+        END
+        MENUITEM "&Show Text", IDM_SHOW_TEXT
+    END    
+END
+
 /* Dialogs */
 
 IDD_PROGRESS_DLG DIALOGEX 0, 0, 260, 85
index 6a5bf82..9afabf4 100644 (file)
@@ -93,6 +93,19 @@ BEGIN
        MENUITEM "&Close toolbar", IDM_BAND_CLOSE
 END
 
+IDM_POPUPMENU MENUEX DISCARDABLE
+BEGIN
+    POPUP ""
+    BEGIN
+        POPUP "&View", IDM_VIEW_MENU
+        BEGIN
+            MENUITEM "&Large Icons", IDM_LARGE_ICONS
+            MENUITEM "&Small Icons", IDM_SMALL_ICONS
+        END
+        MENUITEM "&Show Text", IDM_SHOW_TEXT
+    END    
+END
+
 /* Dialogs */
 
 IDD_PROGRESS_DLG DIALOGEX 0, 0, 260, 85
index 4641cb8..9dfedaf 100644 (file)
@@ -111,6 +111,19 @@ BEGIN
        MENUITEM "&Close toolbar", IDM_BAND_CLOSE
 END
 
+IDM_POPUPMENU MENUEX DISCARDABLE
+BEGIN
+    POPUP ""
+    BEGIN
+        POPUP "&View", IDM_VIEW_MENU
+        BEGIN
+            MENUITEM "&Large Icons", IDM_LARGE_ICONS
+            MENUITEM "&Small Icons", IDM_SMALL_ICONS
+        END
+        MENUITEM "&Show Text", IDM_SHOW_TEXT
+    END    
+END
+
 /* Dialogs */
 
 IDD_PROGRESS_DLG DIALOGEX 0, 0, 260, 85
index 3932dde..91d2e36 100644 (file)
@@ -101,6 +101,19 @@ BEGIN
        MENUITEM "&Zamknij pasek narzędzi", IDM_BAND_CLOSE
 END
 
+IDM_POPUPMENU MENUEX DISCARDABLE
+BEGIN
+    POPUP ""
+    BEGIN
+        POPUP "&View", IDM_VIEW_MENU
+        BEGIN
+            MENUITEM "&Large Icons", IDM_LARGE_ICONS
+            MENUITEM "&Small Icons", IDM_SMALL_ICONS
+        END
+        MENUITEM "&Show Text", IDM_SHOW_TEXT
+    END    
+END
+
 /* Dialogs */
 
 IDD_PROGRESS_DLG DIALOGEX 0, 0, 260, 85
index 7db17de..2a9fa16 100644 (file)
@@ -95,6 +95,19 @@ BEGIN
        MENUITEM "&Close toolbar", IDM_BAND_CLOSE
 END
 
+IDM_POPUPMENU MENUEX DISCARDABLE
+BEGIN
+    POPUP ""
+    BEGIN
+        POPUP "&View", IDM_VIEW_MENU
+        BEGIN
+            MENUITEM "&Large Icons", IDM_LARGE_ICONS
+            MENUITEM "&Small Icons", IDM_SMALL_ICONS
+        END
+        MENUITEM "&Show Text", IDM_SHOW_TEXT
+    END    
+END
+
 /* Dialogs */
 
 IDD_PROGRESS_DLG DIALOGEX 0, 0, 260, 85
index ee30d3d..2f14f4e 100644 (file)
@@ -95,6 +95,19 @@ BEGIN
        MENUITEM "As&cunde bara de instrumente", IDM_BAND_CLOSE
 END
 
+IDM_POPUPMENU MENUEX DISCARDABLE
+BEGIN
+    POPUP ""
+    BEGIN
+        POPUP "&View", IDM_VIEW_MENU
+        BEGIN
+            MENUITEM "&Large Icons", IDM_LARGE_ICONS
+            MENUITEM "&Small Icons", IDM_SMALL_ICONS
+        END
+        MENUITEM "&Show Text", IDM_SHOW_TEXT
+    END    
+END
+
 /* Dialogs */
 
 IDD_PROGRESS_DLG DIALOGEX 0, 0, 260, 85
index dfd8f3a..b985bb7 100644 (file)
@@ -95,6 +95,19 @@ BEGIN
        MENUITEM "Закрыть панель инструментов", IDM_BAND_CLOSE
 END
 
+IDM_POPUPMENU MENUEX DISCARDABLE
+BEGIN
+    POPUP ""
+    BEGIN
+        POPUP "&View", IDM_VIEW_MENU
+        BEGIN
+            MENUITEM "&Large Icons", IDM_LARGE_ICONS
+            MENUITEM "&Small Icons", IDM_SMALL_ICONS
+        END
+        MENUITEM "&Show Text", IDM_SHOW_TEXT
+    END    
+END
+
 /* Dialogs */
 
 IDD_PROGRESS_DLG DIALOGEX 0, 0, 260, 85
index d6d657f..74f95ce 100644 (file)
@@ -112,6 +112,19 @@ BEGIN
        MENUITEM "&Close toolbar", IDM_BAND_CLOSE
 END
 
+IDM_POPUPMENU MENUEX DISCARDABLE
+BEGIN
+    POPUP ""
+    BEGIN
+        POPUP "&View", IDM_VIEW_MENU
+        BEGIN
+            MENUITEM "&Large Icons", IDM_LARGE_ICONS
+            MENUITEM "&Small Icons", IDM_SMALL_ICONS
+        END
+        MENUITEM "&Show Text", IDM_SHOW_TEXT
+    END    
+END
+
 /* Dialogs */
 
 IDD_PROGRESS_DLG DIALOGEX 0, 0, 260, 85
index a1856f1..14790d6 100644 (file)
@@ -95,6 +95,19 @@ BEGIN
        MENUITEM "&Close toolbar", IDM_BAND_CLOSE
 END
 
+IDM_POPUPMENU MENUEX DISCARDABLE
+BEGIN
+    POPUP ""
+    BEGIN
+        POPUP "&View", IDM_VIEW_MENU
+        BEGIN
+            MENUITEM "&Large Icons", IDM_LARGE_ICONS
+            MENUITEM "&Small Icons", IDM_SMALL_ICONS
+        END
+        MENUITEM "&Show Text", IDM_SHOW_TEXT
+    END    
+END
+
 /* Dialogs */
 
 IDD_PROGRESS_DLG DIALOGEX 0, 0, 260, 85
index ea8de8a..366104a 100644 (file)
@@ -95,6 +95,19 @@ BEGIN
        MENUITEM "&Close toolbar", IDM_BAND_CLOSE
 END
 
+IDM_POPUPMENU MENUEX DISCARDABLE
+BEGIN
+    POPUP ""
+    BEGIN
+        POPUP "&View", IDM_VIEW_MENU
+        BEGIN
+            MENUITEM "&Large Icons", IDM_LARGE_ICONS
+            MENUITEM "&Small Icons", IDM_SMALL_ICONS
+        END
+        MENUITEM "&Show Text", IDM_SHOW_TEXT
+    END    
+END
+
 /* Dialogs */
 
 IDD_PROGRESS_DLG DIALOGEX 0, 0, 260, 85
index 622e665..c62187c 100644 (file)
@@ -113,6 +113,19 @@ BEGIN
        MENUITEM "&Close toolbar", IDM_BAND_CLOSE
 END
 
+IDM_POPUPMENU MENUEX DISCARDABLE
+BEGIN
+    POPUP ""
+    BEGIN
+        POPUP "&View", IDM_VIEW_MENU
+        BEGIN
+            MENUITEM "&Large Icons", IDM_LARGE_ICONS
+            MENUITEM "&Small Icons", IDM_SMALL_ICONS
+        END
+        MENUITEM "&Show Text", IDM_SHOW_TEXT
+    END    
+END
+
 /* Dialogs */
 
 IDD_PROGRESS_DLG DIALOGEX 0, 0, 260, 85
index a658735..c4d6f00 100644 (file)
@@ -113,6 +113,19 @@ BEGIN
        MENUITEM "&Close toolbar", IDM_BAND_CLOSE
 END
 
+IDM_POPUPMENU MENUEX DISCARDABLE
+BEGIN
+    POPUP ""
+    BEGIN
+        POPUP "&View", IDM_VIEW_MENU
+        BEGIN
+            MENUITEM "&Large Icons", IDM_LARGE_ICONS
+            MENUITEM "&Small Icons", IDM_SMALL_ICONS
+        END
+        MENUITEM "&Show Text", IDM_SHOW_TEXT
+    END    
+END
+
 /* Dialogs */
 
 IDD_PROGRESS_DLG DIALOGEX 0, 0, 260, 85
index b332351..26ff15a 100644 (file)
@@ -42,6 +42,7 @@
 #include "bandproxy.h"
 #include "shellbars/CBandSite.h"
 #include "shellbars/CBandSiteMenu.h"
+#include "shellbars/CISFBand.h"
 #include "brandband.h"
 #include "internettoolbar.h"
 #include "commonbrowser.h"
diff --git a/dll/win32/browseui/res/isfband.rgs b/dll/win32/browseui/res/isfband.rgs
new file mode 100644 (file)
index 0000000..236a0e7
--- /dev/null
@@ -0,0 +1,13 @@
+HKCR
+{
+       NoRemove CLSID
+       {
+               ForceRemove {D82BE2B0-5764-11D0-A96E-00C04FD705A2} = s 'IShellFolderBand'
+               {
+                       InprocServer32 = s '%MODULE%'
+                       {
+                               val ThreadingModel = s 'Apartment'
+                       }
+               }
+       }
+}
index 399de7d..2fe0b92 100644 (file)
 #define IDM_BAND_TITLE                   0xA200
 #define IDM_BAND_CLOSE                   0xA201
 
+#define IDM_POPUPMENU        2001
+#define IDM_LARGE_ICONS      2002
+#define IDM_SMALL_ICONS      2003
+#define IDM_SHOW_TEXT        2004
+#define IDM_VIEW_MENU        2005
+
 /* Random id for band close button, feel free to change it */
 #define IDM_BASEBAR_CLOSE                0xA200
 
 #define IDR_PROGRESSDIALOG       140
 #define IDR_AUTOCOMPLETE         141
 #define IDR_ACLISTISF            142
+#define IDR_ISFBAND              143
 
 #define IDS_SMALLICONS           12301
 #define IDS_LARGEICONS           12302
similarity index 97%
rename from dll/shellext/qcklnch/CISFBand.cpp
rename to dll/win32/browseui/shellbars/CISFBand.cpp
index 34192b4..85f4431 100644 (file)
@@ -6,14 +6,13 @@
  * PROGRAMMERS: Shriraj Sawant a.k.a SR13 <sr.official@hotmail.com>
  */
 
-#include "precomp.h"
+#include "shellbars.h"
 #include <commoncontrols.h>
+#include <strsafe.h>
 
 #define GET_X_LPARAM(lp) ((int)(short)LOWORD(lp))
 #define GET_Y_LPARAM(lp) ((int)(short)HIWORD(lp))
 
-WINE_DEFAULT_DEBUG_CHANNEL(qcklnch);
-
 // ***Extras***
 /*++
 * @name _ILIsDesktop
@@ -26,7 +25,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(qcklnch);
 * @return True if PIDL is of Desktop, otherwise false.
 *
 *--*/
-BOOL WINAPI _ILIsDesktop(LPCITEMIDLIST pidl)
+static BOOL _ILIsDesktop(LPCITEMIDLIST pidl)
 {
     return (pidl == NULL || pidl->mkid.cb == 0);
 }
@@ -99,7 +98,7 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent)
          hr = m_pISF->GetDisplayNameOf(pidl, SHGDN_NORMAL, &stret); 
          if (FAILED_UNEXPECTEDLY(hr))
          {
-             strcpyW(sz, L"<Unknown-Name>");
+             StringCchCopyW(sz, MAX_PATH, L"<Unknown-Name>");
          }
          else 
              StrRetToBuf(&stret, pidl, sz, _countof(sz));            
@@ -277,9 +276,7 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent)
 // *** IPersistStream *** 
     STDMETHODIMP CISFBand::GetClassID(OUT CLSID *pClassID)
     {        
-        TRACE("CISFBand::GetClassID(0x%p)\n", pClassID);
-        /* We're going to return the (internal!) CLSID of the quick launch band */
-         *pClassID = CLSID_QuickLaunchBand;        
+        *pClassID = CLSID_ISFBand;
 
         return S_OK;
     }
@@ -555,7 +552,8 @@ HRESULT CISFBand::CreateSimpleToolbar(HWND hWndParent)
 
     STDMETHODIMP CISFBand::QueryContextMenu(HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags)
     {        
-        HMENU qMenu = LoadMenu(_AtlBaseModule.GetResourceInstance(), MAKEINTRESOURCE(IDM_POPUPMENU));        
+        HMENU qMenu = LoadMenu(GetModuleHandleW(L"browseui.dll"), MAKEINTRESOURCE(IDM_POPUPMENU));
+
         if(m_textFlag) 
             CheckMenuItem(qMenu, IDM_SHOW_TEXT, MF_CHECKED);
         else 
similarity index 96%
rename from dll/shellext/qcklnch/CISFBand.h
rename to dll/win32/browseui/shellbars/CISFBand.h
index fc74db0..c8de82f 100644 (file)
@@ -7,11 +7,10 @@
  */
 #pragma once
 
-// COM class for cisfband
 class CISFBand :
     public CWindow,
-    public CComCoClass<CISFBand>,
-    public CComObjectRootEx<CComMultiThreadModelNoCS>,    
+    public CComCoClass<CBandSiteMenu, &CLSID_ISFBand>,
+    public CComObjectRootEx<CComMultiThreadModelNoCS>,
     public IObjectWithSite,
     public IDeskBand,    
     public IPersistStream,
@@ -174,6 +173,7 @@ public:
     
 //*****************************************************************************************************   
 
+    DECLARE_REGISTRY_RESOURCEID(IDR_ISFBAND)
     DECLARE_NOT_AGGREGATABLE(CISFBand)
     DECLARE_PROTECT_FINAL_CONSTRUCT()
 
index 3807056..d52e718 100644 (file)
@@ -10,6 +10,7 @@ list(APPEND SOURCE
     CBandSite.cpp
     CBandSiteMenu.cpp
     CBaseBar.cpp
+    CISFBand.cpp
     CSHEnumClassesOfCategories.cpp)
 
 add_library(shellbars ${SOURCE})
index 0c3b58b..731ecfd 100644 (file)
@@ -30,6 +30,7 @@
 
 #include "CBandSite.h"
 #include "CBandSiteMenu.h"
+#include "CISFBand.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(browseui);