[win32] RP_ShellPropSheetExt_Private::SubtabDlgProc(): Return FALSE instead of calling DefSubclassProc().

This *usually* didn't cause any problems when using Windows Explorer,
but Directory Opus appears to do its own subclassing. The end result
is Directory Opus crashes when selecting the rom-properties tab in
file properties.

NOTE: Since it's a dialog procedure, it needs to return FALSE instead of
calling DefWindowProc, and definitely not DefDlgProc.

As per MSDN: https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-defdlgprocw

The **DefDlgProc** function must not be called by a dialog box procedure;
doing so results in recursive execution.

Fixes #405: Crash when used inside Directory Opus
Reported by @Kugelblitz360.
This commit is contained in:
David Korth 2024-03-04 20:46:26 -05:00
parent 8b072cfc4b
commit 205c81c885
3 changed files with 17 additions and 6 deletions

12
NEWS.md
View File

@ -1,12 +1,20 @@
# Changes
## v2.? (released 2024/??/??)
## v2.3.1 (released 2024/03/??)
* Other changes:
NOTE: Precompiled builds of v2.3.1 are only being provided for Windows.
The Linux-specific changes don't affect any current releases of
Ubuntu Linux.
* Bug fixes:
* On Linux, rp-config now correctly detects KDE Plasma 6 and uses the
KF6 version of the UI instead of the KF5 version.
* Linux, armhf/aarch64: Add missing syscalls to the seccomp whitelist.
This fixes unit tests in the Launchpad build system.
* Windows: Fix a crash when viewing the ROM Properties tab through
the Directory Opus file browser.
* Fixes #405: Crash when used inside Directory Opus
* Reported by @Kugelblitz360.
## v2.3 (released 2024/03/03)

View File

@ -11,10 +11,13 @@ video game ROM and disc images.
[![CodeFactor](https://www.codefactor.io/repository/github/gerbilsoft/rom-properties/badge)](https://www.codefactor.io/repository/github/gerbilsoft/rom-properties/overview)
[![codecov](https://codecov.io/gh/GerbilSoft/rom-properties/graph/badge.svg?token=oIiL6oVPwZ)](https://codecov.io/gh/GerbilSoft/rom-properties)
## v2.3
## v2.3.1
![KDE Dolphin showing a Commodore 1541 disk image from GEOS.](doc/img/rp-v2.3-kde5.CBMDOS.png)
v2.3.1 is a minor bugfix release for a crash that may occur on Windows when
using the Directory Opus file browser.
Major changes in v2.3 include:
* xattrs tab on Linux now shows XFS attributes.

View File

@ -3008,7 +3008,7 @@ INT_PTR CALLBACK RP_ShellPropSheetExt_Private::SubtabDlgProc(HWND hDlg, UINT uMs
switch (uMsg) {
case WM_DESTROY: {
// Remove the TAB_PTR_PROP property from the page.
// The TAB_PTR_PROP property stored the pointer to the
// The TAB_PTR_PROP property stored the pointer to the
// RP_ShellPropSheetExt_Private::tab object.
RemoveProp(hDlg, RP_ShellPropSheetExtPrivate::TAB_PTR_PROP);
break;
@ -3176,6 +3176,6 @@ INT_PTR CALLBACK RP_ShellPropSheetExt_Private::SubtabDlgProc(HWND hDlg, UINT uMs
}
}
// Dummy callback procedure that does nothing.
return DefSubclassProc(hDlg, uMsg, wParam, lParam);
// Nothing to do here...
return FALSE;
}