https://git.reactos.org/?p=reactos.git;a=commitdiff;h=f0f1e5ffdb989023d91fa…
commit f0f1e5ffdb989023d91fa9c99cb253463ba9f202
Author: Giannis Adamopoulos <johnyadams(a)outlook.com>
AuthorDate: Mon Oct 16 23:56:34 2017 +0300
[QCKLNCH] Remove qcklnch (#61)
- 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.
---
base/shell/rshell/CMakeLists.txt | 1 +
.../shell/rshell}/CQuickLaunchBand.cpp | 50 +++++++++-------
.../shell/rshell}/CQuickLaunchBand.h | 1 -
base/shell/rshell/misc.cpp | 13 ++++
dll/shellext/CMakeLists.txt | 1 -
dll/shellext/qcklnch/CMakeLists.txt | 46 --------------
dll/shellext/qcklnch/lang/en-US.rc | 19 ------
dll/shellext/qcklnch/precomp.h | 41 -------------
dll/shellext/qcklnch/qcklnch.cpp | 70 ----------------------
dll/shellext/qcklnch/qcklnch.rc | 15 -----
dll/shellext/qcklnch/qcklnch.spec | 4 --
dll/shellext/qcklnch/resource.h | 11 ----
dll/shellext/qcklnch/rgs/qcklnch.rgs | 13 ----
dll/win32/browseui/browseui.cpp | 1 +
dll/win32/browseui/browseui.rc | 1 +
dll/win32/browseui/lang/bg-BG.rc | 13 ++++
dll/win32/browseui/lang/de-DE.rc | 13 ++++
dll/win32/browseui/lang/en-US.rc | 13 ++++
dll/win32/browseui/lang/es-ES.rc | 13 ++++
dll/win32/browseui/lang/fr-FR.rc | 13 ++++
dll/win32/browseui/lang/he-IL.rc | 13 ++++
dll/win32/browseui/lang/it-IT.rc | 13 ++++
dll/win32/browseui/lang/ja-JP.rc | 13 ++++
dll/win32/browseui/lang/pl-PL.rc | 13 ++++
dll/win32/browseui/lang/pt-BR.rc | 13 ++++
dll/win32/browseui/lang/ro-RO.rc | 13 ++++
dll/win32/browseui/lang/ru-RU.rc | 13 ++++
dll/win32/browseui/lang/sq-AL.rc | 13 ++++
dll/win32/browseui/lang/tr-TR.rc | 13 ++++
dll/win32/browseui/lang/uk-UA.rc | 13 ++++
dll/win32/browseui/lang/zh-CN.rc | 13 ++++
dll/win32/browseui/lang/zh-TW.rc | 13 ++++
dll/win32/browseui/precomp.h | 1 +
dll/win32/browseui/res/isfband.rgs | 13 ++++
dll/win32/browseui/resource.h | 7 +++
.../browseui/shellbars}/CISFBand.cpp | 16 +++--
.../browseui/shellbars}/CISFBand.h | 6 +-
dll/win32/browseui/shellbars/CMakeLists.txt | 1 +
dll/win32/browseui/shellbars/shellbars.h | 1 +
39 files changed, 300 insertions(+), 253 deletions(-)
diff --git a/base/shell/rshell/CMakeLists.txt b/base/shell/rshell/CMakeLists.txt
index 3d70d6bef7..94337e9efe 100644
--- a/base/shell/rshell/CMakeLists.txt
+++ b/base/shell/rshell/CMakeLists.txt
@@ -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)
diff --git a/dll/shellext/qcklnch/CQuickLaunchBand.cpp
b/base/shell/rshell/CQuickLaunchBand.cpp
similarity index 93%
rename from dll/shellext/qcklnch/CQuickLaunchBand.cpp
rename to base/shell/rshell/CQuickLaunchBand.cpp
index 487fb9725e..6f3c6dee51 100644
--- a/dll/shellext/qcklnch/CQuickLaunchBand.cpp
+++ b/base/shell/rshell/CQuickLaunchBand.cpp
@@ -6,9 +6,35 @@
* PROGRAMMERS: Shriraj Sawant a.k.a SR13 <sr.official(a)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))
diff --git a/dll/shellext/qcklnch/CQuickLaunchBand.h
b/base/shell/rshell/CQuickLaunchBand.h
similarity index 98%
rename from dll/shellext/qcklnch/CQuickLaunchBand.h
rename to base/shell/rshell/CQuickLaunchBand.h
index c8a71dc9f4..2889e6ef1f 100644
--- a/dll/shellext/qcklnch/CQuickLaunchBand.h
+++ b/base/shell/rshell/CQuickLaunchBand.h
@@ -156,7 +156,6 @@ class CQuickLaunchBand :
//*****************************************************************************************************
- DECLARE_REGISTRY_RESOURCEID(IDR_QCKLNCH)
DECLARE_NOT_AGGREGATABLE(CQuickLaunchBand)
DECLARE_PROTECT_FINAL_CONSTRUCT()
diff --git a/base/shell/rshell/misc.cpp b/base/shell/rshell/misc.cpp
index d984555b60..ce1eb7a98b 100644
--- a/base/shell/rshell/misc.cpp
+++ b/base/shell/rshell/misc.cpp
@@ -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;
}
diff --git a/dll/shellext/CMakeLists.txt b/dll/shellext/CMakeLists.txt
index 2b5b3c6c65..56fabe1299 100644
--- a/dll/shellext/CMakeLists.txt
+++ b/dll/shellext/CMakeLists.txt
@@ -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
index 29b7ac8768..0000000000
--- a/dll/shellext/qcklnch/CMakeLists.txt
+++ /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
index 81c08eb5d0..0000000000
--- a/dll/shellext/qcklnch/lang/en-US.rc
+++ /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
index 12b27a9c15..0000000000
--- a/dll/shellext/qcklnch/precomp.h
+++ /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
index 79a5a45542..0000000000
--- a/dll/shellext/qcklnch/qcklnch.cpp
+++ /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(a)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
index f44528e0af..0000000000
--- a/dll/shellext/qcklnch/qcklnch.rc
+++ /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
index 069be11627..0000000000
--- a/dll/shellext/qcklnch/qcklnch.spec
+++ /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
index b5613db3c2..0000000000
--- a/dll/shellext/qcklnch/resource.h
+++ /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
index 3df55ca1d3..0000000000
--- a/dll/shellext/qcklnch/rgs/qcklnch.rgs
+++ /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
diff --git a/dll/win32/browseui/browseui.cpp b/dll/win32/browseui/browseui.cpp
index 9de196c1c5..68326784ba 100644
--- a/dll/win32/browseui/browseui.cpp
+++ b/dll/win32/browseui/browseui.cpp
@@ -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;
diff --git a/dll/win32/browseui/browseui.rc b/dll/win32/browseui/browseui.rc
index efddc28c46..6badbc9fb0 100644
--- a/dll/win32/browseui/browseui.rc
+++ b/dll/win32/browseui/browseui.rc
@@ -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>
diff --git a/dll/win32/browseui/lang/bg-BG.rc b/dll/win32/browseui/lang/bg-BG.rc
index 6fe1f3c5bb..de44ec5f46 100644
--- a/dll/win32/browseui/lang/bg-BG.rc
+++ b/dll/win32/browseui/lang/bg-BG.rc
@@ -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
diff --git a/dll/win32/browseui/lang/de-DE.rc b/dll/win32/browseui/lang/de-DE.rc
index 9bcbd8b9d7..283d28f9a3 100644
--- a/dll/win32/browseui/lang/de-DE.rc
+++ b/dll/win32/browseui/lang/de-DE.rc
@@ -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
diff --git a/dll/win32/browseui/lang/en-US.rc b/dll/win32/browseui/lang/en-US.rc
index 91bede91db..2a005e949f 100644
--- a/dll/win32/browseui/lang/en-US.rc
+++ b/dll/win32/browseui/lang/en-US.rc
@@ -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
diff --git a/dll/win32/browseui/lang/es-ES.rc b/dll/win32/browseui/lang/es-ES.rc
index a27939bc3e..414be97dbc 100644
--- a/dll/win32/browseui/lang/es-ES.rc
+++ b/dll/win32/browseui/lang/es-ES.rc
@@ -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
diff --git a/dll/win32/browseui/lang/fr-FR.rc b/dll/win32/browseui/lang/fr-FR.rc
index 61a0930213..67f4fdeaf8 100644
--- a/dll/win32/browseui/lang/fr-FR.rc
+++ b/dll/win32/browseui/lang/fr-FR.rc
@@ -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
diff --git a/dll/win32/browseui/lang/he-IL.rc b/dll/win32/browseui/lang/he-IL.rc
index 29ed7e52de..2afa8d7f1a 100644
--- a/dll/win32/browseui/lang/he-IL.rc
+++ b/dll/win32/browseui/lang/he-IL.rc
@@ -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
diff --git a/dll/win32/browseui/lang/it-IT.rc b/dll/win32/browseui/lang/it-IT.rc
index 6a5bf82fdf..9afabf4373 100644
--- a/dll/win32/browseui/lang/it-IT.rc
+++ b/dll/win32/browseui/lang/it-IT.rc
@@ -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
diff --git a/dll/win32/browseui/lang/ja-JP.rc b/dll/win32/browseui/lang/ja-JP.rc
index 4641cb8087..9dfedaf9c6 100644
--- a/dll/win32/browseui/lang/ja-JP.rc
+++ b/dll/win32/browseui/lang/ja-JP.rc
@@ -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
diff --git a/dll/win32/browseui/lang/pl-PL.rc b/dll/win32/browseui/lang/pl-PL.rc
index 3932ddef53..91d2e36941 100644
--- a/dll/win32/browseui/lang/pl-PL.rc
+++ b/dll/win32/browseui/lang/pl-PL.rc
@@ -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
diff --git a/dll/win32/browseui/lang/pt-BR.rc b/dll/win32/browseui/lang/pt-BR.rc
index 7db17de7cd..2a9fa160f3 100644
--- a/dll/win32/browseui/lang/pt-BR.rc
+++ b/dll/win32/browseui/lang/pt-BR.rc
@@ -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
diff --git a/dll/win32/browseui/lang/ro-RO.rc b/dll/win32/browseui/lang/ro-RO.rc
index ee30d3dfa7..2f14f4e29a 100644
--- a/dll/win32/browseui/lang/ro-RO.rc
+++ b/dll/win32/browseui/lang/ro-RO.rc
@@ -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
diff --git a/dll/win32/browseui/lang/ru-RU.rc b/dll/win32/browseui/lang/ru-RU.rc
index dfd8f3a345..b985bb76c5 100644
--- a/dll/win32/browseui/lang/ru-RU.rc
+++ b/dll/win32/browseui/lang/ru-RU.rc
@@ -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
diff --git a/dll/win32/browseui/lang/sq-AL.rc b/dll/win32/browseui/lang/sq-AL.rc
index d6d657f414..74f95ce269 100644
--- a/dll/win32/browseui/lang/sq-AL.rc
+++ b/dll/win32/browseui/lang/sq-AL.rc
@@ -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
diff --git a/dll/win32/browseui/lang/tr-TR.rc b/dll/win32/browseui/lang/tr-TR.rc
index a1856f1013..14790d6eaf 100644
--- a/dll/win32/browseui/lang/tr-TR.rc
+++ b/dll/win32/browseui/lang/tr-TR.rc
@@ -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
diff --git a/dll/win32/browseui/lang/uk-UA.rc b/dll/win32/browseui/lang/uk-UA.rc
index ea8de8a3a9..366104ad1b 100644
--- a/dll/win32/browseui/lang/uk-UA.rc
+++ b/dll/win32/browseui/lang/uk-UA.rc
@@ -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
diff --git a/dll/win32/browseui/lang/zh-CN.rc b/dll/win32/browseui/lang/zh-CN.rc
index 622e665c1e..c62187c922 100644
--- a/dll/win32/browseui/lang/zh-CN.rc
+++ b/dll/win32/browseui/lang/zh-CN.rc
@@ -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
diff --git a/dll/win32/browseui/lang/zh-TW.rc b/dll/win32/browseui/lang/zh-TW.rc
index a658735e47..c4d6f00871 100644
--- a/dll/win32/browseui/lang/zh-TW.rc
+++ b/dll/win32/browseui/lang/zh-TW.rc
@@ -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
diff --git a/dll/win32/browseui/precomp.h b/dll/win32/browseui/precomp.h
index b3323511a3..26ff15a23d 100644
--- a/dll/win32/browseui/precomp.h
+++ b/dll/win32/browseui/precomp.h
@@ -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
index 0000000000..236a0e74f4
--- /dev/null
+++ b/dll/win32/browseui/res/isfband.rgs
@@ -0,0 +1,13 @@
+HKCR
+{
+ NoRemove CLSID
+ {
+ ForceRemove {D82BE2B0-5764-11D0-A96E-00C04FD705A2} = s 'IShellFolderBand'
+ {
+ InprocServer32 = s '%MODULE%'
+ {
+ val ThreadingModel = s 'Apartment'
+ }
+ }
+ }
+}
diff --git a/dll/win32/browseui/resource.h b/dll/win32/browseui/resource.h
index 399de7d580..2fe0b92807 100644
--- a/dll/win32/browseui/resource.h
+++ b/dll/win32/browseui/resource.h
@@ -64,6 +64,12 @@
#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
@@ -95,6 +101,7 @@
#define IDR_PROGRESSDIALOG 140
#define IDR_AUTOCOMPLETE 141
#define IDR_ACLISTISF 142
+#define IDR_ISFBAND 143
#define IDS_SMALLICONS 12301
#define IDS_LARGEICONS 12302
diff --git a/dll/shellext/qcklnch/CISFBand.cpp
b/dll/win32/browseui/shellbars/CISFBand.cpp
similarity index 97%
rename from dll/shellext/qcklnch/CISFBand.cpp
rename to dll/win32/browseui/shellbars/CISFBand.cpp
index 34192b45d3..85f44313ec 100644
--- a/dll/shellext/qcklnch/CISFBand.cpp
+++ b/dll/win32/browseui/shellbars/CISFBand.cpp
@@ -6,14 +6,13 @@
* PROGRAMMERS: Shriraj Sawant a.k.a SR13 <sr.official(a)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
diff --git a/dll/shellext/qcklnch/CISFBand.h b/dll/win32/browseui/shellbars/CISFBand.h
similarity index 96%
rename from dll/shellext/qcklnch/CISFBand.h
rename to dll/win32/browseui/shellbars/CISFBand.h
index fc74db0b7c..c8de82f50e 100644
--- a/dll/shellext/qcklnch/CISFBand.h
+++ b/dll/win32/browseui/shellbars/CISFBand.h
@@ -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()
diff --git a/dll/win32/browseui/shellbars/CMakeLists.txt
b/dll/win32/browseui/shellbars/CMakeLists.txt
index 3807056b20..d52e71807c 100644
--- a/dll/win32/browseui/shellbars/CMakeLists.txt
+++ b/dll/win32/browseui/shellbars/CMakeLists.txt
@@ -10,6 +10,7 @@ list(APPEND SOURCE
CBandSite.cpp
CBandSiteMenu.cpp
CBaseBar.cpp
+ CISFBand.cpp
CSHEnumClassesOfCategories.cpp)
add_library(shellbars ${SOURCE})
diff --git a/dll/win32/browseui/shellbars/shellbars.h
b/dll/win32/browseui/shellbars/shellbars.h
index 0c3b58b3de..731ecfdde5 100644
--- a/dll/win32/browseui/shellbars/shellbars.h
+++ b/dll/win32/browseui/shellbars/shellbars.h
@@ -30,6 +30,7 @@
#include "CBandSite.h"
#include "CBandSiteMenu.h"
+#include "CISFBand.h"
WINE_DEFAULT_DEBUG_CHANNEL(browseui);