[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.
This commit is contained in:
Giannis Adamopoulos 2017-10-16 23:56:34 +03:00 committed by GitHub
parent 3a33ab9638
commit f0f1e5ffdb
39 changed files with 300 additions and 253 deletions

View 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)

View 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))

View file

@ -156,7 +156,6 @@ class CQuickLaunchBand :
//*****************************************************************************************************
DECLARE_REGISTRY_RESOURCEID(IDR_QCKLNCH)
DECLARE_NOT_AGGREGATABLE(CQuickLaunchBand)
DECLARE_PROTECT_FINAL_CONSTRUCT()

View 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;
}

View 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)

View file

@ -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)

View file

@ -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

View file

@ -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"

View file

@ -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();
}

View file

@ -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

View file

@ -1,4 +0,0 @@
@ stdcall -private DllCanUnloadNow()
@ stdcall -private DllGetClassObject(ptr ptr ptr)
@ stdcall -private DllRegisterServer()
@ stdcall -private DllUnregisterServer()

View file

@ -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

View file

@ -1,13 +0,0 @@
HKCR
{
NoRemove CLSID
{
ForceRemove {260CB95D-4544-44F6-A079-575BAA60B72F} = s 'Quick Launch'
{
InprocServer32 = s '%MODULE%'
{
val ThreadingModel = s 'Apartment'
}
}
}
}

View 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;

View 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>

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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"

View file

@ -0,0 +1,13 @@
HKCR
{
NoRemove CLSID
{
ForceRemove {D82BE2B0-5764-11D0-A96E-00C04FD705A2} = s 'IShellFolderBand'
{
InprocServer32 = s '%MODULE%'
{
val ThreadingModel = s 'Apartment'
}
}
}
}

View file

@ -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

View 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

View 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()

View file

@ -10,6 +10,7 @@ list(APPEND SOURCE
CBandSite.cpp
CBandSiteMenu.cpp
CBaseBar.cpp
CISFBand.cpp
CSHEnumClassesOfCategories.cpp)
add_library(shellbars ${SOURCE})

View file

@ -30,6 +30,7 @@
#include "CBandSite.h"
#include "CBandSiteMenu.h"
#include "CISFBand.h"
WINE_DEFAULT_DEBUG_CHANNEL(browseui);