From: Yaroslav Chvanov <yaroslav.chvanov@gmail.com> In IPropertyPageSite implementation of OleCreatePropertyFrame handle PSN_APPLY notification by invoking IPropertyPage_Apply. Tested with LAV Filters' LAV {Audio,Splitter,Video} configuration windows, pressing the 'Apply' button now saves the changes. Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=42836 --- dlls/oleaut32/olepropframe.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/dlls/oleaut32/olepropframe.c b/dlls/oleaut32/olepropframe.c index e522194bda8..396d5505766 100644 --- a/dlls/oleaut32/olepropframe.c +++ b/dlls/oleaut32/olepropframe.c @@ -65,6 +65,16 @@ static INT_PTR CALLBACK property_sheet_proc(HWND hwnd, UINT msg, WPARAM wparam, SetWindowLongPtrW(hwnd, DWLP_USER, (LONG_PTR)property_page); return FALSE; } + case WM_NOTIFY: + switch(((LPNMHDR)lparam)->code) { + case PSN_APPLY: + if (SUCCEEDED(IPropertyPage_Apply(property_page))) + SetWindowLongPtrW(hwnd, DWLP_MSGRESULT, PSNRET_NOERROR); + else + SetWindowLongPtrW(hwnd, DWLP_MSGRESULT, PSNRET_INVALID); + return TRUE; + } + return FALSE; case WM_DESTROY: IPropertyPage_Show(property_page, SW_HIDE); IPropertyPage_Deactivate(property_page); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10693