Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56377
This patch makes msedge work in win10 mode, albeit I still have to add "--no-sandbox". Without "--no-sandbox" it doesn't crash anymore with this patch,but I cannot browse webpages, it just looks as if it is unconnected.
-- v3: powrprof: Add stub for PowerRegisterForEffectivePowerModeNotifications.
From: Louis Lenders xerox.xerox2000x@gmail.com
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56377
This patch makes msedge work in win10 mode, albeit I still have to add "--no-sandbox". Without "--no-sandbox" it doesn't crash anymore with this patch,but I cannot browse webpages, it just looks as if it is unconnected.
v2: changed tabs --> spaces --- dlls/powrprof/powrprof.c | 7 ++++++ dlls/powrprof/powrprof.spec | 1 + include/powersetting.h | 45 +++++++++++++++++++++++++++++++++++++ 3 files changed, 53 insertions(+) create mode 100644 include/powersetting.h
diff --git a/dlls/powrprof/powrprof.c b/dlls/powrprof/powrprof.c index dcc7126b920..c1b71b5682e 100644 --- a/dlls/powrprof/powrprof.c +++ b/dlls/powrprof/powrprof.c @@ -27,6 +27,7 @@ #include "winnt.h" #include "winreg.h" #include "winternl.h" +#include "powersetting.h" #include "powrprof.h" #include "wine/debug.h"
@@ -362,6 +363,12 @@ DWORD WINAPI PowerWriteACValueIndex(HKEY key, const GUID *scheme, const GUID *su return ERROR_SUCCESS; }
+HRESULT WINAPI PowerRegisterForEffectivePowerModeNotifications(ULONG version, EFFECTIVE_POWER_MODE_CALLBACK *callback, void *context, void **handle) +{ + FIXME("(%lu,%p,%p,%p) stub!\n", version, callback, context, handle); + return E_NOTIMPL; +} + BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { switch(fdwReason) { diff --git a/dlls/powrprof/powrprof.spec b/dlls/powrprof/powrprof.spec index 95d28178729..29874b0a3bd 100644 --- a/dlls/powrprof/powrprof.spec +++ b/dlls/powrprof/powrprof.spec @@ -17,6 +17,7 @@ @ stdcall PowerSetActiveScheme (ptr ptr) @ stdcall PowerReadDCValue (ptr ptr ptr ptr ptr ptr ptr) @ stdcall PowerReadFriendlyName (ptr ptr ptr ptr ptr ptr) +@ stdcall PowerRegisterForEffectivePowerModeNotifications(long ptr ptr ptr) @ stdcall PowerRegisterSuspendResumeNotification(long ptr ptr) @ stdcall PowerUnregisterSuspendResumeNotification(ptr) @ stdcall PowerSettingRegisterNotification(ptr long ptr ptr) diff --git a/include/powersetting.h b/include/powersetting.h new file mode 100644 index 00000000000..037a04a5980 --- /dev/null +++ b/include/powersetting.h @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2025 Louis Lenders + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#ifndef _POWERSETTING_H_ +#define _POWERSETTING_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum EFFECTIVE_POWER_MODE +{ + EffectivePowerModeBatterySaver, + EffectivePowerModeBetterBattery, + EffectivePowerModeBalanced, + EffectivePowerModeHighPerformance, + EffectivePowerModeMaxPerformance, + EffectivePowerModeGameMode, + EffectivePowerModeMixedReality, +} EFFECTIVE_POWER_MODE; + +typedef void WINAPI EFFECTIVE_POWER_MODE_CALLBACK(EFFECTIVE_POWER_MODE mode, void *context); + +HRESULT WINAPI PowerRegisterForEffectivePowerModeNotifications(ULONG, EFFECTIVE_POWER_MODE_CALLBACK*, void*, void**); + +#ifdef __cplusplus +} +#endif + +#endif /* _POWERSETTING_H_ */