├── .editorconfig
├── .github
└── ISSUE_TEMPLATE
│ ├── bug_report.yml
│ ├── config.yml
│ └── feature_request.yml
├── .gitignore
├── LICENSE
├── README.md
├── Src
├── BUILDME.txt
├── ClassicExplorer
│ ├── ClassicCopy.cpp
│ ├── ClassicCopyExt.cpp
│ ├── ClassicCopyExt.h
│ ├── ClassicCopyExt.rgs
│ ├── ClassicExplorer.cpp
│ ├── ClassicExplorer.idl
│ ├── ClassicExplorer.rc
│ ├── ClassicExplorer.rgs
│ ├── ClassicExplorer.vcxproj
│ ├── ClassicExplorer.vcxproj.filters
│ ├── ClassicExplorer32.def
│ ├── ClassicExplorer64.def
│ ├── ClassicExplorerSettings
│ │ ├── ClassicExplorerSettings.cpp
│ │ ├── ClassicExplorerSettings.manifest
│ │ ├── ClassicExplorerSettings.rc
│ │ ├── ClassicExplorerSettings.vcxproj
│ │ ├── ClassicExplorerSettings.vcxproj.filters
│ │ └── resource.h
│ ├── ExplorerBHO.cpp
│ ├── ExplorerBHO.h
│ ├── ExplorerBHO.rgs
│ ├── ExplorerBand.cpp
│ ├── ExplorerBand.h
│ ├── ExplorerBand.rgs
│ ├── ExplorerL10N.ini
│ ├── SettingsUI.cpp
│ ├── SettingsUI.h
│ ├── ShareOverlay.cpp
│ ├── ShareOverlay.h
│ ├── ShareOverlay.rgs
│ ├── dllmain.cpp
│ ├── dllmain.h
│ ├── resource.h
│ ├── stdafx.cpp
│ ├── stdafx.h
│ ├── targetver.h
│ ├── up.ico
│ ├── up2Disabled.ico
│ ├── up2Hot.ico
│ ├── up2Normal.ico
│ ├── up2Pressed.ico
│ └── upDisabled.ico
├── ClassicIE
│ ├── ClassicIE.cpp
│ ├── ClassicIE.manifest
│ ├── ClassicIE.rc
│ ├── ClassicIE.vcxproj
│ ├── ClassicIE.vcxproj.filters
│ ├── ClassicIEDLL
│ │ ├── ClassicIEBHO.cpp
│ │ ├── ClassicIEBHO.h
│ │ ├── ClassicIEBHO.rgs
│ │ ├── ClassicIEDLL.cpp
│ │ ├── ClassicIEDLL.h
│ │ ├── ClassicIEDLL.idl
│ │ ├── ClassicIEDLL.rc
│ │ ├── ClassicIEDLL.rgs
│ │ ├── ClassicIEDLL.vcxproj
│ │ ├── ClassicIEDLL.vcxproj.filters
│ │ ├── ClassicIEDLL_32.def
│ │ ├── ClassicIEDLL_64.def
│ │ ├── DrawCaption.cpp
│ │ ├── SettingsUI.cpp
│ │ ├── SettingsUI.h
│ │ ├── dllmain.cpp
│ │ ├── dllmain.h
│ │ ├── glow.bmp
│ │ ├── resource.h
│ │ ├── stdafx.cpp
│ │ ├── stdafx.h
│ │ └── targetver.h
│ └── Resource.h
├── Common.props
├── LICENSE.txt
├── Lib
│ ├── Assert.cpp
│ ├── Assert.h
│ ├── ComHelper.h
│ ├── DownloadHelper.cpp
│ ├── DownloadHelper.h
│ ├── FNVHash.cpp
│ ├── FNVHash.h
│ ├── FileHelper.cpp
│ ├── FileHelper.h
│ ├── IatHookHelper.cpp
│ ├── IatHookHelper.h
│ ├── Instance.cpp
│ ├── LanguageSettingsHelper.cpp
│ ├── LanguageSettingsHelper.h
│ ├── Lib.rc
│ ├── Lib.vcxproj
│ ├── Lib.vcxproj.filters
│ ├── ResourceHelper.cpp
│ ├── ResourceHelper.h
│ ├── Settings.cpp
│ ├── Settings.h
│ ├── SettingsParser.cpp
│ ├── SettingsParser.h
│ ├── SettingsUIHelper.cpp
│ ├── SettingsUIHelper.h
│ ├── StringSet.cpp
│ ├── StringSet.h
│ ├── StringUtils.cpp
│ ├── StringUtils.h
│ ├── TrackResources.cpp
│ ├── TrackResources.h
│ ├── Translations.cpp
│ ├── Translations.h
│ ├── flags.bmp
│ ├── flags24.bmp
│ ├── packages.config
│ ├── padlock.ico
│ ├── play.ico
│ ├── resource.h
│ ├── stdafx.cpp
│ ├── stdafx.h
│ ├── targetver.h
│ └── warning.ico
├── LocComments.txt
├── Localization.rtf
├── Localization
│ ├── BuildADMX.bat
│ ├── Bulgarian
│ │ ├── ClassicExplorerADMX.txt
│ │ ├── ClassicIEADMX.txt
│ │ ├── MenuADMX.txt
│ │ └── OpenShellADMX.txt
│ ├── Chinese
│ │ ├── ClassicExplorer.html
│ │ ├── ClassicExplorerADMX.txt
│ │ ├── ClassicIE.html
│ │ ├── ClassicIEADMX.txt
│ │ ├── License.html
│ │ ├── Links.html
│ │ ├── Main.html
│ │ ├── MenuADMX.txt
│ │ ├── OpenShell.hhp
│ │ ├── OpenShellADMX.txt
│ │ ├── OpenShellEULA.rtf
│ │ ├── OpenShellReadme.rtf
│ │ ├── OpenShellTOC.hhc
│ │ ├── OpenShellText-zh-CN.wxl
│ │ ├── StartMenu.html
│ │ ├── WixUI_zh-CN.wxl
│ │ └── images
│ │ │ ├── OpenShell.png
│ │ │ ├── acc_locked.png
│ │ │ ├── after.png
│ │ │ ├── before.png
│ │ │ ├── button_images.png
│ │ │ ├── button_settings.png
│ │ │ ├── customize_menu.png
│ │ │ ├── customize_menu_.png
│ │ │ ├── explorer_settings.png
│ │ │ ├── ie9_caption.png
│ │ │ ├── ie9_settings.png
│ │ │ ├── ie9_status.png
│ │ │ ├── item_settings.png
│ │ │ ├── menu_settings.png
│ │ │ ├── search1.png
│ │ │ ├── search2.png
│ │ │ ├── search3.png
│ │ │ ├── settings1.png
│ │ │ ├── settings2.png
│ │ │ ├── settings3.png
│ │ │ ├── settings4.png
│ │ │ ├── settings5.png
│ │ │ ├── settings_disable_ex.png
│ │ │ ├── settings_disable_ie9.png
│ │ │ ├── settings_disable_sm.png
│ │ │ ├── skins.gif
│ │ │ ├── statusbar.png
│ │ │ ├── style1.png
│ │ │ ├── style2.png
│ │ │ ├── style3.png
│ │ │ ├── titlebar.png
│ │ │ ├── toolbar.png
│ │ │ ├── toolbar_settings.png
│ │ │ └── up_locked.png
│ ├── ChineseTW
│ │ ├── ClassicExplorer.html
│ │ ├── ClassicExplorerADMX.txt
│ │ ├── ClassicIE.html
│ │ ├── ClassicIEADMX.txt
│ │ ├── License.html
│ │ ├── Links.html
│ │ ├── Main.html
│ │ ├── MenuADMX.txt
│ │ ├── OpenShell.hhp
│ │ ├── OpenShellADMX.txt
│ │ ├── OpenShellEULA.rtf
│ │ ├── OpenShellReadme.rtf
│ │ ├── OpenShellTOC.hhc
│ │ ├── OpenShellText-zh-TW.wxl
│ │ ├── StartMenu.html
│ │ └── WixUI_zh-TW.wxl
│ ├── Dutch
│ │ ├── ClassicExplorerADMX.txt
│ │ ├── ClassicIEADMX.txt
│ │ ├── MenuADMX.txt
│ │ └── OpenShellADMX.txt
│ ├── English
│ │ ├── ButtonTutorial.html
│ │ ├── ClassicExplorer.html
│ │ ├── ClassicExplorerADMX.txt
│ │ ├── ClassicIE.html
│ │ ├── ClassicIEADMX.txt
│ │ ├── License.html
│ │ ├── Links.html
│ │ ├── LocComments.txt
│ │ ├── Localization.rtf
│ │ ├── Main.html
│ │ ├── MenuADMX.txt
│ │ ├── OpenShell.hhp
│ │ ├── OpenShellADMX.txt
│ │ ├── OpenShellEULA.rtf
│ │ ├── OpenShellReadme.rtf
│ │ ├── OpenShellTOC.hhc
│ │ ├── OpenShellText-en-US.wxl
│ │ ├── PolicyDefinitions.rtf
│ │ ├── SkinTutorial.html
│ │ ├── StartMenu.html
│ │ ├── WixUI_en-us.wxl
│ │ ├── en-US.csv
│ │ └── images
│ │ │ ├── OpenShell.png
│ │ │ ├── acc_locked.png
│ │ │ ├── after.png
│ │ │ ├── before.png
│ │ │ ├── button0.png
│ │ │ ├── button1.png
│ │ │ ├── button2.png
│ │ │ ├── button3.png
│ │ │ ├── button_images.png
│ │ │ ├── button_settings.png
│ │ │ ├── color_mask.png
│ │ │ ├── customize_menu.png
│ │ │ ├── error_balloon.png
│ │ │ ├── explorer_settings.png
│ │ │ ├── ie9_caption.png
│ │ │ ├── ie9_settings.png
│ │ │ ├── ie9_status.png
│ │ │ ├── item_settings.png
│ │ │ ├── main_slices.png
│ │ │ ├── menu_arrows.png
│ │ │ ├── menu_settings.png
│ │ │ ├── padding.png
│ │ │ ├── pager_arrows.png
│ │ │ ├── pager_buttons.png
│ │ │ ├── pattern_mask.png
│ │ │ ├── photoshop.png
│ │ │ ├── reshacker.png
│ │ │ ├── resize.png
│ │ │ ├── search1.png
│ │ │ ├── search2.png
│ │ │ ├── search3.png
│ │ │ ├── search_icons.png
│ │ │ ├── separator.png
│ │ │ ├── settings1.png
│ │ │ ├── settings2.png
│ │ │ ├── settings3.png
│ │ │ ├── settings4.png
│ │ │ ├── settings5.png
│ │ │ ├── settings_disable_ex.png
│ │ │ ├── settings_disable_ie9.png
│ │ │ ├── settings_disable_sm.png
│ │ │ ├── skins.gif
│ │ │ ├── slices.png
│ │ │ ├── statusbar.png
│ │ │ ├── style1.png
│ │ │ ├── style2.png
│ │ │ ├── style3.png
│ │ │ ├── titlebar.png
│ │ │ ├── toolbar.png
│ │ │ ├── toolbar_settings.png
│ │ │ └── up_locked.png
│ ├── French
│ │ ├── ClassicExplorer.html
│ │ ├── ClassicExplorerADMX.txt
│ │ ├── ClassicIE.html
│ │ ├── ClassicIEADMX.txt
│ │ ├── License.html
│ │ ├── Links.html
│ │ ├── Main.html
│ │ ├── MenuADMX.txt
│ │ ├── OpenShell.hhp
│ │ ├── OpenShellADMX.txt
│ │ ├── OpenShellEULA.rtf
│ │ ├── OpenShellReadme.rtf
│ │ ├── OpenShellTOC.hhc
│ │ ├── OpenShellText-fr-FR.wxl
│ │ ├── StartMenu.html
│ │ ├── WixUI_fr-fr.wxl
│ │ └── images
│ │ │ ├── OpenShell.png
│ │ │ ├── acc_locked.png
│ │ │ ├── after.png
│ │ │ ├── before.png
│ │ │ ├── button_images.png
│ │ │ ├── button_settings.png
│ │ │ ├── customize_menu.png
│ │ │ ├── explorer_settings.png
│ │ │ ├── ie9_caption.png
│ │ │ ├── ie9_settings.png
│ │ │ ├── ie9_status.png
│ │ │ ├── item_settings.png
│ │ │ ├── menu_settings.png
│ │ │ ├── search1.png
│ │ │ ├── search2.png
│ │ │ ├── search3.png
│ │ │ ├── settings1.png
│ │ │ ├── settings2.png
│ │ │ ├── settings3.png
│ │ │ ├── settings4.png
│ │ │ ├── settings5.png
│ │ │ ├── settings_disable_ex.png
│ │ │ ├── settings_disable_ie9.png
│ │ │ ├── settings_disable_sm.png
│ │ │ ├── skins.gif
│ │ │ ├── statusbar.png
│ │ │ ├── style1.png
│ │ │ ├── style2.png
│ │ │ ├── style3.png
│ │ │ ├── titlebar.png
│ │ │ ├── toolbar.png
│ │ │ ├── toolbar_settings.png
│ │ │ └── up_locked.png
│ ├── German
│ │ ├── ClassicExplorerADMX.txt
│ │ ├── ClassicIE.html
│ │ ├── ClassicIEADMX.txt
│ │ ├── License.html
│ │ ├── Links.html
│ │ ├── Main.html
│ │ ├── MenuADMX.txt
│ │ ├── OpenShell.hhp
│ │ ├── OpenShellADMX.txt
│ │ ├── OpenShellEULA.rtf
│ │ ├── OpenShellReadme.rtf
│ │ ├── OpenShellTOC.hhc
│ │ ├── OpenShellText-de-DE.wxl
│ │ └── WixUI_de-DE.wxl
│ ├── Hungarian
│ │ ├── ClassicExplorerADMX.txt
│ │ ├── ClassicIEADMX.txt
│ │ ├── MenuADMX.txt
│ │ └── OpenShellADMX.txt
│ ├── Italian
│ │ ├── ClassicExplorerADMX.txt
│ │ ├── ClassicIEADMX.txt
│ │ ├── MenuADMX.txt
│ │ ├── OpenShellADMX.txt
│ │ ├── OpenShellEULA.rtf
│ │ ├── OpenShellReadme.rtf
│ │ ├── OpenShellText-it-IT.wxl
│ │ └── WixUI_it-it.wxl
│ ├── Japanese
│ │ ├── ClassicExplorerADMX.txt
│ │ ├── ClassicIEADMX.txt
│ │ ├── MenuADMX.txt
│ │ └── OpenShellADMX.txt
│ ├── Persian
│ │ ├── ExplorerL10N.txt
│ │ ├── OpenShellReadme-fa-IR.rtf
│ │ ├── OpenShellText-fa-IR.wxl
│ │ ├── StartMenuHelperL10N.txt
│ │ └── StartMenuL10N.txt
│ ├── Polish
│ │ ├── ClassicExplorer.html
│ │ ├── ClassicExplorerADMX.txt
│ │ ├── ClassicIE.html
│ │ ├── ClassicIEADMX.txt
│ │ ├── License.html
│ │ ├── Links.html
│ │ ├── Main.html
│ │ ├── MenuADMX.txt
│ │ ├── OpenShell.hhp
│ │ ├── OpenShellADMX.txt
│ │ ├── OpenShellEULA.rtf
│ │ ├── OpenShellReadme.rtf
│ │ ├── OpenShellTOC.hhc
│ │ ├── OpenShellText-pl-PL.wxl
│ │ ├── StartMenu.html
│ │ └── WixUI_pl-pl.wxl
│ ├── Portugese
│ │ ├── ClassicExplorerADMX.txt
│ │ ├── ClassicIEADMX.txt
│ │ ├── MenuADMX.txt
│ │ └── OpenShellADMX.txt
│ ├── Russian
│ │ ├── ClassicExplorer.html
│ │ ├── ClassicExplorerADMX.txt
│ │ ├── ClassicIE.html
│ │ ├── ClassicIEADMX.txt
│ │ ├── License.html
│ │ ├── Links.html
│ │ ├── Main.html
│ │ ├── MenuADMX.txt
│ │ ├── OpenShell.hhp
│ │ ├── OpenShellADMX.txt
│ │ ├── OpenShellEULA.rtf
│ │ ├── OpenShellReadme.rtf
│ │ ├── OpenShellTOC.hhc
│ │ ├── OpenShellText-ru-RU.wxl
│ │ ├── StartMenu.html
│ │ └── WixUI_ru-ru.wxl
│ ├── Spanish
│ │ ├── ClassicExplorer.html
│ │ ├── ClassicExplorerADMX.txt
│ │ ├── ClassicIE.html
│ │ ├── ClassicIEADMX.txt
│ │ ├── License.html
│ │ ├── Links.html
│ │ ├── Main.html
│ │ ├── MenuADMX.txt
│ │ ├── OpenShell.hhp
│ │ ├── OpenShellADMX.txt
│ │ ├── OpenShellEULA.rtf
│ │ ├── OpenShellReadme.rtf
│ │ ├── OpenShellTOC.hhc
│ │ ├── OpenShellText-es-ES.wxl
│ │ ├── StartMenu.html
│ │ ├── WixUI_es-es.wxl
│ │ └── images
│ │ │ ├── OpenShell.png
│ │ │ ├── acc_locked.png
│ │ │ ├── after.png
│ │ │ ├── before.png
│ │ │ ├── button_images.png
│ │ │ ├── button_settings.png
│ │ │ ├── customize_menu.png
│ │ │ ├── explorer_settings.png
│ │ │ ├── ie9_caption.png
│ │ │ ├── ie9_settings.png
│ │ │ ├── ie9_status.png
│ │ │ ├── item_settings.png
│ │ │ ├── menu_settings.png
│ │ │ ├── search1.png
│ │ │ ├── search2.png
│ │ │ ├── search3.png
│ │ │ ├── settings1.png
│ │ │ ├── settings2.png
│ │ │ ├── settings3.png
│ │ │ ├── settings4.png
│ │ │ ├── settings5.png
│ │ │ ├── settings_disable_ex.png
│ │ │ ├── settings_disable_ie9.png
│ │ │ ├── settings_disable_sm.png
│ │ │ ├── skins.gif
│ │ │ ├── statusbar.png
│ │ │ ├── style1.png
│ │ │ ├── style2.png
│ │ │ ├── style3.png
│ │ │ ├── titlebar.png
│ │ │ ├── toolbar.png
│ │ │ ├── toolbar_settings.png
│ │ │ └── up_locked.png
│ ├── Swedish
│ │ ├── ClassicExplorerADMX.txt
│ │ ├── ClassicIEADMX.txt
│ │ ├── MenuADMX.txt
│ │ └── OpenShellADMX.txt
│ ├── Turkish
│ │ ├── ClassicExplorerADMX.txt
│ │ ├── ClassicIEADMX.txt
│ │ ├── MenuADMX.txt
│ │ └── OpenShellADMX.txt
│ ├── WixUI
│ │ ├── WixUI_ar-SA.wxl
│ │ ├── WixUI_bg-BG.wxl
│ │ ├── WixUI_ca-ES.wxl
│ │ ├── WixUI_cs-CZ.wxl
│ │ ├── WixUI_da-DK.wxl
│ │ ├── WixUI_de-de.wxl
│ │ ├── WixUI_el-GR.wxl
│ │ ├── WixUI_en-us.wxl
│ │ ├── WixUI_es-es.wxl
│ │ ├── WixUI_et-EE.wxl
│ │ ├── WixUI_fi-FI.wxl
│ │ ├── WixUI_fr-fr.wxl
│ │ ├── WixUI_he-IL.wxl
│ │ ├── WixUI_hi-IN.wxl
│ │ ├── WixUI_hr-HR.wxl
│ │ ├── WixUI_hu-HU.wxl
│ │ ├── WixUI_it-it.wxl
│ │ ├── WixUI_ja-jp.wxl
│ │ ├── WixUI_kk-KZ.wxl
│ │ ├── WixUI_ko-KR.wxl
│ │ ├── WixUI_lt-LT.wxl
│ │ ├── WixUI_lv-LV.wxl
│ │ ├── WixUI_nb-NO.wxl
│ │ ├── WixUI_nl-NL.wxl
│ │ ├── WixUI_pl-pl.wxl
│ │ ├── WixUI_pt-BR.wxl
│ │ ├── WixUI_pt-PT.wxl
│ │ ├── WixUI_ro-RO.wxl
│ │ ├── WixUI_ru-ru.wxl
│ │ ├── WixUI_sk-SK.wxl
│ │ ├── WixUI_sl-SI.wxl
│ │ ├── WixUI_sr-Latn-CS.wxl
│ │ ├── WixUI_sv-SE.wxl
│ │ ├── WixUI_th-TH.wxl
│ │ ├── WixUI_tr-TR.wxl
│ │ ├── WixUI_uk-UA.wxl
│ │ ├── WixUI_zh-CN.wxl
│ │ ├── WixUI_zh-HK.wxl
│ │ └── WixUI_zh-TW.wxl
│ └── _BuildAllADMX.bat
├── Retro-Shell.sln
├── Setup
│ ├── BuildArchives.bat
│ ├── BuildBinaries.bat
│ ├── BuildInstaller.bat
│ ├── CreateSourceIndex.bat
│ ├── OpenShell.ico
│ ├── Setup.cpp
│ ├── Setup.manifest
│ ├── Setup.rc
│ ├── Setup.sln
│ ├── Setup.vcxproj
│ ├── Setup.vcxproj.filters
│ ├── Setup.wxs
│ ├── SetupHelper
│ │ ├── SetupHelper.cpp
│ │ ├── SetupHelper.manifest
│ │ ├── SetupHelper.vcxproj
│ │ └── SetupHelper.vcxproj.filters
│ ├── Utility
│ │ ├── LoggingOptions.cpp
│ │ ├── ManualUninstall.cpp
│ │ ├── MetroColorViewer.cpp
│ │ ├── SaveLogFile.cpp
│ │ ├── SaveLogFile.h
│ │ ├── Utility.cpp
│ │ ├── Utility.manifest
│ │ ├── Utility.rc
│ │ ├── Utility.vcxproj
│ │ ├── Utility.vcxproj.filters
│ │ ├── resource.h
│ │ └── tool.ico
│ ├── _BuildChineseCN.bat
│ ├── _BuildChineseTW.bat
│ ├── _BuildEnglish.bat
│ ├── _BuildFrench.bat
│ ├── _BuildGerman.bat
│ ├── _BuildItalian.bat
│ ├── _BuildPolish.bat
│ ├── _BuildRussian.bat
│ ├── _BuildSpanish.bat
│ ├── __MakeFinal.bat
│ ├── __MakeFinalAllLanguages.bat
│ ├── banner.jpg
│ ├── dialog.jpg
│ ├── dialog2.jpg
│ ├── en-US
│ │ ├── en-US.rc
│ │ ├── en-US.txt
│ │ ├── en-US.vcxproj
│ │ └── resource.h
│ ├── resource.h
│ └── web.ico
├── Skins
│ ├── RoyaleNoir
│ │ ├── RoyaleNoir.rc
│ │ ├── RoyaleNoir.vcxproj
│ │ ├── RoyaleNoir.vcxproj.filters
│ │ ├── SkinDescription.txt
│ │ ├── logoff_icon.bmp
│ │ ├── main_background.bmp
│ │ ├── new_hilight.bmp
│ │ ├── places_hilight_split.bmp
│ │ ├── places_separator.bmp
│ │ ├── programs_arrow.bmp
│ │ ├── programs_hilight.bmp
│ │ ├── programs_hilight_split.bmp
│ │ ├── programs_separator.bmp
│ │ ├── resource.h
│ │ ├── shutdown_icon.bmp
│ │ ├── submenu_arrow_places.bmp
│ │ ├── submenu_arrow_programs.bmp
│ │ ├── submenu_background.bmp
│ │ ├── submenu_hilight.bmp
│ │ ├── submenu_hilight_split.bmp
│ │ ├── submenu_separator.bmp
│ │ ├── submenu_vert_separator.bmp
│ │ └── userbg.bmp
│ ├── Skin.props
│ ├── Watercolor
│ │ ├── STARTPANELMOREPROGARROWHOT_BMP.bmp
│ │ ├── SkinDescription.txt
│ │ ├── Watercolor.rc
│ │ ├── Watercolor.vcxproj
│ │ ├── Watercolor.vcxproj.filters
│ │ ├── logoff_icon.bmp
│ │ ├── main_background.bmp
│ │ ├── new_hilight.bmp
│ │ ├── places_hilight_split.bmp
│ │ ├── places_separator.bmp
│ │ ├── programs_arrow.bmp
│ │ ├── programs_arrow.png
│ │ ├── programs_hilight.bmp
│ │ ├── programs_hilight_split.bmp
│ │ ├── programs_separator.bmp
│ │ ├── programs_separator.png
│ │ ├── resource.h
│ │ ├── shutdown_icon.bmp
│ │ ├── submenu_arrow_places.bmp
│ │ ├── submenu_arrow_places.png
│ │ ├── submenu_arrow_programs.bmp
│ │ ├── submenu_arrow_programs.png
│ │ ├── submenu_background.bmp
│ │ ├── submenu_hilight.bmp
│ │ ├── submenu_hilight_split.bmp
│ │ ├── submenu_separator.bmp
│ │ ├── submenu_vert_separator.bmp
│ │ └── userbg.bmp
│ ├── WinXPLunaBlueBeta
│ │ ├── SkinDescription.txt
│ │ ├── WinXPLunaBlueBeta.rc
│ │ ├── WinXPLunaBlueBeta.vcxproj
│ │ ├── WinXPLunaBlueBeta.vcxproj.filters
│ │ ├── logoff_icon.bmp
│ │ ├── main_background.bmp
│ │ ├── new_hilight.bmp
│ │ ├── places_hilight_split.bmp
│ │ ├── places_separator.bmp
│ │ ├── programs_arrow.bmp
│ │ ├── programs_hilight.bmp
│ │ ├── programs_hilight_split.bmp
│ │ ├── programs_separator.bmp
│ │ ├── resource.h
│ │ ├── shutdown_icon.bmp
│ │ ├── submenu_arrow_places.bmp
│ │ ├── submenu_arrow_programs.bmp
│ │ ├── submenu_background.bmp
│ │ ├── submenu_hilight.bmp
│ │ ├── submenu_hilight_split.bmp
│ │ ├── submenu_separator.bmp
│ │ ├── submenu_vert_separator.bmp
│ │ └── userbg.bmp
│ ├── XPLuna
│ │ ├── SkinDescriptionBlue.txt
│ │ ├── SkinDescriptionHomestead.txt
│ │ ├── SkinDescriptionMetallic.txt
│ │ ├── XPLuna.rc
│ │ ├── XPLuna.vcxproj
│ │ ├── XPLuna.vcxproj.filters
│ │ ├── black_white_arrow.bmp
│ │ ├── logoff_icon.bmp
│ │ ├── main_background_blue.bmp
│ │ ├── main_background_homestead.bmp
│ │ ├── main_background_metallic.bmp
│ │ ├── places_separator_blue.bmp
│ │ ├── places_separator_homestead.bmp
│ │ ├── places_separator_metallic.bmp
│ │ ├── programs_arrow.bmp
│ │ ├── programs_separator_blue.bmp
│ │ ├── programs_separator_homestead.bmp
│ │ ├── programs_separator_metallic.bmp
│ │ ├── resource.h
│ │ ├── selection_blue.bmp
│ │ ├── selection_homestead.bmp
│ │ ├── selection_metallic.bmp
│ │ ├── selection_split_blue.bmp
│ │ ├── selection_split_homestead.bmp
│ │ ├── selection_split_metallic.bmp
│ │ ├── shutdown_icon.bmp
│ │ ├── submenu_blue.bmp
│ │ ├── submenu_homestead.bmp
│ │ ├── submenu_metallic.bmp
│ │ ├── submenu_separator.bmp
│ │ ├── submenu_separator_vert.bmp
│ │ ├── user_picture_background_blue.bmp
│ │ ├── user_picture_background_homestead.bmp
│ │ ├── user_picture_background_metallic.bmp
│ │ └── white_black_arrow.bmp
│ └── Zune
│ │ ├── SkinDescription.txt
│ │ ├── Zune.filters
│ │ ├── Zune.rc
│ │ ├── Zune.vcxproj
│ │ ├── logoff_icon.bmp
│ │ ├── main_background.bmp
│ │ ├── new_hilight.bmp
│ │ ├── places_hilight_split.bmp
│ │ ├── places_separator o.bmp
│ │ ├── places_separator.bmp
│ │ ├── places_separator.png
│ │ ├── programs_arrow.bmp
│ │ ├── programs_hilight.bmp
│ │ ├── programs_hilight_split.bmp
│ │ ├── programs_separator o.bmp
│ │ ├── programs_separator.bmp
│ │ ├── programs_separator.png
│ │ ├── resource.h
│ │ ├── shutdown_icon.bmp
│ │ ├── submenu_arrow_places.bmp
│ │ ├── submenu_arrow_programs.bmp
│ │ ├── submenu_background.bmp
│ │ ├── submenu_hilight.bmp
│ │ ├── submenu_hilight_split.bmp
│ │ ├── submenu_separator.bmp
│ │ ├── submenu_vert_separator.bmp
│ │ └── userbg.bmp
├── StartMenu
│ ├── Legacy.cpp
│ ├── Legacy.h
│ ├── MetroColors
│ │ ├── win10_black.txt
│ │ ├── win10_blue.txt
│ │ ├── win10_green.txt
│ │ ├── win10_red.txt
│ │ ├── win10_yellow.txt
│ │ ├── win81_black.txt
│ │ ├── win81_blue.txt
│ │ ├── win81_green.txt
│ │ ├── win81_red.txt
│ │ ├── win81_yellow.txt
│ │ ├── win8_black.txt
│ │ ├── win8_blue.txt
│ │ ├── win8_green.txt
│ │ ├── win8_red.txt
│ │ └── win8_yellow.txt
│ ├── StartMenu.cpp
│ ├── StartMenu.manifest
│ ├── StartMenu.rc
│ ├── StartMenu.vcxproj
│ ├── StartMenu.vcxproj.filters
│ ├── StartMenuDLL
│ │ ├── Accessibility.cpp
│ │ ├── Accessibility.h
│ │ ├── CustomMenu.cpp
│ │ ├── CustomMenu.h
│ │ ├── DragDrop.cpp
│ │ ├── DragDrop.h
│ │ ├── ItemManager.cpp
│ │ ├── ItemManager.h
│ │ ├── JumpLists.cpp
│ │ ├── JumpLists.h
│ │ ├── LogManager.cpp
│ │ ├── LogManager.h
│ │ ├── MenuCommands.cpp
│ │ ├── MenuContainer.cpp
│ │ ├── MenuContainer.h
│ │ ├── MenuPaint.cpp
│ │ ├── MetroLinkManager.cpp
│ │ ├── MetroLinkManager.h
│ │ ├── ProgramsTree.cpp
│ │ ├── ProgramsTree.h
│ │ ├── SearchManager.cpp
│ │ ├── SearchManager.h
│ │ ├── SettingsUI.cpp
│ │ ├── SettingsUI.h
│ │ ├── SkinDescription.txt
│ │ ├── SkinDescription7.txt
│ │ ├── SkinManager.cpp
│ │ ├── SkinManager.h
│ │ ├── StartButton.cpp
│ │ ├── StartButton.h
│ │ ├── StartMenuDLL.cpp
│ │ ├── StartMenuDLL.h
│ │ ├── StartMenuDLL.rc
│ │ ├── StartMenuDLL.vcxproj
│ │ ├── StartMenuDLL.vcxproj.filters
│ │ ├── TouchHelper.cpp
│ │ ├── TouchHelper.h
│ │ ├── apps.ico
│ │ ├── apps10.ico
│ │ ├── apps11.ico
│ │ ├── btn_aero.ico
│ │ ├── btn_classic.bmp
│ │ ├── button120.png
│ │ ├── button144.png
│ │ ├── button180.png
│ │ ├── button96.png
│ │ ├── dllmain.cpp
│ │ ├── dllmain.h
│ │ ├── menu_arrows.bmp
│ │ ├── menu_arrows150.bmp
│ │ ├── noskin_logoff.bmp
│ │ ├── noskin_shutdown.bmp
│ │ ├── resource.h
│ │ ├── search_icons.bmp
│ │ ├── start.ico
│ │ ├── start10.ico
│ │ ├── startb.ico
│ │ ├── startb10.ico
│ │ ├── stdafx.cpp
│ │ ├── stdafx.h
│ │ ├── style_7.png
│ │ ├── style_7150.png
│ │ ├── style_classic.png
│ │ ├── style_classic150.png
│ │ ├── style_vista.png
│ │ ├── style_vista150.png
│ │ └── targetver.h
│ ├── StartMenuHelper
│ │ ├── ModernSettings.cpp
│ │ ├── ModernSettings.h
│ │ ├── ModernSettingsContextMenu.cpp
│ │ ├── ModernSettingsContextMenu.h
│ │ ├── ModernSettingsContextMenu.rgs
│ │ ├── ModernSettingsShellFolder.cpp
│ │ ├── ModernSettingsShellFolder.h
│ │ ├── ModernSettingsShellFolder.rgs
│ │ ├── StartMenuExt.cpp
│ │ ├── StartMenuExt.h
│ │ ├── StartMenuExt.rgs
│ │ ├── StartMenuHelper.cpp
│ │ ├── StartMenuHelper.idl
│ │ ├── StartMenuHelper.rc
│ │ ├── StartMenuHelper.rgs
│ │ ├── StartMenuHelper.vcxproj
│ │ ├── StartMenuHelper.vcxproj.filters
│ │ ├── StartMenuHelper32.def
│ │ ├── StartMenuHelper64.def
│ │ ├── StartMenuHelperL10N.ini
│ │ ├── dllmain.cpp
│ │ ├── dllmain.h
│ │ ├── resource.h
│ │ ├── stdafx.cpp
│ │ ├── stdafx.h
│ │ └── targetver.h
│ ├── StartMenuL10N.ini
│ ├── resource.h
│ ├── stdafx.cpp
│ ├── stdafx.h
│ └── targetver.h
└── Update
│ ├── DesktopToasts
│ ├── DesktopNotificationManagerCompat.cpp
│ ├── DesktopNotificationManagerCompat.h
│ ├── DesktopToasts.def
│ ├── DesktopToasts.h
│ ├── DesktopToasts.rc
│ ├── DesktopToasts.vcxproj
│ ├── DesktopToasts.vcxproj.filters
│ └── dllmain.cpp
│ ├── Update.cpp
│ ├── Update.manifest
│ ├── Update.rc
│ ├── Update.vcxproj
│ └── resource.h
├── appveyor.yml
└── clean.cmd
/.editorconfig:
--------------------------------------------------------------------------------
1 | root=true
2 |
3 | [*]
4 | indent_style=tab
5 | indent_size=4
6 | trim_trailing_whitespace=true
7 | insert_final_newline=true
8 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/config.yml:
--------------------------------------------------------------------------------
1 | blank_issues_enabled: false
2 | contact_links:
3 | - name: Github Discussions
4 | url: https://github.com/aubymori/Retro-Shell/discussions
5 | about: Please ask and answer questions here.
6 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature_request.yml:
--------------------------------------------------------------------------------
1 | name: Feature request
2 | description: Suggest an idea for this project
3 | labels: Enhancement/Feature Request
4 |
5 | body:
6 | - type: textarea
7 | attributes:
8 | label: Is your feature request related to a problem? Please describe.
9 | description: A clear and concise description of what the problem is.
10 | placeholder: Ex. I'm always frustrated when [...]
11 | validations:
12 | required: true
13 | - type: textarea
14 | attributes:
15 | label: Describe the solution you'd like
16 | description: A clear and concise description of what you want to happen.
17 | validations:
18 | required: true
19 | - type: dropdown
20 | attributes:
21 | label: Area of issue
22 | description: What component(s) of Retro-Shell does this involve? Select all that apply.
23 | multiple: true
24 | options:
25 | - Start menu
26 | - Taskbar
27 | - Windows Explorer
28 | - Internet Explorer
29 | - Installation/Other
30 | validations:
31 | required: true
32 | - type: textarea
33 | attributes:
34 | label: Alternatives you've considered
35 | description: A clear and concise description of any alternative solutions or features you've considered.
36 | - type: textarea
37 | attributes:
38 | label: Additional context
39 | description: Add any other context or screenshots about the feature request here.
40 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2017-2018
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | # Retro-Shell XP
5 |
6 | Open-Shell but with a huge list of XP-style enhancements.
7 |
8 | *Originally* **[Open-Shell](https://github.com/Open-Shell/Open-Shell-Menu)**
9 |
10 | # List of additions and changes
11 |
12 | - Internet and E-mail labels
13 | - Selective bold text
14 | - Dedicated All Programs button
15 | - Dedicated shutdown and logoff buttons
16 | - Forced column width override settings
17 | - Ability to set custom shutdown/logoff command
18 |
--------------------------------------------------------------------------------
/Src/BUILDME.txt:
--------------------------------------------------------------------------------
1 | To build Retro-Shell, navigate to the Setup folder and run __MakeFinal.bat.
2 | It will compile the binaries, produce installer for English, and create the final archives.
3 | Then you can run the individual language files like _BuildFrench.bat to create the installers
4 | for other languages.
5 | The final files (installers, archives) are saved to the Setup\Final folder.
6 |
7 | You need the following tools:
8 | Visual Studio 2022 (Community Edition is enough)
9 | - Desktop development with C++ workload
10 | - Windows 11 SDK (10.0.22621.0) for Desktop C++
11 | - Visual C++ ATL support
12 | HTML Help Workshop
13 | WiX 3.11
14 | 7-Zip
15 | It is possible to convert the projects to newer versions of Visual Studio and newer SDKs.
16 | Newer versions of WiX will probably work fine.
17 |
18 | Note: Unlike the official release, the source code does not contain digital certificate and
19 | produces unsigned binaries.
20 |
--------------------------------------------------------------------------------
/Src/ClassicExplorer/ClassicCopyExt.rgs:
--------------------------------------------------------------------------------
1 | HKCR
2 | {
3 | ClassicExplorer.ClassicCopyExt.1 = s 'ClassicCopyExt Class'
4 | {
5 | CLSID = s '{8C83ACB1-75C3-45D2-882C-EFA32333491C}'
6 | }
7 | ClassicExplorer.ClassicCopyExt = s 'ClassicCopyExt Class'
8 | {
9 | CLSID = s '{8C83ACB1-75C3-45D2-882C-EFA32333491C}'
10 | CurVer = s 'ClassicExplorer.ClassicCopyExt.1'
11 | }
12 | NoRemove CLSID
13 | {
14 | ForceRemove {8C83ACB1-75C3-45D2-882C-EFA32333491C} = s 'ClassicCopyExt Class'
15 | {
16 | ProgID = s 'ClassicExplorer.ClassicCopyExt.1'
17 | VersionIndependentProgID = s 'ClassicExplorer.ClassicCopyExt'
18 | ForceRemove 'Programmable'
19 | InprocServer32 = s '%MODULE%'
20 | {
21 | val ThreadingModel = s 'Apartment'
22 | }
23 | 'TypeLib' = s '{BF8D124A-A4E0-402F-8152-4EF377E62586}'
24 | }
25 | }
26 |
27 | NoRemove Directory
28 | {
29 | NoRemove shellex
30 | {
31 | NoRemove DragDropHandlers
32 | {
33 | ForceRemove ClassicCopyExt = s '{8C83ACB1-75C3-45D2-882C-EFA32333491C}'
34 | }
35 | }
36 | }
37 | NoRemove Drive
38 | {
39 | NoRemove shellex
40 | {
41 | NoRemove DragDropHandlers
42 | {
43 | ForceRemove ClassicCopyExt = s '{8C83ACB1-75C3-45D2-882C-EFA32333491C}'
44 | }
45 | }
46 | }
47 |
48 | NoRemove Folder
49 | {
50 | NoRemove shellex
51 | {
52 | NoRemove DragDropHandlers
53 | {
54 | ForceRemove ClassicCopyExt = s '{8C83ACB1-75C3-45D2-882C-EFA32333491C}'
55 | }
56 | }
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/Src/ClassicExplorer/ClassicExplorer.rgs:
--------------------------------------------------------------------------------
1 | HKCR
2 | {
3 | NoRemove AppID
4 | {
5 | '%APPID%' = s 'ClassicExplorer'
6 | 'ClassicExplorer.DLL'
7 | {
8 | val AppID = s '%APPID%'
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Src/ClassicExplorer/ClassicExplorer32.def:
--------------------------------------------------------------------------------
1 | ; ClassicExplorer.def : Declares the module parameters.
2 |
3 | LIBRARY "ClassicExplorer32.DLL"
4 |
5 | EXPORTS
6 | DllCanUnloadNow PRIVATE
7 | DllGetClassObject PRIVATE
8 | DllRegisterServer PRIVATE
9 | DllUnregisterServer PRIVATE
10 | DllInstall PRIVATE
11 | ShowExplorerSettings
12 | DllImportSettingsXml
13 | DllExportSettingsXml
14 | DllSaveAdmx
15 |
--------------------------------------------------------------------------------
/Src/ClassicExplorer/ClassicExplorer64.def:
--------------------------------------------------------------------------------
1 | ; ClassicExplorer.def : Declares the module parameters.
2 |
3 | LIBRARY "ClassicExplorer64.DLL"
4 |
5 | EXPORTS
6 | DllCanUnloadNow PRIVATE
7 | DllGetClassObject PRIVATE
8 | DllRegisterServer PRIVATE
9 | DllUnregisterServer PRIVATE
10 | DllInstall PRIVATE
11 | ShowExplorerSettings
12 | DllImportSettingsXml
13 | DllExportSettingsXml
14 |
--------------------------------------------------------------------------------
/Src/ClassicExplorer/ClassicExplorerSettings/ClassicExplorerSettings.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {ce4a693b-f0c8-4e4f-bb89-6ea84a896ab5}
6 |
7 |
8 | {c8784c85-5e1e-4046-9e25-88d3d523fcc4}
9 |
10 |
11 | {7cf898ad-b82c-4f58-8f2d-9ade37623d47}
12 |
13 |
14 |
15 |
16 | Header Files
17 |
18 |
19 |
20 |
21 | Source Files
22 |
23 |
24 |
25 |
26 | Resource Files
27 |
28 |
29 |
30 |
31 | Resource Files
32 |
33 |
34 |
35 |
36 | Resource Files
37 |
38 |
39 |
--------------------------------------------------------------------------------
/Src/ClassicExplorer/ClassicExplorerSettings/resource.h:
--------------------------------------------------------------------------------
1 | //{{NO_DEPENDENCIES}}
2 | // Microsoft Visual C++ generated include file.
3 | // Used by ClassicExplorerSettings.rc
4 | //
5 | #define IDI_APPICON 101
6 |
7 | // Next default values for new objects
8 | //
9 | #ifdef APSTUDIO_INVOKED
10 | #ifndef APSTUDIO_READONLY_SYMBOLS
11 | #define _APS_NEXT_RESOURCE_VALUE 102
12 | #define _APS_NEXT_COMMAND_VALUE 40001
13 | #define _APS_NEXT_CONTROL_VALUE 1001
14 | #define _APS_NEXT_SYMED_VALUE 101
15 | #endif
16 | #endif
17 |
--------------------------------------------------------------------------------
/Src/ClassicExplorer/ExplorerBHO.rgs:
--------------------------------------------------------------------------------
1 | HKCR
2 | {
3 | ClassicExplorer.ExplorerBHO.1 = s 'ExplorerBHO Class'
4 | {
5 | CLSID = s '{449D0D6E-2412-4E61-B68F-1CB625CD9E52}'
6 | }
7 | ClassicExplorer.ExplorerBHO = s 'ExplorerBHO Class'
8 | {
9 | CLSID = s '{449D0D6E-2412-4E61-B68F-1CB625CD9E52}'
10 | CurVer = s 'ClassicExplorer.ExplorerBHO.1'
11 | }
12 | NoRemove CLSID
13 | {
14 | ForceRemove {449D0D6E-2412-4E61-B68F-1CB625CD9E52} = s 'ExplorerBHO Class'
15 | {
16 | ProgID = s 'ClassicExplorer.ExplorerBHO.1'
17 | VersionIndependentProgID = s 'ClassicExplorer.ExplorerBHO'
18 | ForceRemove 'Programmable'
19 | InprocServer32 = s '%MODULE%'
20 | {
21 | val ThreadingModel = s 'Apartment'
22 | }
23 | 'TypeLib' = s '{BF8D124A-A4E0-402F-8152-4EF377E62586}'
24 | }
25 | }
26 | }
27 |
28 | HKLM
29 | {
30 | NoRemove SOFTWARE
31 | {
32 | NoRemove Microsoft
33 | {
34 | NoRemove Windows
35 | {
36 | NoRemove CurrentVersion
37 | {
38 | NoRemove Explorer
39 | {
40 | NoRemove 'Browser Helper Objects'
41 | {
42 | ForceRemove '{449D0D6E-2412-4E61-B68F-1CB625CD9E52}'
43 | }
44 | }
45 | NoRemove Policies
46 | {
47 | NoRemove Ext
48 | {
49 | NoRemove CLSID
50 | {
51 | ForceRemove val {449D0D6E-2412-4E61-B68F-1CB625CD9E52} = s '2'
52 | }
53 | }
54 | }
55 | }
56 | }
57 | }
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/Src/ClassicExplorer/ExplorerBand.rgs:
--------------------------------------------------------------------------------
1 | HKCR
2 | {
3 | ClassicExplorer.ExplorerBand.1 = s 'ExplorerBand Class'
4 | {
5 | CLSID = s '{553891B7-A0D5-4526-BE18-D3CE461D6310}'
6 | }
7 | ClassicExplorer.ExplorerBand = s 'ExplorerBand Class'
8 | {
9 | CLSID = s '{553891B7-A0D5-4526-BE18-D3CE461D6310}'
10 | CurVer = s 'ClassicExplorer.ExplorerBand.1'
11 | }
12 | NoRemove CLSID
13 | {
14 | ForceRemove {553891B7-A0D5-4526-BE18-D3CE461D6310} = s 'Classic Explorer Bar'
15 | {
16 | ProgID = s 'ClassicExplorer.ExplorerBand.1'
17 | VersionIndependentProgID = s 'ClassicExplorer.ExplorerBand'
18 | ForceRemove 'Programmable'
19 | InprocServer32 = s '%MODULE%'
20 | {
21 | val ThreadingModel = s 'Apartment'
22 | }
23 | 'TypeLib' = s '{BF8D124A-A4E0-402F-8152-4EF377E62586}'
24 | }
25 | }
26 | }
27 |
28 | HKLM
29 | {
30 | NoRemove Software
31 | {
32 | NoRemove Microsoft
33 | {
34 | NoRemove 'Internet Explorer'
35 | {
36 | NoRemove Toolbar
37 | {
38 | ForceRemove val {553891B7-A0D5-4526-BE18-D3CE461D6310} = b ''
39 | }
40 | }
41 | NoRemove Windows
42 | {
43 | NoRemove CurrentVersion
44 | {
45 | NoRemove Policies
46 | {
47 | NoRemove Ext
48 | {
49 | NoRemove CLSID
50 | {
51 | ForceRemove val {553891B7-A0D5-4526-BE18-D3CE461D6310} = s '2'
52 | }
53 | }
54 | }
55 | }
56 | }
57 | }
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/Src/ClassicExplorer/SettingsUI.h:
--------------------------------------------------------------------------------
1 | // Classic Shell (c) 2009-2017, Ivo Beltchev
2 | // Retro-Shell (c) 2024, aubymori
3 | // Retro-Shell (c) 2025, Olive6841
4 | // Confidential information of Ivo Beltchev. Not for disclosure or distribution without prior written consent from the author
5 |
6 | #pragma once
7 |
8 | void InitSettings(void);
9 | void EditSettings(void);
10 | void ShowSettingsMenu(HWND parent, int x, int y);
11 |
--------------------------------------------------------------------------------
/Src/ClassicExplorer/ShareOverlay.rgs:
--------------------------------------------------------------------------------
1 | HKCR
2 | {
3 | ClassicExplorer.ShareOverlay.1 = s 'ShareOverlay Class'
4 | {
5 | CLSID = s '{594D4122-1F87-41E2-96C7-825FB4796516}'
6 | }
7 | ClassicExplorer.ShareOverlay = s 'ShareOverlay Class'
8 | {
9 | CLSID = s '{594D4122-1F87-41E2-96C7-825FB4796516}'
10 | CurVer = s 'ClassicExplorer.ShareOverlay.1'
11 | }
12 | NoRemove CLSID
13 | {
14 | ForceRemove {594D4122-1F87-41E2-96C7-825FB4796516} = s 'ShareOverlay Class'
15 | {
16 | ProgID = s 'ClassicExplorer.ShareOverlay.1'
17 | VersionIndependentProgID = s 'ClassicExplorer.ShareOverlay'
18 | ForceRemove 'Programmable'
19 | InprocServer32 = s '%MODULE%'
20 | {
21 | val ThreadingModel = s 'Apartment'
22 | }
23 | 'TypeLib' = s '{BF8D124A-A4E0-402F-8152-4EF377E62586}'
24 | }
25 | }
26 | }
27 |
28 | HKLM
29 | {
30 | NoRemove SOFTWARE
31 | {
32 | NoRemove Microsoft
33 | {
34 | NoRemove Windows
35 | {
36 | NoRemove CurrentVersion
37 | {
38 | NoRemove Explorer
39 | {
40 | NoRemove ShellIconOverlayIdentifiers
41 | {
42 | ForceRemove ShareOverlay = s '{594D4122-1F87-41E2-96C7-825FB4796516}'
43 | }
44 | }
45 | }
46 | }
47 | }
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/Src/ClassicExplorer/stdafx.cpp:
--------------------------------------------------------------------------------
1 | // stdafx.cpp : source file that includes just the standard includes
2 | // ClassicExplorer.pch will be the pre-compiled header
3 | // stdafx.obj will contain the pre-compiled type information
4 |
5 | #include "stdafx.h"
6 |
--------------------------------------------------------------------------------
/Src/ClassicExplorer/stdafx.h:
--------------------------------------------------------------------------------
1 | // stdafx.h : include file for standard system include files,
2 | // or project specific include files that are used frequently,
3 | // but are changed infrequently
4 |
5 | #pragma once
6 |
7 | #include "targetver.h"
8 |
9 | #define STRICT_TYPED_ITEMIDS
10 |
11 | #define _ATL_APARTMENT_THREADED
12 | #define _ATL_NO_AUTOMATIC_NAMESPACE
13 | #define _ATL_MODULES // compatibility with /permissive-
14 | #define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit
15 |
16 | #include "resource.h"
17 | #include
18 | #include
19 | #include
20 | #include
21 |
22 | using namespace ATL;
23 |
24 | #include
25 | #include
26 | #include
27 | #include
28 |
29 | #include "StringUtils.h"
30 |
--------------------------------------------------------------------------------
/Src/ClassicExplorer/targetver.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | // The following macros define the minimum required platform. The minimum required platform
4 | // is the earliest version of Windows, Internet Explorer etc. that has the necessary features to run
5 | // your application. The macros work by enabling all features available on platform versions up to and
6 | // including the version specified.
7 |
8 | // Modify the following defines if you have to target a platform prior to the ones specified below.
9 | // Refer to MSDN for the latest info on corresponding values for different platforms.
10 | #ifndef WINVER // Specifies that the minimum required platform is Windows 7.
11 | #define WINVER 0x0602 // Change this to the appropriate value to target other versions of Windows.
12 | #endif
13 |
14 | #ifndef _WIN32_WINNT // Specifies that the minimum required platform is Windows 7.
15 | #define _WIN32_WINNT 0x0602 // Change this to the appropriate value to target other versions of Windows.
16 | #endif
17 |
18 | #ifndef _WIN32_WINDOWS // Specifies that the minimum required platform is Windows 98.
19 | #define _WIN32_WINDOWS 0x0410 // Change this to the appropriate value to target Windows Me or later.
20 | #endif
21 |
22 | #ifndef _WIN32_IE // Specifies that the minimum required platform is Internet Explorer 7.0.
23 | #define _WIN32_IE 0x0700 // Change this to the appropriate value to target other versions of IE.
24 | #endif
25 |
--------------------------------------------------------------------------------
/Src/ClassicExplorer/up.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Annorexorcist/Retro-Shell-XP/e51e648a139e810dae646091145641e498274d6a/Src/ClassicExplorer/up.ico
--------------------------------------------------------------------------------
/Src/ClassicExplorer/up2Disabled.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Annorexorcist/Retro-Shell-XP/e51e648a139e810dae646091145641e498274d6a/Src/ClassicExplorer/up2Disabled.ico
--------------------------------------------------------------------------------
/Src/ClassicExplorer/up2Hot.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Annorexorcist/Retro-Shell-XP/e51e648a139e810dae646091145641e498274d6a/Src/ClassicExplorer/up2Hot.ico
--------------------------------------------------------------------------------
/Src/ClassicExplorer/up2Normal.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Annorexorcist/Retro-Shell-XP/e51e648a139e810dae646091145641e498274d6a/Src/ClassicExplorer/up2Normal.ico
--------------------------------------------------------------------------------
/Src/ClassicExplorer/up2Pressed.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Annorexorcist/Retro-Shell-XP/e51e648a139e810dae646091145641e498274d6a/Src/ClassicExplorer/up2Pressed.ico
--------------------------------------------------------------------------------
/Src/ClassicExplorer/upDisabled.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Annorexorcist/Retro-Shell-XP/e51e648a139e810dae646091145641e498274d6a/Src/ClassicExplorer/upDisabled.ico
--------------------------------------------------------------------------------
/Src/ClassicIE/ClassicIE.manifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | true
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Src/ClassicIE/ClassicIE.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {81c3cb5d-a694-42fe-ad7b-09afa54e18ac}
6 |
7 |
8 | {9f2d64e1-ff45-4cc0-89b0-65d5230bc4a4}
9 |
10 |
11 | {61f9e184-a310-4b06-b995-b54211b82515}
12 |
13 |
14 |
15 |
16 | Header Files
17 |
18 |
19 |
20 |
21 | Resource Files
22 |
23 |
24 |
25 |
26 | Resource Files
27 |
28 |
29 |
30 |
31 | Resource Files
32 |
33 |
34 |
35 |
36 | Resource Files
37 |
38 |
39 |
40 |
41 | Source Files
42 |
43 |
44 |
--------------------------------------------------------------------------------
/Src/ClassicIE/ClassicIEDLL/ClassicIEDLL.h:
--------------------------------------------------------------------------------
1 | // Classic Shell (c) 2009-2017, Ivo Beltchev
2 | // Retro-Shell (c) 2024, aubymori
3 | // Retro-Shell (c) 2025, Olive6841
4 | // Confidential information of Ivo Beltchev. Not for disclosure or distribution without prior written consent from the author
5 |
6 | #pragma once
7 |
8 | #ifdef CLASSICIEDLL_EXPORTS
9 | #define CSIEAPI __declspec(dllexport)
10 | #else
11 | #define CSIEAPI __declspec(dllimport)
12 | #endif
13 |
14 | void InitClassicIE(HMODULE hModule);
15 | CSIEAPI void ShowIESettings(void);
16 | CSIEAPI DWORD GetIESettings(void);
17 | CSIEAPI void CheckForNewVersionIE(void);
18 | CSIEAPI void WaitDllInitThread(void);
19 | CSIEAPI void DllLogToFile(const wchar_t* location, const wchar_t* message, ...);
20 |
21 | #ifndef _WIN64
22 | CSIEAPI bool DllSaveAdmx( const char *admxFile, const char *admlFile, const char *docFile, const wchar_t *language );
23 | #endif
24 | CSIEAPI bool DllImportSettingsXml(const wchar_t* fname);
25 | CSIEAPI bool DllExportSettingsXml(const wchar_t* fname);
26 |
27 | enum
28 | {
29 | IE_SETTING_CAPTION = 1,
30 | IE_SETTING_PROGRESS = 2,
31 | IE_SETTING_ZONE = 4,
32 | IE_SETTING_PROTECTED = 8,
33 | };
34 |
35 | #define CIE_LOG L"Software\\OpenShell\\ClassicIE\\Settings|LogLevel|%LOCALAPPDATA%\\OpenShell\\ClassicIELog.txt"
36 |
--------------------------------------------------------------------------------
/Src/ClassicIE/ClassicIEDLL/ClassicIEDLL.idl:
--------------------------------------------------------------------------------
1 | // ClassicIEDLL.idl : IDL source for ClassicIEDLL
2 | //
3 |
4 | // This file will be processed by the MIDL tool to
5 | // produce the type library (ClassicIEDLL.tlb) and marshalling code.
6 |
7 | import "oaidl.idl";
8 | import "ocidl.idl";
9 |
10 | [
11 | object,
12 | uuid(C698A81E-5D02-42B1-9801-5381CA8BBC2F),
13 | dual,
14 | nonextensible,
15 | helpstring("IClassicIEBHO Interface"),
16 | pointer_default(unique)
17 | ]
18 | interface IClassicIEBHO : IDispatch{
19 | };
20 | [
21 | uuid(FDA50A1E-B8CE-49DE-8D17-B034A84AA280),
22 | version(1.0),
23 | helpstring("ClassicIE 1.0 Type Library")
24 | ]
25 | library ClassicIEDLLLib
26 | {
27 | importlib("stdole2.tlb");
28 | [
29 | uuid(EA801577-E6AD-4BD5-8F71-4BE0154331A4),
30 | helpstring("ClassicIEBHO Class")
31 | ]
32 | coclass ClassicIEBHO
33 | {
34 | [default] interface IClassicIEBHO;
35 | };
36 | };
37 |
--------------------------------------------------------------------------------
/Src/ClassicIE/ClassicIEDLL/ClassicIEDLL.rgs:
--------------------------------------------------------------------------------
1 | HKCR
2 | {
3 | NoRemove AppID
4 | {
5 | '%APPID%' = s 'ClassicIE'
6 | 'ClassicIE.DLL'
7 | {
8 | val AppID = s '%APPID%'
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Src/ClassicIE/ClassicIEDLL/ClassicIEDLL_32.def:
--------------------------------------------------------------------------------
1 | ; ClassicIEDLL_32.def : Declares the module parameters.
2 |
3 | LIBRARY "ClassicIEDLL_32.DLL"
4 |
5 | EXPORTS
6 | DllCanUnloadNow PRIVATE
7 | DllGetClassObject PRIVATE
8 | DllRegisterServer PRIVATE
9 | DllUnregisterServer PRIVATE
10 | DllInstall PRIVATE
11 | DllSaveAdmx
--------------------------------------------------------------------------------
/Src/ClassicIE/ClassicIEDLL/ClassicIEDLL_64.def:
--------------------------------------------------------------------------------
1 | ; ClassicIEDLL.def : Declares the module parameters.
2 |
3 | LIBRARY "ClassicIEDLL_64.DLL"
4 |
5 | EXPORTS
6 | DllCanUnloadNow PRIVATE
7 | DllGetClassObject PRIVATE
8 | DllRegisterServer PRIVATE
9 | DllUnregisterServer PRIVATE
10 | DllInstall PRIVATE
11 |
--------------------------------------------------------------------------------
/Src/ClassicIE/ClassicIEDLL/SettingsUI.h:
--------------------------------------------------------------------------------
1 | // Classic Shell (c) 2009-2017, Ivo Beltchev
2 | // Retro-Shell (c) 2024, aubymori
3 | // Retro-Shell (c) 2025, Olive6841
4 | // Confidential information of Ivo Beltchev. Not for disclosure or distribution without prior written consent from the author
5 |
6 | #pragma once
7 |
8 | void InitSettings(void);
9 |
--------------------------------------------------------------------------------
/Src/ClassicIE/ClassicIEDLL/dllmain.h:
--------------------------------------------------------------------------------
1 | // Classic Shell (c) 2009-2017, Ivo Beltchev
2 | // Retro-Shell (c) 2024, aubymori
3 | // Retro-Shell (c) 2025, Olive6841
4 | // Confidential information of Ivo Beltchev. Not for disclosure or distribution without prior written consent from the author
5 |
6 | #pragma once
7 |
8 | #include "ClassicIEDLL_h.h"
9 |
10 | class CClassicIEDLLModule : public CAtlDllModuleT
11 | {
12 | public :
13 | DECLARE_LIBID(LIBID_ClassicIEDLLLib)
14 | DECLARE_REGISTRY_APPID_RESOURCEID(IDR_CLASSICIEDLL, "{DF3255F4-FF55-44FA-A728-E77B83E9E403}")
15 | };
16 |
17 | extern class CClassicIEDLLModule _AtlModule;
18 |
--------------------------------------------------------------------------------
/Src/ClassicIE/ClassicIEDLL/glow.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Annorexorcist/Retro-Shell-XP/e51e648a139e810dae646091145641e498274d6a/Src/ClassicIE/ClassicIEDLL/glow.bmp
--------------------------------------------------------------------------------
/Src/ClassicIE/ClassicIEDLL/stdafx.cpp:
--------------------------------------------------------------------------------
1 | // stdafx.cpp : source file that includes just the standard includes
2 | // ClassicIEDLL.pch will be the pre-compiled header
3 | // stdafx.obj will contain the pre-compiled type information
4 |
5 | #include "stdafx.h"
6 |
--------------------------------------------------------------------------------
/Src/ClassicIE/ClassicIEDLL/stdafx.h:
--------------------------------------------------------------------------------
1 | // stdafx.h : include file for standard system include files,
2 | // or project specific include files that are used frequently,
3 | // but are changed infrequently
4 |
5 | #pragma once
6 |
7 | #ifndef STRICT
8 | #define STRICT
9 | #endif
10 |
11 | #include "targetver.h"
12 |
13 | #define ISOLATION_AWARE_ENABLED 1
14 | #define _ATL_APARTMENT_THREADED
15 | #define _ATL_NO_AUTOMATIC_NAMESPACE
16 | #define _ATL_MODULES // compatibility with /permissive-
17 | #define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit
18 |
19 | #include "resource.h"
20 | #include
21 | #include
22 | #include
23 | #include
24 |
25 | using namespace ATL;
26 |
27 | #include "StringUtils.h"
28 |
--------------------------------------------------------------------------------
/Src/ClassicIE/ClassicIEDLL/targetver.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | // The following macros define the minimum required platform. The minimum required platform
4 | // is the earliest version of Windows, Internet Explorer etc. that has the necessary features to run
5 | // your application. The macros work by enabling all features available on platform versions up to and
6 | // including the version specified.
7 |
8 | // Modify the following defines if you have to target a platform prior to the ones specified below.
9 | // Refer to MSDN for the latest info on corresponding values for different platforms.
10 | #ifndef WINVER // Specifies that the minimum required platform is Windows 7.
11 | #define WINVER 0x0602 // Change this to the appropriate value to target other versions of Windows.
12 | #endif
13 |
14 | #ifndef _WIN32_WINNT // Specifies that the minimum required platform is Windows 7.
15 | #define _WIN32_WINNT 0x0602 // Change this to the appropriate value to target other versions of Windows.
16 | #endif
17 |
18 | #ifndef _WIN32_WINDOWS // Specifies that the minimum required platform is Windows 98.
19 | #define _WIN32_WINDOWS 0x0410 // Change this to the appropriate value to target Windows Me or later.
20 | #endif
21 |
22 | #ifndef _WIN32_IE // Specifies that the minimum required platform is Internet Explorer 7.0.
23 | #define _WIN32_IE 0x0700 // Change this to the appropriate value to target other versions of IE.
24 | #endif
25 |
--------------------------------------------------------------------------------
/Src/ClassicIE/Resource.h:
--------------------------------------------------------------------------------
1 | //{{NO_DEPENDENCIES}}
2 | // Microsoft Visual C++ generated include file.
3 | // Used by ClassicIE.rc
4 | //
5 | #define IDC_MYICON 2
6 | #define IDD_CLASSICIE_DIALOG 102
7 | #define IDR_MAINFRAME 128
8 | #define IDI_ICON1 129
9 | #define IDC_STATIC -1
10 |
11 | // Next default values for new objects
12 | //
13 | #ifdef APSTUDIO_INVOKED
14 | #ifndef APSTUDIO_READONLY_SYMBOLS
15 | #define _APS_NO_MFC 1
16 | #define _APS_NEXT_RESOURCE_VALUE 130
17 | #define _APS_NEXT_COMMAND_VALUE 32771
18 | #define _APS_NEXT_CONTROL_VALUE 1000
19 | #define _APS_NEXT_SYMED_VALUE 110
20 | #endif
21 | #endif
22 |
--------------------------------------------------------------------------------
/Src/Lib/Assert.cpp:
--------------------------------------------------------------------------------
1 | // Classic Shell (c) 2009-2017, Ivo Beltchev
2 | // Retro-Shell (c) 2024, aubymori
3 | // Retro-Shell (c) 2025, Olive6841
4 | // Confidential information of Ivo Beltchev. Not for disclosure or distribution without prior written consent from the author
5 |
6 | #include "stdafx.h"
7 | #include "StringUtils.h"
8 |
9 | static DWORD _stdcall AssertThreadProc(void* param)
10 | {
11 | return MessageBoxA(NULL, (const char*)param, "Assertion Failed",MB_ABORTRETRYIGNORE | MB_TASKMODAL | MB_ICONERROR);
12 | }
13 |
14 | // debug assert
15 | bool dbg_assert(const char* exp, const char* file, unsigned line)
16 | {
17 | char buf[2048];
18 | Sprintf(buf,_countof(buf), "Expression: %s\r\nFile: %s\r\nLine: %d\n", exp, file, line);
19 | HANDLE h = CreateThread(NULL, 0, AssertThreadProc, buf, 0,NULL);
20 | if (h)
21 | {
22 | WaitForSingleObject(h,INFINITE);
23 | DWORD res = IDRETRY;
24 | GetExitCodeThread(h, &res);
25 | if (res == IDABORT)
26 | TerminateProcess(GetCurrentProcess(), 1);
27 | return (res == IDIGNORE); // true will continue, false will cause _CrtDbgBreak
28 | }
29 | return true;
30 | }
31 |
--------------------------------------------------------------------------------
/Src/Lib/Assert.h:
--------------------------------------------------------------------------------
1 | // Classic Shell (c) 2009-2017, Ivo Beltchev
2 | // Retro-Shell (c) 2024, aubymori
3 | // Retro-Shell (c) 2025, Olive6841
4 | // Confidential information of Ivo Beltchev. Not for disclosure or distribution without prior written consent from the author
5 |
6 | #pragma once
7 |
8 | #ifdef _DEBUG
9 |
10 | bool dbg_assert( const char *exp, const char *file, unsigned line );
11 | #define Assert(exp) do { if (!(exp) && !dbg_assert(#exp,__FILE__,__LINE__)) _CrtDbgBreak(); } while (0)
12 |
13 | #else
14 |
15 | #define Assert(exp) ((void)0)
16 |
17 | #endif
18 |
--------------------------------------------------------------------------------
/Src/Lib/DownloadHelper.h:
--------------------------------------------------------------------------------
1 | // Classic Shell (c) 2009-2017, Ivo Beltchev
2 | // Retro-Shell (c) 2024, aubymori
3 | // Retro-Shell (c) 2025, Olive6841
4 | // Confidential information of Ivo Beltchev. Not for disclosure or distribution without prior written consent from the author
5 |
6 | #pragma once
7 |
8 | #include
9 |
10 | enum TVersionCheck
11 | {
12 | CHECK_AUTO,
13 | CHECK_AUTO_WAIT,
14 | CHECK_UPDATE,
15 | };
16 |
17 | enum TSettingsComponent;
18 |
19 | struct VersionData
20 | {
21 | bool bValid = false;
22 | DWORD newVersion = 0;
23 | CString downloadUrl;
24 | CString downloadSigner;
25 | CString news;
26 | CString updateLink;
27 | bool bNewVersion = false;
28 | bool bIgnoreVersion = false;
29 |
30 | ~VersionData(void) { Clear(); }
31 | void Clear(void);
32 | void Swap(VersionData& data);
33 |
34 | enum TLoadResult
35 | {
36 | LOAD_OK,
37 | LOAD_ERROR, // the file is missing some data
38 | LOAD_BAD_VERSION, // the version is wrong
39 | LOAD_BAD_FILE, // the file is corrupted
40 | };
41 |
42 | TLoadResult Load(bool official);
43 |
44 | private:
45 | void operator=(const VersionData&);
46 | };
47 |
48 | typedef void (*tNewVersionCallback)(VersionData& data);
49 |
50 | // 0 - fail, 1 - success, 2 - cancel
51 | DWORD CheckForNewVersion(HWND owner, TSettingsComponent component, TVersionCheck check, tNewVersionCallback callback);
52 | DWORD DownloadNewVersion(HWND owner, TSettingsComponent component, const wchar_t* url, const wchar_t* signer,
53 | CString& fname, CString& error);
54 |
--------------------------------------------------------------------------------
/Src/Lib/FNVHash.cpp:
--------------------------------------------------------------------------------
1 | // Classic Shell (c) 2009-2017, Ivo Beltchev
2 | // Retro-Shell (c) 2024, aubymori
3 | // Retro-Shell (c) 2025, Olive6841
4 | // Confidential information of Ivo Beltchev. Not for disclosure or distribution without prior written consent from the author
5 |
6 | #include "stdafx.h"
7 | #include "FNVHash.h"
8 | #include "StringUtils.h"
9 |
10 | // FNV hash algorithm as described here: http://www.isthe.com/chongo/tech/comp/fnv/index.html
11 |
12 | // Calculate FNV hash for a memory buffer
13 | unsigned int CalcFNVHash(const void* buf, int len, unsigned int hash)
14 | {
15 | for (int i = 0; i < len; i++)
16 | hash = (hash ^ ((const unsigned char*)buf)[i]) * 16777619;
17 | return hash;
18 | }
19 |
20 | // Calculate FNV hash for a string
21 | unsigned int CalcFNVHash(const char* text, unsigned int hash)
22 | {
23 | return CalcFNVHash(text, Strlen(text), hash);
24 | }
25 |
26 | // Calculate FNV hash for a wide string
27 | unsigned int CalcFNVHash(const wchar_t* text, unsigned int hash)
28 | {
29 | return CalcFNVHash(text, Strlen(text) * 2, hash);
30 | }
31 |
--------------------------------------------------------------------------------
/Src/Lib/FNVHash.h:
--------------------------------------------------------------------------------
1 | // Classic Shell (c) 2009-2017, Ivo Beltchev
2 | // Retro-Shell (c) 2024, aubymori
3 | // Retro-Shell (c) 2025, Olive6841
4 | // Confidential information of Ivo Beltchev. Not for disclosure or distribution without prior written consent from the author
5 |
6 | #pragma once
7 |
8 | const unsigned int FNV_HASH0 = 2166136261;
9 |
10 | // Calculate FNV hash for a memory buffer
11 | unsigned int CalcFNVHash(const void* buf, int len, unsigned int hash = FNV_HASH0);
12 |
13 | // Calculate FNV hash for a string
14 | unsigned int CalcFNVHash(const char* text, unsigned int hash = FNV_HASH0);
15 |
16 | // Calculate FNV hash for a wide string
17 | unsigned int CalcFNVHash(const wchar_t* text, unsigned int hash = FNV_HASH0);
18 |
--------------------------------------------------------------------------------
/Src/Lib/FileHelper.h:
--------------------------------------------------------------------------------
1 | // Classic Shell (c) 2009-2017, Ivo Beltchev
2 | // Retro-Shell (c) 2024, aubymori
3 | // Retro-Shell (c) 2025, Olive6841
4 | // Confidential information of Ivo Beltchev. Not for disclosure or distribution without prior written consent from the author
5 |
6 | #pragma once
7 |
8 | bool CreateFakeFolder(const wchar_t* source, const wchar_t* fname);
9 | void DeleteFakeFolder(const wchar_t* fname);
10 | bool IsFakeFolder(const wchar_t* fname);
11 | bool GetFakeFolder(wchar_t* dst, int len, const wchar_t* src);
12 |
--------------------------------------------------------------------------------
/Src/Lib/IatHookHelper.h:
--------------------------------------------------------------------------------
1 | // Classic Shell (c) 2009-2017, Ivo Beltchev
2 | // Retro-Shell (c) 2024, aubymori
3 | // Retro-Shell (c) 2025, Olive6841
4 | // Confidential information of Ivo Beltchev. Not for disclosure or distribution without prior written consent from the author
5 |
6 | #pragma once
7 |
8 | struct IatHookData
9 | {
10 | unsigned char jump[4]; // jump instruction 0x90, 0x90, 0xFF, 0x25
11 | DWORD jumpOffs; // jump instruction offset
12 | void* newProc; // the address of the new proc
13 | void* oldProc; // the address of the old proc
14 | IMAGE_THUNK_DATA* thunk; // the IAT thunk
15 | };
16 |
17 | void InitializeIatHooks(void);
18 | IatHookData* SetIatHook(HMODULE hPatchedModule, const char* targetModule, const char* targetProc, void* newProc);
19 | void ClearIatHook(IatHookData* hook);
20 | void ClearIatHooks(void);
21 |
--------------------------------------------------------------------------------
/Src/Lib/Instance.cpp:
--------------------------------------------------------------------------------
1 | // Classic Shell (c) 2009-2017, Ivo Beltchev
2 | // Retro-Shell (c) 2024, aubymori
3 | // Retro-Shell (c) 2025, Olive6841
4 | // Confidential information of Ivo Beltchev. Not for disclosure or distribution without prior written consent from the author
5 |
6 | #include "stdafx.h"
7 |
8 | HINSTANCE g_Instance;
9 |
--------------------------------------------------------------------------------
/Src/Lib/LanguageSettingsHelper.h:
--------------------------------------------------------------------------------
1 | // Classic Shell (c) 2009-2017, Ivo Beltchev
2 | // Retro-Shell (c) 2024, aubymori
3 | // Retro-Shell (c) 2025, Olive6841
4 | // Confidential information of Ivo Beltchev. Not for disclosure or distribution without prior written consent from the author
5 |
6 | #pragma once
7 |
8 | class ISettingsPanel;
9 |
10 | extern int g_LanguageIDs[];
11 | extern int g_LanguageIDCount;
12 |
13 | ISettingsPanel* GetLanguageSettings(TSettingsComponent component);
14 |
--------------------------------------------------------------------------------
/Src/Lib/StringSet.h:
--------------------------------------------------------------------------------
1 | // Classic Shell (c) 2009-2017, Ivo Beltchev
2 | // Retro-Shell (c) 2024, aubymori
3 | // Retro-Shell (c) 2025, Olive6841
4 | // Confidential information of Ivo Beltchev. Not for disclosure or distribution without prior written consent from the author
5 |
6 | #pragma once
7 |
8 | #include