83 Commits

Author SHA1 Message Date
Curious Insatiable
4e7ca97def Update StartMenu.html (#2036) 2024-12-03 17:15:01 +01:00
ge0rdi
348d8fa54e ModernSettings: Use proper AllSystemSettings file on newer Win11
It seems that AllSystemSettings file name changed since 24H2.
We will look for new file first and then fall-back to original one.

Fixes #2033.
2024-12-03 10:45:41 +01:00
ge0rdi
5809217adc Use WiX Toolset v3.14 2024-12-03 10:24:03 +01:00
ge0rdi
b17d08b7a6 Fix start button/menu misalignment on touch-screen devices
Windows 11 22H2 introduced new touch-optimized taskbar for devices with
touch screen.

It seems that in this mode taskbar window size is bigger than actual
taskbar on screen. There is region defined for the window that covers
actually displayed portion of the window.

We should account for that region (if present) when obtaining taskbar
window dimensions.

More info about how to enable/disable touch taskbar:
https://www.elevenforum.com/t/turn-on-or-off-tablet-optimized-taskbar-in-windows-11.5133/
2024-12-03 10:24:03 +01:00
Curious Insatiable
cc3336ea26 Update StartMenu.html (#1795) 2024-12-03 10:21:50 +01:00
Curious Insatiable
32c75254b9 Update MenuADMX.txt (#1794) 2024-12-03 10:21:16 +01:00
Curious Insatiable
0aa78709e6 Update OpenShellADMX.txt (#1793) 2024-12-03 10:20:49 +01:00
Alex G
040d3d08d3 Update README.md (#1912) 2024-12-03 10:18:43 +01:00
ge0rdi
7770e3b98b Make FixFolderScroll available in all Windows versions (#1887) 2024-03-30 18:11:32 +01:00
ge0rdi
211d12be70 Don't install new Immersive skin on Windows 7
It uses metro colors so it works only on Win8+.

https://github.com/Open-Shell/Open-Shell-Menu/discussions/1866#discussioncomment-8906191
2024-03-25 20:10:34 +01:00
ge0rdi
ccf14504c9 Install new Immersive skin on all systems
There is no need to limit it just to Win10+ as it works well also on
older Windows.

https://github.com/Open-Shell/Open-Shell-Menu/discussions/1866
2024-03-13 19:54:52 +01:00
floppyD
d105c2567e Update pt-BR localization (#1846) 2024-02-18 12:17:09 +01:00
Lixkote
7e83c56d80 Update Start Menu style previews.
Update the old blurry start menu previews to a more modern pixel-perfect ones that resemble the new default immersive skin.
2024-02-17 12:48:58 +01:00
ge0rdi
8359cfcc81 Fix potential division by zero in DetectGrayscaleImage (#1696) 2023-09-13 10:27:02 +02:00
ge0rdi
aac293832c Avoid recursive Start menu initialization (#1675)
It may happen that during `InitStartMenuDLL` execution some component
posts a message that is then intercepted by (still active) `HookInject`
that will call `InitStartMenuDLL` again (and everything will repeat).

To prevent such endless recursion during initialization, we will make
sure that `InitStartMenuDLL` will be executed just once.
2023-08-24 20:55:13 +02:00
ge0rdi
422b0481bc Rename Align to corner of the screen setting to Align to edge of taskbar
The setting was improperly named and evoked that custom button should be
"moved" to the corner of screen even for center aligned taskbar on Windows 11.

What the setting does (and always did) is to align button to the edge of
taskbar (e.g. bottom edge in case of bottom taskbar) instead of centering it.

Hopefully it will be now more clear.
2023-08-24 11:42:26 +02:00
ge0rdi
c517e21465 Display "Searching..." progress always
Commit be8568c that introduced option to disable "See more results" also
changed behavior of "Searching..." item that indicates search in progress.

We will now make sure that the search progress indicator is displayed
always. No matter of options.
2023-08-16 15:39:47 +02:00
ge0rdi
8f1a696e94 Fix search results overlapping (#1648)
Changes in be8568 commit caused that under certain circumstances search
results may overlap "Search the Internet" item.
2023-08-16 15:39:47 +02:00
ge0rdi
4047d726ac Fix checkboxes in settings dialog with custom themes (#1630) 2023-08-16 15:39:47 +02:00
ge0rdi
4b26b4d9e6 Allow negative horizontal/vertical menu offsets (#1629)
Menu offsets were previously applied to s_MainMenuLimits.
Though when deciding where to put start menu (CalculateCorner) we are
now taking into account also position of start button (as since Win11 it
may not be in corner of the screen).

This broke negative menu offsets.

We will fix it by applying menu offsets in CalculateCorner as a last
step once we have determined start menu position.
This should make even more sense than previous approach.
2023-08-16 15:39:47 +02:00
ge0rdi
2f251c4f63 Separate taskbar icon for Open-Shell menu settings dialog
It will be now separate from Explorer's icons in taskbar.
Open-Shell icon will be displayed for better clarity.

https://github.com/Open-Shell/Open-Shell-Menu/issues/31#issuecomment-1656611895
2023-08-16 15:39:47 +02:00
RaNo99
d2985bab88 Update README.md
Works well on windows 11 already.
2023-07-31 18:02:32 +02:00
ge0rdi
f897241a08 Use nlohmann.json NuGet package instead of direct file
This way it will be easier to update to new version (when released).
And it will be also clear that we have dependency on this 3rd party
library.
2023-07-26 12:05:44 +02:00
ge0rdi
8f26cae3f0 Update bug_report.yml 2023-07-26 09:18:10 +02:00
ge0rdi
bbe2aa5d2f Setup: Change symbols package name to OpenShellSymbols_*
This way it will be nicely sorted after main OpenShellSetup_* package in assets page.
2023-07-24 18:37:35 +02:00
ge0rdi
12f1742f71 Show shutdown warning if there are multiple users logged in (#1303) 2023-07-24 18:09:49 +02:00
ge0rdi
931e5e831f Setup: Upload Utility.exe artifact
Utility tool can be used for multiple purposes - like enabling logging,
or manual uninstall.
We will upload and deploy it along other binaries.
2023-07-19 19:45:45 +02:00
ge0rdi
6c6e1515ef Utility: Various fixes
* Add files/keys from more recent Open-Shell versions
* Fix website links
2023-07-19 19:44:50 +02:00
ge0rdi
eb49564282 Update bug_report.yml 2023-07-13 09:13:03 +02:00
ge0rdi
7ea9f0ef1c Update bug_report.yml 2023-07-13 09:11:12 +02:00
ge0rdi
a0c1357f85 Update bug_report.yml 2023-07-13 09:10:04 +02:00
ge0rdi
4f8bb5ac57 Update bug_report.yml 2023-07-13 09:09:25 +02:00
ge0rdi
10f06b2794 Update bug_report.yml 2023-07-13 09:06:14 +02:00
ge0rdi
b2b734f295 Update BUILDME.txt
Update WiX version used for builds.
2023-07-07 09:15:15 +02:00
ge0rdi
9800b03b63 Remove GetDocRelativePath function
Help is always located in the same folder as binary that is using it.
2023-06-10 21:50:46 +02:00
ge0rdi
4377817bef Copy *L10N.ini files to output folder
So that they can be used during debugging.
2023-06-10 21:50:46 +02:00
ge0rdi
8fee436996 Build: Change output paths
All output (and intermediate) files will go to folder outside of source tree.
2023-06-10 21:50:46 +02:00
ge0rdi
9f949dd99b Remove old updating mechanism
We have our own updating already and don't plan to use old one.
There is no need to keep it around.
2023-06-09 17:52:18 +02:00
ge0rdi
714c98130a Simplify project files
Put common build settings into separate props file.
This way it will be much easier to do changes that should affect all
projects in the future.
2023-06-09 17:52:18 +02:00
ge0rdi
fc79fb76c1 Add menu animation fps logging 2023-06-09 14:08:22 +02:00
ge0rdi
9878f02f70 Improve menu animation timing
Use steady_clock with 1ms resolution instead of GetTickCount that has typical resolution 10-16ms.
This should result in more smooth menu animations.
2023-06-09 14:08:22 +02:00
ge0rdi
9c149334fa Properly round font size
Use MulDiv for proper rounding to nearest integer.

Fixes #1547.
2023-05-27 13:33:41 +02:00
ge0rdi
2130047bd6 Prevent potential Explorer crash
Fixes #1523
2023-04-09 19:07:58 +02:00
vodek3
bcc76dd6ab Help: Add custom button tutorial
Based on original Classic Shell tutorial:
http://www.classicshell.net/tutorials/buttontutorial.html
2023-02-07 19:54:54 +01:00
vodek3
e7bbe0e235 Help: Add skinning tutorial
Based on original Classic Shell tutorial:
http://www.classicshell.net/tutorials/skintutorial.html
2023-02-07 19:54:54 +01:00
vodek3
8ffed5651d Help: Change title of help window 2023-02-07 19:54:54 +01:00
vodek3
faa666b54d Skin: Adding the ability to localize Immersive/Immersive7 skins 2023-02-07 19:54:54 +01:00
ge0rdi
42aaaed045 Don't show first-time settings dialog if settings were imported from XML already (#1319) 2023-02-07 16:22:31 +01:00
ge0rdi
4705b35694 Fix Aero button alignment on multiple monitors (#1310)
Shift Aero button slightly when it is positioned in corner of any
monitor (not just primary one).

Moreover this shift should be done only for top/bottom taskbar.
2023-02-03 08:55:26 +01:00
ge0rdi
073035bee9 Override SearchFiles description in ADML
So that it will not depend on whether Windows Search service is running or not.

Fixes #1318
2023-01-31 14:05:18 +01:00
ge0rdi
ab4771e015 Setup: Don't install Classic IE by default
IE was deprecated long ago. There is no need to install Classic IE by
default.
Users will be still able to install it if they want.
2023-01-30 19:34:23 +01:00
ge0rdi
d0ad10429f Skin: Suppress warning regarding use of wildcards in project files
Skin projects are created just once and then they are not supposed to be
changed (from within VS).
So we can mark them as _read only_ projects.

https://learn.microsoft.com/en-us/cpp/build/reference/vcxproj-files-and-wildcards?view=msvc-170
2023-01-29 16:11:38 +01:00
Eli
7f56207fa1 Update README.md
Various formatting & style improvements
2023-01-25 06:55:05 +01:00
ge0rdi
21eea53dfd Properly scale default skin font according to DPI (#1110)
Original fix introduced in 528d15 was not correct.
The problem is that `SystemParametersInfo` uses DPI that current session
started with.

We should use `SystemParametersInfoForDpi` (available since Win10 1607)
that returns properly scaled font size.

Fixes #1110
2023-01-19 08:27:02 +01:00
ge0rdi
2d6fb1f3bb Setup: Recognize also /h and /help parameters (#1278)
Otherwise they will get passed to `msiexec` that will display its help
window that may confuse our users (as they expect our help to be displayed).
2023-01-13 16:42:16 +01:00
ge0rdi
528d15e6c9 Properly scale default skin font according to DPI (#1110)
If skin doesn't specify font to be used (such as `Classic Skin`) we will
use default system font (used for menus).

But we didn't scale the font size according to DPI.
This commit will fix that.

Fixes #1110
2023-01-13 16:42:16 +01:00
ge0rdi
615fe66544 Start menu keyboard hotkey fix for Win11 Insider (#1165)
Windows 11 Insider builds started to register global shell hotkey for
Win key (and Ctrl+Esc) that are used to trigger start menu.

The problem is that it is not (easily) possible to intercept messages
about these hotkeys.

Thus we will unregister them during init and install hook that will
prevent their further registration.

Fixes #1165
2023-01-13 16:42:16 +01:00
bonzibudd
01c1227895 New issue templates
Updated to use YAML format, along with some minor changes and additions.

 - Update format and description for further clarity
2023-01-09 07:03:05 +01:00
Eli Farmer
ecd17cb628 New default Immersive skin for Win10/11 (#538)
Fixes #538
2023-01-06 18:05:01 +01:00
ge0rdi
134b414f0b Use proper modern settings icon (#495)
Fixes #495
2023-01-06 18:05:01 +01:00
ge0rdi
421f55192e Properly scale modern task icons (#518)
Fixes #518
2023-01-06 18:05:01 +01:00
ge0rdi
cf763d3a32 Optimize main icon for size
Bigger icons are stored as PNG.
2023-01-06 18:05:01 +01:00
ge0rdi
4a417cc02c Skin: Common skin project props 2023-01-06 18:05:01 +01:00
Mr-Update
c6924a8b92 Update StartMenuL10N.ini (German) 2023-01-02 20:42:26 +01:00
ge0rdi
344aa60893 Select Apps icon based on Windows version
We now have nicer Apps icons for Win10/11 so we will select proper icon
based on Windows version.
2022-12-30 18:14:22 +01:00
Eli Farmer
7f492f3a9f Modern looking icons for Apps folder on Win10/11. 2022-12-30 18:14:22 +01:00
ge0rdi
1c95f17460 Fixed typo [skip ci] 2022-12-29 10:24:53 +01:00
ge0rdi
674a486c7f Make sure tray buttons are properly positioned when custom start button was created
Fixes #1232
2022-12-28 19:26:22 +01:00
ge0rdi
412accc066 Help: Fix StartMenu registry path 2022-12-28 19:26:22 +01:00
ge0rdi
ba24c72347 Simplify "advanced_boot" command handling
`SHUTDOWN_RESTART_BOOTOPTIONS` should be supported at least since Win8.1
2022-12-28 19:26:22 +01:00
ge0rdi
11dd302689 Properly handle Windows updates during shutdown
Windows updates are applied on shutdown/reboot no matter of flags used
in ExitWindowsEx (or InitiateShutdown).

Windows start menu shutdown code handles updates in special way.
If there are updates prepared and shutdown/reboot is selected it will
use `UpdateSessionOrchestrator` object to dismiss updates and carry out
the command.

We will now do similar thing.

Fixes #1250
2022-12-28 19:26:22 +01:00
ge0rdi
58bc654304 Allow shutdown even if limited admin doesn't have shutdown privilege
Shutdown privilege can be removed from users (in Local Security Policy settings).
This will remove it also from limited admin.

Thus admin will be unable to shutdown machine (because Explorer runs as
limited admin by default).

In such case we will attempt to do silent elevation and proceed with
shutdown using `SystemSettingsAdminFlows.exe` helper.

Fixes #1015
2022-12-28 19:26:22 +01:00
ge0rdi
c5410326fe Use InitiateShutdown instead of ExitWindowsEx for shutdown/restart
Windows start menu uses it that way too.
ExitWindowsEx is also annotated as legacy API in SDK.

We will also put shutdown handling into separate function, so that we
have it handled at one place (will make further changes easier).
2022-12-28 19:26:22 +01:00
ge0rdi
db0e768f81 Proper sleep operation on systems with connected standby enabled
Standard API for sleep (`SetSuspendState`) seems to do nothing on
systems with connected standby.

Windows start menu calls `NtPowerInformation(ScreenOff)` on such systems instead.
This is implemented in `shutdownux!ShutdownViewModel::_InitiatePowerTransition` function.

Fixes #719
2022-12-28 19:26:22 +01:00
ge0rdi
23a1dc7e07 Added new option "Require Alt key for accelerators"
With the option enabled keyboard accelerators will be triggered only if Alt key
is pressed as well.

This is how typical Windows keyboard accelerators work, to avoid
confusion with regular key presses.

Fixes #117
2022-12-28 19:26:22 +01:00
ge0rdi
a7b6a80799 Added new option "Enable accelerators"
It will control whether keyboard accelerators are used in start menu.

Disabling it can be helpful for people that tend to hit some accelerator by mistake.

Fixes #447
2022-12-28 19:26:22 +01:00
ge0rdi
fad20ba4c7 Activate start menu window only after search focus was set
Start menu window was activated early in the process of its creation.
This means it was receiving input before focus was set to search bar.
And that may have lead to unwanted use of keyboard accelerators.

We need to make sure that window is activated (receives input) only once
focus was set to search box.

Fixes #1068
2022-12-28 19:26:22 +01:00
ge0rdi
2a7fc0034c ModernSettings: Remove duplicates
Windows started to add newer version of settings to settings description
file. These have the same description as older settings, but use
different parameters.

Unfortunately old settings are still present.
This causes our modern settings folder to contain duplicates.
And also we tend to use older setting definitions that no longer work
properly.

Thus we will de-duplicate parsed settings and try to keep newer ones
(that should work better).
New settings tend to have numeric suffix, so we will keep those with
biggest suffix.

Fixes #1031
2022-12-28 19:26:22 +01:00
ge0rdi
658981adf7 ModernSettings: Improve indirect string loading
Defender settings on Win11 use indirect strings in form:
`@{Microsoft.SecHealthUI_8wekyb3d8bbwe?ms-resource://Microsoft.SecHealthUI/Resources/DisplayName}`

`SHLoadIndirectString` is unable to load such indirect string, because it expects full
package name (instead of package family name).

In such case we will convert package family name to full name and try again.
2022-12-28 19:26:22 +01:00
ge0rdi
b6f5402220 Fix taskbar texture on Windows 11
- Taskbar is now handled by taskbar.dll, so we need to hook APIs there
  - TaskList window (MSTaskListWClass) is not visible so we need to
    hook messages of its parent TaskBand window (MSTaskSwWClass)

Fixes #1230
2022-12-28 19:26:22 +01:00
ge0rdi
de0d6cff40 Show start menu next to taskbar by default
This changes default value of `Show next to taskbar (when the taskbar is vertical)` setting to `enabled`.

It makes more sense to have menu next to vertical taskbar than to
overlap it (and hide taskbar buttons).

Windows start menu does it like that too.
2022-12-28 19:26:22 +01:00
ge0rdi
881787bed6 Proper start menu alignment in case of vertical taskbar Windows 11
Fixes #1231
2022-12-28 19:26:22 +01:00
ge0rdi
e25b656275 Use VS2022
Note that `_ATL_MODULES` define is now needed for compatibility with C++
conformance mode (`/permissive-`).
More details here:
https://developercommunity.visualstudio.com/t/Crash-in-ATL-CEnumerator::MoveNext-after/10116823
2022-12-28 19:26:22 +01:00
333 changed files with 5635 additions and 28862 deletions

View File

@@ -1,31 +0,0 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Version:**
- Open-Shell: [e.g. 4.4.131]
- OS: [e.g. Windows 10 1903]
**Additional context**
Add any other context about the problem here.

61
.github/ISSUE_TEMPLATE/bug_report.yml vendored Normal file
View File

@@ -0,0 +1,61 @@
name: Bug report
description: Create a report to help us improve
labels: Bug
body:
- type: markdown
attributes:
value: |
**Please, make sure you are using [latest](https://github.com/Open-Shell/Open-Shell-Menu/releases) `Open-Shell` build before reporting a bug.**
Especially on `Windows 11` you should use 4.4.190 (or newer).
- type: textarea
attributes:
label: Describe the bug
description: A clear and concise description of what the bug is. Screenshots are also encouraged.
placeholder: Please use English for reports and screenshots to allow maintainers to easily understand the issue.
validations:
required: true
- type: dropdown
attributes:
label: Area of issue
description: What component(s) of Open-Shell does this involve? Select all that apply.
multiple: true
options:
- Start menu
- Taskbar
- Windows Explorer
- Internet Explorer
- Installation/Other
validations:
required: true
- type: textarea
attributes:
label: To reproduce
description: Steps to reproduce the behavior
placeholder: |
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
validations:
required: true
- type: textarea
attributes:
label: Expected behavior
placeholder: What did you expect to happen?
- type: input
attributes:
label: Open-Shell version
placeholder: e.g. 4.4.170
validations:
required: true
- type: input
attributes:
label: Windows version
placeholder: e.g. Windows 10 22H2
validations:
required: true
- type: textarea
attributes:
label: Additional context
description: Add any other context about the problem here.

5
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Github Discussions
url: https://github.com/Open-Shell/Open-Shell-Menu/discussions
about: Please ask and answer questions here.

View File

@@ -1,20 +0,0 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: Enhancement/Feature Request
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

View File

@@ -0,0 +1,39 @@
name: Feature request
description: Suggest an idea for this project
labels: Enhancement/Feature Request
body:
- type: textarea
attributes:
label: Is your feature request related to a problem? Please describe.
description: A clear and concise description of what the problem is.
placeholder: Ex. I'm always frustrated when [...]
validations:
required: true
- type: textarea
attributes:
label: Describe the solution you'd like
description: A clear and concise description of what you want to happen.
validations:
required: true
- type: dropdown
attributes:
label: Area of issue
description: What component(s) of Open-Shell does this involve? Select all that apply.
multiple: true
options:
- Start menu
- Taskbar
- Windows Explorer
- Internet Explorer
- Installation/Other
validations:
required: true
- type: textarea
attributes:
label: Alternatives you've considered
description: A clear and concise description of any alternative solutions or features you've considered.
- type: textarea
attributes:
label: Additional context
description: Add any other context or screenshots about the feature request here.

2
.gitignore vendored
View File

@@ -68,6 +68,7 @@ StyleCopReport.xml
*_i.c
*_p.c
*_i.h
*_h.h
*.ilk
*.meta
*.obj
@@ -348,7 +349,6 @@ ASALocalRun/
*.PVS-Studio.*
# Classic-Shell specific ignores
Src/StartMenu/Skins/
Src/Setup/Output/
Src/Setup/Final/
Src/Setup/Temp/

View File

@@ -1,23 +1,30 @@
## Open-Shell <img src=/Src/Setup/OpenShell.ico width="64" />
<a href="#"><img src=/Src/Setup/OpenShell.ico width="80" align="left"/></a>
# Open-Shell
A collection of utilities bringing back classic features to Windows.
*Originally* **[Classic Shell](http://www.classicshell.net)** *by [Ivo Beltchev](https://sourceforge.net/u/ibeltchev/profile/)*
[![GitHub Release](https://img.shields.io/github/release/Open-Shell/Open-Shell-Menu.svg)](https://github.com/Open-Shell/Open-Shell-Menu/releases/latest) [![GitHub Pre-Release](https://img.shields.io/github/release/Open-Shell/Open-Shell-Menu/all.svg)](https://github.com/Open-Shell/Open-Shell-Menu/releases) [![Build status](https://ci.appveyor.com/api/projects/status/2wj5x5qoypfjj0tr/branch/master?svg=true)](https://ci.appveyor.com/project/passionate-coder/open-shell-menu/branch/master) [![GitQ](https://gitq.com/badge.svg)](https://gitq.com/passionate-coder/Classic-Start) [![Gitter chat](https://img.shields.io/gitter/room/badges/shields.svg?color=lightseagreen)](https://gitter.im/open-shell/Lobby) [![Discord](https://img.shields.io/discord/757701054782636082?color=mediumslateblue&label=Discord&logo=discord&logoColor=white)](https://discord.gg/7H6arr5)
[![GitHub Release](https://img.shields.io/github/release/Open-Shell/Open-Shell-Menu.svg?style=flat-square)](https://github.com/Open-Shell/Open-Shell-Menu/releases/latest)&nbsp;&nbsp;[![GitHub Pre-Release](https://img.shields.io/github/release/Open-Shell/Open-Shell-Menu/all.svg?style=flat-square)](https://github.com/Open-Shell/Open-Shell-Menu/releases)&nbsp;&nbsp;[![Build status](https://img.shields.io/appveyor/build/passionate-coder/Open-Shell-Menu?logo=appveyor&style=flat-square)](https://ci.appveyor.com/project/passionate-coder/open-shell-menu/branch/master)&nbsp;&nbsp;[![GitQ](https://img.shields.io/badge/gitq-discussions-1577fa?style=flat-square)](https://gitq.com/passionate-coder/Classic-Start)&nbsp;&nbsp;[![Gitter chat](https://img.shields.io/gitter/room/badges/shields.svg?color=lightseagreen&logo=gitter&style=flat-square)](https://gitter.im/open-shell/Lobby)&nbsp;&nbsp;[![Discord](https://img.shields.io/discord/757701054782636082?color=mediumslateblue&label=Discord&logo=discord&logoColor=white&style=flat-square)](https://discord.gg/7H6arr5)
[Homepage](https://open-shell.github.io/Open-Shell-Menu)
[Gitter Discussion rooms](https://gitter.im/Open-Shell)
[Open-Shell Homepage](https://open-shell.github.io/Open-Shell-Menu)
### Features
- Classic style Start Menu for Windows 7, 8, 8.1, 10
- Classic style Start menu for Windows 7, 8, 8.1, 10, and 11
- Toolbar for Windows Explorer
- Explorer status bar with file size and disk space
- Classic copy UI (Windows 7 only)
- Show file size in Explorer status bar
- Title bar and status bar for Internet Explorer
### Download
You can find the latest stable version here:
[![GitHub All Releases](https://img.shields.io/github/downloads/Open-Shell/Open-Shell-Menu/total?style=for-the-badge)](https://github.com/Open-Shell/Open-Shell-Menu/releases/latest)
[![GitHub All Releases](https://img.shields.io/github/downloads/Open-Shell/Open-Shell-Menu/total?style=for-the-badge&color=4bc2ee&logo=github)](https://github.com/Open-Shell/Open-Shell-Menu/releases/latest)
### ⚠️ Windows for ARM compatibility ⚠️
Open-Shell is not compatible with Windows for ARM. If you install it on a Windows for ARM installation (ex. using Parallels Desktop on an Apple Silicon Mac), you will no longer be able to log into your account the next time you reboot. Please refrain from installing Open-Shell on Windows for ARM.
### Temporary Translation/Language Solution
1. Download [language DLL](https://coddec.github.io/Classic-Shell/www.classicshell.net/translations/index.html)

View File

@@ -5,12 +5,12 @@ for other languages.
The final files (installers, archives) are saved to the Setup\Final folder.
You need the following tools:
Visual Studio 2019 (Community Edition is enough)
Visual Studio 2022 (Community Edition is enough)
- Desktop development with C++ workload
- Windows 10 SDK (10.0.19041.0) for Desktop C++
- Windows 11 SDK (10.0.22621.0) for Desktop C++
- Visual C++ ATL support
HTML Help Workshop
WiX 3.7
WiX 3.14
7-Zip
It is possible to convert the projects to newer versions of Visual Studio and newer SDKs.
Newer versions of WiX will probably work fine.

View File

@@ -7,7 +7,7 @@
#pragma once
#include "resource.h" // main symbols
#include "ClassicExplorer_i.h"
#include "ClassicExplorer_h.h"
#include <vector>
// CClassicCopyExt

View File

@@ -6,7 +6,7 @@
#include "stdafx.h"
#include "resource.h"
#include "ClassicExplorer_i.h"
#include "ClassicExplorer_h.h"
#include "dllmain.h"
// Used to determine whether the DLL can be unloaded by OLE

View File

@@ -33,337 +33,47 @@
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Setup|Win32'" Label="Configuration">
<PropertyGroup Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<UseOfAtl>Static</UseOfAtl>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<UseOfAtl>Static</UseOfAtl>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<UseOfAtl>Static</UseOfAtl>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Setup|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<UseOfAtl>Static</UseOfAtl>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<UseOfAtl>Static</UseOfAtl>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
<UseOfAtl>Static</UseOfAtl>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization Condition="'$(Configuration)'!='Debug'">true</WholeProgramOptimization>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Setup|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\Version.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\Version.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\Version.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Setup|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\Version.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\Version.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\Version.props" />
<ImportGroup Label="PropertySheets">
<Import Project="..\Common.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<IgnoreImportLibrary>true</IgnoreImportLibrary>
<LinkIncremental>true</LinkIncremental>
<PropertyGroup Condition="'$(Platform)'=='Win32'">
<TargetName>$(ProjectName)32</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<OutDir>$(Configuration)64\</OutDir>
<IntDir>$(Configuration)64\</IntDir>
<IgnoreImportLibrary>true</IgnoreImportLibrary>
<LinkIncremental>true</LinkIncremental>
<PropertyGroup Condition="'$(Platform)'=='x64'">
<TargetName>$(ProjectName)64</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<PropertyGroup>
<IgnoreImportLibrary>true</IgnoreImportLibrary>
<LinkIncremental>false</LinkIncremental>
<TargetName>$(ProjectName)32</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<OutDir>$(Configuration)64\</OutDir>
<IntDir>$(Configuration)64\</IntDir>
<IgnoreImportLibrary>true</IgnoreImportLibrary>
<LinkIncremental>false</LinkIncremental>
<TargetName>$(ProjectName)64</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Setup|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<IgnoreImportLibrary>true</IgnoreImportLibrary>
<LinkIncremental>false</LinkIncremental>
<TargetName>$(ProjectName)32</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Setup|x64'">
<OutDir>$(Configuration)64\</OutDir>
<IntDir>$(Configuration)64\</IntDir>
<IgnoreImportLibrary>true</IgnoreImportLibrary>
<LinkIncremental>false</LinkIncremental>
<TargetName>$(ProjectName)64</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Midl>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
<GenerateStublessProxies>true</GenerateStublessProxies>
<HeaderFileName>ClassicExplorer_i.h</HeaderFileName>
<DllDataFileName />
<InterfaceIdentifierFileName>ClassicExplorer_i.c</InterfaceIdentifierFileName>
<ProxyFileName>ClassicExplorer_p.c</ProxyFileName>
<ValidateAllParameters>true</ValidateAllParameters>
</Midl>
<ItemDefinitionGroup>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
<PreprocessorDefinitions>_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(IntDir);..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<AdditionalDependencies>oleacc.lib;comctl32.lib;uxtheme.lib;dwmapi.lib;winmm.lib;htmlhelp.lib;wininet.lib;wintrust.lib;crypt32.lib;Netapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<ModuleDefinitionFile>$(TargetName).def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'!='Setup'">
<Link>
<RegisterOutput>true</RegisterOutput>
<AdditionalDependencies>oleacc.lib;comctl32.lib;uxtheme.lib;dwmapi.lib;winmm.lib;htmlhelp.lib;wininet.lib;wintrust.lib;crypt32.lib;Netapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<ModuleDefinitionFile>.\$(TargetName).def</ModuleDefinitionFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<PerUserRedirection>true</PerUserRedirection>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Midl>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
<GenerateStublessProxies>true</GenerateStublessProxies>
<HeaderFileName>ClassicExplorer_i.h</HeaderFileName>
<DllDataFileName />
<InterfaceIdentifierFileName>ClassicExplorer_i.c</InterfaceIdentifierFileName>
<ProxyFileName>ClassicExplorer_p.c</ProxyFileName>
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(IntDir);..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<RegisterOutput>true</RegisterOutput>
<AdditionalDependencies>oleacc.lib;comctl32.lib;uxtheme.lib;dwmapi.lib;winmm.lib;htmlhelp.lib;wininet.lib;wintrust.lib;crypt32.lib;Netapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<ModuleDefinitionFile>.\$(TargetName).def</ModuleDefinitionFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<PerUserRedirection>true</PerUserRedirection>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Midl>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
<GenerateStublessProxies>true</GenerateStublessProxies>
<HeaderFileName>ClassicExplorer_i.h</HeaderFileName>
<DllDataFileName />
<InterfaceIdentifierFileName>ClassicExplorer_i.c</InterfaceIdentifierFileName>
<ProxyFileName>ClassicExplorer_p.c</ProxyFileName>
<ValidateAllParameters>true</ValidateAllParameters>
</Midl>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(IntDir);..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<RegisterOutput>true</RegisterOutput>
<AdditionalDependencies>oleacc.lib;comctl32.lib;uxtheme.lib;dwmapi.lib;winmm.lib;htmlhelp.lib;wininet.lib;wintrust.lib;crypt32.lib;Netapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<ModuleDefinitionFile>.\$(TargetName).def</ModuleDefinitionFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<PerUserRedirection>true</PerUserRedirection>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Midl>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
<GenerateStublessProxies>true</GenerateStublessProxies>
<HeaderFileName>ClassicExplorer_i.h</HeaderFileName>
<DllDataFileName />
<InterfaceIdentifierFileName>ClassicExplorer_i.c</InterfaceIdentifierFileName>
<ProxyFileName>ClassicExplorer_p.c</ProxyFileName>
</Midl>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(IntDir);..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<RegisterOutput>true</RegisterOutput>
<AdditionalDependencies>oleacc.lib;comctl32.lib;uxtheme.lib;dwmapi.lib;winmm.lib;htmlhelp.lib;wininet.lib;wintrust.lib;crypt32.lib;Netapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<ModuleDefinitionFile>.\$(TargetName).def</ModuleDefinitionFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<PerUserRedirection>true</PerUserRedirection>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Setup|Win32'">
<Midl>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
<GenerateStublessProxies>true</GenerateStublessProxies>
<HeaderFileName>ClassicExplorer_i.h</HeaderFileName>
<DllDataFileName />
<InterfaceIdentifierFileName>ClassicExplorer_i.c</InterfaceIdentifierFileName>
<ProxyFileName>ClassicExplorer_p.c</ProxyFileName>
<ValidateAllParameters>true</ValidateAllParameters>
</Midl>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;_USRDLL;BUILD_SETUP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(IntDir);..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<AdditionalDependencies>oleacc.lib;comctl32.lib;uxtheme.lib;dwmapi.lib;winmm.lib;htmlhelp.lib;wininet.lib;wintrust.lib;crypt32.lib;Netapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<ModuleDefinitionFile>.\$(TargetName).def</ModuleDefinitionFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Setup|x64'">
<Midl>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
<GenerateStublessProxies>true</GenerateStublessProxies>
<HeaderFileName>ClassicExplorer_i.h</HeaderFileName>
<DllDataFileName />
<InterfaceIdentifierFileName>ClassicExplorer_i.c</InterfaceIdentifierFileName>
<ProxyFileName>ClassicExplorer_p.c</ProxyFileName>
</Midl>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;_USRDLL;BUILD_SETUP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(IntDir);..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<AdditionalDependencies>oleacc.lib;comctl32.lib;uxtheme.lib;dwmapi.lib;winmm.lib;htmlhelp.lib;wininet.lib;wintrust.lib;crypt32.lib;Netapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<ModuleDefinitionFile>.\$(TargetName).def</ModuleDefinitionFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="ClassicCopy.cpp" />
<ClCompile Include="ClassicCopyExt.cpp" />
@@ -390,7 +100,9 @@
<None Include="ClassicExplorer64.def" />
<None Include="ExplorerBand.rgs" />
<None Include="ExplorerBHO.rgs" />
<None Include="ExplorerL10N.ini" />
<None Include="ExplorerL10N.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="ShareOverlay.rgs" />
</ItemGroup>
<ItemGroup>
@@ -398,7 +110,7 @@
</ItemGroup>
<ItemGroup>
<ClInclude Include="ClassicCopyExt.h" />
<ClInclude Include="ClassicExplorer_i.h" />
<ClInclude Include="ClassicExplorer_h.h" />
<ClInclude Include="dllmain.h" />
<ClInclude Include="ExplorerBand.h" />
<ClInclude Include="ExplorerBHO.h" />

View File

@@ -114,7 +114,7 @@
<ClInclude Include="Resource.h">
<Filter>Resource Files</Filter>
</ClInclude>
<ClInclude Include="ClassicExplorer_i.h">
<ClInclude Include="ClassicExplorer_h.h">
<Filter>Generated Files</Filter>
</ClInclude>
</ItemGroup>

View File

@@ -21,128 +21,26 @@
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Setup|Win32'" Label="Configuration">
<PropertyGroup Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<UseOfAtl>Static</UseOfAtl>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<UseOfAtl>Static</UseOfAtl>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
<UseOfAtl>Static</UseOfAtl>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization Condition="'$(Configuration)'!='Debug'">true</WholeProgramOptimization>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Setup|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\Version.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\Version.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\Version.props" />
<ImportGroup Label="PropertySheets">
<Import Project="..\..\Common.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>..\$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>..\$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Setup|Win32'">
<OutDir>..\$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ItemDefinitionGroup>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<WarningLevel>Level3</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<Link>
<AdditionalDependencies>shlwapi.lib;comctl32.lib;psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>..\..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<WarningLevel>Level3</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<Link>
<AdditionalDependencies>shlwapi.lib;comctl32.lib;psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Setup|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>..\..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;BUILD_SETUP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<WarningLevel>Level3</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<Link>
<AdditionalDependencies>shlwapi.lib;comctl32.lib;psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
</Link>
</ItemDefinitionGroup>
<ItemGroup>

View File

@@ -64,6 +64,9 @@ LRESULT CALLBACK CExplorerBHO::SubclassTreeParentProc( HWND hWnd, UINT uMsg, WPA
// - change the tree styles to achieve different looks
LRESULT CALLBACK CExplorerBHO::SubclassTreeProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, UINT_PTR uIdSubclass, DWORD_PTR dwRefData )
{
if (GetTlsData()->bho == NULL)
return DefSubclassProc(hWnd, uMsg, wParam, lParam);
if (uMsg==TVM_ENSUREVISIBLE && (dwRefData&1))
{
// HACK! there is a bug in Win7 Explorer and when the selected folder is expanded for the first time it sends TVM_ENSUREVISIBLE for
@@ -240,7 +243,7 @@ LRESULT CALLBACK CExplorerBHO::HookExplorer( int nCode, WPARAM wParam, LPARAM lP
if (GetClassName(parent,name,_countof(name)) && _wcsicmp(name,L"CabinetWClass")==0)
{
DWORD_PTR settings=0;
if (GetWinVersion()==WIN_VER_WIN7 && GetSettingBool(L"FixFolderScroll"))
if (GetSettingBool(L"FixFolderScroll"))
settings|=1;
SetWindowSubclass(hWnd,SubclassTreeProc,'CLSH',settings);
PostMessage(hWnd,TVM_SETEXTENDEDSTYLE,TVS_EX_FADEINOUTEXPANDOS|TVS_EX_AUTOHSCROLL|0x80000000,0);

View File

@@ -9,7 +9,7 @@
#include <vector>
#include <map>
#include "ClassicExplorer_i.h"
#include "ClassicExplorer_h.h"
#include "ComHelper.h"
#include <shdispid.h>
@@ -53,7 +53,7 @@ public:
m_ZoneWidth=0;
}
DECLARE_REGISTRY_RESOURCEID(IDR_EXPLORERBHO)
DECLARE_REGISTRY_RESOURCEID_V2_WITHOUT_MODULE(IDR_EXPLORERBHO, CExplorerBHO)
BEGIN_SINK_MAP( CExplorerBHO )
SINK_ENTRY_EX(1, DIID_DWebBrowserEvents2, DISPID_DOCUMENTCOMPLETE, OnDocumentComplete)

View File

@@ -6,7 +6,7 @@
#pragma once
#include "resource.h"
#include "ClassicExplorer_i.h"
#include "ClassicExplorer_h.h"
#include "SettingsParser.h"
#include <vector>
@@ -178,7 +178,7 @@ class ATL_NO_VTABLE CExplorerBand :
public:
CExplorerBand( void );
DECLARE_REGISTRY_RESOURCEID(IDR_EXPLORERBAND)
DECLARE_REGISTRY_RESOURCEID_V2_WITHOUT_MODULE(IDR_EXPLORERBAND, CExplorerBand)
BEGIN_SINK_MAP( CExplorerBand )
SINK_ENTRY_EX(1, DIID_DWebBrowserEvents2, DISPID_NAVIGATECOMPLETE2, OnNavigateComplete)

View File

@@ -621,7 +621,7 @@ void UpdateSettings( void )
UpdateSetting(L"ShowCaption",CComVariant(0),false); HideSetting(L"ShowCaption",true);
UpdateSetting(L"ShowIcon",CComVariant(0),false); HideSetting(L"ShowIcon",true);
UpdateSetting(L"FixFolderScroll",CComVariant(0),false); HideSetting(L"FixFolderScroll",true);
UpdateSetting(L"FixFolderScroll",CComVariant(0),false);
UpdateSetting(L"ToolbarItems",CComVariant(g_DefaultToolbar2),false);
if (GetWinVersion()>=WIN_VER_WIN10)

View File

@@ -8,7 +8,7 @@
#include "resource.h" // main symbols
#include <lm.h>
#include "ClassicExplorer_i.h"
#include "ClassicExplorer_h.h"
// CShareOverlay
@@ -20,7 +20,7 @@ class ATL_NO_VTABLE CShareOverlay :
public:
CShareOverlay( void );
DECLARE_REGISTRY_RESOURCEID(IDR_SHAREOVERLAY)
DECLARE_REGISTRY_RESOURCEID_V2_WITHOUT_MODULE(IDR_SHAREOVERLAY, CShareOverlay)
DECLARE_PROTECT_FINAL_CONSTRUCT()

View File

@@ -48,11 +48,6 @@ static int g_LoadDialogs[]=
0
};
const wchar_t *GetDocRelativePath( void )
{
return DOC_PATH;
}
struct FindChild
{
const wchar_t *className;
@@ -110,7 +105,7 @@ static DWORD CALLBACK DllInitThread( void* )
GetModuleFileName(g_Instance,path,_countof(path));
*PathFindFileName(path)=0;
wchar_t fname[_MAX_PATH];
Sprintf(fname,_countof(fname),L"%s" INI_PATH L"ExplorerL10N.ini",path);
Sprintf(fname,_countof(fname),L"%sExplorerL10N.ini",path);
CString language=GetSettingString(L"Language");
ParseTranslations(fname,language);

View File

@@ -5,7 +5,7 @@
// dllmain.h : Declaration of module class.
#pragma once
#include "ClassicExplorer_i.h"
#include "ClassicExplorer_h.h"
#include <vector>
class CClassicExplorerModule : public CAtlDllModuleT< CClassicExplorerModule >

View File

@@ -10,7 +10,7 @@
#define _ATL_APARTMENT_THREADED
#define _ATL_NO_AUTOMATIC_NAMESPACE
#define _ATL_MODULES // compatibility with /permissive-
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit
#include "resource.h"
@@ -26,12 +26,4 @@ using namespace ATL;
#include <shlguid.h>
#include <shlobj.h>
#ifdef BUILD_SETUP
#define INI_PATH L""
#define DOC_PATH L""
#else
#define INI_PATH L"..\\"
#define DOC_PATH L"..\\..\\Docs\\Help\\"
#endif
#include "StringUtils.h"

View File

@@ -33,236 +33,32 @@
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Setup|Win32'" Label="Configuration">
<PropertyGroup Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<UseOfAtl>Static</UseOfAtl>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<UseOfAtl>Static</UseOfAtl>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<UseOfAtl>Static</UseOfAtl>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Setup|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<UseOfAtl>Static</UseOfAtl>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<UseOfAtl>Static</UseOfAtl>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
<UseOfAtl>Static</UseOfAtl>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization Condition="'$(Configuration)'!='Debug'">true</WholeProgramOptimization>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Setup|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\Version.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\Version.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\Version.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Setup|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\Version.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\Version.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\Version.props" />
<ImportGroup Label="PropertySheets">
<Import Project="..\Common.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>true</LinkIncremental>
<PropertyGroup Condition="'$(Platform)'=='Win32'">
<TargetName>$(ProjectName)_32</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<OutDir>$(Configuration)64\</OutDir>
<IntDir>$(Configuration)64\</IntDir>
<LinkIncremental>true</LinkIncremental>
<PropertyGroup Condition="'$(Platform)'=='x64'">
<TargetName>$(ProjectName)_64</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
<TargetName>$(ProjectName)_32</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<OutDir>$(Configuration)64\</OutDir>
<IntDir>$(Configuration)64\</IntDir>
<LinkIncremental>false</LinkIncremental>
<TargetName>$(ProjectName)_64</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Setup|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
<TargetName>$(ProjectName)_32</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Setup|x64'">
<OutDir>$(Configuration)64\</OutDir>
<IntDir>$(Configuration)64\</IntDir>
<LinkIncremental>false</LinkIncremental>
<TargetName>$(ProjectName)_64</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ItemDefinitionGroup>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile>
<Link>
<AdditionalDependencies>shlwapi.lib;comctl32.lib;psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile>
<Link>
<AdditionalDependencies>shlwapi.lib;comctl32.lib;psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile>
<Link>
<AdditionalDependencies>shlwapi.lib;comctl32.lib;psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile>
<Link>
<AdditionalDependencies>shlwapi.lib;comctl32.lib;psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Setup|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;BUILD_SETUP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile>
<Link>
<AdditionalDependencies>shlwapi.lib;comctl32.lib;psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Setup|x64'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile>
<Link>
<AdditionalDependencies>shlwapi.lib;comctl32.lib;psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
</Link>
</ItemDefinitionGroup>
<ItemGroup>

View File

@@ -3,7 +3,7 @@
// Confidential information of Ivo Beltchev. Not for disclosure or distribution without prior written consent from the author
#include "stdafx.h"
#include "ClassicIEDLL_i.h"
#include "ClassicIEDLL_h.h"
#include "ClassicIEBHO.h"
#include "ClassicIEDLL.h"
#include "Settings.h"

View File

@@ -4,7 +4,7 @@
#include "stdafx.h"
#include "resource.h"
#include "ClassicIEDLL_i.h"
#include "ClassicIEDLL_h.h"
#include "ClassicIEDLL.h"
#include "Settings.h"
#include "dllmain.h"

View File

@@ -33,323 +33,44 @@
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Setup|Win32'" Label="Configuration">
<PropertyGroup Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<UseOfAtl>Static</UseOfAtl>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<UseOfAtl>Static</UseOfAtl>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<UseOfAtl>Static</UseOfAtl>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Setup|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<UseOfAtl>Static</UseOfAtl>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<UseOfAtl>Static</UseOfAtl>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
<UseOfAtl>Static</UseOfAtl>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization Condition="'$(Configuration)'!='Debug'">true</WholeProgramOptimization>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Setup|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\Version.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\Version.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\Version.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Setup|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\Version.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\Version.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\Version.props" />
<ImportGroup Label="PropertySheets">
<Import Project="..\..\Common.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>..\$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>true</LinkIncremental>
<PropertyGroup Condition="'$(Platform)'=='Win32'">
<TargetName>$(ProjectName)_32</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<OutDir>..\$(Configuration)64\</OutDir>
<IntDir>$(Configuration)64\</IntDir>
<LinkIncremental>true</LinkIncremental>
<PropertyGroup Condition="'$(Platform)'=='x64'">
<TargetName>$(ProjectName)_64</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>..\$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
<TargetName>$(ProjectName)_32</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<OutDir>..\$(Configuration)64\</OutDir>
<IntDir>$(Configuration)64\</IntDir>
<LinkIncremental>false</LinkIncremental>
<TargetName>$(ProjectName)_64</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Setup|Win32'">
<OutDir>..\$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
<TargetName>$(ProjectName)_32</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Setup|x64'">
<OutDir>..\$(Configuration)64\</OutDir>
<IntDir>$(Configuration)64\</IntDir>
<LinkIncremental>false</LinkIncremental>
<TargetName>$(ProjectName)_64</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Midl>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
<GenerateStublessProxies>true</GenerateStublessProxies>
<HeaderFileName>ClassicIEDLL_i.h</HeaderFileName>
<DllDataFileName />
<InterfaceIdentifierFileName>ClassicIEDLL_i.c</InterfaceIdentifierFileName>
<ProxyFileName>ClassicIEDLL_p.c</ProxyFileName>
<ValidateAllParameters>true</ValidateAllParameters>
</Midl>
<ItemDefinitionGroup>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;_USRDLL;CLASSICIEDLL_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
<PreprocessorDefinitions>_USRDLL;CLASSICIEDLL_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(IntDir);..\..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<AdditionalDependencies>uxtheme.lib;dwmapi.lib;comctl32.lib;msimg32.lib;winmm.lib;htmlhelp.lib;wininet.lib;wintrust.lib;crypt32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<ModuleDefinitionFile>$(TargetName).def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'!='Setup'">
<Link>
<RegisterOutput>true</RegisterOutput>
<AdditionalDependencies>uxtheme.lib;dwmapi.lib;comctl32.lib;msimg32.lib;winmm.lib;htmlhelp.lib;wininet.lib;wintrust.lib;crypt32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<ModuleDefinitionFile>.\$(TargetName).def</ModuleDefinitionFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<PerUserRedirection>true</PerUserRedirection>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Midl>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
<GenerateStublessProxies>true</GenerateStublessProxies>
<HeaderFileName>ClassicIEDLL_i.h</HeaderFileName>
<DllDataFileName />
<InterfaceIdentifierFileName>ClassicIEDLL_i.c</InterfaceIdentifierFileName>
<ProxyFileName>ClassicIEDLL_p.c</ProxyFileName>
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;_USRDLL;CLASSICIEDLL_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(IntDir);..\..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<RegisterOutput>true</RegisterOutput>
<AdditionalDependencies>uxtheme.lib;dwmapi.lib;comctl32.lib;msimg32.lib;winmm.lib;htmlhelp.lib;wininet.lib;wintrust.lib;crypt32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<ModuleDefinitionFile>.\$(TargetName).def</ModuleDefinitionFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<PerUserRedirection>true</PerUserRedirection>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Midl>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
<GenerateStublessProxies>true</GenerateStublessProxies>
<HeaderFileName>ClassicIEDLL_i.h</HeaderFileName>
<DllDataFileName />
<InterfaceIdentifierFileName>ClassicIEDLL_i.c</InterfaceIdentifierFileName>
<ProxyFileName>ClassicIEDLL_p.c</ProxyFileName>
<ValidateAllParameters>true</ValidateAllParameters>
</Midl>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>..\..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;_USRDLL;CLASSICIEDLL_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(IntDir);..\..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<RegisterOutput>true</RegisterOutput>
<AdditionalDependencies>uxtheme.lib;dwmapi.lib;comctl32.lib;msimg32.lib;winmm.lib;htmlhelp.lib;wininet.lib;wintrust.lib;crypt32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<ModuleDefinitionFile>.\$(TargetName).def</ModuleDefinitionFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<PerUserRedirection>true</PerUserRedirection>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Midl>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
<GenerateStublessProxies>true</GenerateStublessProxies>
<HeaderFileName>ClassicIEDLL_i.h</HeaderFileName>
<DllDataFileName />
<InterfaceIdentifierFileName>ClassicIEDLL_i.c</InterfaceIdentifierFileName>
<ProxyFileName>ClassicIEDLL_p.c</ProxyFileName>
</Midl>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>..\..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;_USRDLL;CLASSICIEDLL_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(IntDir);..\..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<RegisterOutput>true</RegisterOutput>
<AdditionalDependencies>uxtheme.lib;dwmapi.lib;comctl32.lib;msimg32.lib;winmm.lib;htmlhelp.lib;wininet.lib;wintrust.lib;crypt32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<ModuleDefinitionFile>.\$(TargetName).def</ModuleDefinitionFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<PerUserRedirection>true</PerUserRedirection>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Setup|Win32'">
<Midl>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
<GenerateStublessProxies>true</GenerateStublessProxies>
<HeaderFileName>ClassicIEDLL_i.h</HeaderFileName>
<DllDataFileName />
<InterfaceIdentifierFileName>ClassicIEDLL_i.c</InterfaceIdentifierFileName>
<ProxyFileName>ClassicIEDLL_p.c</ProxyFileName>
<ValidateAllParameters>true</ValidateAllParameters>
</Midl>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>..\..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;_USRDLL;CLASSICIEDLL_EXPORTS;BUILD_SETUP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(IntDir);..\..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<AdditionalDependencies>uxtheme.lib;dwmapi.lib;comctl32.lib;msimg32.lib;winmm.lib;htmlhelp.lib;wininet.lib;wintrust.lib;crypt32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<ModuleDefinitionFile>.\$(TargetName).def</ModuleDefinitionFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Setup|x64'">
<Midl>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>false</MkTypLibCompatible>
<GenerateStublessProxies>true</GenerateStublessProxies>
<HeaderFileName>ClassicIEDLL_i.h</HeaderFileName>
<DllDataFileName />
<InterfaceIdentifierFileName>ClassicIEDLL_i.c</InterfaceIdentifierFileName>
<ProxyFileName>ClassicIEDLL_p.c</ProxyFileName>
</Midl>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>..\..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;_USRDLL;CLASSICIEDLL_EXPORTS;BUILD_SETUP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(IntDir);..\..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<AdditionalDependencies>uxtheme.lib;dwmapi.lib;comctl32.lib;msimg32.lib;winmm.lib;htmlhelp.lib;wininet.lib;wintrust.lib;crypt32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<ModuleDefinitionFile>.\$(TargetName).def</ModuleDefinitionFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="ClassicIEBHO.cpp" />
<ClCompile Include="ClassicIEDLL.cpp" />
@@ -375,7 +96,7 @@
<ItemGroup>
<ClInclude Include="ClassicIEBHO.h" />
<ClInclude Include="ClassicIEDLL.h" />
<ClInclude Include="ClassicIEDLL_i.h" />
<ClInclude Include="ClassicIEDLL_h.h" />
<ClInclude Include="dllmain.h" />
<ClInclude Include="Resource.h" />
<ClInclude Include="SettingsUI.h" />

View File

@@ -81,7 +81,7 @@
<ClInclude Include="targetver.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="ClassicIEDLL_i.h">
<ClInclude Include="ClassicIEDLL_h.h">
<Filter>Generated Files</Filter>
</ClInclude>
</ItemGroup>

View File

@@ -33,11 +33,6 @@ static int g_LoadDialogs[]=
0
};
const wchar_t *GetDocRelativePath( void )
{
return DOC_PATH;
}
static void NewVersionCallback( VersionData &data )
{
wchar_t path[_MAX_PATH];

View File

@@ -4,7 +4,7 @@
#pragma once
#include "ClassicIEDLL_i.h"
#include "ClassicIEDLL_h.h"
class CClassicIEDLLModule : public CAtlDllModuleT< CClassicIEDLLModule >
{

View File

@@ -13,7 +13,7 @@
#define ISOLATION_AWARE_ENABLED 1
#define _ATL_APARTMENT_THREADED
#define _ATL_NO_AUTOMATIC_NAMESPACE
#define _ATL_MODULES // compatibility with /permissive-
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit
#include "resource.h"
@@ -24,12 +24,4 @@
using namespace ATL;
#ifdef BUILD_SETUP
#define INI_PATH L""
#define DOC_PATH L""
#else
#define INI_PATH L"..\\"
#define DOC_PATH L"..\\..\\Docs\\Help\\"
#endif
#include "StringUtils.h"

91
Src/Common.props Normal file
View File

@@ -0,0 +1,91 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets" />
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<!-- Default product version to use if CS_VERSION environment variable is not defined -->
<CS_VERSION Condition="'$(CS_VERSION)'==''">4.4.1000</CS_VERSION>
</PropertyGroup>
<!-- Output paths -->
<PropertyGroup Condition="'$(Platform)'=='Win32'">
<OutDir>$(MSBuildThisFileDirectory)..\build\bin\$(Configuration)\</OutDir>
<IntDir>$(MSBuildThisFileDirectory)..\build\obj\$(ProjectName)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Platform)'=='x64'">
<OutDir>$(MSBuildThisFileDirectory)..\build\bin\$(Configuration)64\</OutDir>
<IntDir>$(MSBuildThisFileDirectory)..\build\obj\$(ProjectName)\$(Configuration)64\</IntDir>
</PropertyGroup>
<!-- Common settings for all configurations -->
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories Condition="'$(ConfigurationType)'!='StaticLibrary'">$(MSBuildThisFileDirectory)Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile>
<Midl>
<MkTypLibCompatible>false</MkTypLibCompatible>
<GenerateStublessProxies>true</GenerateStublessProxies>
<ValidateAllParameters>true</ValidateAllParameters>
</Midl>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
</Link>
<ResourceCompile>
<AdditionalIncludeDirectories>$(MSBuildThisFileDirectory)Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_PRODUCT_VERSION=$(CS_VERSION.Replace('.', ',')),0;_PRODUCT_VERSION_STR=\"$(CS_VERSION_ORIG)\";%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
<!-- Debug settings -->
<ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
<ClCompile>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Midl>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</Midl>
<ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
<!-- Non-Debug settings -->
<ItemDefinitionGroup Condition="'$(Configuration)'!='Debug'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Midl>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</Midl>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<Link>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Setup'">
<ClCompile>
<PreprocessorDefinitions>BUILD_SETUP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup />
</Project>

View File

@@ -4,7 +4,6 @@
#include <stdafx.h>
#include "resource.h"
#include "..\Setup\UpdateBin\resource.h"
#include "DownloadHelper.h"
#include "Settings.h"
#include "SettingsUIHelper.h"
@@ -14,7 +13,7 @@
#include "FNVHash.h"
#include "StringUtils.h"
#include "Translations.h"
#include "json.hpp"
#include <nlohmann/json.hpp>
#include <wininet.h>
#include <softpub.h>
@@ -371,60 +370,6 @@ static DWORD WINAPI ThreadVersionCheck( void *param )
data.bNewVersion=(data.newVersion>curVersion);
data.bIgnoreVersion=(data.bNewVersion && data.newVersion<=remindedVersion);
}
{
wchar_t languages[100]={0};
CString language2=GetSettingString(L"Language");
if (!language2.IsEmpty())
{
Strcpy(languages,_countof(languages)-1,language2);
}
else
{
ULONG size=0;
ULONG len=_countof(languages);
GetUserPreferredUILanguages(MUI_LANGUAGE_NAME,&size,languages,&len);
}
bool bNewLanguage=false;
for (wchar_t *lang=languages;*lang;lang+=Strlen(lang)+1)
{
if (_wcsicmp(lang,L"en")==0 || _wcsnicmp(lang,L"en-",3)==0)
break; // English
DWORD dllVersion=0, dllBuild=0;
HINSTANCE resInstance=LoadTranslationDll(lang);
if (resInstance)
{
dllVersion=GetVersionEx(resInstance,&dllBuild);
FreeLibrary(resInstance);
}
DWORD newVersion=0, newBuild=0;
for (std::vector<LanguageVersionData>::const_iterator it=data.languages.begin();it!=data.languages.end();++it)
{
if (_wcsicmp(it->language,lang)==0)
{
newVersion=it->version;
newBuild=it->build;
break;
}
}
if (newVersion==0)
continue;
if (newVersion>dllVersion || (newVersion==dllVersion && newBuild>dllBuild))
{
// a new DLL for this language exists
data.bNewLanguage=true;
data.newLanguage=lang;
data.encodedLangVersion=(newVersion&0xFFFF0000)|((newVersion&0xFF)<<8)|(newBuild&0xFF);
DWORD remindedVersion;
if (regKey.QueryDWORDValue(L"RemindedLangVersion",remindedVersion)!=ERROR_SUCCESS)
remindedVersion=0;
data.bIgnoreLanguage=(data.encodedLangVersion<=remindedVersion);
}
break;
}
}
data.bValid=true;
if (params.check==CHECK_UPDATE)
@@ -433,7 +378,7 @@ static DWORD WINAPI ThreadVersionCheck( void *param )
g_bCheckingVersion=false;
return 1;
}
if ((data.bNewVersion && !data.bIgnoreVersion) || (data.bNewLanguage && !data.bIgnoreLanguage))
if (data.bNewVersion && !data.bIgnoreVersion)
params.callback(data);
g_bCheckingVersion=false;
return 0;
@@ -576,39 +521,6 @@ static CString LoadStringEx( HMODULE hModule, int stringId, int langId )
return res;
}
static BOOL CALLBACK EnumStringLanguages( HMODULE hModule, LPCTSTR lpszType, LPCTSTR lpszName, WORD wIDLanguage, LONG_PTR lParam )
{
VersionData &data=*(VersionData*)lParam;
CString url=LoadStringEx(hModule,IDS_LNG_URL,wIDLanguage);
if (url.IsEmpty()) return TRUE;
CString ver=LoadStringEx(hModule,IDS_LNG_VERSION,wIDLanguage);
if (ver.IsEmpty()) return TRUE;
CString crc=LoadStringEx(hModule,IDS_LNG_CRC,wIDLanguage);
if (crc.IsEmpty()) return TRUE;
LanguageVersionData langData;
langData.bBasic=(ver[ver.GetLength()-1]=='*');
int v1, v2, v3, v4;
if (swscanf_s(ver,L"%d.%d.%d.%d",&v1,&v2,&v3,&v4)==4)
{
wchar_t buf[100];
if (GetLocaleInfo(wIDLanguage,LOCALE_SNAME,buf,_countof(buf)))
{
langData.languageId=wIDLanguage;
langData.language=buf;
langData.version=(v1<<24)|(v2<<16)|v3;
langData.build=v4;
langData.url=url;
wchar_t *q;
langData.hash=wcstoul(crc,&q,16);
data.languages.push_back(langData);
}
}
return TRUE;
}
static bool VerifyDigitalCertificate( const wchar_t *fname, const wchar_t *signer )
{
// verify the certificate
@@ -710,38 +622,24 @@ static bool VerifyDigitalCertificate( const wchar_t *fname, const wchar_t *signe
void VersionData::Clear( void )
{
bValid=false;
newVersion=encodedLangVersion=0;
newVersion=0;
downloadUrl.Empty();
downloadSigner.Empty();
news.Empty();
updateLink.Empty();
languageLink.Empty();
altUrl.Empty();
bNewVersion=bIgnoreVersion=bNewLanguage=bIgnoreLanguage=false;
newLanguage.Empty();
for (std::vector<LanguageVersionData>::iterator it=languages.begin();it!=languages.end();++it)
if (it->bitmap)
DeleteObject(it->bitmap);
languages.clear();
updateLink="https://github.com/Open-Shell/Open-Shell-Menu/releases";
bNewVersion=bIgnoreVersion=false;
}
void VersionData::Swap( VersionData &data )
{
std::swap(bValid,data.bValid);
std::swap(newVersion,data.newVersion);
std::swap(encodedLangVersion,data.encodedLangVersion);
std::swap(downloadUrl,data.downloadUrl);
std::swap(downloadSigner,data.downloadSigner);
std::swap(news,data.news);
std::swap(updateLink,data.updateLink);
std::swap(languageLink,data.languageLink);
std::swap(altUrl,data.altUrl);
std::swap(bNewVersion,data.bNewVersion);
std::swap(bIgnoreVersion,data.bIgnoreVersion);
std::swap(bNewLanguage,data.bNewLanguage);
std::swap(bIgnoreLanguage,data.bIgnoreLanguage);
std::swap(newLanguage,data.newLanguage);
std::swap(languages,data.languages);
}
std::vector<char> DownloadUrl(const wchar_t* url)
@@ -850,69 +748,6 @@ VersionData::TLoadResult VersionData::Load(bool official)
}
}
VersionData::TLoadResult VersionData::Load( const wchar_t *fname, bool bLoadFlags )
{
Clear();
if (!VerifyDigitalCertificate(fname,L"Ivaylo Beltchev"))
return LOAD_BAD_FILE;
HMODULE hModule=LoadLibraryEx(fname,NULL,LOAD_LIBRARY_AS_DATAFILE|LOAD_LIBRARY_AS_IMAGE_RESOURCE);
if (!hModule) return LOAD_BAD_FILE;
if (GetVersionEx(hModule)!=GetVersionEx(g_Instance))
{
FreeLibrary(hModule);
return LOAD_BAD_VERSION;
}
wchar_t defLang[100]=L"";
{
CRegKey regKeyLng;
if (regKeyLng.Open(HKEY_LOCAL_MACHINE,L"Software\\OpenShell\\OpenShell",KEY_READ|KEY_WOW64_64KEY)==ERROR_SUCCESS)
{
ULONG size=_countof(defLang);
if (regKeyLng.QueryStringValue(L"DefaultLanguage",defLang,&size)!=ERROR_SUCCESS)
defLang[0]=0;
}
}
const int DEFAULT_LANGUAGE=0x409;
int defLangId;
if (!defLang[0] || !GetLocaleInfoEx(defLang,LOCALE_ILANGUAGE|LOCALE_RETURN_NUMBER,(LPWSTR)&defLangId,4))
defLangId=DEFAULT_LANGUAGE;
downloadUrl=LoadStringEx(hModule,IDS_INSTALL_URL,defLangId);
// these are always in en-US
downloadSigner=LoadStringEx(hModule,IDS_INSTALL_SIGNER,DEFAULT_LANGUAGE);
CString strVer=LoadStringEx(hModule,IDS_VERSION,defLangId);
if (strVer.IsEmpty())
strVer=LoadStringEx(hModule,IDS_VERSION,DEFAULT_LANGUAGE);
updateLink=LoadStringEx(hModule,IDS_UPDATE_LINK,DEFAULT_LANGUAGE);
languageLink=LoadStringEx(hModule,IDS_LANGUAGE_LINK,DEFAULT_LANGUAGE);
altUrl=LoadStringEx(hModule,IDS_ALT_URL,DEFAULT_LANGUAGE);
int v1, v2, v3;
if (!downloadUrl.IsEmpty() && swscanf_s(strVer,L"%d.%d.%d",&v1,&v2,&v3)==3)
{
newVersion=(v1<<24)|(v2<<16)|v3;
news=LoadStringEx(hModule,IDS_NEWS,defLangId);
if (news.IsEmpty())
news=LoadStringEx(hModule,IDS_NEWS,DEFAULT_LANGUAGE);
EnumResourceLanguages(hModule,RT_STRING,MAKEINTRESOURCE((IDS_LNG_URL>>4)+1),EnumStringLanguages,(LONG_PTR)this);
for (std::vector<LanguageVersionData>::iterator it=languages.begin();it!=languages.end();++it)
it->bitmap=(HBITMAP)LoadImage(hModule,MAKEINTRESOURCE(it->languageId),IMAGE_BITMAP,22,27,LR_CREATEDIBSECTION);
}
FreeLibrary(hModule);
if (newVersion && !downloadUrl.IsEmpty() && !news.IsEmpty())
return LOAD_OK;
Clear();
return LOAD_ERROR;
}
struct DownloadFileParams
{
// input
@@ -989,82 +824,6 @@ static DWORD WINAPI ThreadDownloadFile( void *param )
return 0;
}
DWORD DownloadLanguageDll( HWND owner, TSettingsComponent component, const LanguageVersionData &data, CString &error )
{
// download file
wchar_t path[_MAX_PATH]=L"%ALLUSERSPROFILE%\\OpenShell\\Languages";
DoEnvironmentSubst(path,_countof(path));
SHCreateDirectory(NULL,path);
wchar_t fname[_MAX_PATH];
Sprintf(fname,_countof(fname),L"%s.dll",data.language);
CProgressDlg progress;
progress.Create(owner,LoadStringEx(IDS_PROGRESS_TITLE_DOWNLOAD));
DownloadFileParams params;
params.url=data.url;
params.signer=NULL;
params.hash=data.hash;
params.path=path;
params.fname=fname;
params.progress=&progress;
params.bAcceptCached=true;
params.component=component;
HANDLE hThread=CreateThread(NULL,0,ThreadDownloadFile,&params,0,NULL);
while (1)
{
DWORD wait=MsgWaitForMultipleObjects(1,&hThread,FALSE,INFINITE,QS_ALLINPUT);
if (wait!=WAIT_OBJECT_0+1)
break;
MSG msg;
while (PeekMessage(&msg,0,0,0,PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
progress.DestroyWindow();
CloseHandle(hThread);
if (params.downloadRes==DOWNLOAD_CANCEL)
return 2;
if (params.downloadRes==DOWNLOAD_INTERNET)
{
error=LoadStringEx(IDS_INTERNET_FAIL);
return 0;
}
else if (params.downloadRes==DOWNLOAD_START)
{
error=LoadStringEx(IDS_INITIATE_FAIL);
return 0;
}
else if (params.downloadRes==DOWNLOAD_FAIL)
{
error=LoadStringEx(IDS_LANG_DOWNLOAD_FAIL);
return 0;
}
if (params.saveRes)
{
wchar_t msg[256];
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_IGNORE_INSERTS,NULL,params.saveRes,0,msg,_countof(msg),NULL);
error.Format(LoadStringEx(IDS_LANG_SAVE_FAIL),params.fname);
error+="\r\n";
error+=msg;
return 0;
}
if (!params.valid)
{
error=LoadStringEx(IDS_LANG_DOWNLOAD_FAIL);
return 0;
}
return 1;
}
DWORD DownloadNewVersion( HWND owner, TSettingsComponent component, const wchar_t *url, const wchar_t *signer, CString &fname, CString &error )
{
CComString pPath;

View File

@@ -15,37 +15,16 @@ enum TVersionCheck
enum TSettingsComponent;
struct LanguageVersionData
{
CString language;
CString url;
DWORD version;
DWORD build;
DWORD hash;
bool bBasic;
WORD languageId;
HBITMAP bitmap;
LanguageVersionData( void ) { bBasic=false; bitmap=NULL; }
};
struct VersionData
{
bool bValid = false;
DWORD newVersion = 0;
DWORD encodedLangVersion = 0;
CString downloadUrl;
CString downloadSigner;
CString news;
CString updateLink;
CString languageLink;
CString altUrl;
bool bNewVersion = false;
bool bIgnoreVersion = false;
bool bNewLanguage = false;
bool bIgnoreLanguage = false;
CString newLanguage;
std::vector<LanguageVersionData> languages;
~VersionData( void ) { Clear(); }
void Clear( void );
@@ -60,7 +39,6 @@ struct VersionData
};
TLoadResult Load(bool official);
TLoadResult Load( const wchar_t *fname, bool bLoadFlags );
private:
void operator=( const VersionData& );
};
@@ -69,5 +47,4 @@ typedef void (*tNewVersionCallback)( VersionData &data );
// 0 - fail, 1 - success, 2 - cancel
DWORD CheckForNewVersion( HWND owner, TSettingsComponent component, TVersionCheck check, tNewVersionCallback callback );
DWORD DownloadLanguageDll( HWND owner, TSettingsComponent component, const LanguageVersionData &data, CString &error );
DWORD DownloadNewVersion( HWND owner, TSettingsComponent component, const wchar_t *url, const wchar_t *signer, CString &fname, CString &error );

View File

@@ -68,17 +68,13 @@ public:
MESSAGE_HANDLER( WM_INITDIALOG, OnInitDialog )
MESSAGE_HANDLER( WM_DESTROY, OnDestroy )
MESSAGE_HANDLER( WM_SIZE, OnSize )
COMMAND_ID_HANDLER( IDC_BUTTONCHECK, OnCheckUpdates )
NOTIFY_HANDLER( IDC_LISTLANGUAGE, LVN_ITEMCHANGED, OnSelChange )
NOTIFY_HANDLER( IDC_LISTLANGUAGE, LVN_ITEMCHANGING, OnSelChanging )
NOTIFY_HANDLER( IDC_LISTLANGUAGE, NM_CUSTOMDRAW, OnCustomDraw )
NOTIFY_HANDLER( IDC_LINKDOWNLOAD, NM_CLICK, OnDownload )
END_MSG_MAP()
BEGIN_RESIZE_MAP
RESIZE_CONTROL(IDC_LISTLANGUAGE,MOVE_SIZE_X|MOVE_SIZE_Y)
RESIZE_CONTROL(IDC_BUTTONCHECK,MOVE_MOVE_Y)
RESIZE_CONTROL(IDC_LINKDOWNLOAD,MOVE_SIZE_X|MOVE_MOVE_Y)
END_RESIZE_MAP
void SetGroup( CSetting *pGroup );
@@ -92,11 +88,9 @@ protected:
LRESULT OnInitDialog( UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled );
LRESULT OnDestroy( UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled );
LRESULT OnSize( UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled );
LRESULT OnCheckUpdates( WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled );
LRESULT OnSelChange( int idCtrl, LPNMHDR pnmh, BOOL& bHandled );
LRESULT OnSelChanging( int idCtrl, LPNMHDR pnmh, BOOL& bHandled );
LRESULT OnCustomDraw( int idCtrl, LPNMHDR pnmh, BOOL& bHandled );
LRESULT OnDownload( int idCtrl, LPNMHDR pnmh, BOOL& bHandled );
private:
CSetting *m_pSetting;
@@ -114,17 +108,12 @@ private:
bool operator<( const LangInfo &info ) { return _wcsicmp(name,info.name)<0; }
};
std::vector<LangInfo> m_LanguageIDs; // the order matches the items in the listbox
static VersionData s_VersionData;
static void NewVersionCallback( VersionData &data );
void UpdateFlags( void );
void UpdateLink( const wchar_t *language );
void AddFlag( const wchar_t *langName, int langId, HBITMAP bmp );
};
VersionData CLanguageSettingsDlg::s_VersionData;
void CLanguageSettingsDlg::AddFlag( const wchar_t *langName, int langId, HBITMAP bmp )
{
int idx=1;
@@ -156,39 +145,6 @@ void CLanguageSettingsDlg::AddFlag( const wchar_t *langName, int langId, HBITMAP
void CLanguageSettingsDlg::UpdateFlags( void )
{
// add flags from s_VersionData
for (std::vector<LanguageVersionData>::const_iterator it=s_VersionData.languages.begin();it!=s_VersionData.languages.end();++it)
{
if (it->bitmap)
{
BITMAPINFO bi={0};
bi.bmiHeader.biSize=sizeof(BITMAPINFOHEADER);
bi.bmiHeader.biWidth=m_bLargeFlags?32:24;
bi.bmiHeader.biHeight=m_bLargeFlags?16:11;
bi.bmiHeader.biPlanes=1;
bi.bmiHeader.biBitCount=32;
HDC hdc=CreateCompatibleDC(NULL);
HBITMAP bmp=CreateDIBSection(hdc,&bi,DIB_RGB_COLORS,NULL,NULL,0);
HGDIOBJ bmp0=SelectObject(hdc,bmp);
HDC hsrc=CreateCompatibleDC(hdc);
HGDIOBJ bmp02=SelectObject(hsrc,it->bitmap);
SetDCBrushColor(hdc,0xFF00FF);
RECT rc={0,0,bi.bmiHeader.biWidth,bi.bmiHeader.biHeight};
FillRect(hdc,&rc,(HBRUSH)GetStockObject(DC_BRUSH));
if (m_bLargeFlags)
BitBlt(hdc,3,0,22,16,hsrc,0,11,SRCCOPY);
else
BitBlt(hdc,2,0,16,11,hsrc,0,0,SRCCOPY);
SelectObject(hsrc,bmp02);
DeleteDC(hsrc);
SelectObject(hdc,bmp0);
DeleteDC(hdc);
AddFlag(it->language,it->languageId,bmp);
DeleteObject(bmp);
}
}
// add flags from dlls
for (int pass=0;pass<2;pass++)
{
@@ -288,7 +244,6 @@ LRESULT CLanguageSettingsDlg::OnInitDialog( UINT uMsg, WPARAM wParam, LPARAM lPa
ListView_SetExtendedListViewStyleEx(list,LVS_EX_DOUBLEBUFFER,LVS_EX_DOUBLEBUFFER);
LVCOLUMN column={LVCF_WIDTH,0,rc.right-rc.left};
ListView_InsertColumn(list,0,&column);
SetDlgItemText(IDC_LINKDOWNLOAD,L"");
m_LanguageIDs.resize(_countof(g_LanguageIDs)+1);
{
@@ -331,11 +286,6 @@ LRESULT CLanguageSettingsDlg::OnInitDialog( UINT uMsg, WPARAM wParam, LPARAM lPa
ListView_InsertItem(list,&item);
}
// parse update.ver in data and add all flags
wchar_t path[_MAX_PATH]=L"%ALLUSERSPROFILE%\\OpenShell\\update.ver";
DoEnvironmentSubst(path,_countof(path));
s_VersionData.bValid=(s_VersionData.Load(path,true)==VersionData::LOAD_OK);
UpdateFlags();
m_Tooltip.Create(TOOLTIPS_CLASS,m_hWnd,NULL,NULL,WS_POPUP|TTS_NOPREFIX);
@@ -359,40 +309,6 @@ LRESULT CLanguageSettingsDlg::OnSize( UINT uMsg, WPARAM wParam, LPARAM lParam, B
return 0;
}
void CLanguageSettingsDlg::NewVersionCallback( VersionData &data )
{
s_VersionData.Swap(data);
}
LRESULT CLanguageSettingsDlg::OnCheckUpdates( WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled )
{
DWORD res=CheckForNewVersion(m_hWnd,m_Component,CHECK_UPDATE,NewVersionCallback);
if (res==2) return 0;
if (res)
{
UpdateFlags();
CString language=GetSettingString(L"Language");
CWindow list=GetDlgItem(IDC_LISTLANGUAGE);
for (int idx=0;idx<(int)m_LanguageIDs.size();idx++)
{
const wchar_t *name=idx>0?m_LanguageIDs[idx].name.GetString():L"";
if (_wcsicmp(language,name)==0)
{
ListView_SetItemState(list,idx,LVIS_SELECTED|LVIS_FOCUSED,LVIS_SELECTED|LVIS_FOCUSED);
ListView_EnsureVisible(list,idx,FALSE);
break;
}
}
UpdateLink(language);
}
else
{
s_VersionData.Clear();
SetDlgItemText(IDC_LINKDOWNLOAD,LoadStringEx(IDS_LANGUAGE_FAIL));
}
return 0;
}
LRESULT CLanguageSettingsDlg::OnSelChange( int idCtrl, LPNMHDR pnmh, BOOL& bHandled )
{
// set setting
@@ -411,7 +327,6 @@ LRESULT CLanguageSettingsDlg::OnSelChange( int idCtrl, LPNMHDR pnmh, BOOL& bHand
m_pSetting->flags|=CSetting::FLAG_DEFAULT;
else
m_pSetting->flags&=~CSetting::FLAG_DEFAULT;
UpdateLink(name);
return 0;
}
@@ -448,41 +363,6 @@ static HRESULT CALLBACK TaskDialogCallbackProc( HWND hwnd, UINT uNotification, W
return S_OK;
}
LRESULT CLanguageSettingsDlg::OnDownload( int idCtrl, LPNMHDR pnmh, BOOL& bHandled )
{
CString language=GetSettingString(L"Language");
if (language.IsEmpty())
language=m_LanguageIDs[0].name;
for (std::vector<LanguageVersionData>::const_iterator it=s_VersionData.languages.begin();it!=s_VersionData.languages.end();++it)
{
if (_wcsicmp(it->language,language)==0)
{
CString error;
DWORD res=DownloadLanguageDll(m_hWnd,m_Component,*it,error);
if (res==2)
return 0;
if (res)
MessageBox(LoadStringEx(it->bBasic?IDS_LANGUAGE_SUCCESS2:IDS_LANGUAGE_SUCCESS),LoadStringEx(IDS_UPDATE_TITLE),MB_OK|(it->bBasic?MB_ICONWARNING:MB_ICONINFORMATION));
else
{
if (!s_VersionData.languageLink.IsEmpty())
error+=L" "+LoadStringEx(IDS_DOWNLOAD_TIP)+L"\r\n\r\n"+s_VersionData.languageLink;
TASKDIALOGCONFIG task={sizeof(task),m_hWnd,NULL,TDF_ENABLE_HYPERLINKS|TDF_ALLOW_DIALOG_CANCELLATION|TDF_USE_HICON_MAIN,TDCBF_OK_BUTTON};
CString title=LoadStringEx(IDS_UPDATE_TITLE);
task.pszWindowTitle=title;
task.pszContent=error;
task.hMainIcon=LoadIcon(NULL,IDI_ERROR);
task.pfCallback=TaskDialogCallbackProc;
TaskDialogIndirect(&task,NULL,NULL,NULL);
}
UpdateLink(language);
break;
}
}
return 0;
}
void CLanguageSettingsDlg::SetGroup( CSetting *pGroup )
{
m_bLocked=false;
@@ -504,7 +384,6 @@ void CLanguageSettingsDlg::SetGroup( CSetting *pGroup )
break;
}
}
UpdateLink(m_pSetting->value.bstrVal);
m_bLocked=m_pSetting->IsLocked();
TOOLINFO tool={sizeof(tool),0,m_hWnd,'CLSH'};
@@ -517,52 +396,6 @@ void CLanguageSettingsDlg::SetGroup( CSetting *pGroup )
ListView_SetBkColor(list,GetSysColor(m_bLocked?COLOR_BTNFACE:COLOR_WINDOW));
}
void CLanguageSettingsDlg::UpdateLink( const wchar_t *language )
{
TOOLINFO tool={sizeof(tool),TTF_SUBCLASS|TTF_IDISHWND,m_hWnd,'CLSH'};
tool.uId=(UINT_PTR)GetDlgItem(IDC_LINKDOWNLOAD).m_hWnd;
m_Tooltip.SendMessage(TTM_DELTOOL,0,(LPARAM)&tool);
if (!s_VersionData.bValid)
{
SetDlgItemText(IDC_LINKDOWNLOAD,L"");
return;
}
if (!*language)
language=m_LanguageIDs[0].name;
wchar_t text[1024];
for (std::vector<LanguageVersionData>::const_iterator it=s_VersionData.languages.begin();it!=s_VersionData.languages.end();++it)
{
if (_wcsicmp(it->language,language)==0)
{
DWORD dllVersion=0, dllBuild=0;
HINSTANCE resInstance=LoadTranslationDll(language);
if (resInstance)
{
dllVersion=GetVersionEx(resInstance,&dllBuild);
FreeLibrary(resInstance);
}
if (it->version>dllVersion || (it->version==dllVersion && it->build>dllBuild))
{
Sprintf(text,_countof(text),LoadStringEx(IDS_LANGUAGE_DOWNLOAD),language);
SetDlgItemText(IDC_LINKDOWNLOAD,text);
tool.lpszText=(LPWSTR)(LPCWSTR)it->url;
m_Tooltip.SendMessage(TTM_ADDTOOL,0,(LPARAM)&tool);
}
else
{
Sprintf(text,_countof(text),LoadStringEx(IDS_LANGUAGE_UPDATED),language);
SetDlgItemText(IDC_LINKDOWNLOAD,text);
}
return;
}
}
Sprintf(text,_countof(text),LoadStringEx(IDS_LANGUAGE_MISSING),language);
SetDlgItemText(IDC_LINKDOWNLOAD,text);
}
class CLanguageSettingsPanel: public ISettingsPanel
{
public:

View File

@@ -98,8 +98,6 @@ FONT 9, "Segoe UI", 400, 0, 0x0
BEGIN
CONTROL "",IDC_LISTLANGUAGE,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_NOCOLUMNHEADER | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,7,18,302,99
LTEXT "Select a language for the user interface:",IDC_STATICHINT,7,7,131,8
PUSHBUTTON "&Check for Updates",IDC_BUTTONCHECK,7,123,75,14
CONTROL "download link goes here",IDC_LINKDOWNLOAD,"SysLink",WS_TABSTOP,85,126,224,10
END
IDD_CUSTOMTREE DIALOGEX 0, 0, 365, 183
@@ -279,20 +277,12 @@ BEGIN
IDS_SETTING_SEARCH "Search Results"
IDS_WEBSITE_TIP "Visit Open-Shell on the web - https://open-shell.github.io/Open-Shell-Menu"
IDS_LOCATE_SETTING "Locate setting"
IDS_LANGUAGE_UPDATED "The language %s is up to date."
IDS_LANGUAGE_MISSING "Update for language %s is not available."
IDS_LANGUAGE_DOWNLOAD "New update for language %s is available. <a>Click here to install it.</a>"
IDS_LANGUAGE_SUCCESS "The language file was installed successfully.\nYou need to log off and back on for the update to take effect."
IDS_LANGUAGE_SUCCESS2 "The language file was installed successfully.\nYou need to log off and back on for the update to take effect.\n\nNote: This update provides only basic translations. It supports only the main text found in the start menu and in Explorer. The settings will not be translated."
IDS_LANGUAGE_FAIL "Failed to check for updates."
IDS_INTERNET_FAIL "Failed to connect to the Internet."
END
STRINGTABLE
BEGIN
IDS_INITIATE_FAIL "Failed to initiate the download."
IDS_LANG_DOWNLOAD_FAIL "Failed to download the language file."
IDS_LANG_SAVE_FAIL "Failed to save language file '%s'."
IDS_UPDATE_TITLE "Open-Shell Update"
IDS_INST_DOWNLOAD_FAIL "Failed to download the new version."
IDS_INST_SAVE_FAIL "Failed to save file '%s'."
@@ -308,11 +298,6 @@ BEGIN
IDS_UNSAVED_TITLE "Unsaved changes"
END
STRINGTABLE
BEGIN
IDS_VERSION_URL "http://www.classicshell.net/files/updates/update_"
END
#endif // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////

View File

@@ -25,130 +25,31 @@
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<PropertyGroup Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<UseOfAtl>Static</UseOfAtl>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<UseOfAtl>Static</UseOfAtl>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<UseOfAtl>Static</UseOfAtl>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
<UseOfAtl>Static</UseOfAtl>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization Condition="'$(Configuration)'!='Debug'">true</WholeProgramOptimization>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<ImportGroup Label="PropertySheets">
<Import Project="..\Common.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<OutDir>$(Configuration)64\</OutDir>
<IntDir>$(Configuration)64\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<OutDir>$(Configuration)64\</OutDir>
<IntDir>$(Configuration)64\</IntDir>
<PropertyGroup>
<OutDir>$(IntDir)</OutDir>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>APPVEYOR_REPO_COMMIT="$(APPVEYOR_REPO_COMMIT)";%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
<PreprocessorDefinitions>_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Lib>
<TargetMachine>MachineX86</TargetMachine>
<TargetMachine Condition="'$(Platform)'=='Win32'">MachineX86</TargetMachine>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup>
<Image Include="..\Setup\OpenShell.ico" />
<Image Include="flags.bmp" />
@@ -200,7 +101,17 @@
<ClCompile Include="TrackResources.cpp" />
<ClCompile Include="Translations.cpp" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="..\packages\nlohmann.json.3.11.2\build\native\nlohmann.json.targets" Condition="Exists('..\packages\nlohmann.json.3.11.2\build\native\nlohmann.json.targets')" />
</ImportGroup>
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\nlohmann.json.3.11.2\build\native\nlohmann.json.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\nlohmann.json.3.11.2\build\native\nlohmann.json.targets'))" />
</Target>
</Project>

View File

@@ -149,4 +149,7 @@
<Filter>Lib</Filter>
</ClCompile>
</ItemGroup>
</Project>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
</Project>

View File

@@ -920,7 +920,7 @@ HFONT CreateFontSetting( const wchar_t *fontStr, int dpi )
weight=FW_BOLD, bItalic=true;
str=GetToken(str,token,_countof(token),L", \t");
int size=-_wtol(token);
return CreateFont(size*dpi/72,0,0,0,weight,bItalic?1:0,0,0,DEFAULT_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH,name);
return CreateFont(MulDiv(size,dpi,72),0,0,0,weight,bItalic?1:0,0,0,DEFAULT_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH,name);
}
static UINT WINAPI GetDpiForWindow(HWND hwnd)

View File

@@ -13,17 +13,12 @@
#include <Uxtheme.h>
#include <VSStyle.h>
#include <propkey.h>
#include <propvarutil.h>
#include <htmlhelp.h>
#include <vector>
#include <map>
#include <algorithm>
#ifdef BUILD_SETUP
#define DOC_PATH L""
#else
#define DOC_PATH L"..\\..\\Docs\\Help\\"
#endif
///////////////////////////////////////////////////////////////////////////////
// Read/Write lock for accessing the settings. Can't be acquired recursively. Only the main UI thread (the one displaying the settings UI)
@@ -984,7 +979,7 @@ void CSettingsManager::ResetSettings( void )
HIMAGELIST CSettingsManager::GetImageList( HWND tree )
{
if (m_ImageList) return m_ImageList;
HTHEME theme=OpenThemeData(tree,L"button");
HTHEME theme=OpenThemeData(GetParent(tree),L"button");
HDC hdc=CreateCompatibleDC(NULL);
int iconSize=(TreeView_GetItemHeight(tree)<32)?16:32;
int checkSize=16;
@@ -1114,7 +1109,7 @@ class CSettingsDlg: public CResizeableDlg<CSettingsDlg>
{
public:
CSettingsDlg( void );
void Init( CSetting *pSettings, ICustomSettings *pCustom, int tab );
void Init( CSetting *pSettings, ICustomSettings *pCustom, int tab, const wchar_t* appId );
BEGIN_MSG_MAP( CSettingsDlg )
MESSAGE_HANDLER( WM_INITDIALOG, OnInitDialog )
@@ -1188,6 +1183,7 @@ private:
bool m_bIgnoreEdit;
bool m_bDirty;
CString m_FilterText;
const wchar_t* m_AppId;
void AddTabs( int name, const CSetting *pSelect=NULL );
void SetCurTab( int index, bool bReset, const CSetting *pSelect=NULL );
@@ -1220,15 +1216,17 @@ CSettingsDlg::CSettingsDlg( void )
m_bOnTop=false;
m_bIgnoreEdit=false;
m_bDirty=false;
m_AppId=NULL;
}
void CSettingsDlg::Init( CSetting *pSettings, ICustomSettings *pCustom, int tab )
void CSettingsDlg::Init( CSetting *pSettings, ICustomSettings *pCustom, int tab, const wchar_t* appId )
{
m_pSettings=pSettings;
m_pCustom=pCustom;
m_InitialTab=tab;
m_FilterText.Empty();
m_bDirty=false;
m_AppId=appId;
}
// Subclass the tooltip to delay the tip when the mouse moves from one tree item to the next
@@ -1252,17 +1250,19 @@ LRESULT CSettingsDlg::OnInitDialog( UINT uMsg, WPARAM wParam, LPARAM lParam, BOO
#ifdef _DEBUG
g_bUIThread=true;
#endif
/*
// attempt to make the dialog have its own icon. doesn't work though. the icon changes, but to the default folder icon
CComPtr<IPropertyStore> pStore;
if (SUCCEEDED(SHGetPropertyStoreForWindow(m_hWnd,IID_IPropertyStore,(void**)&pStore)))
if (m_AppId)
{
PROPVARIANT val;
val.vt=VT_LPWSTR;
val.pwszVal=L"OpenShell.Settings.Dialog";
pStore->SetValue(PKEY_AppUserModel_ID,val);
// attempt to make the dialog have its own icon
CComPtr<IPropertyStore> pStore;
if (SUCCEEDED(SHGetPropertyStoreForWindow(m_hWnd,IID_IPropertyStore,(void**)&pStore)))
{
PROPVARIANT val;
InitPropVariantFromString(m_AppId,&val);
pStore->SetValue(PKEY_AppUserModel_ID,val);
}
}
*/
InitResize(MOVE_MODAL);
HMENU menu=GetSystemMenu(FALSE);
bool bAdded=false;
@@ -1846,7 +1846,7 @@ bool CSettingsDlg::IsTabValid( void )
static CSettingsDlg g_SettingsDlg;
void EditSettings( const wchar_t *title, bool bModal, int tab )
void EditSettings( const wchar_t *title, bool bModal, int tab, const wchar_t* appId )
{
if (g_SettingsDlg.m_hWnd)
{
@@ -1864,7 +1864,7 @@ void EditSettings( const wchar_t *title, bool bModal, int tab )
}
DLGTEMPLATE *pTemplate=LoadDialogEx(IDD_SETTINGS);
g_SettingsManager.ResetImageList();
g_SettingsDlg.Init(g_SettingsManager.GetSettings(),g_SettingsManager.GetCustom(),tab);
g_SettingsDlg.Init(g_SettingsManager.GetSettings(),g_SettingsManager.GetCustom(),tab,appId);
g_SettingsDlg.Create(NULL,pTemplate);
g_SettingsDlg.SetWindowText(title);
g_SettingsDlg.SetWindowPos(HWND_TOPMOST,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE|(g_SettingsDlg.GetOnTop()?0:SWP_NOZORDER)|SWP_SHOWWINDOW);
@@ -1952,6 +1952,13 @@ bool ImportSettingsXml( const wchar_t *fname )
if (error.IsEmpty())
{
g_SettingsManager.SaveSettings(false);
// we have successfuly imported settings from XML
// so there is no need to show settings dialog when start menu is triggered for the first time
CRegKey regKey;
if (regKey.Open(HKEY_CURRENT_USER,GetSettingsRegPath())==ERROR_SUCCESS)
regKey.SetDWORDValue(L"ShowedStyle2",1);
return true;
}
@@ -2178,7 +2185,7 @@ bool HasHelp( void )
GetModuleFileName(_AtlBaseModule.GetResourceInstance(),path,_countof(path));
*PathFindFileName(path)=0;
wchar_t topic[_MAX_PATH];
Sprintf(topic,_countof(topic),L"%s%sOpenShell.chm",path,GetDocRelativePath());
Sprintf(topic,_countof(topic),L"%sOpenShell.chm",path);
return (GetFileAttributes(topic)!=INVALID_FILE_ATTRIBUTES);
}
@@ -2188,7 +2195,7 @@ void ShowHelp( void )
GetModuleFileName(_AtlBaseModule.GetResourceInstance(),path,_countof(path));
*PathFindFileName(path)=0;
wchar_t topic[_MAX_PATH];
Sprintf(topic,_countof(topic),L"%s%sOpenShell.chm::/%s.html",path,GetDocRelativePath(),PathFindFileName(g_SettingsManager.GetRegPath()));
Sprintf(topic,_countof(topic),L"%sOpenShell.chm::/%s.html",path,PathFindFileName(g_SettingsManager.GetRegPath()));
HtmlHelp(GetDesktopWindow(),topic,HH_DISPLAY_TOPIC,NULL);
}

View File

@@ -129,14 +129,13 @@ void InitSettings( CSetting *pSettings, TSettingsComponent component, ICustomSet
void LoadSettings( void );
void SaveSettings( void );
void UpdateDefaultSettings( void );
void EditSettings( const wchar_t *title, bool bModal, int tab );
void EditSettings( const wchar_t *title, bool bModal, int tab, const wchar_t *appId = nullptr );
void CloseSettings( void );
void SetSettingsDirty( void );
void SelectSettingsTab( int tab, bool bAdvanced, const CSetting *pSelect );
void UpdateSettings( void ); // implemented by the user
void UpgradeSettings( bool bShared ); // implemented by the user (called when converting 3.0 settings to 4.0)
void ClosingSettings( HWND hWnd, int flags, int command ); // implemented by the user
const wchar_t *GetDocRelativePath( void ); // implemented by the user
void SettingChangedCallback( const CSetting *pSetting ); // implemented by the user
bool IsSettingsMessage( MSG *msg );
bool ImportSettingsXml( const wchar_t *fname );

View File

@@ -2701,7 +2701,7 @@ LRESULT CTreeSettingsDlg::OnBrowse( WORD wNotifyCode, WORD wID, HWND hWndCtl, BO
else if (_wcsicmp(token,L"bold_italic")==0)
font.lfWeight=FW_BOLD, font.lfItalic=1;
str=GetToken(str,token,_countof(token),L", \t");
font.lfHeight=-(_wtol(token)*dpi+36)/72;
font.lfHeight=-MulDiv(_wtol(token),dpi,72);
CHOOSEFONT choose={sizeof(choose),m_hWnd,NULL,&font};
choose.Flags=CF_NOSCRIPTSEL;

File diff suppressed because it is too large Load Diff

4
Src/Lib/packages.config Normal file
View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="nlohmann.json" version="3.11.2" targetFramework="native" />
</packages>

View File

@@ -14,6 +14,7 @@
#include <shlobj.h>
#include <shellapi.h>
#define _ATL_MODULES // compatibility with /permissive-
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit
#include <atlbase.h>

View File

@@ -5,7 +5,7 @@ Contents file=OpenShellTOC.hhc
Default topic=Main.html
Display compile progress=Yes
Language=0x409 English (United States)
Title=Open-Shell Help
[FILES]
ClassicExplorer.html

View File

@@ -209,7 +209,7 @@ body {
<img src="images/settings5.png" style="width: 688px; height: 572px;" alt=""><br>
在这个例子中,设置“启用右键菜单“一直锁定,任何用户都不能改变。这是实现
通过添加设置 <span style="font-weight: bold;">HKEY_LOCAL_MACHINE\SOFTWARE\OpenShell\Menu</span> registry key. 创建一个 DWORD 值叫 "EnableContextMenu" 并且设置为 0.<br>
通过添加设置 <span style="font-weight: bold;">HKEY_LOCAL_MACHINE\SOFTWARE\OpenShell\StartMenu</span> registry key. 创建一个 DWORD 值叫 "EnableContextMenu" 并且设置为 0.<br>
<br>
在某些情况下,您可能不希望锁定为所有用户的值,只是修改初始值的设置。在这样的情况下添加“默认”名称的值。例如如果你想上下文菜单默认为禁用,但仍允许用户启用它,如果他们愿意,创建一个DWORD值命名为“EnableContextMenu_Default”并将它设置为0。<br>
<br>

View File

@@ -6,7 +6,7 @@ Default Font=
Default topic=Main.html
Display compile progress=Yes
Language=0x404 中文 (繁體,台灣)
Title=Open-Shell Help
[FILES]
ClassicExplorer.html

View File

@@ -156,7 +156,7 @@ Open-Shell Menu</span>
設定是每個使用者且存放在登錄檔。 預設每個使用者能編輯其所有的設定。 系統管理員能鎖定指定設定,因此沒有使用者能編輯:<br>
<img src="images/settings5.png" style="width: 688px; height: 472px;" alt=""><br>
在此範例,設定「啟用右鍵功能表」鎖定為始終不選取且使用者無法變更。 這是透過加入設定到 <span style="font-weight: bold;">HKEY_LOCAL_MACHINE\SOFTWARE\OpenShell\Menu</span> 登錄檔機碼來達成。 建立名稱為「EnableContextMenu」的 DWORD 值並設成 0。<br>
在此範例,設定「啟用右鍵功能表」鎖定為始終不選取且使用者無法變更。 這是透過加入設定到 <span style="font-weight: bold;">HKEY_LOCAL_MACHINE\SOFTWARE\OpenShell\StartMenu</span> 登錄檔機碼來達成。 建立名稱為「EnableContextMenu」的 DWORD 值並設成 0。<br>
<br>
某些情形下您可能不要針對所有使用者鎖定數值,而只是簡單的修改設定的初始值。 在此情形則在數值的名稱加入「_Default」。 例如如果您要預設停用內容功能表但仍允許使用者視需要啟用建立名稱為「EnableContextMenu_Default」的 DWORD 值並設成 0。<br>
<br>

View File

@@ -0,0 +1,143 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html><head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
<title>Custom Start Buttons</title>
<style type="text/css">
h1 {
color: #0078d4;
font-family: "Segoe UI",Tahoma,sans-serif;
font-weight: 600;
}
h2 {
color: #005a9e;
font-family: "Segoe UI",Tahoma,sans-serif;
font-weight: 600;
}
h3 {
color: #005a9e;
font-weight: 600;
}
body {
font-family: "Segoe UI",Tahoma,sans-serif;
}
</style></head>
<body>
<h1>Custom Start Buttons Tutorial</h1>
<br>
<h2>Simple Start Buttons</h2>
A custom start button requires an image that contains 3 distinct parts one for the normal state of the button, one for the hot state (when the mouse is over the button), and one for the pressed state. The 3 parts must be the same size.
<br>
<br>
<img src="images/button0.png">
<br>
<br>
By default the width of the start button equals the width of the image. The height of the button is the height of the image divided by 3. You can scale the image by overriding the width of the button from the Open-Shell settings. The height will be adjusted to preserve the aspect ratio.
<br>
<br>
The image must be saved in either PNG or BMP format (including 32-bit BMP files). For best results use an image editor that supports transparency, like Photoshop, Gimp or Paint .NET.
<br>
<br>
<h3>Where to download</h3>
You can find many start button images on the Internet. Here are some of the places:
<br>
<a href="http://www.classicshell.net/forum/viewforum.php?f=18">http://www.classicshell.net/forum/viewforum.php?f=18</a>
<br>
<a href="https://www.sevenforums.com/themes-styles/34951-custom-start-menu-button-collection.html">https://www.sevenforums.com/themes-styles/34951-custom-start-menu-button-collection.html</a>
<br>
<a href="https://www.sevenforums.com/customization/78291-big-group-custom-start-orbs.html">https://www.sevenforums.com/customization/78291-big-group-custom-start-orbs.html</a>
<br>
<a href="https://tutoriales13.deviantart.com/art/Orbs-153450418">https://tutoriales13.deviantart.com/art/Orbs-153450418</a>
<br>
<a href="https://www.deviantart.com/?q=start+button+orb">https://www.deviantart.com/?q=start+button+orb</a>
<br>
<br>
<h2>Animated Buttons</h2>
Open-Shell does support animated start buttons. They contain animated transitions between the different states.
<br>
<br>
The animated image consists of one or more rows of pixels that describe the animation, followed by one or more button frames. The description rows need to be fully opaque (A=255). The frames are counted from 0 frame0, frame1, .... All frames must be the same size.
<br>
<br>
<img src="images/button1.png">
<br>
<br>
<h3>Main information (stored in the first 6 pixels)</h3>
The first two pixels of the first row need to be:
<br>
<span style="font-weight: bold;"> Pixel 0:</span> color R=65, G=78, B=77 (This is the text ANM in ASCII)
<br>
<span style="font-weight: bold;"> Pixel 1:</span> color R=66, G=84, B=78 (This is the text BTN in ASCII)
<br>
They allow the start button to recognize that this image contains animation.
<br>
<br>
The next pixel describes the number of frames and the number of description rows:
<br>
<span style="font-weight: bold;"> Pixel 2:</span> The red channel contains the number of description rows (usually 1). The blue channel contains the number of total frames in the bitmap (this limits the number of frames to 255).
<br>
If one row is not enough to describe the animations, it can continue on two or more rows.
<br>
The contents of this pixel and the total size of the image determine the size of the individual frame. The number of description rows (red channel) is subtracted by the total height of the image, and then it is divided by the number of frames (blue channel).
<br>
<br>
The next 3 pixels contain the frames for the 3 distinct states of the start button Normal, Hot and Pressed.
<br>
<span style="font-weight: bold;"> Pixel 3:</span> The blue channel contains the index of the frame for the Normal state (usually 0)
<br>
<span style="font-weight: bold;"> Pixel 4:</span> The blue channel contains the index of the frame for the Hot state
<br>
<span style="font-weight: bold;"> Pixel 5:</span> The blue channel contains the index of the frame for the Pressed state
<br>
<br>
<img src="images/button2.png">
<br>
<br>
<h3>Transitions</h3>
The rest of the pixels describe the transitions between the different states, in this order:
<br>
<ol>
<li>Normal to Hot</li>
<li>Hot to Normal</li>
<li>Normal to Pressed</li>
<li>Pressed to Normal</li>
<li>Hot to Pressed</li>
<li>Pressed to Hot</li>
</ol>
The blue channel of the first pixel of each transition contains the duration of the animation in 1/60th of a second (so 60 means 1 second). If this is 0, then there is no transition.
<br>
The green channel contains the number of frame ranges that follow. If this is 0, then the transition is a direct transition from the start state to the end state.
<br>
The red channel is 1 for the default behavior to cross-blend between frames and 0 to disable blending.
<br>
<br>
The next few pixels contain pairs or frame ranges that make up the animation between the states. Their count is in the green channel of the first pixel of the transition. The first frame in the range is in the blue channel and the last frame is in the red channel. If the first and last frame of the range are different, then both frames and all frames between them are included.
<br>
<br>
If the first and the last frame are the same, then the range identifies a single frame. This allows for precise selection of each frame of the animation.
<br>
<br>
<img src="images/button3.png">
<br>
<br>
In this example the Normal to Hot animation contains frames from 0 to 10. They play for 0.3 seconds and allow blending between frames. The Hot to Normal animation is the same but in reverse it plays from frame 10 to frame 0.
<br>
The other 4 transitions are empty.
<br>
<br>
<h2>Open-Shell Limitations</h2>
While the format is very flexible and allows for custom animations between all states, Open-Shell does not support all features.
<br>
<ol>
<li>It only supports animations between the Normal and Hot states. Any transitions involving the Pressed state are instant to improve responsiveness
<br>
<br>
</li>
<li>The animations between Normal and Hot must use the same (or similar) frames in both directions. Potentially the two transitions can play at different speed. The reason is that at any point during the animation it can be interrupted and the opposite animation will start from the current frame. This can happen when the mouse moves in and out of the start button
<br>
</li>
</ol>
<br>
The system also allows you to create a button with a single image. Just set pixels from 3 to 11 to 0. Then frame 0 will be used for all states.
<br>
</body>
</html>

View File

@@ -190,3 +190,4 @@ StartHoverDelay.nameOverride = Hover delay (for Start button)
AllProgramsDelay.nameOverride = Hover delay (for All Programs in Windows 7)
CSMHotkey.tipAddition = .\n\nThe base value is the main key's virtual code. Add 256 for Shift, 512 for Control and 1024 for Alt.\nThe best way to get the value is to select the hotkey in the Open-Shell Menu settings dialog and then look up the value named CSMHotkey in HKCU\Software\OpenShell\StartMenu\Settings
WSMHotkey.tipAddition = .\n\nThe base value is the main key's virtual code. Add 256 for Shift, 512 for Control and 1024 for Alt.\nThe best way to get the value is to select the hotkey in the Open-Shell Menu settings dialog and then look up the value named WSMHotkey in HKCU\Software\OpenShell\StartMenu\Settings
SearchFiles.tipOverride = When this is checked, the search results will include files, emails and other items from indexed locations

View File

@@ -5,7 +5,7 @@ Contents file=OpenShellTOC.hhc
Default topic=Main.html
Display compile progress=Yes
Language=0x409 English (United States)
Title=Open-Shell Help
[FILES]
ClassicExplorer.html
@@ -13,4 +13,3 @@ StartMenu.html
ClassicIE.html
[INFOTYPES]

View File

@@ -40,7 +40,14 @@
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="More About Skins">
<param name="Local" value="StartMenu.html#skins">
<param name="ImageNumber" value="1">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Start Menu Skinning Tutorial">
<param name="Local" value="SkinTutorial.html#skin_tutorial">
</OBJECT>
</UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Search">
<param name="Local" value="StartMenu.html#search">
@@ -48,7 +55,14 @@
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Custom Start Button">
<param name="Local" value="StartMenu.html#button">
<param name="ImageNumber" value="1">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Custom Start Buttons Tutorial">
<param name="Local" value="ButtonTutorial.html#button_tutorial">
</OBJECT>
</UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Localization">
<param name="Local" value="StartMenu.html#localization">

File diff suppressed because it is too large Load Diff

View File

@@ -217,7 +217,7 @@ no user can edit them:<br>
<img src="images/settings5.png" style="width: 516px;" alt=""><br>
In this example the setting "Enable right-click menu" is locked to always
be unchecked and can't be changed by any user. This is achieved
by adding the setting to the <span style="font-weight: bold;">HKEY_LOCAL_MACHINE\SOFTWARE\OpenShell\Menu</span> registry key. Create a DWORD value called "EnableContextMenu" and set it to 0.<br>
by adding the setting to the <span style="font-weight: bold;">HKEY_LOCAL_MACHINE\SOFTWARE\OpenShell\StartMenu</span> registry key. Create a DWORD value called "EnableContextMenu" and set it to 0.<br>
<br>
In some cases you may not want to lock the value for all users, but
simply modify the initial value of the setting. In such case add
@@ -263,7 +263,7 @@ selected.<br>
You can create your own skin. You will need an image editor that
supports alpha channel (like Gimp or Photoshop) and a tool to edit
resource files (like Resource Hacker or Visual Studio). And of course
some talent for graphical design :). Read the <a target="_blank" href="http://www.classicshell.net/tutorials/skintutorial.html">Skinning Tutorial</a> before you begin.<br>
some talent for graphical design :). Read the <a href="SkinTutorial.html">Skinning Tutorial</a> before you begin.<br>
<br>
<br><br>
<h1><a name="search"></a>Search</h1><img src="images/search1.png" style="width: 302px;" alt=""><br>
@@ -310,7 +310,7 @@ contain the 3 states of the button - normal, hot and pressed:<br>
The image must be a 32-bit PNG or BMP. By default the width of the
image determines the size of the button. You can override that by
entering a custom width.<br>
Read the <a href="http://www.classicshell.net/tutorials/buttontutorial.html">Button Tutorial</a> for more information about creating custom buttons.<br>
Read the <a href="ButtonTutorial.html">Button Tutorial</a> for more information about creating custom buttons.<br>
You can find many custom Start button images online. Here are few examples:<br>
<a href="http://www.classicshell.net/forum/viewforum.php?f=18">http://www.classicshell.net/forum/viewforum.php?f=18</a><br>
<a target="_blank" href="http://www.sevenforums.com/themes-styles/34951-custom-start-menu-button-collection.html">http://www.sevenforums.com/themes-styles/34951-custom-start-menu-button-collection.html<br>

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 887 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 683 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 964 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@@ -190,3 +190,4 @@ StartHoverDelay.nameOverride = Délai du survol (pour le bouton Démarrer)
AllProgramsDelay.nameOverride = Délai du survol (Pour Tous les Programmes dans Windows 7)
CSMHotkey.tipAddition = .\n\nLa valeur de base est le code virtuel principal de la touche. Ajouter 256 pour Maj, 512 pour Contrôle et 1024 pour and 1024 Alt.\nLa meilleur façon pour obtenir la valeur est de sélectionnez la touche raccourcie dans le boîte de dialogue des Paramètres et de chercher la valeur nommée CSMHotkey dans HKCU\Software\OpenShell\StartMenu\Settings
WSMHotkey.tipAddition = .\n\nLa valeur de base est le code virtuel principal de la touche. Ajouter 256 pour Maj, 512 pour Contrôle et 1024 pour and 1024 Alt.\nLa meilleur façon pour obtenir la valeur est de sélectionnez la touche raccourcie dans le boîte de dialogue des Paramètres et de chercher la valeur nommée WSMHotkey in HKCU\Software\OpenShell\StartMenu\Settings
SearchFiles.tipOverride = Lorsque cette case est cochée, les résultats de la recherche incluront les fichiers, e-mails et autres éléments provenant d'emplacements indexés

View File

@@ -5,7 +5,7 @@ Contents file=OpenShellTOC.hhc
Default topic=Main.html
Display compile progress=Yes
Language=0x40C French (France)
Title=Open-Shell Help
[FILES]
ClassicExplorer.html
@@ -13,4 +13,3 @@ StartMenu.html
ClassicIE.html
[INFOTYPES]

View File

@@ -1,7 +1,7 @@
; TRANSLATE ===================================================================
Title.text = Paramètres Open-Shell
State.text = Etat:
State.text = État:
State1.text = Verrouillé sur cette valeur
State2.text = Verrouillé sur le paramètre par défaut
State3.text = Déverrouillé
@@ -13,7 +13,7 @@ OpenShellCat.text = Open-Shell
OpenShellCatHelp.text = Paramètres de la stratégie de groupe de Open-Shell
SUPPORTED_CS404.text = Nécessite Open-Shell 4.0.4 ou plus.
Language.nameOverride = Langage pour les composants Open-Shell
Language.tipOverride = Sélectionnez la langue pour être utilisée avec Open-Shell (par exemple en-US ou de-DE). La langue affectera le texte dans le menu démarrer, les barres d'outils, etc. Si la DLL de langue appropriée est installée, les paramètres UI peuvent aussi être traduits
Language.nameOverride = Langue pour les composants Open-Shell
Language.tipOverride = Sélectionnez la langue à utiliser avec Open-Shell (par exemple en-US ou de-DE). Le choix de langue affectera le texte dans le menu démarrer, les barres d'outils, etc. Si la DLL de langue appropriée est installée, les paramètres UI peuvent aussi être traduits
Update.nameOverride = Activer la vérification automatique de nouvelles versions
Update.tipOverride = Lorsque ceci est coché, Open-Shell vérifiera s'il y a des nouvelles versions chaque semaine. Vous serez averti s'il y a une nouvelle version du logiciel ou une mise à jour pour votre langage actuel
Update.tipOverride = Lorsque ceci est coché, Open-Shell vérifiera s'il y a des nouvelles versions chaque semaine. Vous serez averti s'il y a une nouvelle version du logiciel ou une mise à jour pour votre langue actuelle

View File

@@ -37,13 +37,13 @@ est un menu d&eacute;marrer flexible qui peut mimiquer l&#8217;attitude du menu
<li>Afficher les documents r&eacute;cemment utilis&eacute;s. Le nombre de documents &agrave; afficher et personnalisable</li>
<li>Traduit dans 35 langues, incluant le support Droite-Gauche pour l&#8217;Arabe et l&#8217;H&eacute;breux</li>
<li>Ne d&eacute;sactive pas le menu d&eacute;marrer orginal de Windows. You can access it by Maj+Clic sur le bouton du menu</li>
<li>Clic droit sur un &eacute;l&eacute;ment du menu pour le supprimer, le renomer, le trier, ou effectuer d&#8217;autres tâches</li>
<li>Clic droit sur un &eacute;l&eacute;ment du menu pour le supprimer, le renomer, le trier, ou effectuer d&#8217;autres t&acirc;ches</li>
<li>La bo&icirc;te de recherche vous aide &agrave; trouver les logiciels et fichiers sans avoir &agrave; utiliser vos raccourcis claviers</li>
<li>Support des listes de raccourcis pour un acc&egrave;s rapide aux documents r&eacute;cents et tâches courantes</li>
<li>Disponible pour les syst&egrave;mes d'exploitation 32 et 64-bit</li>
<li>Support des listes de raccourcis pour un acc&egrave;s rapide aux documents r&eacute;cents et t&acirc;ches courantes</li>
<li>Disponible pour les syst&egrave;mes d&#8217;exploitation 32 et 64-bit</li>
<li>Supporte les peaux (skins), incluant aditionnellement les peaux (skins) de tierces parties. Cr&eacute;ez la v&ocirc;tre !!</li>
<li>Enti&egrave;rement personnalisable autant pour le look que pour les fonctionnalit&eacute;s</li>
<li>Support pour l'Active Acc&eacute;ssibilit&eacute; de Microsoft (Microsoft&#8217;s Active Accessibility)</li>
<li>Support pour l&#8217;Active Acc&eacute;ssibilit&eacute; de Microsoft (Microsoft&#8217;s Active Accessibility)</li>
<li>Convertit le bouton &#8220;Tous les Programmes&#8221; de menu Windows en menu cascad&eacute;</li>
<li>Impl&eacute;mente un bouton d&eacute;marrer personnalisable<br>
</li>
@@ -58,24 +58,24 @@ est un menu d&eacute;marrer flexible qui peut mimiquer l&#8217;attitude du menu
Le menu d&eacute;marrer offre 3 choix de styles.<br>
<h3>1) Simple colonne style classique (classic)</h3>
<img src="images/style1.png" style="width: 557px; height: 804px;" alt=""><br>
Ce style est tr&egrave;s similaire au menu trouv&eacute; dans Windows 2000. Il a une colonne dans le menu principal avec du texte vertical sur le c&ocirc;t&eacute;, vous pouvez personnaliser l'ordre des &eacute;l&eacute;ments, ic&ocirc;nes et texte.<br>
Ce style est tr&egrave;s similaire au menu trouv&eacute; dans Windows 2000. Il a une colonne dans le menu principal avec du texte vertical sur le c&ocirc;t&eacute;, vous pouvez personnaliser l&#8217;ordre des &eacute;l&eacute;ments, ic&ocirc;nes et texte.<br>
Programmes, listes de raccourcis, et r&eacute;sultats de recherche s'affichent comme des sous-menus cascad&eacute;s.<br>
Programmes, listes de raccourcis, et r&eacute;sultats de recherche s&#8217;affichent comme des sous-menus cascad&eacute;s.<br>
<br>
<h3>2) Style classique (classic) 2 colonnes</h3>
<img src="images/style2.png" style="width: 491px; height: 711px;" alt=""><br>
Ceci est similaire au menu de Windows XP. Il y a 2 colonnes o&ugrave; vous pouvez arranger vos &eacute;l&eacute;ments de menu.
Personnaliser leurs ordres, ic&ocirc;nes et texte.<br>
Programmes, listes de raccourcis, et r&eacute;sultats de recherche s'affichent comme des sous-menus cascad&eacute;s.<br>
Programmes, listes de raccourcis, et r&eacute;sultats de recherche s&#8217;affichent comme des sous-menus cascad&eacute;s.<br>
<br>
<h3>3) Style Windows 7<br>
</h3>
<img src="images/style3.png" style="width: 494px; height: 630px;" alt=""><br>
Ceci est similaire au menu Windows Vista et Windows 7. Les &eacute;l&eacute;ments dans la premi&egrave;re colonne sont pr&eacute;d&eacute;finis comme &eacute;pingler et Programmes R&eacute;cents, la liste de Tous les Programmes et la zone de recherche.
Les &eacute;l&eacute;ments dans la seconde colonne sont enti&egrave;rement personnalisable.<br>
Les listes de raccourcis et les r&eacute;sultats de recherche sont affich&eacute;s &agrave; l'int&eacute;rieur du menu principal. Les programmes peuvent &ecirc;tre &agrave; l'int&eacute;rieur du menu principal ou
s'afficher sous la forme d&#8217;un sous-menu cascad&eacute;.<br>
Les listes de raccourcis et les r&eacute;sultats de recherche sont affich&eacute;s &agrave; l&#8217;int&eacute;rieur du menu principal. Les programmes peuvent &ecirc;tre &agrave; l&#8217;int&eacute;rieur du menu principal ou
s&#8217;afficher sous la forme d&#8217;un sous-menu cascad&eacute;.<br>
Ce style offre moins d&#8217; options de personnalisation que les styles classiques (classic), mais donne une apparence et un sentiment plus familier aux personnes ayant utilis&eacute; Windows 7.<br>
<br>
<br>
@@ -87,16 +87,16 @@ Si vous avez utilis&eacute; le menu d&eacute;marrer dans les anciennes versions
<p>
Appuyez sur la touche Windows ou cliquez sur l&#8217; orbe de Open-Shell dans le coin de l&#8217; &eacute;cran pour ouvrir le menu d&eacute;marrer.</p>
<p>
Maintenez Majuscule enfonc&eacute;e pendant que vous cliquez sur l&#8217; orbe de Open-Shell pour acc&eacute;der au menu d&eacute;marrer d'origine du syst&egrave;me d'exploitation.
Maintenez Majuscule enfonc&eacute;e pendant que vous cliquez sur l&#8217; orbe de Open-Shell pour acc&eacute;der au menu d&eacute;marrer d&#8217;origine du syst&egrave;me d&#8217;exploitation.
</p>
<p>
Cliquez sur un &eacute;l&eacute;ment pour l'ex&eacute;cuter.
Cliquez sur un &eacute;l&eacute;ment pour l&#8217;ex&eacute;cuter.
</p>
<p>
Glissez un programme pour changer l'ordre des programmes dans un menu, ou pour le d&eacute;placer dans un autre dossier.
Glissez un programme pour changer l&#8217;ordre des programmes dans un menu, ou pour le d&eacute;placer dans un autre dossier.
</p>
<p>
Clic droit sur un &eacute;l&eacute;ment pour le renomer, le supprimer, l&#8217;explorer, trier le menu, ou effectuer d'autres tâches.</p>
Clic droit sur un &eacute;l&eacute;ment pour le renomer, le supprimer, l&#8217;explorer, trier le menu, ou effectuer d&#8217;autres t&acirc;ches.</p>
<p>
Clic droit sur l&#8217;orbe de Open-Shell pour modifier les param&egrave;tres du menu d&eacute;marrer, pour voir ce fichier d&#8217;aide, ou pour stopper le menu d&eacute;marrer.<br>
</p>
@@ -109,7 +109,7 @@ Param&egrave;tres</h1>Clic droit sur le menu d&eacute;marrer pour acc&eacute;der
<img src="images/settings1.png" style="width: 688px; height: 572px;" alt=""><br>
<br>
Vous pouvez choisir d'afficher les param&egrave;tres de base ou tous les param&egrave;tres disponibles. Survolez chaque param&egrave;tre pour obtenir une description de sa fonction.
Saisissez un mot dans la zone de recherche pour trouver un param&egrave;tre grâce &agrave; son nom.<br>
Saisissez un mot dans la zone de recherche pour trouver un param&egrave;tre gr&acirc;ce &agrave; son nom.<br>
Chaque param&egrave;tre &agrave; une valeur par d&eacute;faut. La valeur par d&eacute;faut peut-&ecirc;tre une constante, ou elle peut d&eacute;pendre des param&egrave;tres syst&egrave;mes actuels.
Une fois que vous modifiez un param&egrave;tre, celui-ci devient &quot;modifi&eacute;&quot; et est affich&eacute; en gras. Pour revenir au param&egrave;tre par d&eacute;faut, clic droit sur le param&egrave;tre.<br>
@@ -177,14 +177,14 @@ Une utilisation possible est de remplacer l&#8217;&eacute;l&eacute;ment menu arr
Les param&egrave;tres sont par utilisateur et sont stocker dans la registrerie. Par d&eacute;faut chaque utilisateur peut modifier n&#8217;importe quel param&egrave;tre. Un administrateur peut verrouiller des param&egrave;tres sp&eacute;cifiques, de fa&ccedil;on &agrave; ce qu&#8217;aucun utilisateur ne puisse les modifier :<br>
<img src="images/settings5.png"a style="width: 690px; height: 573px;" alt=""><br>
Dans cet exemple le param&egrave;tre &quot;Activer menu clic-droit&quot; est verrouill&eacute; non coch&eacute; et ne peut pas &ecirc;tre modifer par aucun utilisateur. Ceci est rendu possible par l&#8217;ajout du param&egrave;tre <span style="font-weight: bold;">HKEY_LOCAL_MACHINE\SOFTWARE\OpenShell\Menu</span> dans la clef de registrerie. Cr&eacute;ez une valeur DWORD nomm&eacute;e &quot;EnableContextMenu&quot; et
Dans cet exemple le param&egrave;tre &quot;Activer menu clic-droit&quot; est verrouill&eacute; non coch&eacute; et ne peut pas &ecirc;tre modifer par aucun utilisateur. Ceci est rendu possible par l&#8217;ajout du param&egrave;tre <span style="font-weight: bold;">HKEY_LOCAL_MACHINE\SOFTWARE\OpenShell\StartMenu</span> dans la clef de registrerie. Cr&eacute;ez une valeur DWORD nomm&eacute;e &quot;EnableContextMenu&quot; et
configurez l&agrave; &agrave; 0.<br>
<br>
Dans certains cas vous ne voudrez peut &ecirc;tre pas verrouiller une valeur pour tous les utilisateurs, mais simplement modifier la valeur initiale du param&egrave;tre. Dans ce cas ajoutez &quot;_Default&quot; au
nom de la valeur. Par exemple si vous voulez que le menu contextuel soit d&eacute;sactiv&eacute; par d&eacute;faut mais que vous voulez autoriser les utilisateurs &agrave; modifier cette valeur s&#8217;ils le veulent, cr&eacute;ez
une valeur DWORD nomm&eacute;e &quot;EnableContextMenu_Default&quot; et configurez l&agrave; &agrave; 0.<br>
<br>
La fa&ccedil;on la plus facile de conna&icirc;tre le nom registrerie d'un param&egrave;tre et &ccedil;a valeur pour la modifier, est de la rechercher dans <span style="font-weight: bold;">HKEY_CURRENT_USER\Software\OpenShell\StartMenu\Settings</span>.<br>
La fa&ccedil;on la plus facile de conna&icirc;tre le nom registrerie d&#8217;un param&egrave;tre et &ccedil;a valeur pour la modifier, est de la rechercher dans <span style="font-weight: bold;">HKEY_CURRENT_USER\Software\OpenShell\StartMenu\Settings</span>.<br>
Quelqes fois vous voudrez verrouiller un param&egrave;tre &agrave; sa valeur par d&eacute;faut, mais vous ne savez quelle est la valeur par d&eacute;faut. Dans ce cas cr&eacute;ez une valeur DWORD et
configurez l&agrave; &agrave; 0xDEFA.<br>
@@ -194,7 +194,7 @@ Il y a aussi un param&egrave;tre global &quot;EnableSettings&quot;. Configurez l
<img style="width: 656px; height: 292px;" alt="" src="images/settings_disable_sm.png"><br>
<br>
Le menu d&eacute;marrer v&eacute;rifie aussi la plupart des strat&eacute;gies de groupe configur&eacute;es par l&#8217;administrateur. Ex&eacute;cutez <strong style="color: rgb(0, 112, 192);">gpedit.msc</strong> et aller &agrave; <strong style="color: rgb(0, 112, 192);">Configuration User Configuration -&gt; Mod&egrave;les Administratifs -&gt; Menu D&eacute;marrer et Barre des Tâches</strong>. A partir de l&agrave;, vous pouvez d&eacute;sactiver Ex&eacute;cuter, Arr&ecirc;ter, Aide, et d'autres fonctions. <span style="font-style: italic;">(Non disponible sur les version Home de Windows)</span>.<br>
Le menu d&eacute;marrer v&eacute;rifie aussi la plupart des strat&eacute;gies de groupe configur&eacute;es par l&#8217;administrateur. Ex&eacute;cutez <strong style="color: rgb(0, 112, 192);">gpedit.msc</strong> et aller &agrave; <strong style="color: rgb(0, 112, 192);">Configuration User Configuration -&gt; Mod&egrave;les Administratifs -&gt; Menu D&eacute;marrer et Barre des T&acirc;ches</strong>. A partir de l&agrave;, vous pouvez d&eacute;sactiver Ex&eacute;cuter, Arr&ecirc;ter, Aide, et d&#8217;autres fonctions. <span style="font-style: italic;">(Non disponible sur les version Home de Windows)</span>.<br>
<br>
Modifier les param&egrave;tres au travers des strat&eacute;gies de groupe est aussi support&eacute;. D&eacute;compressez le fichier <b>PolicyDefinitions.zip</b> qui se trouve dans le dossier d&#8217;installation et lisez le document <b>PolicyDefinitions.rtf</b> pour plus de d&eacute;tails.<br>
<br>
@@ -208,24 +208,24 @@ Apr&egrave;s avoir t&eacute;l&eacute;charger une nouvelle peau (skin) vous devez
Files\Open-Shell\Skins</span>. Apr&egrave;s cela, elle sera disponible dans les param&egrave;tres.<br>
<br>
<strong>Note:</strong> Certaines peaux (skins) peuvent &ecirc;tre sp&eacute;cifiquement con&ccedil;ues pour le mode
Classic, Basic, ou Aero. Par exemple une peau (skin) Aero n&eacute;cessitera peut &ecirc;tre le support de l'option verre, les autres auront une apparence bizarre si le th&egrave;me Classique (Classic) ou Base (Basic) est s&eacute;lectionn&eacute;. Certaines peaux (skins) Aero n&eacute;cessiteront aussi peut &ecirc;tre une couleur de verre sp&eacute;cifique &agrave; s&eacute;lectionner.<br>
Classic, Basic, ou Aero. Par exemple une peau (skin) Aero n&eacute;cessitera peut &ecirc;tre le support de l&#8217;option verre, les autres auront une apparence bizarre si le th&egrave;me Classique (Classic) ou Base (Basic) est s&eacute;lectionn&eacute;. Certaines peaux (skins) Aero n&eacute;cessiteront aussi peut &ecirc;tre une couleur de verre sp&eacute;cifique &agrave; s&eacute;lectionner.<br>
<br>
Vous pouvez cr&eacute;er votre propre peau (skin). Vous aurez besoin d'un logiciel de retouche d&#8217;image qui supporte le canal Alpha (comme Gimp ou Photoshop) et un outil pour modifier les fichiers ressources (comme Resource Hacker ou Visual Studio). Et bien s&ucirc;r quelques talents en conception de graphisme :). Lisez le <a target="_blank" href="http://www.classicshell.net/tutorials/skintutorial.html">Tutoriel de peaux (Skinning Tutorial) en anglais</a> avant de commencer.<br>
Vous pouvez cr&eacute;er votre propre peau (skin). Vous aurez besoin d&#8217;un logiciel de retouche d&#8217;image qui supporte le canal Alpha (comme Gimp ou Photoshop) et un outil pour modifier les fichiers ressources (comme Resource Hacker ou Visual Studio). Et bien s&ucirc;r quelques talents en conception de graphisme :). Lisez le <a target="_blank" href="http://www.classicshell.net/tutorials/skintutorial.html">Tutoriel de peaux (Skinning Tutorial) en anglais</a> avant de commencer.<br>
<br>
<br><br>
<h1><a name="search"></a>Recherche</h1><img src="images/search1.png" style="width: 450px; height: 548px;" alt=""><br>
<br>
La zone de recherche vous laisse rechercher du contenu dans le menu d&eacute;marrer, les programmes qui se trouvent dans la variable d'environnement PATH et les fichiers index&eacute;s.
Vous pouvez avoir la zone de recherche appara&icirc;tre sous forme d'&eacute;l&eacute;ment de menu normal et ensuite vous pouvez y aller en utilisant les touches claviers fl&egrave;ches haut/bas.
Vous pouvez choisir d'avoir la zone de recherche s&eacute;lectionn&eacute; par d&eacute;faut quand vous ouvrez le menu d&eacute;marrer. Ou vous pouvez choisir d&#8217;activer la zone de recherche seulement avec la touche Tab, de fa&ccedil;on que tant que vous n'utilisez pas la touche tab vous pouvez utiliser le clavier pour naviguer comme si la zone de recherche n'&eacute;tait pas l&agrave;.<br>
La zone de recherche vous laisse rechercher du contenu dans le menu d&eacute;marrer, les programmes qui se trouvent dans la variable d&#8217;environnement PATH et les fichiers index&eacute;s.
Vous pouvez avoir la zone de recherche appara&icirc;tre sous forme d&#8217;&eacute;l&eacute;ment de menu normal et ensuite vous pouvez y aller en utilisant les touches claviers fl&egrave;ches haut/bas.
Vous pouvez choisir d&#8217;avoir la zone de recherche s&eacute;lectionn&eacute; par d&eacute;faut quand vous ouvrez le menu d&eacute;marrer. Ou vous pouvez choisir d&#8217;activer la zone de recherche seulement avec la touche Tab, de fa&ccedil;on que tant que vous n&#8217;utilisez pas la touche tab vous pouvez utiliser le clavier pour naviguer comme si la zone de recherche n&#8217;&eacute;tait pas l&agrave;.<br>
<br>
Les r&eacute;sultats de recherche s'affichent dans le menu principal si vous utilisez le style Windows 7 ou dans un sous-menu pour les styles Classiques (Classic).<br>
Cliquez sur chaque cat&eacute;gorie pour la d&eacute;velopper et voir plus de r&eacute;sultats. Cliquez sur l&#8217;ic&ocirc;ne &agrave; la fin pour voir tous les r&eacute;sultats dans l&#8217;Explorateur.<br>
<br>
Les styles Classiques (Classic) vous permettent de configurer des &quot;fournisseurs de recherche&quot; additionnels, que vous pouvez utiliser pour rechercher du texte &agrave; partir de la zone de recherche. Vous pouvez ex&eacute;cuter ce programme de recherche soit en le s&eacute;lectionnant &agrave; partir du menu, soit en appuyant sur la touche Alt. Dans cet exemple utilisez Alt+A pour l'Agent Ransack.<br>
Les styles Classiques (Classic) vous permettent de configurer des &quot;fournisseurs de recherche&quot; additionnels, que vous pouvez utiliser pour rechercher du texte &agrave; partir de la zone de recherche. Vous pouvez ex&eacute;cuter ce programme de recherche soit en le s&eacute;lectionnant &agrave; partir du menu, soit en appuyant sur la touche Alt. Dans cet exemple utilisez Alt+A pour l&#8217;Agent Ransack.<br>
<img src="images/search2.png" style="width: 732px; height: 432px;" alt=""><br>
<br>
Ceci est fait en ajoutant des sous-&eacute;l&eacute;ments &agrave; l'&eacute;l&eacute;ment zone de recherche dans l&#8217;onglet <span style="font-weight: bold;">Personnaliser le Menu D&eacute;marrer</span> :<br>
Ceci est fait en ajoutant des sous-&eacute;l&eacute;ments &agrave; l&#8217;&eacute;l&eacute;ment zone de recherche dans l&#8217;onglet <span style="font-weight: bold;">Personnaliser le Menu D&eacute;marrer</span> :<br>
<img src="images/search3.png" style="width: 351px; height: 212px;" alt=""><br>
<br>
Ouvrez chaque sous-&eacute;l&eacute;ment et saisissez la commande pour d&eacute;marrer le programme de recherche. Si vous utilisez <span style="font-weight: bold;">%1</span> dans la commande, cela sera remplac&eacute; par le contenu de la zone de recherche. Si vous utilisez <span style="font-weight: bold;">%2</span> cela sera remplac&eacute; par le texte de la zone de recherche encod&eacute; au format url.
@@ -240,7 +240,7 @@ Recherche avec Bing : <span style="font-weight: bold;">http://www.bing.com/searc
<br>
<br>
<h1><a name="button"></a>Bouton D&eacute;marrer Personnalisable<br>
</h1>Open-Shell peut ajouter son propre bouton d&eacute;marrer &agrave; la barre des tâches. Il peut m&ecirc;me remplacer le bouton d&eacute;marrer par d&eacute;faut de Windows 7.
</h1>Open-Shell peut ajouter son propre bouton d&eacute;marrer &agrave; la barre des t&acirc;ches. Il peut m&ecirc;me remplacer le bouton d&eacute;marrer par d&eacute;faut de Windows 7.
Vous pouvez choisir entre un bouton orbe style Aero, un bouton classique rectangulaire, ou vous pouvez faire le v&ocirc;tre. Pour un bouton d&eacute;marrer personnalis&eacute; vous avez besoin
d&#8217;une image qui contient 3 &eacute;tats du bouton - normal, chaud et cliqu&eacute; :<br>
<img src="images%5Cbutton_images.png" style="width: 64px; height: 192px;" alt="Images du bouton d&eacute;marrer" title="Images du bouton d&eacute;marrer"><br>

View File

@@ -5,7 +5,7 @@ Contents file=OpenShellTOC.hhc
Default topic=Main.html
Display compile progress=Yes
Language=0x409 English (United States)
Title=Open-Shell Help
[FILES]
ClassicExplorer.html
@@ -13,4 +13,3 @@ StartMenu.html
ClassicIE.html
[INFOTYPES]

View File

@@ -5,7 +5,7 @@ Contents file=OpenShellTOC.hhc
Default topic=Main.html
Display compile progress=Yes
Language=0x415 Polish (Poland)
Title=Open-Shell Help
[FILES]
ClassicExplorer.html
@@ -13,4 +13,3 @@ StartMenu.html
ClassicIE.html
[INFOTYPES]

View File

@@ -192,7 +192,7 @@ wszystkie swoje ustawienia. Administrator mo&#380;e zablokowa&#263; okre&#347;lo
<br>
W tym przyk&#322;adzie ustawienie "W&#322;&#261;cz menu kontekstowe" jest zablokowane, tak aby pole wyboru zawsze
by&#322;o odznaczone i nie mog&#322;o by&#263; zmienione przez dowolnego u&#380;ytkownika. Osi&#261;ga si&#281; to przez
dodanie odpowiednich ustawie&#324; w kluczu rejestru <span style="font-weight: bold;">HKEY_LOCAL_MACHINE\SOFTWARE\OpenShell\Menu</span>. Nale&#380;y utworzy&#263; warto&#347;&#263; DWORD o nazwie "EnableContextMenu" i ustawi&#263; jej warto&#347;&#263; na 0.<br>
dodanie odpowiednich ustawie&#324; w kluczu rejestru <span style="font-weight: bold;">HKEY_LOCAL_MACHINE\SOFTWARE\OpenShell\StartMenu</span>. Nale&#380;y utworzy&#263; warto&#347;&#263; DWORD o nazwie "EnableContextMenu" i ustawi&#263; jej warto&#347;&#263; na 0.<br>
<br>
W niekt&#243;rych przypadkach mo&#380;esz nie chcie&#263; zablokowa&#263; warto&#347;ci dla wszystkich u&#380;ytkownik&#243;w, ale
jedynie chcesz zmieni&#263; pocz&#261;tkow&#261; warto&#347;&#263; ustawienia. W takim przypadku nale&#380;y doda&#263;

View File

@@ -5,7 +5,7 @@ Contents file=OpenShellTOC.hhc
Default topic=Main.html
Display compile progress=Yes
Language=0x419 Russian (Russia)
Title=Ñïðàâêà Open-Shell
[FILES]
ClassicExplorer.html
@@ -13,4 +13,3 @@ StartMenu.html
ClassicIE.html
[INFOTYPES]

View File

@@ -112,7 +112,7 @@ http://www.google.com). &#1055;&#1086;&#1076;&#1076;&#1077;&#1088;&#1078;&#1080;
&#1089;&#1084;&#1086;&#1078;&#1077;&#1090; &#1088;&#1077;&#1076;&#1072;&#1082;&#1090;&#1080;&#1088;&#1086;&#1074;&#1072;&#1090;&#1100; &#1080;&#1093;:<br> <img src="images/settings5.png" style="width: 688px; height: 472px;" alt=""><br>
&#1042; &#1076;&#1072;&#1085;&#1085;&#1086;&#1084; &#1087;&#1088;&#1080;&#1084;&#1077;&#1088;&#1077; &#1087;&#1072;&#1088;&#1072;&#1084;&#1077;&#1090;&#1088; "&#1042;&#1082;&#1083;&#1102;&#1095;&#1080;&#1090;&#1100; &#1084;&#1077;&#1085;&#1102; &#1087;&#1088;&#1072;&#1074;&#1086;&#1081; &#1082;&#1085;&#1086;&#1087;&#1082;&#1080; &#1084;&#1099;&#1096;&#1080;" &#1074;&#1089;&#1077;&#1075;&#1076;&#1072;
&#1079;&#1072;&#1073;&#1083;&#1086;&#1082;&#1080;&#1088;&#1086;&#1074;&#1072;&#1085;&#1086; &#1080; &#1085;&#1077; &#1084;&#1086;&#1078;&#1077;&#1090; &#1073;&#1099;&#1090;&#1100; &#1080;&#1079;&#1084;&#1077;&#1085;&#1077;&#1085; &#1083;&#1102;&#1073;&#1099;&#1084; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1077;&#1084;. &#1069;&#1090;&#1086;
&#1076;&#1086;&#1089;&#1090;&#1080;&#1075;&#1072;&#1077;&#1090;&#1089;&#1103; &#1087;&#1091;&#1090;&#1077;&#1084; &#1076;&#1086;&#1073;&#1072;&#1074;&#1083;&#1077;&#1085;&#1080;&#1103; &#1087;&#1072;&#1088;&#1072;&#1084;&#1077;&#1090;&#1088;&#1072; &#1074; &#1088;&#1072;&#1079;&#1076;&#1077;&#1083;&#1077; &#1088;&#1077;&#1077;&#1089;&#1090;&#1088;&#1072; <span style="font-weight: bold;">HKEY_LOCAL_MACHINE\SOFTWARE\OpenShell\Menu</span>. &#1057;&#1086;&#1079;&#1076;&#1072;&#1081;&#1090;&#1077; &#1079;&#1085;&#1072;&#1095;&#1077;&#1085;&#1080;&#1077; DWORD &#1087;&#1086;&#1076; &#1085;&#1072;&#1079;&#1074;&#1072;&#1085;&#1080;&#1077;&#1084; "EnableContextMenu" &#1080; &#1091;&#1089;&#1090;&#1072;&#1085;&#1086;&#1074;&#1080;&#1090;&#1077; &#1077;&#1075;&#1086; &#1074; 0.<br> <br>
&#1076;&#1086;&#1089;&#1090;&#1080;&#1075;&#1072;&#1077;&#1090;&#1089;&#1103; &#1087;&#1091;&#1090;&#1077;&#1084; &#1076;&#1086;&#1073;&#1072;&#1074;&#1083;&#1077;&#1085;&#1080;&#1103; &#1087;&#1072;&#1088;&#1072;&#1084;&#1077;&#1090;&#1088;&#1072; &#1074; &#1088;&#1072;&#1079;&#1076;&#1077;&#1083;&#1077; &#1088;&#1077;&#1077;&#1089;&#1090;&#1088;&#1072; <span style="font-weight: bold;">HKEY_LOCAL_MACHINE\SOFTWARE\OpenShell\StartMenu</span>. &#1057;&#1086;&#1079;&#1076;&#1072;&#1081;&#1090;&#1077; &#1079;&#1085;&#1072;&#1095;&#1077;&#1085;&#1080;&#1077; DWORD &#1087;&#1086;&#1076; &#1085;&#1072;&#1079;&#1074;&#1072;&#1085;&#1080;&#1077;&#1084; "EnableContextMenu" &#1080; &#1091;&#1089;&#1090;&#1072;&#1085;&#1086;&#1074;&#1080;&#1090;&#1077; &#1077;&#1075;&#1086; &#1074; 0.<br> <br>
&#1042; &#1085;&#1077;&#1082;&#1086;&#1090;&#1086;&#1088;&#1099;&#1093; &#1089;&#1083;&#1091;&#1095;&#1072;&#1103;&#1093; &#1074;&#1086;&#1079;&#1084;&#1086;&#1078;&#1085;&#1086; &#1074;&#1099; &#1085;&#1077; &#1079;&#1072;&#1093;&#1086;&#1090;&#1080;&#1090;&#1077; &#1079;&#1072;&#1073;&#1083;&#1086;&#1082;&#1080;&#1088;&#1086;&#1074;&#1072;&#1090;&#1100; &#1079;&#1085;&#1072;&#1095;&#1077;&#1085;&#1080;&#1077; &#1076;&#1083;&#1103;
&#1074;&#1089;&#1077;&#1093; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1077;&#1081;, &#1087;&#1088;&#1086;&#1089;&#1090;&#1086; &#1080;&#1079;&#1084;&#1077;&#1085;&#1080;&#1090;&#1077; &#1085;&#1072;&#1095;&#1072;&#1083;&#1100;&#1085;&#1086;&#1077; &#1079;&#1085;&#1072;&#1095;&#1077;&#1085;&#1080;&#1077; &#1087;&#1072;&#1088;&#1072;&#1084;&#1077;&#1090;&#1088;&#1072;. &#1042;
&#1090;&#1072;&#1082;&#1086;&#1084; &#1089;&#1083;&#1091;&#1095;&#1072;&#1077; &#1076;&#1086;&#1073;&#1072;&#1074;&#1100;&#1090;&#1077; &#1080;&#1084;&#1103; &#1079;&#1085;&#1072;&#1095;&#1077;&#1085;&#1080;&#1103; "_Default". &#1053;&#1072;&#1087;&#1088;&#1080;&#1084;&#1077;&#1088;, &#1077;&#1089;&#1083;&#1080;

View File

@@ -6,7 +6,7 @@ Default topic=Main.html
Display compile progress=Yes
Full-text search=Yes
Language=0xc0a Español (España, internacional)
Title=Open-Shell Help
[FILES]
ClassicExplorer.html
@@ -14,4 +14,3 @@ StartMenu.html
ClassicIE.html
[INFOTYPES]

View File

@@ -179,7 +179,7 @@ modo que ning
<img src="images/settings5.png" style="width: 688px; height: 472px;" alt=""><br>
En este ejemplo, la configuración "Habilitar el menú del botón secundario" está bloqueada para que siempre
esté desmarcada y ningún usuario la pueda cambiar. Esto se logra
agregando la configuración a la clave del registro <span style="font-weight: bold;">HKEY_LOCAL_MACHINE\SOFTWARE\OpenShell\Menu</span>. Cree un valor DWORD llamado "EnableContextMenu" y establézcalo en 0.<br>
agregando la configuración a la clave del registro <span style="font-weight: bold;">HKEY_LOCAL_MACHINE\SOFTWARE\OpenShell\StartMenu</span>. Cree un valor DWORD llamado "EnableContextMenu" y establézcalo en 0.<br>
<br>
En algunos casos quizá no desee bloquear el valor para todos los usuarios, sino
simplemente modificar el valor inicial de la configuración. En tal caso, agregue

View File

@@ -1,18 +1,18 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29324.140
# Visual Studio Version 17
VisualStudioVersion = 17.4.33205.214
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Skins", "Skins", "{409484D8-C0DB-4991-AF03-124128EDEF98}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Setup", "Setup", "{B695E1F6-785D-45CB-BCE0-0E9635DFC1DE}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ClassicExplorer", "ClassicExplorer\ClassicExplorer.vcxproj", "{9AF324B7-F786-4D85-B2E1-6E51720F874E}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "StartMenu", "StartMenu\StartMenu.vcxproj", "{87D5FE20-AF86-458A-9AA3-3131EB06179B}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "StartMenuDLL", "StartMenu\StartMenuDLL\StartMenuDLL.vcxproj", "{85DEECBB-1F9B-4983-9D54-3BF42182B7E7}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ClassicExplorer", "ClassicExplorer\ClassicExplorer.vcxproj", "{9AF324B7-F786-4D85-B2E1-6E51720F874E}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Setup", "Setup\Setup.vcxproj", "{A4A4D3B1-24E7-401E-A37C-72141D7603DC}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Win7Aero", "Skins\Win7Aero\Win7Aero.vcxproj", "{EA65FDDD-CB77-417F-8BB4-2F3ECB5B3E75}"
@@ -54,8 +54,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Win8", "Skins\Win8\Win8.vcx
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "StartMenuHelper", "StartMenu\StartMenuHelper\StartMenuHelper.vcxproj", "{A42C6159-ACA8-46D1-A0FB-19C398B137D5}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UpdateBin", "Setup\UpdateBin\UpdateBin.vcxproj", "{F92A5473-F9E0-412F-923C-6632A66D13C1}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Utility", "Setup\Utility\Utility.vcxproj", "{DAE66C9B-05DC-4ACE-97DA-2547B490BBFF}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Midnight7", "Skins\Midnight7\Midnight7.vcxproj", "{7BD26CB3-5280-48FD-9A86-C13E321018D5}"
@@ -68,6 +66,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Metallic7", "Skins\Metallic
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DesktopToasts", "Update\DesktopToasts\DesktopToasts.vcxproj", "{D94BD2A6-1872-4F01-B911-F406603AA2E1}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Immersive", "Skins\Immersive\Immersive.vcxproj", "{BD28B058-230E-42DF-9FB1-FFBB0153F498}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Immersive7", "Skins\Immersive7\Immersive7.vcxproj", "{75809D15-8403-420A-BBE6-05F478D88D8E}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
@@ -78,18 +80,6 @@ Global
Setup|x64 = Setup|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{9AF324B7-F786-4D85-B2E1-6E51720F874E}.Debug|Win32.ActiveCfg = Debug|Win32
{9AF324B7-F786-4D85-B2E1-6E51720F874E}.Debug|Win32.Build.0 = Debug|Win32
{9AF324B7-F786-4D85-B2E1-6E51720F874E}.Debug|x64.ActiveCfg = Debug|x64
{9AF324B7-F786-4D85-B2E1-6E51720F874E}.Debug|x64.Build.0 = Debug|x64
{9AF324B7-F786-4D85-B2E1-6E51720F874E}.Release|Win32.ActiveCfg = Release|Win32
{9AF324B7-F786-4D85-B2E1-6E51720F874E}.Release|Win32.Build.0 = Release|Win32
{9AF324B7-F786-4D85-B2E1-6E51720F874E}.Release|x64.ActiveCfg = Release|x64
{9AF324B7-F786-4D85-B2E1-6E51720F874E}.Release|x64.Build.0 = Release|x64
{9AF324B7-F786-4D85-B2E1-6E51720F874E}.Setup|Win32.ActiveCfg = Setup|Win32
{9AF324B7-F786-4D85-B2E1-6E51720F874E}.Setup|Win32.Build.0 = Setup|Win32
{9AF324B7-F786-4D85-B2E1-6E51720F874E}.Setup|x64.ActiveCfg = Setup|x64
{9AF324B7-F786-4D85-B2E1-6E51720F874E}.Setup|x64.Build.0 = Setup|x64
{87D5FE20-AF86-458A-9AA3-3131EB06179B}.Debug|Win32.ActiveCfg = Debug|Win32
{87D5FE20-AF86-458A-9AA3-3131EB06179B}.Debug|Win32.Build.0 = Debug|Win32
{87D5FE20-AF86-458A-9AA3-3131EB06179B}.Debug|x64.ActiveCfg = Debug|x64
@@ -114,6 +104,18 @@ Global
{85DEECBB-1F9B-4983-9D54-3BF42182B7E7}.Setup|Win32.Build.0 = Setup|Win32
{85DEECBB-1F9B-4983-9D54-3BF42182B7E7}.Setup|x64.ActiveCfg = Setup|x64
{85DEECBB-1F9B-4983-9D54-3BF42182B7E7}.Setup|x64.Build.0 = Setup|x64
{9AF324B7-F786-4D85-B2E1-6E51720F874E}.Debug|Win32.ActiveCfg = Debug|Win32
{9AF324B7-F786-4D85-B2E1-6E51720F874E}.Debug|Win32.Build.0 = Debug|Win32
{9AF324B7-F786-4D85-B2E1-6E51720F874E}.Debug|x64.ActiveCfg = Debug|x64
{9AF324B7-F786-4D85-B2E1-6E51720F874E}.Debug|x64.Build.0 = Debug|x64
{9AF324B7-F786-4D85-B2E1-6E51720F874E}.Release|Win32.ActiveCfg = Release|Win32
{9AF324B7-F786-4D85-B2E1-6E51720F874E}.Release|Win32.Build.0 = Release|Win32
{9AF324B7-F786-4D85-B2E1-6E51720F874E}.Release|x64.ActiveCfg = Release|x64
{9AF324B7-F786-4D85-B2E1-6E51720F874E}.Release|x64.Build.0 = Release|x64
{9AF324B7-F786-4D85-B2E1-6E51720F874E}.Setup|Win32.ActiveCfg = Setup|Win32
{9AF324B7-F786-4D85-B2E1-6E51720F874E}.Setup|Win32.Build.0 = Setup|Win32
{9AF324B7-F786-4D85-B2E1-6E51720F874E}.Setup|x64.ActiveCfg = Setup|x64
{9AF324B7-F786-4D85-B2E1-6E51720F874E}.Setup|x64.Build.0 = Setup|x64
{A4A4D3B1-24E7-401E-A37C-72141D7603DC}.Debug|Win32.ActiveCfg = Debug|Win32
{A4A4D3B1-24E7-401E-A37C-72141D7603DC}.Debug|Win32.Build.0 = Debug|Win32
{A4A4D3B1-24E7-401E-A37C-72141D7603DC}.Debug|x64.ActiveCfg = Debug|Win32
@@ -316,13 +318,6 @@ Global
{A42C6159-ACA8-46D1-A0FB-19C398B137D5}.Setup|Win32.Build.0 = Setup|Win32
{A42C6159-ACA8-46D1-A0FB-19C398B137D5}.Setup|x64.ActiveCfg = Setup|x64
{A42C6159-ACA8-46D1-A0FB-19C398B137D5}.Setup|x64.Build.0 = Setup|x64
{F92A5473-F9E0-412F-923C-6632A66D13C1}.Debug|Win32.ActiveCfg = update_4.3.1|Win32
{F92A5473-F9E0-412F-923C-6632A66D13C1}.Debug|x64.ActiveCfg = update_4.2.7|Win32
{F92A5473-F9E0-412F-923C-6632A66D13C1}.Release|Win32.ActiveCfg = update_4.2.7|Win32
{F92A5473-F9E0-412F-923C-6632A66D13C1}.Release|Win32.Build.0 = update_4.2.7|Win32
{F92A5473-F9E0-412F-923C-6632A66D13C1}.Release|x64.ActiveCfg = update_4.2.7|Win32
{F92A5473-F9E0-412F-923C-6632A66D13C1}.Setup|Win32.ActiveCfg = update_4.2.7|Win32
{F92A5473-F9E0-412F-923C-6632A66D13C1}.Setup|x64.ActiveCfg = update_4.3.0|Win32
{DAE66C9B-05DC-4ACE-97DA-2547B490BBFF}.Debug|Win32.ActiveCfg = Debug|Win32
{DAE66C9B-05DC-4ACE-97DA-2547B490BBFF}.Debug|Win32.Build.0 = Debug|Win32
{DAE66C9B-05DC-4ACE-97DA-2547B490BBFF}.Debug|x64.ActiveCfg = Debug|x64
@@ -388,6 +383,30 @@ Global
{D94BD2A6-1872-4F01-B911-F406603AA2E1}.Setup|Win32.ActiveCfg = Release|Win32
{D94BD2A6-1872-4F01-B911-F406603AA2E1}.Setup|Win32.Build.0 = Release|Win32
{D94BD2A6-1872-4F01-B911-F406603AA2E1}.Setup|x64.ActiveCfg = Release|Win32
{BD28B058-230E-42DF-9FB1-FFBB0153F498}.Debug|Win32.ActiveCfg = Resource|Win32
{BD28B058-230E-42DF-9FB1-FFBB0153F498}.Debug|Win32.Build.0 = Resource|Win32
{BD28B058-230E-42DF-9FB1-FFBB0153F498}.Debug|x64.ActiveCfg = Resource|Win32
{BD28B058-230E-42DF-9FB1-FFBB0153F498}.Debug|x64.Build.0 = Resource|Win32
{BD28B058-230E-42DF-9FB1-FFBB0153F498}.Release|Win32.ActiveCfg = Resource|Win32
{BD28B058-230E-42DF-9FB1-FFBB0153F498}.Release|Win32.Build.0 = Resource|Win32
{BD28B058-230E-42DF-9FB1-FFBB0153F498}.Release|x64.ActiveCfg = Resource|Win32
{BD28B058-230E-42DF-9FB1-FFBB0153F498}.Release|x64.Build.0 = Resource|Win32
{BD28B058-230E-42DF-9FB1-FFBB0153F498}.Setup|Win32.ActiveCfg = Resource|Win32
{BD28B058-230E-42DF-9FB1-FFBB0153F498}.Setup|Win32.Build.0 = Resource|Win32
{BD28B058-230E-42DF-9FB1-FFBB0153F498}.Setup|x64.ActiveCfg = Resource|Win32
{BD28B058-230E-42DF-9FB1-FFBB0153F498}.Setup|x64.Build.0 = Resource|Win32
{75809D15-8403-420A-BBE6-05F478D88D8E}.Debug|Win32.ActiveCfg = Resource|Win32
{75809D15-8403-420A-BBE6-05F478D88D8E}.Debug|Win32.Build.0 = Resource|Win32
{75809D15-8403-420A-BBE6-05F478D88D8E}.Debug|x64.ActiveCfg = Resource|Win32
{75809D15-8403-420A-BBE6-05F478D88D8E}.Debug|x64.Build.0 = Resource|Win32
{75809D15-8403-420A-BBE6-05F478D88D8E}.Release|Win32.ActiveCfg = Resource|Win32
{75809D15-8403-420A-BBE6-05F478D88D8E}.Release|Win32.Build.0 = Resource|Win32
{75809D15-8403-420A-BBE6-05F478D88D8E}.Release|x64.ActiveCfg = Resource|Win32
{75809D15-8403-420A-BBE6-05F478D88D8E}.Release|x64.Build.0 = Resource|Win32
{75809D15-8403-420A-BBE6-05F478D88D8E}.Setup|Win32.ActiveCfg = Resource|Win32
{75809D15-8403-420A-BBE6-05F478D88D8E}.Setup|Win32.Build.0 = Resource|Win32
{75809D15-8403-420A-BBE6-05F478D88D8E}.Setup|x64.ActiveCfg = Resource|Win32
{75809D15-8403-420A-BBE6-05F478D88D8E}.Setup|x64.Build.0 = Resource|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -406,12 +425,13 @@ Global
{31C016FB-9EA1-4AF5-987A-37210C04DA06} = {409484D8-C0DB-4991-AF03-124128EDEF98}
{5C875214-0E3A-4CF0-BC0C-BFF6FAA4C089} = {409484D8-C0DB-4991-AF03-124128EDEF98}
{ED74EBA9-1BCB-4B8F-9AE1-DC63B3C24A94} = {409484D8-C0DB-4991-AF03-124128EDEF98}
{F92A5473-F9E0-412F-923C-6632A66D13C1} = {B695E1F6-785D-45CB-BCE0-0E9635DFC1DE}
{DAE66C9B-05DC-4ACE-97DA-2547B490BBFF} = {B695E1F6-785D-45CB-BCE0-0E9635DFC1DE}
{7BD26CB3-5280-48FD-9A86-C13E321018D5} = {409484D8-C0DB-4991-AF03-124128EDEF98}
{598AB4AC-008E-4501-90B3-C5213834C1DA} = {409484D8-C0DB-4991-AF03-124128EDEF98}
{63BAF573-170B-4FA0-AEE3-16E04F3E9DF5} = {409484D8-C0DB-4991-AF03-124128EDEF98}
{CA5BFC96-428D-42F5-9F7D-CDDE048A357C} = {409484D8-C0DB-4991-AF03-124128EDEF98}
{BD28B058-230E-42DF-9FB1-FFBB0153F498} = {409484D8-C0DB-4991-AF03-124128EDEF98}
{75809D15-8403-420A-BBE6-05F478D88D8E} = {409484D8-C0DB-4991-AF03-124128EDEF98}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {AF7D0AE8-B556-4840-92EF-CEADC95A5CD1}

View File

@@ -1,7 +1,7 @@
REM ***** Collect PDBs
echo -- Creating symbols package
set CS_SYMBOLS_NAME=OpenShellPDB_%CS_VERSION_STR%.7z
set CS_SYMBOLS_NAME=OpenShellSymbols_%CS_VERSION_STR%.7z
7z a -mx9 .\Final\%CS_SYMBOLS_NAME% .\Output\symbols\* > nul
@@ -20,4 +20,8 @@ cd ..
cd Setup
if defined APPVEYOR (
appveyor PushArtifact ..\..\build\bin\Release\Utility.exe
)
exit /b 0

View File

@@ -6,6 +6,9 @@ echo -- Compiling
for /f "usebackq tokens=*" %%i in (`"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -latest -products * -requires Microsoft.Component.MSBuild -property installationPath`) do set MSBuildDir=%%i\MSBuild\Current\Bin\
REM Restore NuGet packages
"%MSBuildDir%MSBuild.exe" ..\OpenShell.sln /m /t:Restore -p:RestorePackagesConfig=true /verbosity:quiet /nologo
REM ********* Build 64-bit solution
echo --- 64bit
"%MSBuildDir%MSBuild.exe" ..\OpenShell.sln /m /t:Rebuild /p:Configuration="Setup" /p:Platform="x64" /verbosity:quiet /nologo
@@ -19,11 +22,11 @@ echo --- 32bit
REM ********* Make en-US.dll
cd ..
Setup\Utility\Release\Utility.exe makeEN ClassicExplorer\Setup\ClassicExplorer32.dll StartMenu\Setup\StartMenuDLL.dll ClassicIE\Setup\ClassicIEDLL_32.dll Update\Release\Update.exe
..\build\bin\Release\Utility.exe makeEN ..\build\bin\Setup\ClassicExplorer32.dll ..\build\bin\Setup\StartMenuDLL.dll ..\build\bin\Setup\ClassicIEDLL_32.dll ..\build\bin\Release\Update.exe
@if ERRORLEVEL 1 exit /b 1
Setup\Utility\Release\Utility.exe extract en-US.dll en-US.csv
copy /B en-US.dll Localization\English > nul
..\build\bin\Release\Utility.exe extract en-US.dll en-US.csv
move en-US.dll Localization\English > nul
move en-US.csv Localization\English > nul
cd Setup
@@ -31,38 +34,40 @@ cd Setup
REM ********* Copy binaries
copy /B ..\ClassicExplorer\Setup\ClassicExplorer32.dll Output > nul
copy /B ..\ClassicExplorer\Setup\ClassicExplorerSettings.exe Output > nul
copy /B ..\ClassicIE\Setup\ClassicIEDLL_32.dll Output > nul
copy /B ..\ClassicIE\Setup\ClassicIE_32.exe Output > nul
copy /B ..\StartMenu\Setup\StartMenu.exe Output > nul
copy /B ..\StartMenu\Setup\StartMenuDLL.dll Output > nul
copy /B ..\Update\Release\Update.exe Output > nul
copy /B ..\Update\DesktopToasts\Release\DesktopToasts.dll Output > nul
copy /B ..\StartMenu\StartMenuHelper\Setup\StartMenuHelper32.dll Output > nul
copy /B ..\Setup\SetupHelper\Release\SetupHelper.exe Output > nul
copy /B ..\..\build\bin\Setup\ClassicExplorer32.dll Output > nul
copy /B ..\..\build\bin\Setup\ClassicExplorerSettings.exe Output > nul
copy /B ..\..\build\bin\Setup\ClassicIEDLL_32.dll Output > nul
copy /B ..\..\build\bin\Setup\ClassicIE_32.exe Output > nul
copy /B ..\..\build\bin\Setup\StartMenu.exe Output > nul
copy /B ..\..\build\bin\Setup\StartMenuDLL.dll Output > nul
copy /B ..\..\build\bin\Setup\StartMenuHelper32.dll Output > nul
copy /B ..\..\build\bin\Release\Update.exe Output > nul
copy /B ..\..\build\bin\Release\DesktopToasts.dll Output > nul
copy /B ..\..\build\bin\Release\SetupHelper.exe Output > nul
copy /B ..\ClassicExplorer\Setup64\ClassicExplorer64.dll Output\x64 > nul
copy /B ..\ClassicIE\Setup64\ClassicIEDLL_64.dll Output\x64 > nul
copy /B ..\ClassicIE\Setup64\ClassicIE_64.exe Output\x64 > nul
copy /B ..\StartMenu\Setup64\StartMenu.exe Output\x64 > nul
copy /B ..\StartMenu\Setup64\StartMenuDLL.dll Output\x64 > nul
copy /B ..\StartMenu\StartMenuHelper\Setup64\StartMenuHelper64.dll Output\x64 > nul
copy /B ..\..\build\bin\Setup64\ClassicExplorer64.dll Output\x64 > nul
copy /B ..\..\build\bin\Setup64\ClassicIEDLL_64.dll Output\x64 > nul
copy /B ..\..\build\bin\Setup64\ClassicIE_64.exe Output\x64 > nul
copy /B ..\..\build\bin\Setup64\StartMenu.exe Output\x64 > nul
copy /B ..\..\build\bin\Setup64\StartMenuDLL.dll Output\x64 > nul
copy /B ..\..\build\bin\Setup64\StartMenuHelper64.dll Output\x64 > nul
copy /B "..\StartMenu\Skins\Classic Skin.skin" Output > nul
copy /B "..\StartMenu\Skins\Full Glass.skin" Output > nul
copy /B "..\StartMenu\Skins\Smoked Glass.skin" Output > nul
copy /B "..\StartMenu\Skins\Windows Aero.skin" Output > nul
copy /B "..\StartMenu\Skins\Windows Basic.skin" Output > nul
copy /B "..\StartMenu\Skins\Windows XP Luna.skin" Output > nul
copy /B "..\StartMenu\Skins\Windows 8.skin" Output > nul
copy /B "..\StartMenu\Skins\Metro.skin" Output > nul
copy /B "..\StartMenu\Skins\Classic Skin.skin7" Output > nul
copy /B "..\StartMenu\Skins\Windows Aero.skin7" Output > nul
copy /B "..\StartMenu\Skins\Windows 8.skin7" Output > nul
copy /B "..\StartMenu\Skins\Midnight.skin7" Output > nul
copy /B "..\StartMenu\Skins\Metro.skin7" Output > nul
copy /B "..\StartMenu\Skins\Metallic.skin7" Output > nul
copy /B "..\..\build\bin\Skins\Classic Skin.skin" Output > nul
copy /B "..\..\build\bin\Skins\Full Glass.skin" Output > nul
copy /B "..\..\build\bin\Skins\Smoked Glass.skin" Output > nul
copy /B "..\..\build\bin\Skins\Windows Aero.skin" Output > nul
copy /B "..\..\build\bin\Skins\Windows Basic.skin" Output > nul
copy /B "..\..\build\bin\Skins\Windows XP Luna.skin" Output > nul
copy /B "..\..\build\bin\Skins\Windows 8.skin" Output > nul
copy /B "..\..\build\bin\Skins\Metro.skin" Output > nul
copy /B "..\..\build\bin\Skins\Classic Skin.skin7" Output > nul
copy /B "..\..\build\bin\Skins\Windows Aero.skin7" Output > nul
copy /B "..\..\build\bin\Skins\Windows 8.skin7" Output > nul
copy /B "..\..\build\bin\Skins\Midnight.skin7" Output > nul
copy /B "..\..\build\bin\Skins\Metro.skin7" Output > nul
copy /B "..\..\build\bin\Skins\Metallic.skin7" Output > nul
copy /B "..\..\build\bin\Skins\Immersive.skin" Output > nul
copy /B "..\..\build\bin\Skins\Immersive.skin7" Output > nul
REM ********* Collect debug info
@@ -70,45 +75,45 @@ md Output\PDB32
md Output\PDB64
REM Explorer 32
copy /B ..\ClassicExplorer\Setup\ClassicExplorer32.pdb Output\PDB32 > nul
copy /B ..\..\build\bin\Setup\ClassicExplorer32.pdb Output\PDB32 > nul
copy /B Output\ClassicExplorer32.dll Output\PDB32 > nul
copy /B ..\ClassicExplorer\Setup\ClassicExplorerSettings.pdb Output\PDB32 > nul
copy /B ..\..\build\bin\Setup\ClassicExplorerSettings.pdb Output\PDB32 > nul
copy /B Output\ClassicExplorerSettings.exe Output\PDB32 > nul
REM Explorer 64
copy /B ..\ClassicExplorer\Setup64\ClassicExplorer64.pdb Output\PDB64 > nul
copy /B ..\..\build\bin\Setup64\ClassicExplorer64.pdb Output\PDB64 > nul
copy /B Output\x64\ClassicExplorer64.dll Output\PDB64 > nul
REM IE 32
copy /B ..\ClassicIE\Setup\ClassicIEDLL_32.pdb Output\PDB32 > nul
copy /B ..\..\build\bin\Setup\ClassicIEDLL_32.pdb Output\PDB32 > nul
copy /B Output\ClassicIEDLL_32.dll Output\PDB32 > nul
copy /B ..\ClassicIE\Setup\ClassicIE_32.pdb Output\PDB32 > nul
copy /B ..\..\build\bin\Setup\ClassicIE_32.pdb Output\PDB32 > nul
copy /B Output\ClassicIE_32.exe Output\PDB32 > nul
REM IE 64
copy /B ..\ClassicIE\Setup64\ClassicIEDLL_64.pdb Output\PDB64 > nul
copy /B ..\..\build\bin\Setup64\ClassicIEDLL_64.pdb Output\PDB64 > nul
copy /B Output\x64\ClassicIEDLL_64.dll Output\PDB64 > nul
copy /B ..\ClassicIE\Setup64\ClassicIE_64.pdb Output\PDB64 > nul
copy /B ..\..\build\bin\Setup64\ClassicIE_64.pdb Output\PDB64 > nul
copy /B Output\x64\ClassicIE_64.exe Output\PDB64 > nul
REM Menu 32
copy /B ..\StartMenu\Setup\StartMenu.pdb Output\PDB32 > nul
copy /B ..\..\build\bin\Setup\StartMenu.pdb Output\PDB32 > nul
copy /B Output\StartMenu.exe Output\PDB32 > nul
copy /B ..\StartMenu\Setup\StartMenuDLL.pdb Output\PDB32 > nul
copy /B ..\..\build\bin\Setup\StartMenuDLL.pdb Output\PDB32 > nul
copy /B Output\StartMenuDLL.dll Output\PDB32 > nul
copy /B ..\StartMenu\StartMenuHelper\Setup\StartMenuHelper32.pdb Output\PDB32 > nul
copy /B ..\..\build\bin\Setup\StartMenuHelper32.pdb Output\PDB32 > nul
copy /B Output\StartMenuHelper32.dll Output\PDB32 > nul
copy /B ..\Update\Release\Update.pdb Output\PDB32 > nul
copy /B ..\..\build\bin\Release\Update.pdb Output\PDB32 > nul
copy /B Output\Update.exe Output\PDB32 > nul
copy /B ..\Update\DesktopToasts\Release\DesktopToasts.pdb Output\PDB32 > nul
copy /B ..\..\build\bin\Release\DesktopToasts.pdb Output\PDB32 > nul
copy /B Output\DesktopToasts.dll Output\PDB32 > nul
REM Menu 64
copy /B ..\StartMenu\Setup64\StartMenu.pdb Output\PDB64 > nul
copy /B ..\..\build\bin\Setup64\StartMenu.pdb Output\PDB64 > nul
copy /B Output\x64\StartMenu.exe Output\PDB64 > nul
copy /B ..\StartMenu\Setup64\StartMenuDLL.pdb Output\PDB64 > nul
copy /B ..\..\build\bin\Setup64\StartMenuDLL.pdb Output\PDB64 > nul
copy /B Output\x64\StartMenuDLL.dll Output\PDB64 > nul
copy /B ..\StartMenu\StartMenuHelper\Setup64\StartMenuHelper64.pdb Output\PDB64 > nul
copy /B ..\..\build\bin\Setup64\StartMenuHelper64.pdb Output\PDB64 > nul
copy /B Output\x64\StartMenuHelper64.dll Output\PDB64 > nul
@@ -155,11 +160,11 @@ if exist Output\PolicyDefinitions.zip (
del Output\PolicyDefinitions.zip
)
cd ..\Localization\English
..\..\StartMenu\Setup\StartMenu.exe -saveadmx en-US
..\..\..\build\bin\Setup\StartMenu.exe -saveadmx en-US
@if ERRORLEVEL 1 exit /b 1
..\..\ClassicExplorer\Setup\ClassicExplorerSettings.exe -saveadmx en-US
..\..\..\build\bin\Setup\ClassicExplorerSettings.exe -saveadmx en-US
@if ERRORLEVEL 1 exit /b 1
..\..\ClassicIE\Setup\ClassicIE_32.exe -saveadmx en-US
..\..\..\build\bin\Setup\ClassicIE_32.exe -saveadmx en-US
@if ERRORLEVEL 1 exit /b 1
md en-US
copy /B *.adml en-US > nul

View File

@@ -60,7 +60,7 @@ light Temp\Setup64.wixobj -nologo -out Temp\Setup64.msi -ext WixUIExtension -ext
REM ********* Build MSI Checksums
echo --- MSI Checksums
Utility\Release\Utility.exe crcmsi Temp
..\..\build\bin\Release\Utility.exe crcmsi Temp
@if ERRORLEVEL 1 exit /b 1
REM ********* Build bootstrapper
@@ -73,10 +73,10 @@ for /f "usebackq tokens=*" %%i in (`"%ProgramFiles(x86)%\Microsoft Visual Studio
if exist Final rd /Q /S Final
md Final
copy /B Release\Setup.exe Final\%CS_INSTALLER_NAME%.exe > nul
copy /B ..\..\build\bin\Release\Setup.exe Final\%CS_INSTALLER_NAME%.exe > nul
if defined APPVEYOR (
appveyor PushArtifact Release\Setup.exe -FileName %CS_INSTALLER_NAME%.exe
appveyor PushArtifact Final\%CS_INSTALLER_NAME%.exe
)
SET CS_LANG_FOLDER=

Binary file not shown.

Before

Width:  |  Height:  |  Size: 401 KiB

After

Width:  |  Height:  |  Size: 66 KiB

View File

@@ -222,7 +222,7 @@ int APIENTRY wWinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCm
bool bQuiet=false;
for (;count>0;count--,params++)
{
if (_wcsicmp(params[0],L"help")==0 || _wcsicmp(params[0],L"/?")==0)
if (_wcsicmp(params[0],L"help")==0 || _wcsicmp(params[0],L"/help")==0 || _wcsicmp(params[0],L"/h")==0 || _wcsicmp(params[0],L"/?")==0)
{
wchar_t strTitle[256];
if (!LoadString(hInstance,IDS_APP_TITLE,strTitle,_countof(strTitle))) strTitle[0]=0;

View File

@@ -17,85 +17,25 @@
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<PropertyGroup Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization Condition="'$(Configuration)'!='Debug'">true</WholeProgramOptimization>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\Version.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\Version.props" />
<ImportGroup Label="PropertySheets">
<Import Project="..\Common.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ItemDefinitionGroup>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<Link>
<AdditionalDependencies>comctl32.lib;Psapi.lib;version.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<Link>
<AdditionalDependencies>comctl32.lib;Psapi.lib;version.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
</Link>
</ItemDefinitionGroup>
<ItemGroup>

View File

@@ -90,6 +90,8 @@
<ComponentRef Id="Midnight.skin7" />
<ComponentRef Id="Metro.skin7" />
<ComponentRef Id="Metallic.skin7" />
<ComponentRef Id="Immersive.skin" />
<ComponentRef Id="Immersive.skin7" />
<ComponentRef Id="AutoRun" />
<ComponentRef Id="MenuSettingsLink" />
</Feature>
@@ -101,7 +103,6 @@
<ComponentRef Id="ClassicIE_64.exe" />
<?endif ?>
<ComponentRef Id="IESettingsLink" />
<Condition Level="1">IE_BUILD&gt;=90000</Condition>
</Feature>
<Feature Id="Update" Level="1" Title="!(loc.UpdateTitle)" ConfigurableDirectory="APPLICATIONFOLDER" AllowAdvertise="no" Description="!(loc.UpdateDesc)">
<ComponentRef Id="Update.exe" />
@@ -535,6 +536,14 @@
<Component Id="Metallic.skin7" Guid="2167BBCA-FD42-4285-AE00-9CDDDF436B30" Win64="$(var.CS_WIN64)">
<File Id="Metallic.skin7" KeyPath="yes" Checksum="yes" Source="Output\Metallic.skin7" Vital="yes" />
</Component>
<Component Id="Immersive.skin" Guid="045C48C3-FE11-4C66-AD7F-3F3EE35B4DEA" Win64="$(var.CS_WIN64)">
<File Id="Immersive.skin" KeyPath="yes" Checksum="yes" Source="Output\Immersive.skin" Vital="yes" />
<Condition>VersionNT&gt;601</Condition>
</Component>
<Component Id="Immersive.skin7" Guid="FFECA17A-C005-4D84-9F7C-DBC8EA2E1B5A" Win64="$(var.CS_WIN64)">
<File Id="Immersive.skin7" KeyPath="yes" Checksum="yes" Source="Output\Immersive.skin7" Vital="yes" />
<Condition>VersionNT&gt;601</Condition>
</Component>
</DirectoryRef>
<DirectoryRef Id="TARGETDIR">
<Component Id="OpenShell" Guid="19EC9EFC-B901-4EAB-B800-6E98D2261077" Win64="$(var.CS_WIN64)">
@@ -634,6 +643,9 @@
<Property Id="APPLICATIONFOLDER">
<RegistrySearch Id="Path" Root="HKLM" Key="Software\OpenShell\OpenShell" Name="Path" Type="raw" Win64="$(var.CS_WIN64)" />
</Property>
<Property Id="WINDOWSBUILDNUM" Secure="yes">
<RegistrySearch Id="WindowsBuild" Root="HKLM" Key="SOFTWARE\Microsoft\Windows NT\CurrentVersion" Name="CurrentBuild" Type="raw" />
</Property>
<CustomAction Id="LaunchStartMenu" Impersonate="yes" ExeCommand="" FileKey="StartMenu.exe" Return="asyncNoWait" />
<CustomAction Id="CloseStartMenu" Impersonate="yes" BinaryKey="SetupHelper.exe" Return="ignore" ExeCommand="exitSM" />
<WixVariable Id="WixUIBannerBmp" Value="..\Setup\banner.jpg" />

View File

@@ -17,77 +17,23 @@
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<PropertyGroup Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization Condition="'$(Configuration)'!='Debug'">true</WholeProgramOptimization>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<ImportGroup Label="PropertySheets">
<Import Project="..\..\Common.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ItemDefinitionGroup>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>..\..\Lib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="SetupHelper.cpp" />

Binary file not shown.

Before

Width:  |  Height:  |  Size: 848 B

Binary file not shown.

View File

@@ -1,506 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="update_4.1.0|Win32">
<Configuration>update_4.1.0</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="update_4.2.0|Win32">
<Configuration>update_4.2.0</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="update_4.2.1|Win32">
<Configuration>update_4.2.1</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="update_4.2.2|Win32">
<Configuration>update_4.2.2</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="update_4.2.3|Win32">
<Configuration>update_4.2.3</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="update_4.2.4|Win32">
<Configuration>update_4.2.4</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="update_4.2.5|Win32">
<Configuration>update_4.2.5</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="update_4.2.6|Win32">
<Configuration>update_4.2.6</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="update_4.2.7|Win32">
<Configuration>update_4.2.7</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="update_4.3.0|Win32">
<Configuration>update_4.3.0</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="update_4.3.1|Win32">
<Configuration>update_4.3.1</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{F92A5473-F9E0-412F-923C-6632A66D13C1}</ProjectGuid>
<RootNamespace>UpdateBin</RootNamespace>
<Keyword>Win32Proj</Keyword>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.3.1|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.3.0|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.7|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.6|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.5|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.4|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.3|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.2|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.1|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.0|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.1.0|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='update_4.3.1|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\Version.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='update_4.3.0|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\Version.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.7|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\Version.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.6|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\Version.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.5|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\Version.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.4|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\Version.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.3|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\Version.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.2|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\Version.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.1|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\Version.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.0|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\Version.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='update_4.1.0|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\Version.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.1.0|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>false</GenerateManifest>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.0|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>false</GenerateManifest>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.1|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>false</GenerateManifest>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.2|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>false</GenerateManifest>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.3|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>false</GenerateManifest>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.4|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>false</GenerateManifest>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.5|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>false</GenerateManifest>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.6|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>false</GenerateManifest>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.7|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>false</GenerateManifest>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.3.0|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>false</GenerateManifest>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.3.1|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>false</GenerateManifest>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='update_4.1.0|Win32'">
<PreBuildEvent>
<Command>..\Utility\Debug\Utility.exe update .\$(Configuration).txt .\UpdateBin.rc</Command>
</PreBuildEvent>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;UPDATEBIN_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<OutputFile>..\Final\$(Configuration).ver</OutputFile>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<NoEntryPoint>true</NoEntryPoint>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.0|Win32'">
<PreBuildEvent>
<Command>..\Utility\Debug\Utility.exe update .\$(Configuration).txt .\UpdateBin.rc</Command>
</PreBuildEvent>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;UPDATEBIN_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<OutputFile>..\Final\$(Configuration).ver</OutputFile>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<NoEntryPoint>true</NoEntryPoint>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.1|Win32'">
<PreBuildEvent>
<Command>..\Utility\Debug\Utility.exe update .\$(Configuration).txt .\UpdateBin.rc</Command>
</PreBuildEvent>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;UPDATEBIN_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<OutputFile>..\Final\$(Configuration).ver</OutputFile>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<NoEntryPoint>true</NoEntryPoint>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.2|Win32'">
<PreBuildEvent>
<Command>..\Utility\Debug\Utility.exe update .\$(Configuration).txt .\UpdateBin.rc</Command>
</PreBuildEvent>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;UPDATEBIN_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<OutputFile>..\Final\$(Configuration).ver</OutputFile>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<NoEntryPoint>true</NoEntryPoint>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.3|Win32'">
<PreBuildEvent>
<Command>..\Utility\Debug\Utility.exe update .\$(Configuration).txt .\UpdateBin.rc</Command>
</PreBuildEvent>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;UPDATEBIN_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<OutputFile>..\Final\$(Configuration).ver</OutputFile>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<NoEntryPoint>true</NoEntryPoint>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.4|Win32'">
<PreBuildEvent>
<Command>..\Utility\Debug\Utility.exe update .\$(Configuration).txt .\UpdateBin.rc</Command>
</PreBuildEvent>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;UPDATEBIN_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<OutputFile>..\Final\$(Configuration).ver</OutputFile>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<NoEntryPoint>true</NoEntryPoint>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.5|Win32'">
<PreBuildEvent>
<Command>..\Utility\Debug\Utility.exe update .\$(Configuration).txt .\UpdateBin.rc</Command>
</PreBuildEvent>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;UPDATEBIN_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<OutputFile>..\Final\$(Configuration).ver</OutputFile>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<NoEntryPoint>true</NoEntryPoint>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.6|Win32'">
<PreBuildEvent>
<Command>..\Utility\Debug\Utility.exe update .\$(Configuration).txt .\UpdateBin.rc</Command>
</PreBuildEvent>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;UPDATEBIN_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<OutputFile>..\Final\$(Configuration).ver</OutputFile>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<NoEntryPoint>true</NoEntryPoint>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.7|Win32'">
<PreBuildEvent>
<Command>..\Utility\Debug\Utility.exe update .\$(Configuration).txt .\UpdateBin.rc</Command>
</PreBuildEvent>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;UPDATEBIN_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<OutputFile>..\Final\$(Configuration).ver</OutputFile>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<NoEntryPoint>true</NoEntryPoint>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='update_4.3.0|Win32'">
<PreBuildEvent>
<Command>..\Utility\Debug\Utility.exe update .\$(Configuration).txt .\UpdateBin.rc</Command>
</PreBuildEvent>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;UPDATEBIN_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<OutputFile>..\Final\$(Configuration).ver</OutputFile>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<NoEntryPoint>true</NoEntryPoint>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='update_4.3.1|Win32'">
<PreBuildEvent>
<Command>..\Utility\Debug\Utility.exe update .\$(Configuration).txt .\UpdateBin.rc</Command>
</PreBuildEvent>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;UPDATEBIN_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<OutputFile>..\Final\$(Configuration).ver</OutputFile>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<NoEntryPoint>true</NoEntryPoint>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="resource.h" />
</ItemGroup>
<ItemGroup>
<Text Include="update_4.1.0.txt" />
<Text Include="update_4.2.0.txt" />
<Text Include="update_4.2.1.txt" />
<Text Include="update_4.2.2.txt" />
<Text Include="update_4.2.3.txt" />
<Text Include="update_4.2.4.txt" />
<Text Include="update_4.2.5.txt" />
<Text Include="update_4.2.6.txt" />
<Text Include="update_4.2.7.txt" />
<Text Include="update_4.3.0.txt" />
<Text Include="update_4.3.1.txt" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="UpdateBin.rc" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Utility\Utility.vcxproj">
<Project>{dae66c9b-05dc-4ace-97da-2547b490bbff}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -1,10 +0,0 @@
#define IDS_VERSION 16
#define IDS_NEWS 17
#define IDS_INSTALL_URL 18
#define IDS_INSTALL_SIGNER 19
#define IDS_LNG_URL 20
#define IDS_LNG_VERSION 21
#define IDS_LNG_CRC 22
#define IDS_UPDATE_LINK 23
#define IDS_LANGUAGE_LINK 24
#define IDS_ALT_URL 25

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More