https://git.reactos.org/?p=reactos.git;a=commitdiff;h=3368adc547f4595c0b23a8f55077404ba5954f95

commit 3368adc547f4595c0b23a8f55077404ba5954f95
Author:     Justin Miller <justin.mil...@reactos.org>
AuthorDate: Tue Feb 11 17:33:45 2025 -0800
Commit:     GitHub <nore...@github.com>
CommitDate: Tue Feb 11 17:33:45 2025 -0800

    [POWRPROF] Sync Powrprof to WINE-10.0 - Add some functions too (#7681)
    
    Co-authored-by: Hermès BÉLUSCA - MAÏTO <hermes.belusca-ma...@reactos.org>
    
    "Sync" to WINE-10.0, plus add some functions we need. Required for various 
apps going forward.
---
 dll/win32/powrprof/CMakeLists.txt |   5 +
 dll/win32/powrprof/powrprof.c     | 111 +++++++++++++++++++
 dll/win32/powrprof/powrprof.spec  |  18 ++-
 sdk/include/psdk/powrprof.h       | 223 +++++++++++++++++++++++++-------------
 4 files changed, 277 insertions(+), 80 deletions(-)

diff --git a/dll/win32/powrprof/CMakeLists.txt 
b/dll/win32/powrprof/CMakeLists.txt
index cf6a2199a9b..a2b3ca0c056 100644
--- a/dll/win32/powrprof/CMakeLists.txt
+++ b/dll/win32/powrprof/CMakeLists.txt
@@ -6,6 +6,11 @@ add_library(powrprof MODULE
     powrprof.rc
     ${CMAKE_CURRENT_BINARY_DIR}/powrprof.def)
 
+if(MSVC)
+    # Disable warning C4312: 'type cast': conversion from 'unsigned int' to 
'HANDLE' of greater size
+    target_compile_options(powrprof PRIVATE /wd4312)
+endif()
+
 set_module_type(powrprof win32dll UNICODE)
 target_link_libraries(powrprof wine)
 add_importlibs(powrprof advapi32 user32 comctl32 msvcrt kernel32 ntdll)
diff --git a/dll/win32/powrprof/powrprof.c b/dll/win32/powrprof/powrprof.c
index 7172bb43646..fa19aec0868 100644
--- a/dll/win32/powrprof/powrprof.c
+++ b/dll/win32/powrprof/powrprof.c
@@ -510,6 +510,12 @@ PowerGetActiveScheme(HKEY UserRootPowerKey, GUID **polguid)
    return ERROR_CALL_NOT_IMPLEMENTED;
 }
 
+DWORD WINAPI PowerSetActiveScheme(HKEY UserRootPowerKey, GUID *polguid)
+{
+   FIXME("(%p,%s) stub!\n", UserRootPowerKey, wine_dbgstr_guid(polguid));
+   return ERROR_SUCCESS;
+}
+
 DWORD WINAPI
 PowerReadDCValue(HKEY RootPowerKey, const GUID *Scheme, const GUID *SubGroup, 
const GUID *PowerSettings, PULONG Type, PUCHAR Buffer, DWORD *BufferSize)
 {
@@ -517,6 +523,111 @@ PowerReadDCValue(HKEY RootPowerKey, const GUID *Scheme, 
const GUID *SubGroup, co
    return ERROR_CALL_NOT_IMPLEMENTED;
 }
 
+DWORD WINAPI PowerReadFriendlyName(HKEY RootPowerKey, const GUID *Scheme,
+       const GUID *SubGroup, const GUID *PowerSettings, UCHAR *Buffer,
+       DWORD *BufferSize)
+{
+   FIXME("(%p,%s,%s,%s,%p,%p) stub!\n", RootPowerKey, debugstr_guid(Scheme), 
debugstr_guid(SubGroup), debugstr_guid(PowerSettings), Buffer, BufferSize);
+   return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+POWER_PLATFORM_ROLE WINAPI PowerDeterminePlatformRole(void)
+{
+   FIXME("stub\n");
+   return PlatformRoleDesktop;
+}
+
+POWER_PLATFORM_ROLE WINAPI PowerDeterminePlatformRoleEx(ULONG version)
+{
+    FIXME("%lu stub.\n", version);
+    return PlatformRoleDesktop;
+}
+
+DWORD WINAPI PowerEnumerate(HKEY key, const GUID *scheme, const GUID 
*subgroup, POWER_DATA_ACCESSOR flags,
+                        ULONG index, UCHAR *buffer, DWORD *buffer_size)
+{
+   FIXME("(%p,%s,%s,%d,%ld,%p,%p) stub!\n", key, debugstr_guid(scheme), 
debugstr_guid(subgroup),
+                flags, index, buffer, buffer_size);
+   return ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+DWORD WINAPI PowerRegisterSuspendResumeNotification(DWORD flags, HANDLE 
recipient, PHPOWERNOTIFY handle)
+{
+    FIXME("(0x%08lx,%p,%p) stub!\n", flags, recipient, handle);
+    *handle = (HPOWERNOTIFY)0xdeadbeef;
+    return ERROR_SUCCESS;
+}
+
+DWORD WINAPI PowerUnregisterSuspendResumeNotification(HPOWERNOTIFY handle)
+{
+    FIXME("(%p) stub!\n", handle);
+    return ERROR_SUCCESS;
+}
+
+DWORD WINAPI PowerSettingRegisterNotification(const GUID *setting, DWORD 
flags, HANDLE recipient, PHPOWERNOTIFY handle)
+{
+    FIXME("(%s,0x%08lx,%p,%p) stub!\n", debugstr_guid(setting), flags, 
recipient, handle);
+    *handle = (PHPOWERNOTIFY)0xdeadbeef;
+    return ERROR_SUCCESS;
+}
+
+DWORD WINAPI PowerSettingUnregisterNotification(HPOWERNOTIFY handle)
+{
+    FIXME("(%p) stub!\n", handle);
+    return ERROR_SUCCESS;
+}
+
+DWORD WINAPI PowerWriteACValueIndex(HKEY key, const GUID *scheme, const GUID 
*subgroup, const GUID *setting, DWORD index)
+{
+   FIXME("(%p,%s,%s,%s,0x%08lx) stub!\n", key, debugstr_guid(scheme), 
debugstr_guid(subgroup), debugstr_guid(setting), index);
+   return ERROR_SUCCESS;
+}
+
+#ifdef __REACTOS__
+DWORD WINAPI PowerWriteDCValueIndex(
+   HKEY       key,
+   const GUID *scheme,
+   const GUID *subgroup,
+   const GUID *setting,
+   DWORD      index
+)
+{
+   FIXME("(%p,%s,%s,%s,0x%08lx) stub!\n", key, debugstr_guid(scheme), 
debugstr_guid(subgroup), debugstr_guid(setting), index);
+   return ERROR_SUCCESS;
+}
+
+DWORD WINAPI PowerReadACValueIndex(
+   HKEY       key,
+   const GUID *scheme,
+   const GUID *subgroup,
+   const GUID *setting,
+   LPDWORD    AcValueIndex
+)
+{
+    FIXME("(%p,%s,%s,%s,0x%08lx) stub!\n", key, debugstr_guid(scheme), 
debugstr_guid(subgroup), debugstr_guid(setting));
+    return ERROR_SUCCESS;
+}
+
+DWORD WINAPI PowerReadDCValueIndex(
+    HKEY       key,
+    const GUID *scheme,
+    const GUID *subgroup,
+    const GUID *setting,
+    LPDWORD    DcValuetIndex
+)
+{
+    FIXME("(%p,%s,%s,%s,0x%08lx) stub!\n", key, debugstr_guid(scheme), 
debugstr_guid(subgroup), debugstr_guid(setting));
+    return ERROR_SUCCESS;
+}
+
+DWORD WINAPI
+PowerReadACValue(HKEY RootPowerKey, const GUID *Scheme, const GUID *SubGroup, 
const GUID *PowerSettings, PULONG Type, PUCHAR Buffer, DWORD *BufferSize)
+{
+   FIXME("(%p,%s,%s,%s,%p,%p,%p) stub!\n", RootPowerKey, 
debugstr_guid(Scheme), debugstr_guid(SubGroup), debugstr_guid(PowerSettings), 
Type, Buffer, BufferSize);
+   return ERROR_CALL_NOT_IMPLEMENTED;
+}
+#endif
+
 BOOLEAN WINAPI
 ReadGlobalPwrPolicy(PGLOBAL_POWER_POLICY pGlobalPowerPolicy)
 {
diff --git a/dll/win32/powrprof/powrprof.spec b/dll/win32/powrprof/powrprof.spec
index 43a9723f793..37f2b02c84d 100644
--- a/dll/win32/powrprof/powrprof.spec
+++ b/dll/win32/powrprof/powrprof.spec
@@ -10,8 +10,22 @@
 @ stdcall IsPwrHibernateAllowed ()
 @ stdcall IsPwrShutdownAllowed ()
 @ stdcall IsPwrSuspendAllowed ()
+@ stdcall PowerDeterminePlatformRole ()
+@ stdcall PowerDeterminePlatformRoleEx(long)
+@ stdcall PowerEnumerate(long ptr ptr long long ptr ptr)
 @ stdcall PowerGetActiveScheme (ptr ptr)
-@ stdcall PowerReadDCValue (ptr ptr ptr ptr ptr ptr ptr)
+@ stdcall PowerSetActiveScheme (ptr ptr)
+@ stdcall PowerReadACValue(ptr ptr ptr ptr ptr ptr ptr)
+@ stdcall PowerReadACValueIndex(ptr ptr ptr ptr ptr)
+@ stdcall PowerReadDCValue(ptr ptr ptr ptr ptr ptr ptr)
+@ stdcall PowerReadDCValueIndex(ptr ptr ptr ptr ptr)
+@ stdcall PowerReadFriendlyName (ptr ptr ptr ptr ptr ptr)
+@ stdcall PowerRegisterSuspendResumeNotification(long ptr ptr)
+@ stdcall PowerUnregisterSuspendResumeNotification(ptr)
+@ stdcall PowerSettingRegisterNotification(ptr long ptr ptr)
+@ stdcall PowerSettingUnregisterNotification(ptr)
+@ stdcall PowerWriteACValueIndex(ptr ptr ptr ptr long)
+@ stdcall PowerWriteDCValueIndex(ptr ptr ptr ptr long)
 @ stdcall ReadGlobalPwrPolicy (ptr)
 @ stdcall ReadProcessorPwrScheme (long ptr)
 @ stdcall ReadPwrScheme (long ptr)
@@ -20,4 +34,4 @@
 @ stdcall WriteGlobalPwrPolicy (ptr)
 @ stdcall WriteProcessorPwrScheme (long ptr)
 @ stdcall WritePwrScheme (ptr str str ptr)
-@ stdcall ValidatePowerPolicies (ptr ptr)
\ No newline at end of file
+@ stdcall ValidatePowerPolicies (ptr ptr)
diff --git a/sdk/include/psdk/powrprof.h b/sdk/include/psdk/powrprof.h
index 50e54cd6ad9..4c5f0c69f3c 100644
--- a/sdk/include/psdk/powrprof.h
+++ b/sdk/include/psdk/powrprof.h
@@ -12,87 +12,147 @@
 extern "C" {
 #endif
 
-#define EnableMultiBatteryDisplay 2
-#define EnablePasswordLogon 4
-#define EnableSysTrayBatteryMeter 1
-#define EnableWakeOnRing 8
-#define EnableVideoDimDisplay 16
+#ifdef __REACTOS__
 #define NEWSCHEME (UINT)-1
 
-#ifndef RC_INVOKED
-
-typedef struct _GLOBAL_MACHINE_POWER_POLICY{
-   ULONG Revision;
-   SYSTEM_POWER_STATE LidOpenWakeAc;
-   SYSTEM_POWER_STATE LidOpenWakeDc;
-   ULONG BroadcastCapacityResolution;
-} GLOBAL_MACHINE_POWER_POLICY, *PGLOBAL_MACHINE_POWER_POLICY;
-typedef struct _GLOBAL_USER_POWER_POLICY{
-   ULONG Revision;
-   POWER_ACTION_POLICY PowerButtonAc;
-   POWER_ACTION_POLICY PowerButtonDc;
-   POWER_ACTION_POLICY SleepButtonAc;
-   POWER_ACTION_POLICY SleepButtonDc;
-   POWER_ACTION_POLICY LidCloseAc;
-   POWER_ACTION_POLICY LidCloseDc;
-   SYSTEM_POWER_LEVEL DischargePolicy[NUM_DISCHARGE_POLICIES];
-   ULONG GlobalFlags;
-} GLOBAL_USER_POWER_POLICY, *PGLOBAL_USER_POWER_POLICY;
-typedef struct _GLOBAL_POWER_POLICY{
-   GLOBAL_USER_POWER_POLICY user;
-   GLOBAL_MACHINE_POWER_POLICY mach;
-} GLOBAL_POWER_POLICY, *PGLOBAL_POWER_POLICY;
-typedef struct _MACHINE_POWER_POLICY{
-   ULONG Revision;
-   SYSTEM_POWER_STATE MinSleepAc;
-   SYSTEM_POWER_STATE MinSleepDc;
-   SYSTEM_POWER_STATE ReducedLatencySleepAc;
-   SYSTEM_POWER_STATE ReducedLatencySleepDc;
-   ULONG DozeTimeoutAc;
-   ULONG DozeTimeoutDc;
-   ULONG DozeS4TimeoutAc;
-   ULONG DozeS4TimeoutDc;
-   UCHAR MinThrottleAc;
-   UCHAR MinThrottleDc;
-   UCHAR pad1[2];
-   POWER_ACTION_POLICY OverThrottledAc;
-   POWER_ACTION_POLICY OverThrottledDc;
-} MACHINE_POWER_POLICY, *PMACHINE_POWER_POLICY;
+typedef enum _POWER_PLATFORM_ROLE {
+    PlatformRoleUnspecified,
+    PlatformRoleDesktop,
+    PlatformRoleMobile,
+    PlatformRoleWorkstation,
+    PlatformRoleEnterpriseServer,
+    PlatformRoleSOHOServer,
+    PlatformRoleAppliancePC,
+    PlatformRolePerformanceServer,
+    PlatformRoleSlate,
+    PlatformRoleMaximum
+} POWER_PLATFORM_ROLE, *PPOWER_PLATFORM_ROLE;
+#endif
+
+#define EnableSysTrayBatteryMeter      0x01
+#define EnableMultiBatteryDisplay      0x02
+#define EnablePasswordLogon                0x04
+#define EnableWakeOnRing                   0x08
+#define EnableVideoDimDisplay          0x10
+
+typedef struct _GLOBAL_MACHINE_POWER_POLICY {
+    ULONG Revision;
+    SYSTEM_POWER_STATE LidOpenWakeAc;
+    SYSTEM_POWER_STATE LidOpenWakeDc;
+    ULONG BroadcastCapacityResolution;
+} GLOBAL_MACHINE_POWER_POLICY, 
+*PGLOBAL_MACHINE_POWER_POLICY;
+
+typedef struct _GLOBAL_USER_POWER_POLICY {
+    ULONG Revision;
+    POWER_ACTION_POLICY PowerButtonAc;
+    POWER_ACTION_POLICY PowerButtonDc;
+    POWER_ACTION_POLICY SleepButtonAc;
+    POWER_ACTION_POLICY SleepButtonDc;
+    POWER_ACTION_POLICY LidCloseAc;
+    POWER_ACTION_POLICY LidCloseDc;
+    SYSTEM_POWER_LEVEL DischargePolicy[NUM_DISCHARGE_POLICIES];
+    ULONG GlobalFlags;
+} GLOBAL_USER_POWER_POLICY, 
+*PGLOBAL_USER_POWER_POLICY;
+
+typedef struct _GLOBAL_POWER_POLICY {
+    GLOBAL_USER_POWER_POLICY user;
+    GLOBAL_MACHINE_POWER_POLICY mach;
+} GLOBAL_POWER_POLICY, 
+*PGLOBAL_POWER_POLICY;
+
+typedef struct _MACHINE_POWER_POLICY {
+    ULONG Revision;
+    SYSTEM_POWER_STATE MinSleepAc;
+    SYSTEM_POWER_STATE MinSleepDc;
+    SYSTEM_POWER_STATE ReducedLatencySleepAc;
+    SYSTEM_POWER_STATE ReducedLatencySleepDc;
+    ULONG DozeTimeoutAc;
+    ULONG DozeTimeoutDc;
+    ULONG DozeS4TimeoutAc;
+    ULONG DozeS4TimeoutDc;
+    UCHAR MinThrottleAc;
+    UCHAR MinThrottleDc;
+    UCHAR pad1[2];
+    POWER_ACTION_POLICY OverThrottledAc;
+    POWER_ACTION_POLICY OverThrottledDc;
+} MACHINE_POWER_POLICY, 
+*PMACHINE_POWER_POLICY;
+
 typedef struct _MACHINE_PROCESSOR_POWER_POLICY {
-   ULONG Revision;
-   PROCESSOR_POWER_POLICY ProcessorPolicyAc;
-   PROCESSOR_POWER_POLICY ProcessorPolicyDc;
-} MACHINE_PROCESSOR_POWER_POLICY, *PMACHINE_PROCESSOR_POWER_POLICY;
-typedef struct _USER_POWER_POLICY{
-   ULONG Revision;
-   POWER_ACTION_POLICY IdleAc;
-   POWER_ACTION_POLICY IdleDc;
-   ULONG IdleTimeoutAc;
-   ULONG IdleTimeoutDc;
-   UCHAR IdleSensitivityAc;
-   UCHAR IdleSensitivityDc;
-   UCHAR ThrottlePolicyAc;
-   UCHAR ThrottlePolicyDc;
-   SYSTEM_POWER_STATE MaxSleepAc;
-   SYSTEM_POWER_STATE MaxSleepDc;
-   ULONG Reserved[2];
-   ULONG VideoTimeoutAc;
-   ULONG VideoTimeoutDc;
-   ULONG SpindownTimeoutAc;
-   ULONG SpindownTimeoutDc;
-   BOOLEAN OptimizeForPowerAc;
-   BOOLEAN OptimizeForPowerDc;
-   UCHAR FanThrottleToleranceAc;
-   UCHAR FanThrottleToleranceDc;
-   UCHAR ForcedThrottleAc;
-   UCHAR ForcedThrottleDc;
-} USER_POWER_POLICY, *PUSER_POWER_POLICY;
-typedef struct _POWER_POLICY{
-   USER_POWER_POLICY user;
-   MACHINE_POWER_POLICY mach;
-} POWER_POLICY, *PPOWER_POLICY;
+    ULONG Revision;
+    PROCESSOR_POWER_POLICY ProcessorPolicyAc;
+    PROCESSOR_POWER_POLICY ProcessorPolicyDc;
+} MACHINE_PROCESSOR_POWER_POLICY, 
+*PMACHINE_PROCESSOR_POWER_POLICY;
+
+typedef struct _USER_POWER_POLICY {
+    ULONG Revision;
+    POWER_ACTION_POLICY IdleAc;
+    POWER_ACTION_POLICY IdleDc;
+    ULONG IdleTimeoutAc;
+    ULONG IdleTimeoutDc;
+    UCHAR IdleSensitivityAc;
+    UCHAR IdleSensitivityDc;
+    UCHAR ThrottlePolicyAc;
+    UCHAR ThrottlePolicyDc;
+    SYSTEM_POWER_STATE MaxSleepAc;
+    SYSTEM_POWER_STATE MaxSleepDc;
+    ULONG Reserved[2];
+    ULONG VideoTimeoutAc;
+    ULONG VideoTimeoutDc;
+    ULONG SpindownTimeoutAc;
+    ULONG SpindownTimeoutDc;
+    BOOLEAN OptimizeForPowerAc;
+    BOOLEAN OptimizeForPowerDc;
+    UCHAR FanThrottleToleranceAc;
+    UCHAR FanThrottleToleranceDc;
+    UCHAR ForcedThrottleAc;
+    UCHAR ForcedThrottleDc;
+} USER_POWER_POLICY, 
+*PUSER_POWER_POLICY;
+
+typedef struct _POWER_POLICY {
+    USER_POWER_POLICY user;
+    MACHINE_POWER_POLICY mach;
+} POWER_POLICY, 
+*PPOWER_POLICY;
+
+typedef enum _POWER_DATA_ACCESSOR {
+    ACCESS_AC_POWER_SETTING_INDEX,
+    ACCESS_DC_POWER_SETTING_INDEX,
+    ACCESS_FRIENDLY_NAME,
+    ACCESS_DESCRIPTION,
+    ACCESS_POSSIBLE_POWER_SETTING,
+    ACCESS_POSSIBLE_POWER_SETTING_FRIENDLY_NAME,
+    ACCESS_POSSIBLE_POWER_SETTING_DESCRIPTION,
+    ACCESS_DEFAULT_AC_POWER_SETTING,
+    ACCESS_DEFAULT_DC_POWER_SETTING,
+    ACCESS_POSSIBLE_VALUE_MIN,
+    ACCESS_POSSIBLE_VALUE_MAX,
+    ACCESS_POSSIBLE_VALUE_INCREMENT,
+    ACCESS_POSSIBLE_VALUE_UNITS,
+    ACCESS_ICON_RESOURCE,
+    ACCESS_DEFAULT_SECURITY_DESCRIPTOR,
+    ACCESS_ATTRIBUTES,
+    ACCESS_SCHEME,
+    ACCESS_SUBGROUP,
+    ACCESS_INDIVIDUAL_SETTING,
+    ACCESS_ACTIVE_SCHEME,
+    ACCESS_CREATE_SCHEME,
+    ACCESS_AC_POWER_SETTING_MAX,
+    ACCESS_DC_POWER_SETTING_MAX,
+    ACCESS_AC_POWER_SETTING_MIN,
+    ACCESS_DC_POWER_SETTING_MIN,
+    ACCESS_PROFILE,
+    ACCESS_OVERLAY_SCHEME,
+    ACCESS_ACTIVE_OVERLAY_SCHEME,
+} POWER_DATA_ACCESSOR, *PPOWER_DATA_ACCESSOR;
+
 typedef BOOLEAN (CALLBACK* PWRSCHEMESENUMPROC)(UINT, DWORD, LPWSTR, DWORD, 
LPWSTR, PPOWER_POLICY, LPARAM);
-typedef BOOLEAN (CALLBACK* PFNNTINITIATEPWRACTION)(POWER_ACTION, 
SYSTEM_POWER_STATE, ULONG, BOOLEAN);
+typedef PVOID HPOWERNOTIFY, *PHPOWERNOTIFY;
+
 NTSTATUS WINAPI CallNtPowerInformation(POWER_INFORMATION_LEVEL, PVOID, ULONG, 
PVOID, ULONG);
 BOOLEAN WINAPI CanUserWritePwrScheme(VOID);
 BOOLEAN WINAPI DeletePwrScheme(UINT);
@@ -105,6 +165,12 @@ BOOLEAN WINAPI 
IsAdminOverrideActive(PADMINISTRATOR_POWER_POLICY);
 BOOLEAN WINAPI IsPwrHibernateAllowed(VOID);
 BOOLEAN WINAPI IsPwrShutdownAllowed(VOID);
 BOOLEAN WINAPI IsPwrSuspendAllowed(VOID);
+DWORD   WINAPI PowerEnumerate(HKEY, const GUID *, const GUID *, 
POWER_DATA_ACCESSOR, ULONG, UCHAR *, DWORD *);
+DWORD   WINAPI PowerRegisterSuspendResumeNotification(DWORD, HANDLE, 
PHPOWERNOTIFY);
+DWORD   WINAPI PowerUnregisterSuspendResumeNotification(HPOWERNOTIFY);
+DWORD   WINAPI PowerSettingRegisterNotification(const GUID *, DWORD, HANDLE, 
PHPOWERNOTIFY);
+DWORD   WINAPI PowerSettingUnregisterNotification(HPOWERNOTIFY);
+DWORD   WINAPI PowerWriteACValueIndex(HKEY, const GUID *, const GUID *, const 
GUID *, DWORD);
 BOOLEAN WINAPI ReadGlobalPwrPolicy(PGLOBAL_POWER_POLICY);
 BOOLEAN WINAPI ReadProcessorPwrScheme(UINT, PMACHINE_PROCESSOR_POWER_POLICY);
 BOOLEAN WINAPI ReadPwrScheme(UINT, PPOWER_POLICY);
@@ -115,7 +181,8 @@ BOOLEAN WINAPI WriteProcessorPwrScheme(UINT, 
PMACHINE_PROCESSOR_POWER_POLICY);
 BOOLEAN WINAPI ValidatePowerPolicies(PGLOBAL_POWER_POLICY, PPOWER_POLICY);
 BOOLEAN WINAPI WritePwrScheme(PUINT, LPWSTR, LPWSTR, PPOWER_POLICY);
 
-#endif /* RC_INVOKED */
+/* Power scheme */
+POWER_PLATFORM_ROLE WINAPI PowerDeterminePlatformRole(void);
 
 #ifdef __cplusplus
 }

Reply via email to