├── src ├── VERSION.TXT.in ├── libexprtk │ ├── libexprtk.def │ └── CMakeLists.txt ├── flat-color-icons │ └── flat-color-icons.url ├── tests │ ├── test_files │ │ ├── issue036_icon.7z │ │ ├── Smiley.40x60.1bpp.bmp │ │ ├── Smiley.40x60.4bpp.bmp │ │ ├── Smiley.80x80.1bpp.bmp │ │ ├── Smiley.80x80.24bpp.bmp │ │ ├── Smiley.80x80.32bpp.bmp │ │ ├── Smiley.80x80.4bpp.bmp │ │ ├── Smiley.80x80.8bpp.bmp │ │ ├── test-res-16-32-48-64-96-128-256.ico │ │ ├── issue117 │ │ │ ├── alarm_clock-all-compressed.ico │ │ │ ├── alarm_clock-all-uncompressed.ico │ │ │ ├── alarm_clock-16-24bpp-1ba-uncompressed.ico │ │ │ ├── alarm_clock-16-32bpp-8ba-uncompressed.ico │ │ │ ├── alarm_clock-20-24bpp-1ba-uncompressed.ico │ │ │ ├── alarm_clock-20-32bpp-8ba-uncompressed.ico │ │ │ ├── alarm_clock-24-24bpp-1ba-uncompressed.ico │ │ │ ├── alarm_clock-24-32bpp-8ba-uncompressed.ico │ │ │ ├── alarm_clock-256-24bpp-1ba-compressed.ico │ │ │ ├── alarm_clock-256-32bpp-8ba-compressed.ico │ │ │ ├── alarm_clock-32-24bpp-1ba-uncompressed.ico │ │ │ ├── alarm_clock-32-32bpp-8ba-uncompressed.ico │ │ │ ├── alarm_clock-40-24bpp-1ba-uncompressed.ico │ │ │ ├── alarm_clock-40-32bpp-8ba-uncompressed.ico │ │ │ ├── alarm_clock-48-24bpp-1ba-uncompressed.ico │ │ │ ├── alarm_clock-48-32bpp-8ba-uncompressed.ico │ │ │ ├── alarm_clock-64-24bpp-1ba-uncompressed.ico │ │ │ ├── alarm_clock-64-32bpp-8ba-uncompressed.ico │ │ │ ├── alarm_clock-96-24bpp-1ba-uncompressed.ico │ │ │ ├── alarm_clock-96-32bpp-8ba-uncompressed.ico │ │ │ ├── alarm_clock-128-24bpp-1ba-uncompressed.ico │ │ │ ├── alarm_clock-128-32bpp-8ba-uncompressed.ico │ │ │ ├── alarm_clock-16-8bpp-indexed-1ba-uncompressed.ico │ │ │ ├── alarm_clock-20-8bpp-indexed-1ba-uncompressed.ico │ │ │ ├── alarm_clock-24-8bpp-indexed-1ba-uncompressed.ico │ │ │ ├── alarm_clock-256-8bpp-indexed-1ba-compressed.ico │ │ │ ├── alarm_clock-32-8bpp-indexed-1ba-uncompressed.ico │ │ │ ├── alarm_clock-40-8bpp-indexed-1ba-uncompressed.ico │ │ │ ├── alarm_clock-48-8bpp-indexed-1ba-uncompressed.ico │ │ │ ├── alarm_clock-64-8bpp-indexed-1ba-uncompressed.ico │ │ │ ├── alarm_clock-96-8bpp-indexed-1ba-uncompressed.ico │ │ │ ├── alarm_clock-128-8bpp-indexed-1ba-uncompressed.ico │ │ │ └── LICENSE │ │ ├── test-res-16-32-48-64-96-128-256.ico.content.png │ │ ├── test-res-16-20-24-32-40-48-60-64-72-80-96-120-128-144-160-192-256.ico │ │ ├── test-res-16-20-24-32-40-48-60-64-72-80-96-120-128-144-160-192-256.ico.content.png │ │ ├── TestConfigManager.testClear.xml │ │ ├── TestConfigManager.testDetectNewFile.xml │ │ ├── TestObjectFactory.testParseSeparator.xml │ │ ├── TestConfigManager.testFileModifications.xml │ │ ├── TestActionExecute.testWaitInfinite.xml │ │ ├── TestActionExecute.testWaitTimeout.xml │ │ ├── TestConfigManager.testFindMenuByNameExpanding.xml │ │ ├── TestConfigManager.testFindMenuByName.xml │ │ ├── issue041.xml │ │ ├── TestConfigManager.testFindMenuByNameCaseInsensitive.xml │ │ ├── TestConfigManager.testParentWithoutChildren.xml │ │ ├── TestActionProperty.testCaptureOutput.xml │ │ ├── TestTools.testArgumentsDebugger.xml │ │ ├── TestPlugins.testPluginActionGetData.xml │ │ ├── TestPlugins.testPluginInitializeAndTerminate.xml │ │ ├── TestConfiguration.testLoadProperties.xml │ │ ├── TestObjectFactory.testParseDefaults.xml │ │ ├── test_issue011.xml │ │ ├── TestObjectFactory.testParseActionMessage.xml │ │ ├── issue044.xml │ │ ├── TestConfigManager.testAssignCommandIdsInvalid.xml │ │ ├── TestObjectFactory.testParseActionFile.xml │ │ ├── TestActionProperty.testCopyFile.xml │ │ ├── TestPlugins.testTime.xml │ │ ├── TestObjectFactory.testParsePlugins.xml │ │ ├── TestConfigManager.testAssignCommandId.2.xml │ │ ├── TestObjectFactory.testParseMenuMaxLength.xml │ │ ├── TestObjectFactory.testParseIcon.xml │ │ ├── TestActionProperty.testSearchPath.xml │ │ ├── TestObjectFactory.testParseActionPrompt.xml │ │ ├── TestObjectFactory.testGetParent.xml │ │ ├── TestActionProperty.testLiveProperties.xml │ │ ├── TestActionProperty.testRandomProperties.xml │ │ ├── TestObjectFactory.testParseActionExecute.xml │ │ ├── TestConfigManager.testAssignCommandId.1.xml │ │ ├── TestObjectFactory.testParseActionProperty.xml │ │ └── issue040.xml │ ├── TestIcon.h │ ├── TestMenu.h │ ├── TestTools.h │ ├── TestSaUtils.h │ ├── TestIObject.h │ ├── TestInputBox.h │ ├── TestUnicode.h │ ├── TestPlugins.h │ ├── TestWildcard.h │ ├── TestWin32Clipboard.h │ ├── TestDemoSamples.h │ ├── TestLibExprtk.h │ ├── TestValidator.h │ ├── TestWin32Utils.h │ ├── TestWorkspace.h │ ├── TestActionFile.h │ ├── TestActionStop.h │ ├── TestGlogUtils.h │ ├── TestShellExtension.h │ └── TestEnvironment.h ├── arguments.debugger.window │ ├── How to Create a Multiline Edit Control - Win32 apps - Microsoft Learn.url │ ├── Walkthrough- Create a traditional Windows Desktop application (C++) - Microsoft Learn.url │ ├── targetver.h │ ├── arguments.h │ ├── framework.h │ ├── resource.h │ └── CMakeLists.txt ├── shellextension │ ├── shellext.def │ ├── stdafx.cpp │ ├── targetver.h │ ├── resource.h │ └── shellext.idl ├── arguments.debugger.console │ ├── targetver.h │ ├── framework.h │ ├── resource.h │ ├── main.cpp │ └── CMakeLists.txt ├── version.h.in ├── shared │ └── CMakeLists.txt ├── file_explorer_renew │ ├── resource.h │ ├── main.h │ ├── CMakeLists.txt │ ├── framework.h │ └── targetver.h ├── config.h.in ├── plugins │ ├── sa_plugin_demo │ │ ├── sa_plugin_demo.bat │ │ ├── README.md │ │ └── CMakeLists.txt │ └── sa_plugin_time │ │ └── README.md ├── core │ ├── IAction.cpp │ ├── ILiveProperty.cpp │ ├── IActionFactory.cpp │ ├── ILoggerService.cpp │ ├── IRandomService.cpp │ ├── IUpdateCallback.cpp │ ├── IKeyboardService.cpp │ ├── IRegistryService.cpp │ ├── IClipboardService.cpp │ ├── IAttributeValidator.cpp │ ├── IIconResolutionService.cpp │ ├── IProcessLauncherService.cpp │ ├── IntList.h │ └── StringList.h ├── api │ └── sa_memory.cpp └── logger │ └── glog │ └── CMakeLists.txt ├── cmake ├── shellanything-config.cmake.in ├── shellanything-config-version.cmake.in ├── FindGRIP.cmake └── MakeCplusplusHeader.cmake ├── docs ├── screenshot_file.png ├── screenshot_folder.png ├── multiple_columns_menu.png ├── ShellAnything-splashscreen.jpg └── ShellAnything-splashscreen.xcf ├── resources ├── icons │ ├── 0.1.0.ico │ ├── 0.1.0.xcf │ ├── 0.2.0.ico │ ├── menu01.ico │ ├── menu02.ico │ ├── menu03.ico │ ├── cil-bug.ico │ ├── sa-text.ico │ ├── samples.xcf │ ├── sa-bubble.ico │ ├── cil-bug.url │ ├── shellanything.ico │ ├── 0.2.0-16x16-legacy.ico │ ├── 0.2.0-16x16-legacy.xcf │ ├── sa-text-16 (manual stroke).png │ ├── cil-bug.info.txt │ ├── cil-bug.svg │ ├── svg2ico.bat │ └── 0.2.0.bat ├── Windows Icon Tables │ ├── generate_system_icons_preview.bat │ ├── Win 11 Pro - urlmon.dll icons.png │ ├── Win 11 Pro - user32.dll icons.png │ ├── Win 11 Pro - wmploc.dll icons.png │ ├── Win 10 Home - ieframe.dll icons.png │ ├── Win 10 Home - imageres.dll icons.png │ ├── Win 10 Home - netshell.dll icons.png │ ├── Win 10 Home - shell32.dll icons.png │ ├── Win 10 Home - urlmon.dll icons.png │ ├── Win 10 Home - user32.dll icons.png │ ├── Win 10 Home - wmploc.dll icons.png │ ├── Win 10 Home - wpdshext.dll icons.png │ ├── Win 11 Pro - ieframe.dll icons.png │ ├── Win 11 Pro - imageres.dll icons.png │ ├── Win 11 Pro - netshell.dll icons.png │ ├── Win 11 Pro - shell32.dll icons.png │ ├── Win 11 Pro - wpdshext.dll icons.png │ ├── Win 11 Pro - accessibilitycpl.dll icons.png │ └── Win 10 Home - accessibilitycpl.dll icons.png ├── configurations │ ├── Mark Text.xml │ ├── WinDirStat.xml │ └── git.xml └── installer │ ├── bin │ ├── register.bat │ └── unregister.bat │ └── wix_license_template.rtf ├── ci ├── windows │ ├── list_services_status.bat │ ├── list_registry_keys.bat │ ├── install_grip.bat │ ├── install_glog.vbs │ └── test_script.bat ├── appveyor │ ├── UploadJUnitFiles.bat │ ├── install_cmake.bat │ ├── install_glog.bat │ ├── install_grip.bat │ ├── install_zlib.bat │ ├── test_script.bat │ ├── install_doxygen.bat │ ├── install_googletest.bat │ ├── install_libmagic.bat │ ├── install_tinyxml2.bat │ ├── list_registry_keys.bat │ ├── build_flat-color-icons.bat │ ├── install_imagemagick.bat │ ├── install_rapidassist.bat │ ├── install_sa_plugin_demo.bat │ ├── install_sa_plugin_time.bat │ ├── install_shellanything.bat │ ├── list_services_status.bat │ ├── install_sa_plugin_process.bat │ ├── install_sa_plugin_services.bat │ ├── install_sa_plugin_strings.bat │ ├── emulate_appveyor.bat │ ├── UploadJUnitFiles.ps1 │ ├── shell_extension_register.bat │ └── shell_extension_unregister.bat └── github │ ├── tests_not_available.badge.json │ ├── install_cmake.bat │ ├── install_glog.bat │ ├── install_grip.bat │ ├── install_zlib.bat │ ├── test_script.bat │ ├── install_doxygen.bat │ ├── install_googletest.bat │ ├── install_imagemagick.bat │ ├── install_libmagic.bat │ ├── install_rapidassist.bat │ ├── install_tinyxml2.bat │ ├── list_registry_keys.bat │ ├── build_flat-color-icons.bat │ ├── install_sa_plugin_demo.bat │ ├── install_sa_plugin_time.bat │ ├── install_shellanything.bat │ ├── list_services_status.bat │ ├── install_sa_plugin_process.bat │ ├── install_sa_plugin_services.bat │ └── install_sa_plugin_strings.bat ├── desktop.ini ├── references ├── Windows shell extension - CodeProject.url ├── Shell Extensions- Basics, Samples, Common problems.url ├── Writing a shell extension in plain C++ - CodeProject.url ├── atl - How to write a shell extension in C++- - Stack Overflow.url ├── Initializing Shell Extension Handlers - Windows applications - Microsoft Docs.url ├── Registering Shell Extension Handlers - Windows applications - Microsoft Docs.url ├── Windows shell extension with C# - Stack Overflow.url ├── dwmkerr-sharpshell- SharpShell makes it easy to create Windows Shell Extensions using the .NET Framework-.url ├── c++ - Windows Shell Extension Not Calling Initialize - Stack Overflow.url ├── windows - How to Get ShellNew sub menu items - Stack Overflow.url ├── Customizing a Shortcut Menu Using Dynamic Verbs - Windows applications - Microsoft Docs.url ├── TortoiseGit-TortoiseGit- Windows Explorer Extension to Operate Git; Mirror of official repository https---tortoisegit.org-sourcecode.url ├── How to Implement the IContextMenu Interface - Windows applications - Microsoft Docs.url ├── c++ - Context menu methods in shell extension aren't being used - Stack Overflow.url ├── Example Code for Implementation of the Context Menu COM Object - Windows applications - Microsoft Docs.url ├── Create a Shell Extension Handler thumbnail extractor with .net-.url └── c++ - Shell Extension DLL - how to capture the folder path, if user clicks inside the folder empty area- - Stack Overflow.url ├── .gitmodules ├── wix └── WIX.patches.in ├── AUTHORS ├── licenses ├── Flat Color Icons LICENSE.txt ├── exprtk LICENSE.txt ├── TinyXML 2 LICENSE.txt ├── file-windows LICENSE.txt ├── RapidAssist LICENSE.txt ├── pcg-cpp LICENSE-MIT.txt ├── zlib LICENSE.txt └── Google C++ Testing Framework LICENSE.txt ├── .gitignore ├── .github └── ISSUE_TEMPLATE │ ├── feature_request.md │ └── bug_report.md ├── scripts └── refresh.bat └── LICENSE /src/VERSION.TXT.in: -------------------------------------------------------------------------------- 1 | @SHELLANYTHING_VERSION@ -------------------------------------------------------------------------------- /src/libexprtk/libexprtk.def: -------------------------------------------------------------------------------- 1 | EXPORTS 2 | EvaluateDouble 3 | EvaluateBoolean 4 | -------------------------------------------------------------------------------- /cmake/shellanything-config.cmake.in: -------------------------------------------------------------------------------- 1 | include("${CMAKE_CURRENT_LIST_DIR}/shellanything-targets.cmake") 2 | -------------------------------------------------------------------------------- /docs/screenshot_file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/docs/screenshot_file.png -------------------------------------------------------------------------------- /docs/screenshot_folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/docs/screenshot_folder.png -------------------------------------------------------------------------------- /resources/icons/0.1.0.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/resources/icons/0.1.0.ico -------------------------------------------------------------------------------- /resources/icons/0.1.0.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/resources/icons/0.1.0.xcf -------------------------------------------------------------------------------- /resources/icons/0.2.0.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/resources/icons/0.2.0.ico -------------------------------------------------------------------------------- /resources/icons/menu01.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/resources/icons/menu01.ico -------------------------------------------------------------------------------- /resources/icons/menu02.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/resources/icons/menu02.ico -------------------------------------------------------------------------------- /resources/icons/menu03.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/resources/icons/menu03.ico -------------------------------------------------------------------------------- /resources/icons/cil-bug.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/resources/icons/cil-bug.ico -------------------------------------------------------------------------------- /resources/icons/sa-text.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/resources/icons/sa-text.ico -------------------------------------------------------------------------------- /resources/icons/samples.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/resources/icons/samples.xcf -------------------------------------------------------------------------------- /src/flat-color-icons/flat-color-icons.url: -------------------------------------------------------------------------------- 1 | [InternetShortcut] 2 | URL=https://github.com/icons8/flat-color-icons 3 | -------------------------------------------------------------------------------- /ci/windows/list_services_status.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | powershell -nologo -executionpolicy bypass -command "Get-Service" 3 | -------------------------------------------------------------------------------- /docs/multiple_columns_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/docs/multiple_columns_menu.png -------------------------------------------------------------------------------- /resources/icons/sa-bubble.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/resources/icons/sa-bubble.ico -------------------------------------------------------------------------------- /resources/icons/cil-bug.url: -------------------------------------------------------------------------------- 1 | [InternetShortcut] 2 | URL=https://github.com/coreui/coreui-icons/blob/main/svg/free/cil-bug.svg 3 | -------------------------------------------------------------------------------- /resources/icons/shellanything.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/resources/icons/shellanything.ico -------------------------------------------------------------------------------- /docs/ShellAnything-splashscreen.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/docs/ShellAnything-splashscreen.jpg -------------------------------------------------------------------------------- /docs/ShellAnything-splashscreen.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/docs/ShellAnything-splashscreen.xcf -------------------------------------------------------------------------------- /ci/appveyor/UploadJUnitFiles.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | cd c:\temp 3 | powershell -nologo -executionpolicy bypass -File "%~dpn0.ps1" 4 | pause 5 | -------------------------------------------------------------------------------- /resources/icons/0.2.0-16x16-legacy.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/resources/icons/0.2.0-16x16-legacy.ico -------------------------------------------------------------------------------- /resources/icons/0.2.0-16x16-legacy.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/resources/icons/0.2.0-16x16-legacy.xcf -------------------------------------------------------------------------------- /src/tests/test_files/issue036_icon.7z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/issue036_icon.7z -------------------------------------------------------------------------------- /desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | IconResource=resources\icons\shellanything.ico,0 3 | [ViewState] 4 | Mode= 5 | Vid= 6 | FolderType=Generic 7 | -------------------------------------------------------------------------------- /src/tests/test_files/Smiley.40x60.1bpp.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/Smiley.40x60.1bpp.bmp -------------------------------------------------------------------------------- /src/tests/test_files/Smiley.40x60.4bpp.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/Smiley.40x60.4bpp.bmp -------------------------------------------------------------------------------- /src/tests/test_files/Smiley.80x80.1bpp.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/Smiley.80x80.1bpp.bmp -------------------------------------------------------------------------------- /src/tests/test_files/Smiley.80x80.24bpp.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/Smiley.80x80.24bpp.bmp -------------------------------------------------------------------------------- /src/tests/test_files/Smiley.80x80.32bpp.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/Smiley.80x80.32bpp.bmp -------------------------------------------------------------------------------- /src/tests/test_files/Smiley.80x80.4bpp.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/Smiley.80x80.4bpp.bmp -------------------------------------------------------------------------------- /src/tests/test_files/Smiley.80x80.8bpp.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/Smiley.80x80.8bpp.bmp -------------------------------------------------------------------------------- /references/Windows shell extension - CodeProject.url: -------------------------------------------------------------------------------- 1 | [InternetShortcut] 2 | URL=https://www.codeproject.com/Questions/1228261/Windows-shell-extension 3 | -------------------------------------------------------------------------------- /resources/Windows Icon Tables/generate_system_icons_preview.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | powershell -nologo -ExecutionPolicy Bypass -File "%~dpn0.ps1" 3 | pause 4 | -------------------------------------------------------------------------------- /resources/icons/sa-text-16 (manual stroke).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/resources/icons/sa-text-16 (manual stroke).png -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "third_parties/flat-color-icons"] 2 | path = third_parties/flat-color-icons 3 | url = https://github.com/icons8/flat-color-icons.git 4 | -------------------------------------------------------------------------------- /src/tests/test_files/test-res-16-32-48-64-96-128-256.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/test-res-16-32-48-64-96-128-256.ico -------------------------------------------------------------------------------- /resources/icons/cil-bug.info.txt: -------------------------------------------------------------------------------- 1 | url: https://github.com/coreui/coreui-icons/blob/main/svg/free/cil-bug.svg 2 | license: https://github.com/coreui/coreui-icons/blob/main/LICENSE -------------------------------------------------------------------------------- /references/Shell Extensions- Basics, Samples, Common problems.url: -------------------------------------------------------------------------------- 1 | [InternetShortcut] 2 | URL=https://www.apriorit.com/dev-blog/357-shell-extentions-basics-samples-common-problems 3 | -------------------------------------------------------------------------------- /src/tests/test_files/issue117/alarm_clock-all-compressed.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/issue117/alarm_clock-all-compressed.ico -------------------------------------------------------------------------------- /references/Writing a shell extension in plain C++ - CodeProject.url: -------------------------------------------------------------------------------- 1 | [InternetShortcut] 2 | URL=https://www.codeproject.com/Articles/583726/Writing-a-shell-extension-in-plain-Cplusplus 3 | -------------------------------------------------------------------------------- /references/atl - How to write a shell extension in C++- - Stack Overflow.url: -------------------------------------------------------------------------------- 1 | [InternetShortcut] 2 | URL=https://stackoverflow.com/questions/8811621/how-to-write-a-shell-extension-in-c 3 | -------------------------------------------------------------------------------- /resources/Windows Icon Tables/Win 11 Pro - urlmon.dll icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/resources/Windows Icon Tables/Win 11 Pro - urlmon.dll icons.png -------------------------------------------------------------------------------- /resources/Windows Icon Tables/Win 11 Pro - user32.dll icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/resources/Windows Icon Tables/Win 11 Pro - user32.dll icons.png -------------------------------------------------------------------------------- /resources/Windows Icon Tables/Win 11 Pro - wmploc.dll icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/resources/Windows Icon Tables/Win 11 Pro - wmploc.dll icons.png -------------------------------------------------------------------------------- /src/tests/test_files/issue117/alarm_clock-all-uncompressed.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/issue117/alarm_clock-all-uncompressed.ico -------------------------------------------------------------------------------- /references/Initializing Shell Extension Handlers - Windows applications - Microsoft Docs.url: -------------------------------------------------------------------------------- 1 | [InternetShortcut] 2 | URL=https://docs.microsoft.com/en-us/windows/desktop/shell/int-shell-exts 3 | -------------------------------------------------------------------------------- /references/Registering Shell Extension Handlers - Windows applications - Microsoft Docs.url: -------------------------------------------------------------------------------- 1 | [InternetShortcut] 2 | URL=https://docs.microsoft.com/en-us/windows/desktop/shell/reg-shell-exts 3 | -------------------------------------------------------------------------------- /references/Windows shell extension with C# - Stack Overflow.url: -------------------------------------------------------------------------------- 1 | [InternetShortcut] 2 | URL=https://stackoverflow.com/questions/2194572/windows-shell-extension-with-c-sharp/2194638#2194638 3 | -------------------------------------------------------------------------------- /references/dwmkerr-sharpshell- SharpShell makes it easy to create Windows Shell Extensions using the .NET Framework-.url: -------------------------------------------------------------------------------- 1 | [InternetShortcut] 2 | URL=https://github.com/dwmkerr/sharpshell 3 | -------------------------------------------------------------------------------- /resources/Windows Icon Tables/Win 10 Home - ieframe.dll icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/resources/Windows Icon Tables/Win 10 Home - ieframe.dll icons.png -------------------------------------------------------------------------------- /resources/Windows Icon Tables/Win 10 Home - imageres.dll icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/resources/Windows Icon Tables/Win 10 Home - imageres.dll icons.png -------------------------------------------------------------------------------- /resources/Windows Icon Tables/Win 10 Home - netshell.dll icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/resources/Windows Icon Tables/Win 10 Home - netshell.dll icons.png -------------------------------------------------------------------------------- /resources/Windows Icon Tables/Win 10 Home - shell32.dll icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/resources/Windows Icon Tables/Win 10 Home - shell32.dll icons.png -------------------------------------------------------------------------------- /resources/Windows Icon Tables/Win 10 Home - urlmon.dll icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/resources/Windows Icon Tables/Win 10 Home - urlmon.dll icons.png -------------------------------------------------------------------------------- /resources/Windows Icon Tables/Win 10 Home - user32.dll icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/resources/Windows Icon Tables/Win 10 Home - user32.dll icons.png -------------------------------------------------------------------------------- /resources/Windows Icon Tables/Win 10 Home - wmploc.dll icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/resources/Windows Icon Tables/Win 10 Home - wmploc.dll icons.png -------------------------------------------------------------------------------- /resources/Windows Icon Tables/Win 10 Home - wpdshext.dll icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/resources/Windows Icon Tables/Win 10 Home - wpdshext.dll icons.png -------------------------------------------------------------------------------- /resources/Windows Icon Tables/Win 11 Pro - ieframe.dll icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/resources/Windows Icon Tables/Win 11 Pro - ieframe.dll icons.png -------------------------------------------------------------------------------- /resources/Windows Icon Tables/Win 11 Pro - imageres.dll icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/resources/Windows Icon Tables/Win 11 Pro - imageres.dll icons.png -------------------------------------------------------------------------------- /resources/Windows Icon Tables/Win 11 Pro - netshell.dll icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/resources/Windows Icon Tables/Win 11 Pro - netshell.dll icons.png -------------------------------------------------------------------------------- /resources/Windows Icon Tables/Win 11 Pro - shell32.dll icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/resources/Windows Icon Tables/Win 11 Pro - shell32.dll icons.png -------------------------------------------------------------------------------- /resources/Windows Icon Tables/Win 11 Pro - wpdshext.dll icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/resources/Windows Icon Tables/Win 11 Pro - wpdshext.dll icons.png -------------------------------------------------------------------------------- /src/tests/test_files/test-res-16-32-48-64-96-128-256.ico.content.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/test-res-16-32-48-64-96-128-256.ico.content.png -------------------------------------------------------------------------------- /src/tests/test_files/issue117/alarm_clock-16-24bpp-1ba-uncompressed.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/issue117/alarm_clock-16-24bpp-1ba-uncompressed.ico -------------------------------------------------------------------------------- /src/tests/test_files/issue117/alarm_clock-16-32bpp-8ba-uncompressed.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/issue117/alarm_clock-16-32bpp-8ba-uncompressed.ico -------------------------------------------------------------------------------- /src/tests/test_files/issue117/alarm_clock-20-24bpp-1ba-uncompressed.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/issue117/alarm_clock-20-24bpp-1ba-uncompressed.ico -------------------------------------------------------------------------------- /src/tests/test_files/issue117/alarm_clock-20-32bpp-8ba-uncompressed.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/issue117/alarm_clock-20-32bpp-8ba-uncompressed.ico -------------------------------------------------------------------------------- /src/tests/test_files/issue117/alarm_clock-24-24bpp-1ba-uncompressed.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/issue117/alarm_clock-24-24bpp-1ba-uncompressed.ico -------------------------------------------------------------------------------- /src/tests/test_files/issue117/alarm_clock-24-32bpp-8ba-uncompressed.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/issue117/alarm_clock-24-32bpp-8ba-uncompressed.ico -------------------------------------------------------------------------------- /src/tests/test_files/issue117/alarm_clock-256-24bpp-1ba-compressed.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/issue117/alarm_clock-256-24bpp-1ba-compressed.ico -------------------------------------------------------------------------------- /src/tests/test_files/issue117/alarm_clock-256-32bpp-8ba-compressed.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/issue117/alarm_clock-256-32bpp-8ba-compressed.ico -------------------------------------------------------------------------------- /src/tests/test_files/issue117/alarm_clock-32-24bpp-1ba-uncompressed.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/issue117/alarm_clock-32-24bpp-1ba-uncompressed.ico -------------------------------------------------------------------------------- /src/tests/test_files/issue117/alarm_clock-32-32bpp-8ba-uncompressed.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/issue117/alarm_clock-32-32bpp-8ba-uncompressed.ico -------------------------------------------------------------------------------- /src/tests/test_files/issue117/alarm_clock-40-24bpp-1ba-uncompressed.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/issue117/alarm_clock-40-24bpp-1ba-uncompressed.ico -------------------------------------------------------------------------------- /src/tests/test_files/issue117/alarm_clock-40-32bpp-8ba-uncompressed.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/issue117/alarm_clock-40-32bpp-8ba-uncompressed.ico -------------------------------------------------------------------------------- /src/tests/test_files/issue117/alarm_clock-48-24bpp-1ba-uncompressed.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/issue117/alarm_clock-48-24bpp-1ba-uncompressed.ico -------------------------------------------------------------------------------- /src/tests/test_files/issue117/alarm_clock-48-32bpp-8ba-uncompressed.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/issue117/alarm_clock-48-32bpp-8ba-uncompressed.ico -------------------------------------------------------------------------------- /src/tests/test_files/issue117/alarm_clock-64-24bpp-1ba-uncompressed.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/issue117/alarm_clock-64-24bpp-1ba-uncompressed.ico -------------------------------------------------------------------------------- /src/tests/test_files/issue117/alarm_clock-64-32bpp-8ba-uncompressed.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/issue117/alarm_clock-64-32bpp-8ba-uncompressed.ico -------------------------------------------------------------------------------- /src/tests/test_files/issue117/alarm_clock-96-24bpp-1ba-uncompressed.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/issue117/alarm_clock-96-24bpp-1ba-uncompressed.ico -------------------------------------------------------------------------------- /src/tests/test_files/issue117/alarm_clock-96-32bpp-8ba-uncompressed.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/issue117/alarm_clock-96-32bpp-8ba-uncompressed.ico -------------------------------------------------------------------------------- /references/c++ - Windows Shell Extension Not Calling Initialize - Stack Overflow.url: -------------------------------------------------------------------------------- 1 | [InternetShortcut] 2 | URL=https://stackoverflow.com/questions/6037888/windows-shell-extension-not-calling-initialize 3 | -------------------------------------------------------------------------------- /references/windows - How to Get ShellNew sub menu items - Stack Overflow.url: -------------------------------------------------------------------------------- 1 | [InternetShortcut] 2 | URL=https://stackoverflow.com/questions/23052139/how-to-get-shellnew-sub-menu-items/23054694#23054694 3 | -------------------------------------------------------------------------------- /resources/Windows Icon Tables/Win 11 Pro - accessibilitycpl.dll icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/resources/Windows Icon Tables/Win 11 Pro - accessibilitycpl.dll icons.png -------------------------------------------------------------------------------- /src/tests/test_files/issue117/alarm_clock-128-24bpp-1ba-uncompressed.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/issue117/alarm_clock-128-24bpp-1ba-uncompressed.ico -------------------------------------------------------------------------------- /src/tests/test_files/issue117/alarm_clock-128-32bpp-8ba-uncompressed.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/issue117/alarm_clock-128-32bpp-8ba-uncompressed.ico -------------------------------------------------------------------------------- /resources/Windows Icon Tables/Win 10 Home - accessibilitycpl.dll icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/resources/Windows Icon Tables/Win 10 Home - accessibilitycpl.dll icons.png -------------------------------------------------------------------------------- /src/tests/test_files/issue117/alarm_clock-16-8bpp-indexed-1ba-uncompressed.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/issue117/alarm_clock-16-8bpp-indexed-1ba-uncompressed.ico -------------------------------------------------------------------------------- /src/tests/test_files/issue117/alarm_clock-20-8bpp-indexed-1ba-uncompressed.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/issue117/alarm_clock-20-8bpp-indexed-1ba-uncompressed.ico -------------------------------------------------------------------------------- /src/tests/test_files/issue117/alarm_clock-24-8bpp-indexed-1ba-uncompressed.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/issue117/alarm_clock-24-8bpp-indexed-1ba-uncompressed.ico -------------------------------------------------------------------------------- /src/tests/test_files/issue117/alarm_clock-256-8bpp-indexed-1ba-compressed.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/issue117/alarm_clock-256-8bpp-indexed-1ba-compressed.ico -------------------------------------------------------------------------------- /src/tests/test_files/issue117/alarm_clock-32-8bpp-indexed-1ba-uncompressed.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/issue117/alarm_clock-32-8bpp-indexed-1ba-uncompressed.ico -------------------------------------------------------------------------------- /src/tests/test_files/issue117/alarm_clock-40-8bpp-indexed-1ba-uncompressed.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/issue117/alarm_clock-40-8bpp-indexed-1ba-uncompressed.ico -------------------------------------------------------------------------------- /src/tests/test_files/issue117/alarm_clock-48-8bpp-indexed-1ba-uncompressed.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/issue117/alarm_clock-48-8bpp-indexed-1ba-uncompressed.ico -------------------------------------------------------------------------------- /src/tests/test_files/issue117/alarm_clock-64-8bpp-indexed-1ba-uncompressed.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/issue117/alarm_clock-64-8bpp-indexed-1ba-uncompressed.ico -------------------------------------------------------------------------------- /src/tests/test_files/issue117/alarm_clock-96-8bpp-indexed-1ba-uncompressed.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/issue117/alarm_clock-96-8bpp-indexed-1ba-uncompressed.ico -------------------------------------------------------------------------------- /ci/github/tests_not_available.badge.json: -------------------------------------------------------------------------------- 1 | { 2 | "schemaVersion": 1, 3 | "namedLogo": "GitHub", 4 | "logoColor": "white", 5 | "label": "tests", 6 | "color": "inactive", 7 | "message": "not available" 8 | } 9 | -------------------------------------------------------------------------------- /references/Customizing a Shortcut Menu Using Dynamic Verbs - Windows applications - Microsoft Docs.url: -------------------------------------------------------------------------------- 1 | [InternetShortcut] 2 | URL=https://docs.microsoft.com/en-us/windows/desktop/shell/shortcut-menu-using-dynamic-verbs 3 | -------------------------------------------------------------------------------- /references/TortoiseGit-TortoiseGit- Windows Explorer Extension to Operate Git; Mirror of official repository https---tortoisegit.org-sourcecode.url: -------------------------------------------------------------------------------- 1 | [InternetShortcut] 2 | URL=https://github.com/TortoiseGit/TortoiseGit 3 | -------------------------------------------------------------------------------- /src/arguments.debugger.window/How to Create a Multiline Edit Control - Win32 apps - Microsoft Learn.url: -------------------------------------------------------------------------------- 1 | [InternetShortcut] 2 | URL=https://learn.microsoft.com/en-us/windows/win32/controls/use-a-multiline-edit-control 3 | -------------------------------------------------------------------------------- /src/tests/test_files/issue117/alarm_clock-128-8bpp-indexed-1ba-uncompressed.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/issue117/alarm_clock-128-8bpp-indexed-1ba-uncompressed.ico -------------------------------------------------------------------------------- /references/How to Implement the IContextMenu Interface - Windows applications - Microsoft Docs.url: -------------------------------------------------------------------------------- 1 | [InternetShortcut] 2 | URL=https://docs.microsoft.com/en-us/windows/desktop/shell/how-to-implement-the-icontextmenu-interface 3 | -------------------------------------------------------------------------------- /references/c++ - Context menu methods in shell extension aren't being used - Stack Overflow.url: -------------------------------------------------------------------------------- 1 | [InternetShortcut] 2 | URL=https://stackoverflow.com/questions/45040798/context-menu-methods-in-shell-extension-arent-being-used 3 | -------------------------------------------------------------------------------- /src/shellextension/shellext.def: -------------------------------------------------------------------------------- 1 | LIBRARY 2 | 3 | EXPORTS 4 | DllCanUnloadNow PRIVATE 5 | DllGetClassObject PRIVATE 6 | DllRegisterServer PRIVATE 7 | DllUnregisterServer PRIVATE 8 | DllInstall PRIVATE 9 | -------------------------------------------------------------------------------- /src/tests/test_files/test-res-16-20-24-32-40-48-60-64-72-80-96-120-128-144-160-192-256.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/test-res-16-20-24-32-40-48-60-64-72-80-96-120-128-144-160-192-256.ico -------------------------------------------------------------------------------- /references/Example Code for Implementation of the Context Menu COM Object - Windows applications - Microsoft Docs.url: -------------------------------------------------------------------------------- 1 | [InternetShortcut] 2 | URL=https://docs.microsoft.com/en-us/windows/desktop/ad/example-code-for-implementation-of-the-context-menu-com-object 3 | -------------------------------------------------------------------------------- /src/arguments.debugger.window/Walkthrough- Create a traditional Windows Desktop application (C++) - Microsoft Learn.url: -------------------------------------------------------------------------------- 1 | [InternetShortcut] 2 | URL=https://learn.microsoft.com/en-us/cpp/windows/walkthrough-creating-windows-desktop-applications-cpp?view=msvc-170 3 | -------------------------------------------------------------------------------- /src/tests/test_files/test-res-16-20-24-32-40-48-60-64-72-80-96-120-128-144-160-192-256.ico.content.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/end2endzone/ShellAnything/HEAD/src/tests/test_files/test-res-16-20-24-32-40-48-60-64-72-80-96-120-128-144-160-192-256.ico.content.png -------------------------------------------------------------------------------- /references/Create a Shell Extension Handler thumbnail extractor with .net-.url: -------------------------------------------------------------------------------- 1 | [InternetShortcut] 2 | URL=https://social.msdn.microsoft.com/Forums/vstudio/en-US/1428326d-7950-42b4-ad94-8e962124043e/create-a-shell-extension-handler-thumbnail-extractor-with-net?forum=netfxbcl 3 | -------------------------------------------------------------------------------- /references/c++ - Shell Extension DLL - how to capture the folder path, if user clicks inside the folder empty area- - Stack Overflow.url: -------------------------------------------------------------------------------- 1 | [InternetShortcut] 2 | URL=https://stackoverflow.com/questions/9415502/shell-extension-dll-how-to-capture-the-folder-path-if-user-clicks-inside-the 3 | -------------------------------------------------------------------------------- /src/tests/test_files/TestConfigManager.testClear.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/tests/test_files/TestConfigManager.testDetectNewFile.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/tests/test_files/issue117/LICENSE: -------------------------------------------------------------------------------- 1 | Good Boy License 2 | To be used with whatever your mom would approve of 3 | 4 | Permitted Use: 5 | - Download 6 | - Change 7 | - Fork on GitHub 8 | 9 | Prohibited Use: 10 | - No tattoos 11 | - No touching food with unwashed hands 12 | - No exchanging for drugs 13 | -------------------------------------------------------------------------------- /src/shellextension/stdafx.cpp: -------------------------------------------------------------------------------- 1 | // stdafx.cpp : source file that includes just the standard includes 2 | // stdafx.pch will be the pre-compiled header 3 | // stdafx.obj will contain the pre-compiled type information 4 | 5 | #include "stdafx.h" 6 | 7 | #ifdef _ATL_STATIC_REGISTRY 8 | #include 9 | #endif 10 | -------------------------------------------------------------------------------- /wix/WIX.patches.in: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /ci/github/install_cmake.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate GitHub CI's environment 4 | if "%GITHUB_WORKSPACE%"=="" ( 5 | echo Please define 'GITHUB_WORKSPACE' environment variable. 6 | exit /B 1 7 | ) 8 | 9 | :: Call matching script for windows 10 | call "%GITHUB_WORKSPACE%\ci\windows\%~n0.bat" 11 | if %errorlevel% neq 0 exit /b %errorlevel% 12 | -------------------------------------------------------------------------------- /ci/github/install_glog.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate GitHub CI's environment 4 | if "%GITHUB_WORKSPACE%"=="" ( 5 | echo Please define 'GITHUB_WORKSPACE' environment variable. 6 | exit /B 1 7 | ) 8 | 9 | :: Call matching script for windows 10 | call "%GITHUB_WORKSPACE%\ci\windows\%~n0.bat" 11 | if %errorlevel% neq 0 exit /b %errorlevel% 12 | -------------------------------------------------------------------------------- /ci/github/install_grip.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate GitHub CI's environment 4 | if "%GITHUB_WORKSPACE%"=="" ( 5 | echo Please define 'GITHUB_WORKSPACE' environment variable. 6 | exit /B 1 7 | ) 8 | 9 | :: Call matching script for windows 10 | call "%GITHUB_WORKSPACE%\ci\windows\%~n0.bat" 11 | if %errorlevel% neq 0 exit /b %errorlevel% 12 | -------------------------------------------------------------------------------- /ci/github/install_zlib.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate GitHub CI's environment 4 | if "%GITHUB_WORKSPACE%"=="" ( 5 | echo Please define 'GITHUB_WORKSPACE' environment variable. 6 | exit /B 1 7 | ) 8 | 9 | :: Call matching script for windows 10 | call "%GITHUB_WORKSPACE%\ci\windows\%~n0.bat" 11 | if %errorlevel% neq 0 exit /b %errorlevel% 12 | -------------------------------------------------------------------------------- /ci/github/test_script.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate GitHub CI's environment 4 | if "%GITHUB_WORKSPACE%"=="" ( 5 | echo Please define 'GITHUB_WORKSPACE' environment variable. 6 | exit /B 1 7 | ) 8 | 9 | :: Call matching script for windows 10 | call "%GITHUB_WORKSPACE%\ci\windows\%~n0.bat" 11 | if %errorlevel% neq 0 exit /b %errorlevel% 12 | -------------------------------------------------------------------------------- /ci/github/install_doxygen.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate GitHub CI's environment 4 | if "%GITHUB_WORKSPACE%"=="" ( 5 | echo Please define 'GITHUB_WORKSPACE' environment variable. 6 | exit /B 1 7 | ) 8 | 9 | :: Call matching script for windows 10 | call "%GITHUB_WORKSPACE%\ci\windows\%~n0.bat" 11 | if %errorlevel% neq 0 exit /b %errorlevel% 12 | -------------------------------------------------------------------------------- /ci/github/install_googletest.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate GitHub CI's environment 4 | if "%GITHUB_WORKSPACE%"=="" ( 5 | echo Please define 'GITHUB_WORKSPACE' environment variable. 6 | exit /B 1 7 | ) 8 | 9 | :: Call matching script for windows 10 | call "%GITHUB_WORKSPACE%\ci\windows\%~n0.bat" 11 | if %errorlevel% neq 0 exit /b %errorlevel% 12 | -------------------------------------------------------------------------------- /ci/github/install_imagemagick.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate GitHub CI's environment 4 | if "%GITHUB_WORKSPACE%"=="" ( 5 | echo Please define 'GITHUB_WORKSPACE' environment variable. 6 | exit /B 1 7 | ) 8 | 9 | :: Call matching script for windows 10 | call "%GITHUB_WORKSPACE%\ci\windows\%~n0.bat" 11 | if %errorlevel% neq 0 exit /b %errorlevel% 12 | -------------------------------------------------------------------------------- /ci/github/install_libmagic.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate GitHub CI's environment 4 | if "%GITHUB_WORKSPACE%"=="" ( 5 | echo Please define 'GITHUB_WORKSPACE' environment variable. 6 | exit /B 1 7 | ) 8 | 9 | :: Call matching script for windows 10 | call "%GITHUB_WORKSPACE%\ci\windows\%~n0.bat" 11 | if %errorlevel% neq 0 exit /b %errorlevel% 12 | -------------------------------------------------------------------------------- /ci/github/install_rapidassist.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate GitHub CI's environment 4 | if "%GITHUB_WORKSPACE%"=="" ( 5 | echo Please define 'GITHUB_WORKSPACE' environment variable. 6 | exit /B 1 7 | ) 8 | 9 | :: Call matching script for windows 10 | call "%GITHUB_WORKSPACE%\ci\windows\%~n0.bat" 11 | if %errorlevel% neq 0 exit /b %errorlevel% 12 | -------------------------------------------------------------------------------- /ci/github/install_tinyxml2.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate GitHub CI's environment 4 | if "%GITHUB_WORKSPACE%"=="" ( 5 | echo Please define 'GITHUB_WORKSPACE' environment variable. 6 | exit /B 1 7 | ) 8 | 9 | :: Call matching script for windows 10 | call "%GITHUB_WORKSPACE%\ci\windows\%~n0.bat" 11 | if %errorlevel% neq 0 exit /b %errorlevel% 12 | -------------------------------------------------------------------------------- /ci/github/list_registry_keys.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate GitHub CI's environment 4 | if "%GITHUB_WORKSPACE%"=="" ( 5 | echo Please define 'GITHUB_WORKSPACE' environment variable. 6 | exit /B 1 7 | ) 8 | 9 | :: Call matching script for windows 10 | call "%GITHUB_WORKSPACE%\ci\windows\%~n0.bat" 11 | if %errorlevel% neq 0 exit /b %errorlevel% 12 | -------------------------------------------------------------------------------- /ci/github/build_flat-color-icons.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate GitHub CI's environment 4 | if "%GITHUB_WORKSPACE%"=="" ( 5 | echo Please define 'GITHUB_WORKSPACE' environment variable. 6 | exit /B 1 7 | ) 8 | 9 | :: Call matching script for windows 10 | call "%GITHUB_WORKSPACE%\ci\windows\%~n0.bat" 11 | if %errorlevel% neq 0 exit /b %errorlevel% 12 | -------------------------------------------------------------------------------- /ci/github/install_sa_plugin_demo.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate GitHub CI's environment 4 | if "%GITHUB_WORKSPACE%"=="" ( 5 | echo Please define 'GITHUB_WORKSPACE' environment variable. 6 | exit /B 1 7 | ) 8 | 9 | :: Call matching script for windows 10 | call "%GITHUB_WORKSPACE%\ci\windows\%~n0.bat" 11 | if %errorlevel% neq 0 exit /b %errorlevel% 12 | -------------------------------------------------------------------------------- /ci/github/install_sa_plugin_time.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate GitHub CI's environment 4 | if "%GITHUB_WORKSPACE%"=="" ( 5 | echo Please define 'GITHUB_WORKSPACE' environment variable. 6 | exit /B 1 7 | ) 8 | 9 | :: Call matching script for windows 10 | call "%GITHUB_WORKSPACE%\ci\windows\%~n0.bat" 11 | if %errorlevel% neq 0 exit /b %errorlevel% 12 | -------------------------------------------------------------------------------- /ci/github/install_shellanything.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate GitHub CI's environment 4 | if "%GITHUB_WORKSPACE%"=="" ( 5 | echo Please define 'GITHUB_WORKSPACE' environment variable. 6 | exit /B 1 7 | ) 8 | 9 | :: Call matching script for windows 10 | call "%GITHUB_WORKSPACE%\ci\windows\%~n0.bat" 11 | if %errorlevel% neq 0 exit /b %errorlevel% 12 | -------------------------------------------------------------------------------- /ci/github/list_services_status.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate GitHub CI's environment 4 | if "%GITHUB_WORKSPACE%"=="" ( 5 | echo Please define 'GITHUB_WORKSPACE' environment variable. 6 | exit /B 1 7 | ) 8 | 9 | :: Call matching script for windows 10 | call "%GITHUB_WORKSPACE%\ci\windows\%~n0.bat" 11 | if %errorlevel% neq 0 exit /b %errorlevel% 12 | -------------------------------------------------------------------------------- /src/arguments.debugger.console/targetver.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // // Including SDKDDKVer.h defines the highest available Windows platform. 4 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and 5 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. 6 | #include 7 | -------------------------------------------------------------------------------- /src/arguments.debugger.window/targetver.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // // Including SDKDDKVer.h defines the highest available Windows platform. 4 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and 5 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. 6 | #include 7 | -------------------------------------------------------------------------------- /ci/appveyor/install_cmake.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate appveyor's environment 4 | if "%APPVEYOR_BUILD_FOLDER%"=="" ( 5 | echo Please define 'APPVEYOR_BUILD_FOLDER' environment variable. 6 | exit /B 1 7 | ) 8 | 9 | :: Call matching script for windows 10 | call "%APPVEYOR_BUILD_FOLDER%\ci\windows\%~n0.bat" 11 | if %errorlevel% neq 0 exit /b %errorlevel% 12 | -------------------------------------------------------------------------------- /ci/appveyor/install_glog.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate appveyor's environment 4 | if "%APPVEYOR_BUILD_FOLDER%"=="" ( 5 | echo Please define 'APPVEYOR_BUILD_FOLDER' environment variable. 6 | exit /B 1 7 | ) 8 | 9 | :: Call matching script for windows 10 | call "%APPVEYOR_BUILD_FOLDER%\ci\windows\%~n0.bat" 11 | if %errorlevel% neq 0 exit /b %errorlevel% 12 | -------------------------------------------------------------------------------- /ci/appveyor/install_grip.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate appveyor's environment 4 | if "%APPVEYOR_BUILD_FOLDER%"=="" ( 5 | echo Please define 'APPVEYOR_BUILD_FOLDER' environment variable. 6 | exit /B 1 7 | ) 8 | 9 | :: Call matching script for windows 10 | call "%APPVEYOR_BUILD_FOLDER%\ci\windows\%~n0.bat" 11 | if %errorlevel% neq 0 exit /b %errorlevel% 12 | -------------------------------------------------------------------------------- /ci/appveyor/install_zlib.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate appveyor's environment 4 | if "%APPVEYOR_BUILD_FOLDER%"=="" ( 5 | echo Please define 'APPVEYOR_BUILD_FOLDER' environment variable. 6 | exit /B 1 7 | ) 8 | 9 | :: Call matching script for windows 10 | call "%APPVEYOR_BUILD_FOLDER%\ci\windows\%~n0.bat" 11 | if %errorlevel% neq 0 exit /b %errorlevel% 12 | -------------------------------------------------------------------------------- /ci/appveyor/test_script.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate appveyor's environment 4 | if "%APPVEYOR_BUILD_FOLDER%"=="" ( 5 | echo Please define 'APPVEYOR_BUILD_FOLDER' environment variable. 6 | exit /B 1 7 | ) 8 | 9 | :: Call matching script for windows 10 | call "%APPVEYOR_BUILD_FOLDER%\ci\windows\%~n0.bat" 11 | if %errorlevel% neq 0 exit /b %errorlevel% 12 | -------------------------------------------------------------------------------- /ci/github/install_sa_plugin_process.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate GitHub CI's environment 4 | if "%GITHUB_WORKSPACE%"=="" ( 5 | echo Please define 'GITHUB_WORKSPACE' environment variable. 6 | exit /B 1 7 | ) 8 | 9 | :: Call matching script for windows 10 | call "%GITHUB_WORKSPACE%\ci\windows\%~n0.bat" 11 | if %errorlevel% neq 0 exit /b %errorlevel% 12 | -------------------------------------------------------------------------------- /ci/github/install_sa_plugin_services.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate GitHub CI's environment 4 | if "%GITHUB_WORKSPACE%"=="" ( 5 | echo Please define 'GITHUB_WORKSPACE' environment variable. 6 | exit /B 1 7 | ) 8 | 9 | :: Call matching script for windows 10 | call "%GITHUB_WORKSPACE%\ci\windows\%~n0.bat" 11 | if %errorlevel% neq 0 exit /b %errorlevel% 12 | -------------------------------------------------------------------------------- /ci/github/install_sa_plugin_strings.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate GitHub CI's environment 4 | if "%GITHUB_WORKSPACE%"=="" ( 5 | echo Please define 'GITHUB_WORKSPACE' environment variable. 6 | exit /B 1 7 | ) 8 | 9 | :: Call matching script for windows 10 | call "%GITHUB_WORKSPACE%\ci\windows\%~n0.bat" 11 | if %errorlevel% neq 0 exit /b %errorlevel% 12 | -------------------------------------------------------------------------------- /src/tests/test_files/TestObjectFactory.testParseSeparator.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /ci/appveyor/install_doxygen.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate appveyor's environment 4 | if "%APPVEYOR_BUILD_FOLDER%"=="" ( 5 | echo Please define 'APPVEYOR_BUILD_FOLDER' environment variable. 6 | exit /B 1 7 | ) 8 | 9 | :: Call matching script for windows 10 | call "%APPVEYOR_BUILD_FOLDER%\ci\windows\%~n0.bat" 11 | if %errorlevel% neq 0 exit /b %errorlevel% 12 | -------------------------------------------------------------------------------- /ci/appveyor/install_googletest.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate appveyor's environment 4 | if "%APPVEYOR_BUILD_FOLDER%"=="" ( 5 | echo Please define 'APPVEYOR_BUILD_FOLDER' environment variable. 6 | exit /B 1 7 | ) 8 | 9 | :: Call matching script for windows 10 | call "%APPVEYOR_BUILD_FOLDER%\ci\windows\%~n0.bat" 11 | if %errorlevel% neq 0 exit /b %errorlevel% 12 | -------------------------------------------------------------------------------- /ci/appveyor/install_libmagic.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate appveyor's environment 4 | if "%APPVEYOR_BUILD_FOLDER%"=="" ( 5 | echo Please define 'APPVEYOR_BUILD_FOLDER' environment variable. 6 | exit /B 1 7 | ) 8 | 9 | :: Call matching script for windows 10 | call "%APPVEYOR_BUILD_FOLDER%\ci\windows\%~n0.bat" 11 | if %errorlevel% neq 0 exit /b %errorlevel% 12 | -------------------------------------------------------------------------------- /ci/appveyor/install_tinyxml2.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate appveyor's environment 4 | if "%APPVEYOR_BUILD_FOLDER%"=="" ( 5 | echo Please define 'APPVEYOR_BUILD_FOLDER' environment variable. 6 | exit /B 1 7 | ) 8 | 9 | :: Call matching script for windows 10 | call "%APPVEYOR_BUILD_FOLDER%\ci\windows\%~n0.bat" 11 | if %errorlevel% neq 0 exit /b %errorlevel% 12 | -------------------------------------------------------------------------------- /ci/appveyor/list_registry_keys.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate appveyor's environment 4 | if "%APPVEYOR_BUILD_FOLDER%"=="" ( 5 | echo Please define 'APPVEYOR_BUILD_FOLDER' environment variable. 6 | exit /B 1 7 | ) 8 | 9 | :: Call matching script for windows 10 | call "%APPVEYOR_BUILD_FOLDER%\ci\windows\%~n0.bat" 11 | if %errorlevel% neq 0 exit /b %errorlevel% 12 | -------------------------------------------------------------------------------- /src/tests/test_files/TestConfigManager.testFileModifications.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ci/appveyor/build_flat-color-icons.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate appveyor's environment 4 | if "%APPVEYOR_BUILD_FOLDER%"=="" ( 5 | echo Please define 'APPVEYOR_BUILD_FOLDER' environment variable. 6 | exit /B 1 7 | ) 8 | 9 | :: Call matching script for windows 10 | call "%APPVEYOR_BUILD_FOLDER%\ci\windows\%~n0.bat" 11 | if %errorlevel% neq 0 exit /b %errorlevel% 12 | -------------------------------------------------------------------------------- /ci/appveyor/install_imagemagick.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate appveyor's environment 4 | if "%APPVEYOR_BUILD_FOLDER%"=="" ( 5 | echo Please define 'APPVEYOR_BUILD_FOLDER' environment variable. 6 | exit /B 1 7 | ) 8 | 9 | :: Call matching script for windows 10 | call "%APPVEYOR_BUILD_FOLDER%\ci\windows\%~n0.bat" 11 | if %errorlevel% neq 0 exit /b %errorlevel% 12 | -------------------------------------------------------------------------------- /ci/appveyor/install_rapidassist.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate appveyor's environment 4 | if "%APPVEYOR_BUILD_FOLDER%"=="" ( 5 | echo Please define 'APPVEYOR_BUILD_FOLDER' environment variable. 6 | exit /B 1 7 | ) 8 | 9 | :: Call matching script for windows 10 | call "%APPVEYOR_BUILD_FOLDER%\ci\windows\%~n0.bat" 11 | if %errorlevel% neq 0 exit /b %errorlevel% 12 | -------------------------------------------------------------------------------- /ci/appveyor/install_sa_plugin_demo.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate appveyor's environment 4 | if "%APPVEYOR_BUILD_FOLDER%"=="" ( 5 | echo Please define 'APPVEYOR_BUILD_FOLDER' environment variable. 6 | exit /B 1 7 | ) 8 | 9 | :: Call matching script for windows 10 | call "%APPVEYOR_BUILD_FOLDER%\ci\windows\%~n0.bat" 11 | if %errorlevel% neq 0 exit /b %errorlevel% 12 | -------------------------------------------------------------------------------- /ci/appveyor/install_sa_plugin_time.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate appveyor's environment 4 | if "%APPVEYOR_BUILD_FOLDER%"=="" ( 5 | echo Please define 'APPVEYOR_BUILD_FOLDER' environment variable. 6 | exit /B 1 7 | ) 8 | 9 | :: Call matching script for windows 10 | call "%APPVEYOR_BUILD_FOLDER%\ci\windows\%~n0.bat" 11 | if %errorlevel% neq 0 exit /b %errorlevel% 12 | -------------------------------------------------------------------------------- /ci/appveyor/install_shellanything.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate appveyor's environment 4 | if "%APPVEYOR_BUILD_FOLDER%"=="" ( 5 | echo Please define 'APPVEYOR_BUILD_FOLDER' environment variable. 6 | exit /B 1 7 | ) 8 | 9 | :: Call matching script for windows 10 | call "%APPVEYOR_BUILD_FOLDER%\ci\windows\%~n0.bat" 11 | if %errorlevel% neq 0 exit /b %errorlevel% 12 | -------------------------------------------------------------------------------- /ci/appveyor/list_services_status.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate appveyor's environment 4 | if "%APPVEYOR_BUILD_FOLDER%"=="" ( 5 | echo Please define 'APPVEYOR_BUILD_FOLDER' environment variable. 6 | exit /B 1 7 | ) 8 | 9 | :: Call matching script for windows 10 | call "%APPVEYOR_BUILD_FOLDER%\ci\windows\%~n0.bat" 11 | if %errorlevel% neq 0 exit /b %errorlevel% 12 | -------------------------------------------------------------------------------- /ci/appveyor/install_sa_plugin_process.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate appveyor's environment 4 | if "%APPVEYOR_BUILD_FOLDER%"=="" ( 5 | echo Please define 'APPVEYOR_BUILD_FOLDER' environment variable. 6 | exit /B 1 7 | ) 8 | 9 | :: Call matching script for windows 10 | call "%APPVEYOR_BUILD_FOLDER%\ci\windows\%~n0.bat" 11 | if %errorlevel% neq 0 exit /b %errorlevel% 12 | -------------------------------------------------------------------------------- /ci/appveyor/install_sa_plugin_services.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate appveyor's environment 4 | if "%APPVEYOR_BUILD_FOLDER%"=="" ( 5 | echo Please define 'APPVEYOR_BUILD_FOLDER' environment variable. 6 | exit /B 1 7 | ) 8 | 9 | :: Call matching script for windows 10 | call "%APPVEYOR_BUILD_FOLDER%\ci\windows\%~n0.bat" 11 | if %errorlevel% neq 0 exit /b %errorlevel% 12 | -------------------------------------------------------------------------------- /ci/appveyor/install_sa_plugin_strings.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate appveyor's environment 4 | if "%APPVEYOR_BUILD_FOLDER%"=="" ( 5 | echo Please define 'APPVEYOR_BUILD_FOLDER' environment variable. 6 | exit /B 1 7 | ) 8 | 9 | :: Call matching script for windows 10 | call "%APPVEYOR_BUILD_FOLDER%\ci\windows\%~n0.bat" 11 | if %errorlevel% neq 0 exit /b %errorlevel% 12 | -------------------------------------------------------------------------------- /src/arguments.debugger.window/arguments.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | static const std::wstring EMPTY_WIDE_STRING; 7 | static const std::string EMPTY_ANSI_STRING; 8 | 9 | #ifdef UNICODE 10 | typedef std::wstring tstring_t; 11 | #else 12 | typedef std::string tstring_t; 13 | #endif 14 | 15 | void ReadCommandLineArguments(tstring_t & str); 16 | -------------------------------------------------------------------------------- /AUTHORS: -------------------------------------------------------------------------------- 1 | # This file contains a list of people who've made contribution to 2 | # the project. People who commit code are encouraged to add 3 | # their names here. Please keep the list sorted by first names. 4 | 5 | Antoine Beauchamp, https://github.com/end2endzone, end2endzone@gmail.com 6 | Cirn09, https://github.com/Cirn09 7 | Mindaugas Ribaconka, https://github.com/GasDauMin, GasDauMin@gmail.com 8 | -------------------------------------------------------------------------------- /src/tests/test_files/TestActionExecute.testWaitInfinite.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /licenses/Flat Color Icons LICENSE.txt: -------------------------------------------------------------------------------- 1 | Good Boy License 2 | 3 | To be used with whatever your mom would approve of : 4 | 5 | Permitted Use: 6 | - Download 7 | - Change 8 | - Fork on GitHub 9 | 10 | Prohibited Use: 11 | - No tattoos 12 | - No touching food with unwashed hands 13 | - No exchanging for drugs 14 | 15 | License: https://icons8.com/good-boy-license 16 | Sources: https://github.com/icons8/flat-color-icons 17 | -------------------------------------------------------------------------------- /src/shellextension/targetver.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // Including SDKDDKVer.h defines the highest available Windows platform. 4 | 5 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and 6 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. 7 | 8 | #include 9 | 10 | #define WINVER 0x0600 11 | #define _WIN32_WINNT 0x0600 12 | -------------------------------------------------------------------------------- /src/tests/test_files/TestActionExecute.testWaitTimeout.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/tests/test_files/TestConfigManager.testFindMenuByNameExpanding.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/tests/test_files/TestConfigManager.testFindMenuByName.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/tests/test_files/issue041.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/tests/test_files/TestConfigManager.testFindMenuByNameCaseInsensitive.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/tests/test_files/TestConfigManager.testParentWithoutChildren.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /ci/appveyor/emulate_appveyor.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | echo Emulating appveyor's environment. 4 | 5 | cd /d %~dp0 6 | cd ..\.. 7 | set APPVEYOR=True 8 | set APPVEYOR_BUILD_FOLDER=%cd% 9 | set Configuration=Debug 10 | set Platform=x64 11 | set PlatformToolset="" 12 | 13 | echo APPVEYOR_BUILD_FOLDER set to '%PRODUCT_SOURCE_DIR%' 14 | echo. 15 | 16 | :: Return back to original folder 17 | cd /d %~dp0 18 | 19 | :: Leave the command prompt open 20 | cmd.exe /k echo AppVeyor ready... 21 | -------------------------------------------------------------------------------- /src/arguments.debugger.console/framework.h: -------------------------------------------------------------------------------- 1 | // header.h : include file for standard system include files, 2 | // or project specific include files 3 | // 4 | 5 | #pragma once 6 | 7 | #include "targetver.h" 8 | #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers 9 | // Windows Header Files 10 | #include 11 | // C RunTime Header Files 12 | #include 13 | #include 14 | #include 15 | #include 16 | -------------------------------------------------------------------------------- /src/arguments.debugger.window/framework.h: -------------------------------------------------------------------------------- 1 | // header.h : include file for standard system include files, 2 | // or project specific include files 3 | // 4 | 5 | #pragma once 6 | 7 | #include "targetver.h" 8 | #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers 9 | // Windows Header Files 10 | #include 11 | // C RunTime Header Files 12 | #include 13 | #include 14 | #include 15 | #include 16 | -------------------------------------------------------------------------------- /src/tests/test_files/TestActionProperty.testCaptureOutput.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /resources/configurations/Mark Text.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /resources/configurations/WinDirStat.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/tests/test_files/TestTools.testArgumentsDebugger.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/tests/test_files/TestPlugins.testPluginActionGetData.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /src/tests/test_files/TestPlugins.testPluginInitializeAndTerminate.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /src/tests/test_files/TestConfiguration.testLoadProperties.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/tests/test_files/TestObjectFactory.testParseDefaults.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/tests/test_files/test_issue011.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/version.h.in: -------------------------------------------------------------------------------- 1 | @LICENSE_CPLUSPLUS_HEADER@ 2 | #ifndef SHELLANYTHING_VERSION_H 3 | #define SHELLANYTHING_VERSION_H 4 | 5 | #ifndef SHELLANYTHING_VERSION_MAJOR 6 | # define SHELLANYTHING_VERSION_MAJOR @SHELLANYTHING_VERSION_MAJOR@ 7 | #endif 8 | 9 | #ifndef SHELLANYTHING_VERSION_MINOR 10 | # define SHELLANYTHING_VERSION_MINOR @SHELLANYTHING_VERSION_MINOR@ 11 | #endif 12 | 13 | #ifndef SHELLANYTHING_VERSION_PATCH 14 | # define SHELLANYTHING_VERSION_PATCH @SHELLANYTHING_VERSION_PATCH@ 15 | #endif 16 | 17 | #ifndef SHELLANYTHING_VERSION 18 | # define SHELLANYTHING_VERSION "@SHELLANYTHING_VERSION@" 19 | #endif 20 | 21 | #endif //SHELLANYTHING_VERSION_H 22 | -------------------------------------------------------------------------------- /cmake/shellanything-config-version.cmake.in: -------------------------------------------------------------------------------- 1 | # shellanything-config-version.cmake - checks version: major must match, minor must be less than or equal 2 | 3 | set(PACKAGE_VERSION @SHELLANYTHING_VERSION@) 4 | 5 | if("${PACKAGE_FIND_VERSION_MAJOR}" EQUAL "@SHELLANYTHING_VERSION_MAJOR@") 6 | if ("${PACKAGE_FIND_VERSION_MINOR}" EQUAL "@SHELLANYTHING_VERSION_MINOR@") 7 | set(PACKAGE_VERSION_EXACT TRUE) 8 | elseif("${PACKAGE_FIND_VERSION_MINOR}" LESS "@SHELLANYTHING_VERSION_MINOR@") 9 | set(PACKAGE_VERSION_COMPATIBLE TRUE) 10 | else() 11 | set(PACKAGE_VERSION_UNSUITABLE TRUE) 12 | endif() 13 | else() 14 | set(PACKAGE_VERSION_UNSUITABLE TRUE) 15 | endif() 16 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | /install 3 | /out 4 | .vscode 5 | .vs 6 | /src/plugins/sa_plugin_time/build 7 | /src/plugins/sa_plugin_time/install 8 | /src/plugins/sa_plugin_demo/build 9 | /src/plugins/sa_plugin_demo/install 10 | /src/plugins/sa_plugin_services/build 11 | /src/plugins/sa_plugin_services/install 12 | /src/plugins/sa_plugin_strings/build 13 | /src/plugins/sa_plugin_strings/install 14 | /src/plugins/sa_plugin_process/install 15 | /src/plugins/sa_plugin_process/build 16 | /scripts/refresh.tmp.bat 17 | /installer 18 | /third_parties/RapidAssist 19 | /third_parties/glog 20 | /third_parties/glog_static_old 21 | /third_parties/googletest 22 | /third_parties/libmagic 23 | /third_parties/tinyxml2 24 | /third_parties/zlib 25 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: enhancement 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: bug 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Environment** 27 | - OS: [e.g. iOS] 28 | - Version [e.g. 22] 29 | 30 | **Additional context** 31 | Add any other context about the problem here. 32 | -------------------------------------------------------------------------------- /resources/installer/bin/register.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate administrative permissions... 4 | :: https://stackoverflow.com/questions/4051883/batch-script-how-to-check-for-admin-rights 5 | echo Administrative permissions required for registering the Shell Extension. 6 | net session >nul 2>&1 7 | if %errorLevel% == 0 ( 8 | echo Found administrative permissions. 9 | ) else ( 10 | echo Failure: Please open a command prompt with administrative permissions. 11 | pause 12 | exit /B 1 13 | ) 14 | 15 | :: Registering the Shell Extension. 16 | echo Proceeding with the Shell Extension registration. 17 | cd /d %~dp0 18 | if exist "sa.shellextension.dll" ( 19 | regsvr32 sa.shellextension.dll 20 | ) else ( 21 | regsvr32 sa.shellextension-d.dll 22 | ) 23 | 24 | pause 25 | -------------------------------------------------------------------------------- /resources/installer/bin/unregister.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate administrative permissions... 4 | :: https://stackoverflow.com/questions/4051883/batch-script-how-to-check-for-admin-rights 5 | echo Administrative permissions required for unregistering the Shell Extension. 6 | net session >nul 2>&1 7 | if %errorLevel% == 0 ( 8 | echo Found administrative permissions. 9 | ) else ( 10 | echo Failure: Please open a command prompt with administrative permissions. 11 | pause 12 | exit /B 1 13 | ) 14 | 15 | :: Unregistering the Shell Extension. 16 | echo Proceeding with the Shell Extension unregistration. 17 | cd /d %~dp0 18 | if exist "sa.shellextension.dll" ( 19 | regsvr32 /u sa.shellextension.dll 20 | ) else ( 21 | regsvr32 /u sa.shellextension-d.dll 22 | ) 23 | 24 | pause 25 | -------------------------------------------------------------------------------- /ci/windows/list_registry_keys.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | echo ========================================================================================================== 3 | echo WindowsUpdate registry 4 | echo ========================================================================================================== 5 | reg QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /s 6 | echo. 7 | echo. 8 | echo. 9 | 10 | echo ========================================================================================================== 11 | echo Windows Defender registry 12 | echo ========================================================================================================== 13 | reg QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender" /s 14 | echo. 15 | echo. 16 | echo. 17 | -------------------------------------------------------------------------------- /src/shellextension/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by resource.rc 4 | // 5 | #define IDR_SHELLANYTHING 102 6 | #define IDI_ICON_MAIN 103 7 | #define IDI_ICON_MENU01 104 8 | #define IDI_ICON_MENU02 105 9 | #define IDI_ICON_MENU03 106 10 | #define IDI_ICON_SA_BUBBLE 107 11 | #define IDI_ICON_SA_TEXT 108 12 | 13 | 14 | // Next default values for new objects 15 | // 16 | #ifdef APSTUDIO_INVOKED 17 | #ifndef APSTUDIO_READONLY_SYMBOLS 18 | #define _APS_NEXT_RESOURCE_VALUE 109 19 | #define _APS_NEXT_COMMAND_VALUE 40001 20 | #define _APS_NEXT_CONTROL_VALUE 1001 21 | #define _APS_NEXT_SYMED_VALUE 101 22 | #endif 23 | #endif 24 | -------------------------------------------------------------------------------- /src/tests/test_files/TestObjectFactory.testParseActionMessage.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /src/tests/test_files/issue044.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | selection=${selection.path} 10 | selection=${selection.path} 11 | selection=${selection.path} 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/arguments.debugger.console/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by showargs.rc 4 | 5 | #define IDS_APP_TITLE 103 6 | // 7 | #define IDR_MAINFRAME 128 8 | #define IDD_SHOWARGS_DIALOG 102 9 | #define IDD_ABOUTBOX 103 10 | #define IDM_ABOUT 104 11 | #define IDM_EXIT 105 12 | #define IDI_SHOWARGS 107 13 | #define IDC_SHOWARGS 109 14 | #define ID_EDITCHILD 129 15 | #ifndef IDC_STATIC 16 | #define IDC_STATIC -1 17 | #endif 18 | // Next default values for new objects 19 | // 20 | #ifdef APSTUDIO_INVOKED 21 | #ifndef APSTUDIO_READONLY_SYMBOLS 22 | 23 | #define _APS_NO_MFC 130 24 | #define _APS_NEXT_RESOURCE_VALUE 130 25 | #define _APS_NEXT_COMMAND_VALUE 32771 26 | #define _APS_NEXT_CONTROL_VALUE 1000 27 | #define _APS_NEXT_SYMED_VALUE 110 28 | #endif 29 | #endif 30 | -------------------------------------------------------------------------------- /src/arguments.debugger.window/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by showargs.rc 4 | 5 | #define IDS_APP_TITLE 103 6 | // 7 | #define IDR_MAINFRAME 128 8 | #define IDD_SHOWARGS_DIALOG 102 9 | #define IDD_ABOUTBOX 103 10 | #define IDM_ABOUT 104 11 | #define IDM_EXIT 105 12 | #define IDI_SHOWARGS 107 13 | #define IDC_SHOWARGS 109 14 | #define ID_EDITCHILD 129 15 | #ifndef IDC_STATIC 16 | #define IDC_STATIC -1 17 | #endif 18 | // Next default values for new objects 19 | // 20 | #ifdef APSTUDIO_INVOKED 21 | #ifndef APSTUDIO_READONLY_SYMBOLS 22 | 23 | #define _APS_NO_MFC 130 24 | #define _APS_NEXT_RESOURCE_VALUE 130 25 | #define _APS_NEXT_COMMAND_VALUE 32771 26 | #define _APS_NEXT_CONTROL_VALUE 1000 27 | #define _APS_NEXT_SYMED_VALUE 110 28 | #endif 29 | #endif 30 | -------------------------------------------------------------------------------- /src/shared/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(sa.shared STATIC 2 | BitmapCache.h 3 | BitmapCache.cpp 4 | SaUtils.h 5 | SaUtils.cpp 6 | Win32Registry.h 7 | Win32Registry.cpp 8 | Win32Utils.h 9 | Win32Utils.cpp 10 | ) 11 | 12 | # Force CMAKE_DEBUG_POSTFIX for executables 13 | set_target_properties(sa.shared PROPERTIES DEBUG_POSTFIX ${CMAKE_DEBUG_POSTFIX}) 14 | 15 | # Define include directories for the library. 16 | target_include_directories(sa.shared 17 | PUBLIC 18 | $ # for clients using the installed library. 19 | PRIVATE 20 | rapidassist 21 | ${CMAKE_SOURCE_DIR}/src/core 22 | ) 23 | 24 | # Define linking dependencies. 25 | target_link_libraries(sa.shared 26 | PRIVATE 27 | ${PTHREAD_LIBRARIES} 28 | ${GTEST_LIBRARIES} 29 | rapidassist 30 | ) 31 | -------------------------------------------------------------------------------- /src/file_explorer_renew/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by showargs.rc 4 | 5 | #define IDS_APP_TITLE 103 6 | // 7 | #define IDR_MAINFRAME 128 8 | #define IDD_SHOWARGS_DIALOG 102 9 | #define IDD_ABOUTBOX 103 10 | #define IDM_ABOUT 104 11 | #define IDM_EXIT 105 12 | #define IDI_MYAPP_ICON 107 13 | #define IDC_MYAPP 109 14 | #define IDT_TIMER1 130 15 | #define ID_EDITCHILD 129 16 | #ifndef IDC_STATIC 17 | #define IDC_STATIC -1 18 | #endif 19 | // Next default values for new objects 20 | // 21 | #ifdef APSTUDIO_INVOKED 22 | #ifndef APSTUDIO_READONLY_SYMBOLS 23 | 24 | #define _APS_NO_MFC 131 25 | #define _APS_NEXT_RESOURCE_VALUE 131 26 | #define _APS_NEXT_COMMAND_VALUE 32771 27 | #define _APS_NEXT_CONTROL_VALUE 1000 28 | #define _APS_NEXT_SYMED_VALUE 110 29 | #endif 30 | #endif 31 | -------------------------------------------------------------------------------- /licenses/exprtk LICENSE.txt: -------------------------------------------------------------------------------- 1 | This software is provided 'as-is', without any express or implied 2 | warranty. In no event will the authors be held liable for any 3 | damages arising from the use of this software. 4 | 5 | Permission is granted to anyone to use this software for any 6 | purpose, including commercial applications, and to alter it and 7 | redistribute it freely, subject to the following restrictions: 8 | 9 | 1. The origin of this software must not be misrepresented; you must 10 | not claim that you wrote the original software. If you use this 11 | software in a product, an acknowledgment in the product documentation 12 | would be appreciated but is not required. 13 | 14 | 2. Altered source versions must be plainly marked as such, and 15 | must not be misrepresented as being the original software. 16 | 17 | 3. This notice may not be removed or altered from any source 18 | distribution. 19 | -------------------------------------------------------------------------------- /licenses/TinyXML 2 LICENSE.txt: -------------------------------------------------------------------------------- 1 | This software is provided 'as-is', without any express or implied 2 | warranty. In no event will the authors be held liable for any 3 | damages arising from the use of this software. 4 | 5 | Permission is granted to anyone to use this software for any 6 | purpose, including commercial applications, and to alter it and 7 | redistribute it freely, subject to the following restrictions: 8 | 9 | 1. The origin of this software must not be misrepresented; you must 10 | not claim that you wrote the original software. If you use this 11 | software in a product, an acknowledgment in the product documentation 12 | would be appreciated but is not required. 13 | 14 | 2. Altered source versions must be plainly marked as such, and 15 | must not be misrepresented as being the original software. 16 | 17 | 3. This notice may not be removed or altered from any source 18 | distribution. 19 | -------------------------------------------------------------------------------- /ci/windows/install_grip.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Install grip. 4 | :: https://github.com/joeyespo/grip 5 | :: https://pypi.org/project/grip/ 6 | 7 | :: Validate if python launcher is installed 8 | where py.exe >NUL 2>NUL 9 | if errorlevel 1 ( 10 | echo Command failed. Please install python and python launcher to continue. 11 | exit /B %errorlevel% 12 | ) 13 | echo Found python interpreter 14 | python --version 15 | 16 | :: Validate if pip is installed 17 | where pip.exe >NUL 2>NUL 18 | if errorlevel 1 ( 19 | echo Command failed. Please install pip ^(Package Installer Python^) to continue. 20 | exit /B %errorlevel% 21 | ) 22 | 23 | :: Installing grip. 24 | echo Proceeding with instaling grip... 25 | pip install grip 26 | if errorlevel 1 ( 27 | echo Command failed. An error was found while installing grip. 28 | exit /B %errorlevel% 29 | ) 30 | 31 | echo grip was installed on the system without error. 32 | echo. 33 | -------------------------------------------------------------------------------- /src/tests/test_files/TestConfigManager.testAssignCommandIdsInvalid.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /src/shellextension/shellext.idl: -------------------------------------------------------------------------------- 1 | // shellext.idl : IDL source for sa.shellextension.dll 2 | // 3 | 4 | // This file will be processed by the MIDL tool to 5 | // produce the type library (ShellExtension.tlb) and marshalling code. 6 | 7 | import "oaidl.idl"; 8 | import "ocidl.idl"; 9 | 10 | [ 11 | object, 12 | uuid(C67AAC2C-186E-4361-8856-AC93851FF781), 13 | dual, 14 | helpstring("IShellAnything Interface"), 15 | pointer_default(unique) 16 | ] 17 | interface IShellAnything : IDispatch 18 | { 19 | }; 20 | 21 | [ 22 | uuid(EB26EA8E-3B98-4DED-AE59-255C3BA725C3), 23 | version(1.0), 24 | helpstring("ShellExtension 1.0 Type Library") 25 | ] 26 | library SHELLEXTENSIONLib 27 | { 28 | importlib("stdole32.tlb"); 29 | importlib("stdole2.tlb"); 30 | 31 | [ 32 | uuid(B0D35103-86A1-471C-A653-E130E3439A3B), 33 | helpstring("ShellAnything Extension") 34 | ] 35 | coclass ShellAnything 36 | { 37 | [default] interface IShellAnything; 38 | }; 39 | }; 40 | -------------------------------------------------------------------------------- /resources/icons/cil-bug.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/tests/test_files/TestObjectFactory.testParseActionFile.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | This is a single line text file created by ShellAnything. 7 | 8 | 9 | 10 | 11 | 12 | 13 | This is a 14 | multiline 15 | text file. 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | This is a single line text file created by ShellAnything. 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /src/tests/test_files/TestActionProperty.testCopyFile.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | ${copypaste.file.content} 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /src/config.h.in: -------------------------------------------------------------------------------- 1 | @LICENSE_CPLUSPLUS_HEADER@ 2 | #ifndef SHELLANYTHING_CONFIG_H 3 | #define SHELLANYTHING_CONFIG_H 4 | 5 | /* 6 | Issue #103 7 | Since we do not expect any external library to call sa.core.dll directly, we do not care about the following Visual Studio warning: 8 | 1>D:\Projets\Programmation\Cpp\ShellAnything\ShellAnything\src\PropertyManager.h(138,17): warning C4251: 'shellanything::PropertyManager::properties': class 'std::map,std::allocator>>' needs to have dll-interface to be used by clients of class 'shellanything::PropertyManager' 9 | 1>D:\Projets\Programmation\Cpp\ShellAnything\ShellAnything\src\PropertyManager.h(76): message : see declaration of 'std::map,std::allocator>>' 10 | */ 11 | #ifdef _MSC_VER 12 | #pragma warning(disable: 4251) // disable warning 4345 13 | #endif 14 | 15 | #endif //SHELLANYTHING_CONFIG_H 16 | -------------------------------------------------------------------------------- /src/tests/test_files/TestPlugins.testTime.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /scripts/refresh.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | set SECONDARY_SCRIPT=refresh.tmp.bat 4 | 5 | :: Delete secondary script, if any 6 | if exist "%SECONDARY_SCRIPT%" ( 7 | del "%SECONDARY_SCRIPT%" 8 | ) 9 | 10 | :: List directories opened by explorer.exe and 11 | :: prefix all elements with `@start ""` to convert each element to a command. 12 | :: Appends the output to a secondary batch file that will be called later. 13 | powershell "$directories = @((New-Object -com shell.application).Windows()).Document.Folder.Self.Path; $directories = $directories -replace '^', '@start \""\"" \""'; $directories -replace '$', '\""';"> "%SECONDARY_SCRIPT%" 14 | if %errorlevel% neq 0 echo Failed getting extract directories from explorer.exe && exit /b %errorlevel% 15 | 16 | :: Kill all explorer.exe instances... 17 | taskkill /F /IM explorer.exe 18 | 19 | :: Run explorer.exe again. This will create the taskbar. 20 | start C:\Windows\explorer.exe 21 | 22 | :: Call the generated secondary script to reopen the same previous directories... 23 | call "%SECONDARY_SCRIPT%" 24 | -------------------------------------------------------------------------------- /src/tests/test_files/TestObjectFactory.testParsePlugins.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /ci/appveyor/UploadJUnitFiles.ps1: -------------------------------------------------------------------------------- 1 | Param( 2 | [Parameter(Mandatory=$True)] 3 | [string]$Path 4 | ) 5 | 6 | function IsJUnitFile([string]$Path) 7 | { 8 | $JUnitSignature = " 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Antoine Beauchamp 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 | -------------------------------------------------------------------------------- /licenses/file-windows LICENSE.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Julian David Rath 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. -------------------------------------------------------------------------------- /src/tests/test_files/TestObjectFactory.testParseMenuMaxLength.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /licenses/RapidAssist LICENSE.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Antoine Beauchamp 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 | -------------------------------------------------------------------------------- /src/tests/test_files/TestObjectFactory.testParseIcon.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /ci/windows/install_glog.vbs: -------------------------------------------------------------------------------- 1 | ' Usage: 2 | ' arg 0 is oldstr 3 | ' arg 1 is newstr 4 | ' arg 2 is input file 5 | ' 6 | strFile=WScript.Arguments.Item(2) 7 | strOld=WScript.Arguments.Item(0) 8 | strNew=WScript.Arguments.Item(1) 9 | 10 | Set objFSO = CreateObject("Scripting.FileSystemObject") 11 | 12 | Dim linestr 13 | 14 | 'Read file content 15 | ReDim fileContent(-1) 16 | Set objFileToRead = objFSO.OpenTextFile(strFile,1) 17 | i = 0 18 | do while not objFileToRead.AtEndOfStream 19 | linestr = objFileToRead.ReadLine() 20 | 'WScript.Echo "Reading name [" & linestr & "] with a length of " & len(linestr) 21 | if (len(linestr) > 0) then 22 | ReDim Preserve fileContent( UBound(fileContent) + 1) 23 | fileContent(i) = linestr 24 | i = i + 1 25 | end if 26 | loop 27 | objFileToRead.Close 28 | Set objFileToRead = Nothing 29 | 30 | 31 | 'Overwrite existing file... 32 | Set objFileToWrite = objFSO.CreateTextFile(strFile,True) 33 | 'For each lines of content 34 | For i = LBound( fileContent ) To UBound( fileContent ) 35 | linestr = fileContent( i ) 36 | linestr=Replace(linestr,strOld,strNew) 37 | objFileToWrite.Write linestr & vbCrLf 38 | Next 39 | objFileToWrite.Close 40 | -------------------------------------------------------------------------------- /licenses/pcg-cpp LICENSE-MIT.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014-2017 Melissa O'Neill and PCG Project contributors 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | SOFTWARE. 20 | -------------------------------------------------------------------------------- /resources/configurations/git.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /ci/windows/test_script.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate mandatory environment variables 4 | if "%CONFIGURATION%"=="" ( 5 | echo Please define 'Configuration' environment variable. 6 | exit /B 1 7 | ) 8 | if "%PLATFORM%"=="" ( 9 | echo Please define 'Platform' environment variable. 10 | exit /B 1 11 | ) 12 | 13 | :: Set PRODUCT_SOURCE_DIR root directory 14 | setlocal enabledelayedexpansion 15 | if "%PRODUCT_SOURCE_DIR%"=="" ( 16 | :: Delayed expansion is required within parentheses https://superuser.com/questions/78496/variables-in-batch-file-not-being-set-when-inside-if 17 | cd /d "%~dp0" 18 | cd ..\.. 19 | set PRODUCT_SOURCE_DIR=!CD! 20 | cd ..\.. 21 | echo PRODUCT_SOURCE_DIR set to '!PRODUCT_SOURCE_DIR!'. 22 | ) 23 | endlocal & set PRODUCT_SOURCE_DIR=%PRODUCT_SOURCE_DIR% 24 | echo. 25 | 26 | echo ======================================================================= 27 | echo Testing project 28 | echo ======================================================================= 29 | cd /d %PRODUCT_SOURCE_DIR%\build\bin\%CONFIGURATION% 30 | if "%CONFIGURATION%" == "Debug" ( 31 | sa.tests-d.exe 32 | ) else ( 33 | sa.tests.exe 34 | ) 35 | 36 | ::reset error in case of test case fail 37 | exit /b 0 38 | -------------------------------------------------------------------------------- /src/libexprtk/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(libexprtk SHARED 2 | ${EXPRTK_HEADER_PATH} 3 | libexprtk.h 4 | libexprtk.cpp 5 | libexprtk.def 6 | ) 7 | 8 | # Force CMAKE_DEBUG_POSTFIX for executables 9 | set_target_properties(libexprtk PROPERTIES DEBUG_POSTFIX ${CMAKE_DEBUG_POSTFIX}) 10 | 11 | # exprtk.hpp(15607): fatal error C1128: number of sections exceeded object file format limit : compile with /bigobj 12 | target_compile_options(libexprtk PRIVATE "/bigobj") 13 | 14 | # Define include directories for the library. 15 | target_include_directories(libexprtk 16 | PUBLIC 17 | $ # for clients using the installed library. 18 | PRIVATE 19 | ${PACKAGE_DOWNLOAD_DIR}/exprtk-${EXPRTK_TAG} 20 | ) 21 | 22 | # Define files that will be part of the installation package. 23 | install(FILES libexprtk.h 24 | DESTINATION ${SHELLANYTHING_INSTALL_INCLUDE_DIR}/shellanything 25 | ) 26 | install(TARGETS libexprtk 27 | EXPORT shellanything-targets 28 | ARCHIVE DESTINATION ${SHELLANYTHING_INSTALL_LIB_DIR} 29 | LIBRARY DESTINATION ${SHELLANYTHING_INSTALL_LIB_DIR} 30 | RUNTIME DESTINATION ${SHELLANYTHING_INSTALL_BIN_DIR} 31 | ) 32 | -------------------------------------------------------------------------------- /licenses/zlib LICENSE.txt: -------------------------------------------------------------------------------- 1 | zlib 2 | License 3 | /* zlib.h -- interface of the 'zlib' general purpose compression library 4 | version 1.2.11, January 15th, 2017 5 | 6 | Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler 7 | 8 | This software is provided 'as-is', without any express or implied 9 | warranty. In no event will the authors be held liable for any damages 10 | arising from the use of this software. 11 | 12 | Permission is granted to anyone to use this software for any purpose, 13 | including commercial applications, and to alter it and redistribute it 14 | freely, subject to the following restrictions: 15 | 16 | 1. The origin of this software must not be misrepresented; you must not 17 | claim that you wrote the original software. If you use this software 18 | in a product, an acknowledgment in the product documentation would be 19 | appreciated but is not required. 20 | 2. Altered source versions must be plainly marked as such, and must not be 21 | misrepresented as being the original software. 22 | 3. This notice may not be removed or altered from any source distribution. 23 | 24 | Jean-loup Gailly Mark Adler 25 | jloup@gzip.org madler@alumni.caltech.edu 26 | 27 | */ -------------------------------------------------------------------------------- /src/tests/test_files/TestActionProperty.testSearchPath.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /resources/icons/svg2ico.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: This script is designed for drag and drop 4 | IF [%1] == [] goto :eof 5 | echo Processing file: %~1 6 | 7 | :: Assume that ImageMagick already installed by installation script. 8 | set PATH=%TEMP%\imagemagick;%PATH% 9 | 10 | echo Searching for imagemagik executables in PATH... 11 | where magick.exe 12 | if errorlevel 1 ( 13 | echo File 'magick.exe' not found. Please install imagemagik on system and add the directory to PATH. 14 | exit /B %errorlevel% 15 | ) 16 | echo Found imagemagik directory. 17 | echo. 18 | 19 | echo Generate pngs... 20 | magick -background none -size 16x16 "%~1" "%~dpn1-16.png" 21 | magick -background none -size 32x32 "%~1" "%~dpn1-32.png" 22 | magick -background none -size 48x48 "%~1" "%~dpn1-48.png" 23 | magick -background none -size 64x64 "%~1" "%~dpn1-64.png" 24 | 25 | echo Generate ico... 26 | set png_files= 27 | set png_files=%png_files% "%~dpn1-16.png" 28 | set png_files=%png_files% "%~dpn1-32.png" 29 | set png_files=%png_files% "%~dpn1-48.png" 30 | set png_files=%png_files% "%~dpn1-64.png" 31 | magick %png_files% "%~dpn1.ico" 32 | 33 | echo Generated "%~dpn1.ico". 34 | echo. 35 | 36 | echo Deleting png (intermediate files). 37 | del %png_files% 38 | 39 | pause 40 | -------------------------------------------------------------------------------- /cmake/FindGRIP.cmake: -------------------------------------------------------------------------------- 1 | #------------------------------------------------------------------- 2 | # This file is part of the CMake build system for ShellAnything 3 | # For the latest info, see https://github.com/end2endzone/ShellAnything 4 | # 5 | # The contents of this file are placed in the public domain. Feel 6 | # free to make use of it in any way you like. 7 | #------------------------------------------------------------------- 8 | # 9 | # - Try to find Grip 10 | # See https://github.com/joeyespo/grip and https://pypi.org/project/grip/ 11 | # You can help this by defining GRIP_DIR in the environment / CMake 12 | # Once done, this will define 13 | # 14 | # GRIP_FOUND - True if GRIP is found 15 | # GRIP_PROGRAM - The path of the grip program 16 | # 17 | #------------------------------------------------------------------- 18 | 19 | # Search for the main executable 20 | find_program(GRIP_PROGRAM 21 | NAMES 22 | grip 23 | PATHS 24 | $ENV{GRIP_DIR} 25 | $ENV{PATH} 26 | ) 27 | mark_as_advanced(GRIP_PROGRAM) 28 | #message("GRIP_PROGRAM=" "${GRIP_PROGRAM}") 29 | 30 | include(FindPackageHandleStandardArgs) 31 | find_package_handle_standard_args(GRIP DEFAULT_MSG GRIP_PROGRAM) 32 | 33 | if (GRIP_PROGRAM) 34 | set(GRIP_FOUND TRUE) 35 | endif (GRIP_PROGRAM) 36 | -------------------------------------------------------------------------------- /src/tests/test_files/TestObjectFactory.testParseActionPrompt.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /src/tests/test_files/TestObjectFactory.testGetParent.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /src/plugins/sa_plugin_demo/sa_plugin_demo.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | set SHELLANYTHING_INSTALL_DIR=C:\Program Files\ShellAnything-0.8.0-win64 4 | set PLUGIN_BUILD_DIR=%USERPROFILE%\Documents\sa_plugin_demo_build 5 | set PLUGIN_INSTALL_DIRECTORY=%USERPROFILE%\ShellAnything\plugins\sa_plugin_demo 6 | set PLUGIN_CONFIGURATION=Release 7 | 8 | echo Create build directory... 9 | mkdir "%PLUGIN_BUILD_DIR%" >NUL 2>NUL 10 | cd /d "%PLUGIN_BUILD_DIR%" 11 | if %errorlevel% neq 0 echo Failed creating build directory "%PLUGIN_BUILD_DIR%" && exit /b %errorlevel% 12 | echo done. 13 | echo. 14 | 15 | echo Create project files... 16 | cmake -DCMAKE_INSTALL_PREFIX="%PLUGIN_INSTALL_DIRECTORY%" -DCMAKE_PREFIX_PATH="%SHELLANYTHING_INSTALL_DIR%" "%~dp0" 17 | if %errorlevel% neq 0 exit /b %errorlevel% 18 | echo done. 19 | echo. 20 | 21 | echo Building plugin... 22 | cmake --build . --config %PLUGIN_CONFIGURATION% -- -maxcpucount /m 23 | if %errorlevel% neq 0 echo Failed to build source code && exit /b %errorlevel% 24 | echo done. 25 | echo. 26 | 27 | echo Installing plugin... 28 | cmake --build . --config %PLUGIN_CONFIGURATION% --target INSTALL 29 | if %errorlevel% neq 0 echo Failed to install plugin in directory "%PLUGIN_INSTALL_DIRECTORY%" && exit /b %errorlevel% 30 | echo done. 31 | echo. 32 | 33 | cd /d "%~dp0" 34 | 35 | pause 36 | -------------------------------------------------------------------------------- /resources/installer/wix_license_template.rtf: -------------------------------------------------------------------------------- 1 | {\rtf1\ansi\ansicpg1252\deff0\nouicompat{\fonttbl{\f0\fnil\fcharset0 Courier New;}} 2 | {\*\generator Riched20 10.0.18362}\viewkind4\uc1 3 | \pard\f0\fs22\lang3084 MIT License\par 4 | \par 5 | Copyright (c) 2018 Antoine Beauchamp\par 6 | \par 7 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\par 8 | \par 9 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\par 10 | \par 11 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\par 12 | \par 13 | } 14 | -------------------------------------------------------------------------------- /cmake/MakeCplusplusHeader.cmake: -------------------------------------------------------------------------------- 1 | 2 | #! MakeCplusplusHeader : Read the given file content into an output variable wrapping the file content in c++ comments. 3 | # 4 | # \arg:file The path of the file to read. 5 | # \arg:output_variable The path to the output variable that contains the c++ comments. 6 | # 7 | function(MakeCplusplusHeader file output_variable) 8 | set(CPLUSPLUS_COMMENT_HEADER "/*********************************************************************************") 9 | set(CPLUSPLUS_COMMENT_FOOTER " *********************************************************************************/") 10 | 11 | # Read the file 12 | file(READ ${file} FILE_CONTENT) 13 | 14 | # Remove last \n at the end of the file. 15 | string(STRIP ${FILE_CONTENT} FILE_CONTENT) 16 | 17 | # Add " * " at the beginning of each new line 18 | string(REPLACE "\n" "\n * " FILE_CONTENT ${FILE_CONTENT}) 19 | 20 | # Also add " * " for the first line 21 | set(FILE_CONTENT " * ${FILE_CONTENT}") 22 | 23 | # Add header and footer 24 | set(FILE_CONTENT "${CPLUSPLUS_COMMENT_HEADER}\n${FILE_CONTENT}\n${CPLUSPLUS_COMMENT_FOOTER}\n") 25 | 26 | # Debug 27 | #FILE(WRITE ${CMAKE_SOURCE_DIR}/MakeCplusplusHeader.h "${FILE_CONTENT}") 28 | 29 | # Copy formatted header to the calling scope 30 | set(${output_variable} "${FILE_CONTENT}" PARENT_SCOPE) 31 | endfunction() 32 | -------------------------------------------------------------------------------- /src/tests/test_files/TestActionProperty.testLiveProperties.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /resources/icons/0.2.0.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Assume that ImageMagick already installed by installation script. 4 | set PATH=%TEMP%\imagemagick;%PATH% 5 | 6 | echo Searching for imagemagik executables in PATH... 7 | where magick.exe 8 | if errorlevel 1 ( 9 | echo File 'magick.exe' not found. Please install imagemagik on system and add the directory to PATH. 10 | exit /B %errorlevel% 11 | ) 12 | echo Found imagemagik directory. 13 | echo. 14 | 15 | call :process_file "0.2.0.svg" 16 | pause 17 | goto :eof 18 | 19 | 20 | :process_file 21 | echo Generate pngs... 22 | magick -background none -size 16x16 "%~1" "%~dpn1-16.png" 23 | magick -background none -size 32x32 "%~1" "%~dpn1-32.png" 24 | magick -background none -size 48x48 "%~1" "%~dpn1-48.png" 25 | magick -background none -size 64x64 "%~1" "%~dpn1-64.png" 26 | 27 | echo Override generated 16x16 icon with the legacy 16x16 icon. 28 | magick -background none "0.2.0-16x16-legacy.ico" "%~dpn1-16.png" 29 | 30 | echo Generate ico... 31 | set png_files= 32 | set png_files=%png_files% "%~dpn1-16.png" 33 | set png_files=%png_files% "%~dpn1-32.png" 34 | set png_files=%png_files% "%~dpn1-48.png" 35 | set png_files=%png_files% "%~dpn1-64.png" 36 | magick %png_files% "%~dpn1.ico" 37 | 38 | echo Generated "%~dpn1.ico". 39 | echo. 40 | 41 | echo Deleting png (intermediate files). 42 | del %png_files% 43 | 44 | goto :eof 45 | 46 | :eof 47 | -------------------------------------------------------------------------------- /src/tests/test_files/TestActionProperty.testRandomProperties.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /src/tests/test_files/TestObjectFactory.testParseActionExecute.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /src/tests/test_files/TestConfigManager.testAssignCommandId.1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /src/file_explorer_renew/main.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************** 2 | * MIT License 3 | * 4 | * Copyright (c) 2018 Antoine Beauchamp 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | *********************************************************************************/ 24 | 25 | #pragma once 26 | 27 | #include "resource.h" 28 | -------------------------------------------------------------------------------- /src/plugins/sa_plugin_demo/README.md: -------------------------------------------------------------------------------- 1 | # sa_plugin_demo # 2 | _sa_plugin_demo_ is a demo plugin library for [ShellAnything](https://github.com/end2endzone/ShellAnything). It can be used as a base code for new plugins. This demo provides new validation attributes called `demo1` and `demo2` for showing or enabling menus. 3 | 4 | 5 | 6 | # Usage # 7 | 8 | Declare the plugin as the following: 9 | ```xml 10 | 11 | 14 | 15 | ``` 16 | 17 | # Building # 18 | 19 | This section explains how to compile _sa_plugin_demo_ example. 20 | 21 | To build the project, execute the following steps: 22 | 23 | 1) Open a command prompt and navigate to the plugin source directory. 24 | 2) Enter the following commands: 25 | 26 | ```cmake 27 | mkdir build 28 | cd build 29 | cmake -DCMAKE_GENERATOR_PLATFORM=x64 -DCMAKE_INSTALL_PREFIX="path\to\plugin\installation\directory" -DCMAKE_PREFIX_PATH="path\to\shellanything\installation\directory" .. 30 | cmake --build . --config Release -- -maxcpucount /m 31 | cmake --build . --config Release --target INSTALL 32 | cmake .. 33 | ``` 34 | 35 | Please refer to [install_shellanything_plugins.bat](https://github.com/end2endzone/ShellAnything/blob/master/ci/windows/install_shellanything_plugins.bat) for details about _sa_time_plugin_ plugin. 36 | -------------------------------------------------------------------------------- /src/arguments.debugger.console/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include "framework.h" 6 | #include "../arguments.debugger.window/arguments.h" 7 | 8 | #include "rapidassist/console.h" 9 | 10 | 11 | // Debug arguments example: 12 | // This is "multiple arguments at once" including "utf-8 characters" such as the Greek alphabet Αα Ββ Γγ Δδ Εε Ζζ Ηη Θθ Ιι Κκ Λλ Μμ Νν Ξξ Οο Ππ Ρρ Σσ/ς Ττ Υυ Φφ Χχ Ψψ Ωω. 13 | 14 | 15 | // https://stackoverflow.com/questions/33836706/what-are-tchar-strings-and-the-a-or-w-version-of-win32-api-functions 16 | 17 | #if defined(UNICODE) 18 | std::wistream& tcin = std::wcin; 19 | std::wostream& tcout = std::wcout; 20 | #else 21 | std::istream& tcin = std::cin; 22 | std::ostream& tcout = std::cout; 23 | #endif 24 | 25 | int _tmain(int argc, _TCHAR* argv[]) 26 | { 27 | _setmode(_fileno(stdout), _O_U16TEXT); 28 | 29 | // The string that appears in the application's title bar. 30 | tcout << _T("ShellAything Arguments Debugging Application\n"); 31 | tcout << "\n"; 32 | 33 | // Get current directory 34 | TCHAR curdir[MAX_PATH] = { 0 }; 35 | GetCurrentDirectory(MAX_PATH, curdir); 36 | tcout << _T("Current directory: ") << curdir << "\n"; 37 | 38 | tstring_t arguments_desc; 39 | ReadCommandLineArguments(arguments_desc); 40 | 41 | tcout << arguments_desc << "\n"; 42 | 43 | tcout << "Press any key to continue . . ."; 44 | int tmp = ra::console::WaitKeyPress(); 45 | tcout << "\n"; 46 | 47 | return 0; 48 | } 49 | -------------------------------------------------------------------------------- /src/core/IAction.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************************** 2 | * MIT License 3 | * 4 | * Copyright (c) 2018 Antoine Beauchamp 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | *********************************************************************************/ 24 | 25 | #include "IAction.h" 26 | 27 | namespace shellanything 28 | { 29 | 30 | IAction::IAction() 31 | { 32 | } 33 | 34 | IAction::~IAction() 35 | { 36 | } 37 | 38 | } //namespace shellanything 39 | -------------------------------------------------------------------------------- /licenses/Google C++ Testing Framework LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright 2008, Google Inc. 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are 6 | met: 7 | 8 | * Redistributions of source code must retain the above copyright 9 | notice, this list of conditions and the following disclaimer. 10 | * Redistributions in binary form must reproduce the above 11 | copyright notice, this list of conditions and the following disclaimer 12 | in the documentation and/or other materials provided with the 13 | distribution. 14 | * Neither the name of Google Inc. nor the names of its 15 | contributors may be used to endorse or promote products derived from 16 | this software without specific prior written permission. 17 | 18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | -------------------------------------------------------------------------------- /src/plugins/sa_plugin_time/README.md: -------------------------------------------------------------------------------- 1 | # sa_plugin_time # 2 | _sa_plugin_time_ is a plugin library for [ShellAnything](https://github.com/end2endzone/ShellAnything). It provides new validation attributes called `start_time`, `end_time` for showing or enabling menus based on the current system time. 3 | 4 | 5 | 6 | # Usage # 7 | 8 | Declare the plugin in a Configuration File as the following: 9 | ```xml 10 | 11 | 16 | 17 | ``` 18 | 19 | 20 | 21 | # Building # 22 | 23 | This section explains how to compile _sa_plugin_time_ example. 24 | 25 | To build the project, execute the following steps: 26 | 27 | 1) Open a command prompt and navigate to the plugin source directory. 28 | 2) Enter the following commands: 29 | 30 | ```cmake 31 | mkdir build 32 | cd build 33 | cmake -DCMAKE_GENERATOR_PLATFORM=x64 -DCMAKE_INSTALL_PREFIX="path\to\plugin\installation\directory" -DCMAKE_PREFIX_PATH="path\to\shellanything\installation\directory" .. 34 | cmake --build . --config Release -- -maxcpucount /m 35 | cmake --build . --config Release --target INSTALL 36 | cmake .. 37 | ``` 38 | 39 | Please refer to [install_shellanything_plugins.bat](https://github.com/end2endzone/ShellAnything/blob/master/ci/windows/install_shellanything_plugins.bat) for details about _sa_plugin_time_ plugin. 40 | -------------------------------------------------------------------------------- /ci/appveyor/shell_extension_register.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate mandatory environment variables 4 | if "%CONFIGURATION%"=="" ( 5 | echo Please define 'Configuration' environment variable. 6 | exit /B 1 7 | ) 8 | if "%PLATFORM%"=="" ( 9 | echo Please define 'Platform' environment variable. 10 | exit /B 1 11 | ) 12 | 13 | :: Set PRODUCT_SOURCE_DIR root directory 14 | setlocal enabledelayedexpansion 15 | if "%PRODUCT_SOURCE_DIR%"=="" ( 16 | :: Delayed expansion is required within parentheses https://superuser.com/questions/78496/variables-in-batch-file-not-being-set-when-inside-if 17 | cd /d "%~dp0" 18 | cd ..\.. 19 | set PRODUCT_SOURCE_DIR=!CD! 20 | cd ..\.. 21 | echo PRODUCT_SOURCE_DIR set to '!PRODUCT_SOURCE_DIR!'. 22 | ) 23 | endlocal & set PRODUCT_SOURCE_DIR=%PRODUCT_SOURCE_DIR% 24 | echo. 25 | 26 | :: Validate administrative permissions... 27 | :: https://stackoverflow.com/questions/4051883/batch-script-how-to-check-for-admin-rights 28 | echo Administrative permissions required for registering the Shell Extension. 29 | net session >nul 2>&1 30 | if %errorLevel% == 0 ( 31 | echo Found administrative permissions. 32 | ) else ( 33 | echo Failure: Please open a command prompt with administrative permissions. 34 | pause 35 | exit /B 1 36 | ) 37 | 38 | :: Registering the Shell Extension. 39 | echo Proceeding with the Shell Extension registration. 40 | cd /d "%PRODUCT_SOURCE_DIR%\build\bin\%CONFIGURATION%" 41 | if "%CONFIGURATION%" == "Debug" ( 42 | regsvr32 sa.shellextension-d.dll 43 | ) else ( 44 | regsvr32 sa.shellextension.dll 45 | ) 46 | 47 | ::Return to launch folder 48 | cd /d %~dp0 49 | -------------------------------------------------------------------------------- /ci/appveyor/shell_extension_unregister.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | :: Validate mandatory environment variables 4 | if "%CONFIGURATION%"=="" ( 5 | echo Please define 'Configuration' environment variable. 6 | exit /B 1 7 | ) 8 | if "%PLATFORM%"=="" ( 9 | echo Please define 'Platform' environment variable. 10 | exit /B 1 11 | ) 12 | 13 | :: Set PRODUCT_SOURCE_DIR root directory 14 | setlocal enabledelayedexpansion 15 | if "%PRODUCT_SOURCE_DIR%"=="" ( 16 | :: Delayed expansion is required within parentheses https://superuser.com/questions/78496/variables-in-batch-file-not-being-set-when-inside-if 17 | cd /d "%~dp0" 18 | cd ..\.. 19 | set PRODUCT_SOURCE_DIR=!CD! 20 | cd ..\.. 21 | echo PRODUCT_SOURCE_DIR set to '!PRODUCT_SOURCE_DIR!'. 22 | ) 23 | endlocal & set PRODUCT_SOURCE_DIR=%PRODUCT_SOURCE_DIR% 24 | echo. 25 | 26 | :: Validate administrative permissions... 27 | :: https://stackoverflow.com/questions/4051883/batch-script-how-to-check-for-admin-rights 28 | echo Administrative permissions required for unregistering the Shell Extension. 29 | net session >nul 2>&1 30 | if %errorLevel% == 0 ( 31 | echo Found administrative permissions. 32 | ) else ( 33 | echo Failure: Please open a command prompt with administrative permissions. 34 | pause 35 | exit /B 1 36 | ) 37 | 38 | :: Unregistering the Shell Extension. 39 | echo Proceeding with the Shell Extension unregistration. 40 | cd /d "%PRODUCT_SOURCE_DIR%\build\bin\%CONFIGURATION%" 41 | if "%CONFIGURATION%" == "Debug" ( 42 | regsvr32 /u sa.shellextension-d.dll 43 | ) else ( 44 | regsvr32 /u sa.shellextension.dll 45 | ) 46 | 47 | ::Return to launch folder 48 | cd /d %~dp0 49 | -------------------------------------------------------------------------------- /src/core/ILiveProperty.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************************** 2 | * MIT License 3 | * 4 | * Copyright (c) 2018 Antoine Beauchamp 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | *********************************************************************************/ 24 | 25 | #include "ILiveProperty.h" 26 | 27 | namespace shellanything 28 | { 29 | 30 | ILiveProperty::ILiveProperty() 31 | { 32 | } 33 | 34 | ILiveProperty::~ILiveProperty() 35 | { 36 | } 37 | 38 | } //namespace shellanything 39 | -------------------------------------------------------------------------------- /src/core/IActionFactory.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************************** 2 | * MIT License 3 | * 4 | * Copyright (c) 2018 Antoine Beauchamp 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | *********************************************************************************/ 24 | 25 | #include "IActionFactory.h" 26 | 27 | namespace shellanything 28 | { 29 | 30 | IActionFactory::IActionFactory() 31 | { 32 | } 33 | 34 | IActionFactory::~IActionFactory() 35 | { 36 | } 37 | 38 | } //namespace shellanything 39 | -------------------------------------------------------------------------------- /src/core/ILoggerService.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************************** 2 | * MIT License 3 | * 4 | * Copyright (c) 2018 Antoine Beauchamp 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | *********************************************************************************/ 24 | 25 | #include "ILoggerService.h" 26 | 27 | namespace shellanything 28 | { 29 | 30 | ILoggerService::ILoggerService() 31 | { 32 | } 33 | 34 | ILoggerService::~ILoggerService() 35 | { 36 | } 37 | 38 | } //namespace shellanything 39 | -------------------------------------------------------------------------------- /src/core/IRandomService.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************************** 2 | * MIT License 3 | * 4 | * Copyright (c) 2018 Antoine Beauchamp 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | *********************************************************************************/ 24 | 25 | #include "IRandomService.h" 26 | 27 | namespace shellanything 28 | { 29 | 30 | IRandomService::IRandomService() 31 | { 32 | } 33 | 34 | IRandomService::~IRandomService() 35 | { 36 | } 37 | 38 | } //namespace shellanything 39 | -------------------------------------------------------------------------------- /src/core/IUpdateCallback.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************************** 2 | * MIT License 3 | * 4 | * Copyright (c) 2018 Antoine Beauchamp 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | *********************************************************************************/ 24 | 25 | #include "IUpdateCallback.h" 26 | 27 | namespace shellanything 28 | { 29 | 30 | IUpdateCallback::IUpdateCallback() 31 | { 32 | } 33 | 34 | IUpdateCallback::~IUpdateCallback() 35 | { 36 | } 37 | 38 | } //namespace shellanything 39 | -------------------------------------------------------------------------------- /src/core/IKeyboardService.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************************** 2 | * MIT License 3 | * 4 | * Copyright (c) 2018 Antoine Beauchamp 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | *********************************************************************************/ 24 | 25 | #include "IKeyboardService.h" 26 | 27 | namespace shellanything 28 | { 29 | 30 | IKeyboardService::IKeyboardService() 31 | { 32 | } 33 | 34 | IKeyboardService::~IKeyboardService() 35 | { 36 | } 37 | 38 | } //namespace shellanything 39 | -------------------------------------------------------------------------------- /src/core/IRegistryService.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************************** 2 | * MIT License 3 | * 4 | * Copyright (c) 2018 Antoine Beauchamp 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | *********************************************************************************/ 24 | 25 | #include "IRegistryService.h" 26 | 27 | namespace shellanything 28 | { 29 | 30 | IRegistryService::IRegistryService() 31 | { 32 | } 33 | 34 | IRegistryService::~IRegistryService() 35 | { 36 | } 37 | 38 | } //namespace shellanything 39 | -------------------------------------------------------------------------------- /src/core/IClipboardService.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************************** 2 | * MIT License 3 | * 4 | * Copyright (c) 2018 Antoine Beauchamp 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | *********************************************************************************/ 24 | 25 | #include "IClipboardService.h" 26 | 27 | namespace shellanything 28 | { 29 | 30 | IClipboardService::IClipboardService() 31 | { 32 | } 33 | 34 | IClipboardService::~IClipboardService() 35 | { 36 | } 37 | 38 | } //namespace shellanything 39 | -------------------------------------------------------------------------------- /src/api/sa_memory.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************************** 2 | * MIT License 3 | * 4 | * Copyright (c) 2018 Antoine Beauchamp 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | *********************************************************************************/ 24 | 25 | #include "shellanything/sa_memory.h" 26 | 27 | #include 28 | 29 | void* sa_memory_alloc(size_t size) 30 | { 31 | void* ptr = malloc(size); 32 | return ptr; 33 | } 34 | 35 | void sa_memory_free(void* ptr) 36 | { 37 | if (ptr) 38 | free(ptr); 39 | } 40 | -------------------------------------------------------------------------------- /src/core/IAttributeValidator.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************************** 2 | * MIT License 3 | * 4 | * Copyright (c) 2018 Antoine Beauchamp 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | *********************************************************************************/ 24 | 25 | #include "IAttributeValidator.h" 26 | 27 | namespace shellanything 28 | { 29 | 30 | IAttributeValidator::IAttributeValidator() 31 | { 32 | } 33 | 34 | IAttributeValidator::~IAttributeValidator() 35 | { 36 | } 37 | 38 | } //namespace shellanything 39 | -------------------------------------------------------------------------------- /src/core/IIconResolutionService.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************************** 2 | * MIT License 3 | * 4 | * Copyright (c) 2018 Antoine Beauchamp 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | *********************************************************************************/ 24 | 25 | #include "IIconResolutionService.h" 26 | 27 | namespace shellanything 28 | { 29 | 30 | IIconResolutionService::IIconResolutionService() 31 | { 32 | } 33 | 34 | IIconResolutionService::~IIconResolutionService() 35 | { 36 | } 37 | 38 | } //namespace shellanything 39 | -------------------------------------------------------------------------------- /src/core/IProcessLauncherService.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************************** 2 | * MIT License 3 | * 4 | * Copyright (c) 2018 Antoine Beauchamp 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | *********************************************************************************/ 24 | 25 | #include "IProcessLauncherService.h" 26 | 27 | namespace shellanything 28 | { 29 | 30 | IProcessLauncherService::IProcessLauncherService() 31 | { 32 | } 33 | 34 | IProcessLauncherService::~IProcessLauncherService() 35 | { 36 | } 37 | 38 | } //namespace shellanything 39 | -------------------------------------------------------------------------------- /src/tests/test_files/TestObjectFactory.testParseActionProperty.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /src/tests/test_files/issue040.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /src/file_explorer_renew/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | find_package(rapidassist REQUIRED) 2 | 3 | set(REFRESH_FILE_EXP_RESOURCE_FILES "" 4 | resource.h 5 | resource.rc 6 | ) 7 | 8 | add_executable(file_explorer_renew WIN32 9 | ${SHELLANYTHING_EXPORT_HEADER} 10 | ${SHELLANYTHING_VERSION_HEADER} 11 | ${SHELLANYTHING_CONFIG_HEADER} 12 | ${REFRESH_FILE_EXP_RESOURCE_FILES} 13 | file_explorer.cpp 14 | file_explorer.h 15 | framework.h 16 | main.cpp 17 | main.h 18 | targetver.h 19 | user_feedback.cpp 20 | user_feedback.h 21 | ) 22 | 23 | # Group external files as filter for Visual Studio 24 | source_group("Resource Files" FILES ${REFRESH_FILE_EXP_RESOURCE_FILES}) 25 | 26 | # Force UNICODE for target 27 | target_compile_definitions(file_explorer_renew PRIVATE -D_UNICODE -DUNICODE) 28 | 29 | # Force CMAKE_DEBUG_POSTFIX for executables 30 | set_target_properties(file_explorer_renew PROPERTIES DEBUG_POSTFIX ${CMAKE_DEBUG_POSTFIX}) 31 | 32 | # Define include directories for the executable. 33 | target_include_directories(file_explorer_renew 34 | PRIVATE 35 | ${GTEST_INCLUDE_DIR} 36 | rapidassist 37 | ${CMAKE_SOURCE_DIR}/src/shared 38 | ${CMAKE_BINARY_DIR}/include # for finding config.h 39 | ${CMAKE_BINARY_DIR} 40 | ) 41 | 42 | # Define linking dependencies. 43 | add_dependencies(file_explorer_renew sa.shared) 44 | target_link_libraries(file_explorer_renew 45 | PRIVATE 46 | sa.shared 47 | rapidassist 48 | ) 49 | 50 | install(TARGETS file_explorer_renew 51 | EXPORT shellanything-targets 52 | ARCHIVE DESTINATION ${SHELLANYTHING_INSTALL_LIB_DIR} 53 | LIBRARY DESTINATION ${SHELLANYTHING_INSTALL_LIB_DIR} 54 | RUNTIME DESTINATION ${SHELLANYTHING_INSTALL_BIN_DIR} 55 | ) 56 | -------------------------------------------------------------------------------- /src/file_explorer_renew/framework.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************** 2 | * MIT License 3 | * 4 | * Copyright (c) 2018 Antoine Beauchamp 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | *********************************************************************************/ 24 | 25 | #pragma once 26 | 27 | #include "targetver.h" 28 | #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers 29 | // Windows Header Files 30 | #include 31 | // C RunTime Header Files 32 | #include 33 | #include 34 | #include 35 | #include 36 | -------------------------------------------------------------------------------- /src/file_explorer_renew/targetver.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************** 2 | * MIT License 3 | * 4 | * Copyright (c) 2018 Antoine Beauchamp 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | *********************************************************************************/ 24 | 25 | #pragma once 26 | 27 | // // Including SDKDDKVer.h defines the highest available Windows platform. 28 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and 29 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. 30 | #include 31 | -------------------------------------------------------------------------------- /src/arguments.debugger.window/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | find_package(rapidassist REQUIRED) 2 | 3 | set(REFRESH_DEBUG_ARGS_WIN_RESOURCE_FILES "" 4 | resource.h 5 | showargs.rc 6 | ) 7 | 8 | add_executable(arguments.debugger.window WIN32 9 | ${SHELLANYTHING_EXPORT_HEADER} 10 | ${SHELLANYTHING_VERSION_HEADER} 11 | ${SHELLANYTHING_CONFIG_HEADER} 12 | ${REFRESH_DEBUG_ARGS_WIN_RESOURCE_FILES} 13 | arguments.cpp 14 | arguments.h 15 | framework.h 16 | gui.cpp 17 | targetver.h 18 | ) 19 | 20 | # Group external files as filter for Visual Studio 21 | source_group("Resource Files" FILES ${REFRESH_DEBUG_ARGS_WIN_RESOURCE_FILES}) 22 | 23 | # Force UNICODE for target 24 | target_compile_definitions(arguments.debugger.window PRIVATE -D_UNICODE -DUNICODE) 25 | 26 | # Force CMAKE_DEBUG_POSTFIX for executables 27 | set_target_properties(arguments.debugger.window PROPERTIES DEBUG_POSTFIX ${CMAKE_DEBUG_POSTFIX}) 28 | 29 | # Define include directories for the executable. 30 | target_include_directories(arguments.debugger.window 31 | PRIVATE 32 | ${GTEST_INCLUDE_DIR} 33 | rapidassist 34 | ${CMAKE_SOURCE_DIR}/src/shared 35 | ${CMAKE_SOURCE_DIR}/resources/icons 36 | ${CMAKE_BINARY_DIR}/include # for finding config.h 37 | ${CMAKE_BINARY_DIR} 38 | ) 39 | 40 | # Define linking dependencies. 41 | add_dependencies(arguments.debugger.window sa.shared) 42 | target_link_libraries(arguments.debugger.window 43 | PRIVATE 44 | sa.shared 45 | rapidassist 46 | ) 47 | 48 | install(TARGETS arguments.debugger.window 49 | EXPORT shellanything-targets 50 | ARCHIVE DESTINATION ${SHELLANYTHING_INSTALL_LIB_DIR} 51 | LIBRARY DESTINATION ${SHELLANYTHING_INSTALL_LIB_DIR} 52 | RUNTIME DESTINATION ${SHELLANYTHING_INSTALL_BIN_DIR} 53 | ) 54 | -------------------------------------------------------------------------------- /src/core/IntList.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************** 2 | * MIT License 3 | * 4 | * Copyright (c) 2018 Antoine Beauchamp 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | *********************************************************************************/ 24 | 25 | #ifndef SA_INTLIST_H 26 | #define SA_INTLIST_H 27 | 28 | #include "shellanything/export.h" 29 | #include "shellanything/config.h" 30 | #include 31 | 32 | namespace shellanything 33 | { 34 | 35 | /// 36 | /// A list of integer values. 37 | /// 38 | typedef std::vector IntList; 39 | 40 | } //namespace shellanything 41 | 42 | #endif //SA_INTLIST_H 43 | -------------------------------------------------------------------------------- /src/logger/glog/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(sa.logger.glog SHARED 2 | dllmain.cpp 3 | GlogLoggerService.cpp 4 | GlogLoggerService.h 5 | GlogUtils.cpp 6 | GlogUtils.h 7 | ) 8 | 9 | # Force CMAKE_DEBUG_POSTFIX for executables 10 | set_target_properties(sa.logger.glog PROPERTIES DEBUG_POSTFIX ${CMAKE_DEBUG_POSTFIX}) 11 | 12 | set(SA_GLOG_EXPORT_HEADER_FILENAME "sa_glog_export.h") 13 | set(SA_GLOG_EXPORT_HEADER ${CMAKE_BINARY_DIR}/src/logger/glog/${SA_GLOG_EXPORT_HEADER_FILENAME}) 14 | message("Generating ${SA_GLOG_EXPORT_HEADER_FILENAME} for shared library...") 15 | include (GenerateExportHeader) 16 | GENERATE_EXPORT_HEADER( sa.logger.glog 17 | BASE_NAME sa_glog 18 | EXPORT_MACRO_NAME SA_GLOG_EXPORT 19 | EXPORT_FILE_NAME ${SA_GLOG_EXPORT_HEADER} 20 | ) 21 | 22 | # Define include directories for the library. 23 | target_include_directories(sa.logger.glog 24 | PUBLIC 25 | $ # for clients using the installed library. 26 | PRIVATE 27 | rapidassist 28 | glog::glog 29 | ${CMAKE_SOURCE_DIR}/src/core 30 | ${CMAKE_BINARY_DIR}/src/logger/glog 31 | ${CMAKE_SOURCE_DIR}/src/shared 32 | ) 33 | 34 | # Define linking dependencies. 35 | add_dependencies(sa.logger.glog sa.core) 36 | target_link_libraries(sa.logger.glog 37 | PRIVATE 38 | rapidassist 39 | glog::glog 40 | sa.core 41 | sa.shared 42 | ) 43 | 44 | # Define files that will be part of the installation package. 45 | install(TARGETS sa.logger.glog 46 | EXPORT shellanything-targets 47 | ARCHIVE DESTINATION ${SHELLANYTHING_INSTALL_LIB_DIR} 48 | LIBRARY DESTINATION ${SHELLANYTHING_INSTALL_LIB_DIR} 49 | RUNTIME DESTINATION ${SHELLANYTHING_INSTALL_BIN_DIR} 50 | ) 51 | -------------------------------------------------------------------------------- /src/tests/TestIcon.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************** 2 | * MIT License 3 | * 4 | * Copyright (c) 2018 Antoine Beauchamp 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | *********************************************************************************/ 24 | 25 | #ifndef TEST_SA_ICON_H 26 | #define TEST_SA_ICON_H 27 | 28 | #include 29 | 30 | namespace shellanything 31 | { 32 | namespace test 33 | { 34 | class TestIcon : public ::testing::Test 35 | { 36 | public: 37 | virtual void SetUp(); 38 | virtual void TearDown(); 39 | }; 40 | 41 | } //namespace test 42 | } //namespace shellanything 43 | 44 | #endif //TEST_SA_ICON_H 45 | -------------------------------------------------------------------------------- /src/tests/TestMenu.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************** 2 | * MIT License 3 | * 4 | * Copyright (c) 2018 Antoine Beauchamp 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | *********************************************************************************/ 24 | 25 | #ifndef TEST_SA_MENU_H 26 | #define TEST_SA_MENU_H 27 | 28 | #include 29 | 30 | namespace shellanything 31 | { 32 | namespace test 33 | { 34 | class TestMenu : public ::testing::Test 35 | { 36 | public: 37 | virtual void SetUp(); 38 | virtual void TearDown(); 39 | }; 40 | 41 | } //namespace test 42 | } //namespace shellanything 43 | 44 | #endif //TEST_SA_MENU_H 45 | -------------------------------------------------------------------------------- /src/plugins/sa_plugin_demo/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.0) 2 | project(sa_plugin_demo) 3 | 4 | find_package(shellanything 0.8.0 REQUIRED) 5 | 6 | ## Debugging code 7 | #message(shellanything_FOUND= ${shellanything_FOUND}) 8 | #message(shellanything_LIBRARY= ${shellanything_LIBRARY}) 9 | #message(shellanything_LIBRARIES= ${shellanything_LIBRARIES}) 10 | #message(shellanything_INCLUDE= ${shellanything_INCLUDE}) 11 | #message(shellanything_INCLUDES= ${shellanything_INCLUDES}) 12 | #message(shellanything_INCLUDE_DIR= ${shellanything_INCLUDE_DIR}) 13 | #message(shellanything_VERSION= ${shellanything_VERSION}) 14 | #message(shellanything_DIR= ${shellanything_DIR}) 15 | 16 | add_library(sa_plugin_demo SHARED 17 | sa_plugin_demo.cpp 18 | ) 19 | 20 | # Force a debug postfix if none specified. 21 | # This allows publishing both release and debug binaries to the same location 22 | # and it helps to prevent linking with the wrong library on Windows. 23 | if(NOT CMAKE_DEBUG_POSTFIX) 24 | set(CMAKE_DEBUG_POSTFIX "-d") 25 | endif() 26 | 27 | # Force CMAKE_DEBUG_POSTFIX for executables and libraries 28 | set_target_properties(sa_plugin_demo PROPERTIES DEBUG_POSTFIX ${CMAKE_DEBUG_POSTFIX}) 29 | 30 | # Define include directories for the library. 31 | target_include_directories(sa_plugin_demo 32 | PRIVATE 33 | sa.api 34 | ) 35 | 36 | # Define linking dependencies. 37 | add_dependencies(sa_plugin_demo sa.api) 38 | target_link_libraries(sa_plugin_demo 39 | PRIVATE 40 | sa.api 41 | ) 42 | 43 | # Define files that will be part of the installation package. 44 | install(TARGETS sa_plugin_demo 45 | EXPORT sa_plugin_demo-targets 46 | ARCHIVE DESTINATION "lib" 47 | LIBRARY DESTINATION "lib" 48 | RUNTIME DESTINATION "bin" 49 | INCLUDES DESTINATION "include" 50 | ) 51 | -------------------------------------------------------------------------------- /src/tests/TestTools.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************** 2 | * MIT License 3 | * 4 | * Copyright (c) 2018 Antoine Beauchamp 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | *********************************************************************************/ 24 | 25 | #ifndef TEST_SA_TOOLS_H 26 | #define TEST_SA_TOOLS_H 27 | 28 | #include 29 | 30 | namespace shellanything 31 | { 32 | namespace test 33 | { 34 | class TestTools : public ::testing::Test 35 | { 36 | public: 37 | virtual void SetUp(); 38 | virtual void TearDown(); 39 | }; 40 | 41 | } //namespace test 42 | } //namespace shellanything 43 | 44 | #endif //TEST_SA_TOOLS_H 45 | -------------------------------------------------------------------------------- /src/tests/TestSaUtils.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************** 2 | * MIT License 3 | * 4 | * Copyright (c) 2018 Antoine Beauchamp 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | *********************************************************************************/ 24 | 25 | #ifndef TEST_SA_UTILS_H 26 | #define TEST_SA_UTILS_H 27 | 28 | #include 29 | 30 | namespace shellanything 31 | { 32 | namespace test 33 | { 34 | class TestSaUtils : public ::testing::Test 35 | { 36 | public: 37 | virtual void SetUp(); 38 | virtual void TearDown(); 39 | }; 40 | 41 | } //namespace test 42 | } //namespace shellanything 43 | 44 | #endif //TEST_WIN32_UTILS_H 45 | -------------------------------------------------------------------------------- /src/tests/TestIObject.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************** 2 | * MIT License 3 | * 4 | * Copyright (c) 2018 Antoine Beauchamp 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | *********************************************************************************/ 24 | 25 | #ifndef TEST_SA_IOBJECT_H 26 | #define TEST_SA_IOBJECT_H 27 | 28 | #include 29 | 30 | namespace shellanything 31 | { 32 | namespace test 33 | { 34 | class TestIObject : public ::testing::Test 35 | { 36 | public: 37 | virtual void SetUp(); 38 | virtual void TearDown(); 39 | }; 40 | 41 | } //namespace test 42 | } //namespace shellanything 43 | 44 | #endif //TEST_SA_IOBJECT_H 45 | -------------------------------------------------------------------------------- /src/tests/TestInputBox.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************** 2 | * MIT License 3 | * 4 | * Copyright (c) 2018 Antoine Beauchamp 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | *********************************************************************************/ 24 | 25 | #ifndef TEST_SA_CONTEXT_H 26 | #define TEST_SA_CONTEXT_H 27 | 28 | #include 29 | 30 | namespace shellanything 31 | { 32 | namespace test 33 | { 34 | class TestInputBox : public ::testing::Test 35 | { 36 | public: 37 | virtual void SetUp(); 38 | virtual void TearDown(); 39 | }; 40 | 41 | } //namespace test 42 | } //namespace shellanything 43 | 44 | #endif //TEST_SA_CONTEXT_H 45 | -------------------------------------------------------------------------------- /src/tests/TestUnicode.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************** 2 | * MIT License 3 | * 4 | * Copyright (c) 2018 Antoine Beauchamp 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | *********************************************************************************/ 24 | 25 | #ifndef TEST_SA_UNICODE_H 26 | #define TEST_SA_UNICODE_H 27 | 28 | #include 29 | 30 | namespace shellanything 31 | { 32 | namespace test 33 | { 34 | class TestUnicode : public ::testing::Test 35 | { 36 | public: 37 | virtual void SetUp(); 38 | virtual void TearDown(); 39 | }; 40 | 41 | } //namespace test 42 | } //namespace shellanything 43 | 44 | #endif //TEST_SA_UNICODE_H 45 | -------------------------------------------------------------------------------- /src/arguments.debugger.console/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | find_package(rapidassist REQUIRED) 2 | 3 | set(REFRESH_DEBUG_ARGS_CON_RESOURCE_FILES "" 4 | resource.h 5 | showargs.rc 6 | ) 7 | 8 | add_executable(arguments.debugger.console 9 | ${SHELLANYTHING_EXPORT_HEADER} 10 | ${SHELLANYTHING_VERSION_HEADER} 11 | ${SHELLANYTHING_CONFIG_HEADER} 12 | ${REFRESH_DEBUG_ARGS_CON_RESOURCE_FILES} 13 | ../arguments.debugger.window/arguments.cpp 14 | ../arguments.debugger.window/arguments.h 15 | framework.h 16 | main.cpp 17 | targetver.h 18 | ) 19 | 20 | # Group external files as filter for Visual Studio 21 | source_group("Resource Files" FILES ${REFRESH_DEBUG_ARGS_CON_RESOURCE_FILES}) 22 | 23 | # Force UNICODE for target 24 | target_compile_definitions(arguments.debugger.console PRIVATE -D_UNICODE -DUNICODE) 25 | 26 | # Force CMAKE_DEBUG_POSTFIX for executables 27 | set_target_properties(arguments.debugger.console PROPERTIES DEBUG_POSTFIX ${CMAKE_DEBUG_POSTFIX}) 28 | 29 | # Define include directories for the executable. 30 | target_include_directories(arguments.debugger.console 31 | PRIVATE 32 | ${GTEST_INCLUDE_DIR} 33 | rapidassist 34 | ${CMAKE_SOURCE_DIR}/src/shared 35 | ${CMAKE_SOURCE_DIR}/resources/icons 36 | ${CMAKE_BINARY_DIR}/include # for finding config.h 37 | ${CMAKE_BINARY_DIR} 38 | ) 39 | 40 | # Define linking dependencies. 41 | add_dependencies(arguments.debugger.console sa.shared) 42 | target_link_libraries(arguments.debugger.console 43 | PRIVATE 44 | sa.shared 45 | rapidassist 46 | ) 47 | 48 | install(TARGETS arguments.debugger.console 49 | EXPORT shellanything-targets 50 | ARCHIVE DESTINATION ${SHELLANYTHING_INSTALL_LIB_DIR} 51 | LIBRARY DESTINATION ${SHELLANYTHING_INSTALL_LIB_DIR} 52 | RUNTIME DESTINATION ${SHELLANYTHING_INSTALL_BIN_DIR} 53 | ) 54 | -------------------------------------------------------------------------------- /src/core/StringList.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************** 2 | * MIT License 3 | * 4 | * Copyright (c) 2018 Antoine Beauchamp 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | *********************************************************************************/ 24 | 25 | #ifndef SA_STRINGLIST_H 26 | #define SA_STRINGLIST_H 27 | 28 | #include "shellanything/export.h" 29 | #include "shellanything/config.h" 30 | #include 31 | #include 32 | 33 | namespace shellanything 34 | { 35 | 36 | /// 37 | /// A list of string values. 38 | /// 39 | typedef std::vector StringList; 40 | 41 | } //namespace shellanything 42 | 43 | #endif //SA_STRINGLIST_H 44 | -------------------------------------------------------------------------------- /src/tests/TestPlugins.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************** 2 | * MIT License 3 | * 4 | * Copyright (c) 2018 Antoine Beauchamp 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | *********************************************************************************/ 24 | 25 | #ifndef TEST_SA_PLUGINS_H 26 | #define TEST_SA_PLUGINS_H 27 | 28 | #include 29 | 30 | namespace shellanything 31 | { 32 | namespace test 33 | { 34 | class TestPlugins : public ::testing::Test 35 | { 36 | public: 37 | virtual void SetUp(); 38 | virtual void TearDown(); 39 | }; 40 | 41 | } //namespace test 42 | } //namespace shellanything 43 | 44 | #endif //TEST_SA_CONFIGMANAGER_H 45 | -------------------------------------------------------------------------------- /src/tests/TestWildcard.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************** 2 | * MIT License 3 | * 4 | * Copyright (c) 2018 Antoine Beauchamp 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | *********************************************************************************/ 24 | 25 | #ifndef TEST_SA_WILDCARD_H 26 | #define TEST_SA_WILDCARD_H 27 | 28 | #include 29 | 30 | namespace shellanything 31 | { 32 | namespace test 33 | { 34 | class TestWildcard : public ::testing::Test 35 | { 36 | public: 37 | virtual void SetUp(); 38 | virtual void TearDown(); 39 | }; 40 | 41 | } //namespace test 42 | } //namespace shellanything 43 | 44 | #endif //TEST_SA_WILDCARD_H 45 | -------------------------------------------------------------------------------- /src/tests/TestWin32Clipboard.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************** 2 | * MIT License 3 | * 4 | * Copyright (c) 2018 Antoine Beauchamp 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | *********************************************************************************/ 24 | 25 | #ifndef TEST_WIN32CLIPBOARD_H 26 | #define TEST_WIN32CLIPBOARD_H 27 | 28 | #include 29 | 30 | namespace win32clipboard 31 | { 32 | namespace test 33 | { 34 | class TestWin32Clipboard : public ::testing::Test 35 | { 36 | public: 37 | virtual void SetUp(); 38 | virtual void TearDown(); 39 | }; 40 | 41 | } //namespace test 42 | } //namespace win32clipboard 43 | 44 | #endif //TEST_WIN32CLIPBOARD_H 45 | -------------------------------------------------------------------------------- /src/tests/TestDemoSamples.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************** 2 | * MIT License 3 | * 4 | * Copyright (c) 2018 Antoine Beauchamp 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | *********************************************************************************/ 24 | 25 | #ifndef TEST_SA_CONTEXT_H 26 | #define TEST_SA_CONTEXT_H 27 | 28 | #include 29 | 30 | namespace shellanything 31 | { 32 | namespace test 33 | { 34 | class TestDemoSamples : public ::testing::Test 35 | { 36 | public: 37 | virtual void SetUp(); 38 | virtual void TearDown(); 39 | }; 40 | 41 | } //namespace test 42 | } //namespace shellanything 43 | 44 | #endif //TEST_SA_CONTEXT_H 45 | -------------------------------------------------------------------------------- /src/tests/TestLibExprtk.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************** 2 | * MIT License 3 | * 4 | * Copyright (c) 2018 Antoine Beauchamp 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | *********************************************************************************/ 24 | 25 | #ifndef TEST_SA_LIBEXPRTK_H 26 | #define TEST_SA_LIBEXPRTK_H 27 | 28 | #include 29 | 30 | namespace shellanything 31 | { 32 | namespace test 33 | { 34 | class TestLibExprtk : public ::testing::Test 35 | { 36 | public: 37 | virtual void SetUp(); 38 | virtual void TearDown(); 39 | }; 40 | 41 | } //namespace test 42 | } //namespace shellanything 43 | 44 | #endif //TEST_SA_LIBEXPRTK_H 45 | -------------------------------------------------------------------------------- /src/tests/TestValidator.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************** 2 | * MIT License 3 | * 4 | * Copyright (c) 2018 Antoine Beauchamp 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | *********************************************************************************/ 24 | 25 | #ifndef TEST_SA_VALIDATOR_H 26 | #define TEST_SA_VALIDATOR_H 27 | 28 | #include 29 | 30 | namespace shellanything 31 | { 32 | namespace test 33 | { 34 | class TestValidator : public ::testing::Test 35 | { 36 | public: 37 | virtual void SetUp(); 38 | virtual void TearDown(); 39 | }; 40 | 41 | } //namespace test 42 | } //namespace shellanything 43 | 44 | #endif //TEST_SA_VALIDATOR_H 45 | -------------------------------------------------------------------------------- /src/tests/TestWin32Utils.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************** 2 | * MIT License 3 | * 4 | * Copyright (c) 2018 Antoine Beauchamp 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | *********************************************************************************/ 24 | 25 | #ifndef TEST_WIN32_UTILS_H 26 | #define TEST_WIN32_UTILS_H 27 | 28 | #include 29 | 30 | namespace shellanything 31 | { 32 | namespace test 33 | { 34 | class TestWin32Utils : public ::testing::Test 35 | { 36 | public: 37 | virtual void SetUp(); 38 | virtual void TearDown(); 39 | }; 40 | 41 | } //namespace test 42 | } //namespace shellanything 43 | 44 | #endif //TEST_WIN32_UTILS_H 45 | -------------------------------------------------------------------------------- /src/tests/TestWorkspace.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************** 2 | * MIT License 3 | * 4 | * Copyright (c) 2018 Antoine Beauchamp 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | *********************************************************************************/ 24 | 25 | #ifndef TEST_SA_WORKSPACE_H 26 | #define TEST_SA_WORKSPACE_H 27 | 28 | #include 29 | 30 | namespace shellanything 31 | { 32 | namespace test 33 | { 34 | class TestWorkspace : public ::testing::Test 35 | { 36 | public: 37 | virtual void SetUp(); 38 | virtual void TearDown(); 39 | }; 40 | 41 | } //namespace test 42 | } //namespace shellanything 43 | 44 | #endif //TEST_SA_WORKSPACE_H 45 | -------------------------------------------------------------------------------- /src/tests/TestActionFile.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************** 2 | * MIT License 3 | * 4 | * Copyright (c) 2018 Antoine Beauchamp 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | *********************************************************************************/ 24 | 25 | #ifndef TEST_SA_ACTIONFILE_H 26 | #define TEST_SA_ACTIONFILE_H 27 | 28 | #include 29 | 30 | namespace shellanything 31 | { 32 | namespace test 33 | { 34 | class TestActionFile : public ::testing::Test 35 | { 36 | public: 37 | virtual void SetUp(); 38 | virtual void TearDown(); 39 | }; 40 | 41 | } //namespace test 42 | } //namespace shellanything 43 | 44 | #endif //TEST_SA_ACTIONFILE_H 45 | -------------------------------------------------------------------------------- /src/tests/TestActionStop.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************** 2 | * MIT License 3 | * 4 | * Copyright (c) 2018 Antoine Beauchamp 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | *********************************************************************************/ 24 | 25 | #ifndef TEST_SA_ACTIONSTOP_H 26 | #define TEST_SA_ACTIONSTOP_H 27 | 28 | #include 29 | 30 | namespace shellanything 31 | { 32 | namespace test 33 | { 34 | class TestActionStop : public ::testing::Test 35 | { 36 | public: 37 | virtual void SetUp(); 38 | virtual void TearDown(); 39 | }; 40 | 41 | } //namespace test 42 | } //namespace shellanything 43 | 44 | #endif //TEST_SA_ACTIONSTOP_H 45 | -------------------------------------------------------------------------------- /src/tests/TestGlogUtils.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************** 2 | * MIT License 3 | * 4 | * Copyright (c) 2018 Antoine Beauchamp 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | *********************************************************************************/ 24 | 25 | #ifndef TEST_SA_GLOG_UTILS_H 26 | #define TEST_SA_GLOG_UTILS_H 27 | 28 | #include 29 | 30 | namespace shellanything 31 | { 32 | namespace test 33 | { 34 | class TestGlogUtils : public ::testing::Test 35 | { 36 | public: 37 | virtual void SetUp(); 38 | virtual void TearDown(); 39 | }; 40 | 41 | } //namespace test 42 | } //namespace shellanything 43 | 44 | #endif //TEST_SA_GLOG_UTILS_H 45 | -------------------------------------------------------------------------------- /src/tests/TestShellExtension.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************** 2 | * MIT License 3 | * 4 | * Copyright (c) 2018 Antoine Beauchamp 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | *********************************************************************************/ 24 | 25 | #ifndef TEST_SA_SHELLEXT_H 26 | #define TEST_SA_SHELLEXT_H 27 | 28 | #include 29 | 30 | namespace shellanything 31 | { 32 | namespace test 33 | { 34 | class TestShellExtension : public ::testing::Test 35 | { 36 | public: 37 | virtual void SetUp(); 38 | virtual void TearDown(); 39 | }; 40 | 41 | } //namespace test 42 | } //namespace shellanything 43 | 44 | #endif //TEST_SA_SHELLEXT_H 45 | -------------------------------------------------------------------------------- /src/tests/TestEnvironment.h: -------------------------------------------------------------------------------- 1 | /********************************************************************************** 2 | * MIT License 3 | * 4 | * Copyright (c) 2018 Antoine Beauchamp 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in all 14 | * copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | * SOFTWARE. 23 | *********************************************************************************/ 24 | 25 | #ifndef TEST_SA_ENVIRONMENT_H 26 | #define TEST_SA_ENVIRONMENT_H 27 | 28 | #include 29 | 30 | namespace shellanything 31 | { 32 | namespace test 33 | { 34 | class TestEnvironment : public ::testing::Test 35 | { 36 | public: 37 | virtual void SetUp(); 38 | virtual void TearDown(); 39 | }; 40 | 41 | } //namespace test 42 | } //namespace shellanything 43 | 44 | #endif //TEST_SA_ENVIRONMENT_H 45 | --------------------------------------------------------------------------------