[Flags]
enum GlobalPowerPolicyFlags : uint
{
EnableSysTrayBatteryMeter = 0x01,
EnableMultiBatteryDisplay = 0x02,
EnablePasswordAtLogon = 0x04,
EnableWakeOnRing = 0x08,
EnableVideoDimDisplay = 0x10,
}
[StructLayout(LayoutKind.Sequential, Pack=1)]
struct GLOBAL_USER_POWER_POLICY
{
public const int NUM_DISCHARGE_POLICIES = 4;
public uint Revision;
public POWER_ACTION_POLICY PowerButtonAc;
public POWER_ACTION_POLICY PowerButtonDc;
public POWER_ACTION_POLICY SleepButtonAc;
public POWER_ACTION_POLICY SleepButtonDc;
public POWER_ACTION_POLICY LidCloseAc;
public POWER_ACTION_POLICY LidCloseDc;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = NUM_DISCHARGE_POLICIES)]
public SYSTEM_POWER_LEVEL[] DischargePolicy;
public GlobalPowerPolicyFlags GlobalFlags;
}
<Flags>
Enum GlobalPowerPolicyFlags
EnableSysTrayBatteryMeter = &H1
EnableMultiBatteryDisplay = &H2
EnablePasswordAtLogon = &H4
EnableWakeOnRing = &H8
EnableVideoDimDisplay = &H10
End Enum
<StructLayout(LayoutKind.Sequential, Pack:=1)>
Structure GLOBAL_USER_POWER_POLICY
Public Const NUM_DISCHARGE_POLICIES As Integer = 4
Public Revision As Integer
Public PowerButtonAc As POWER_ACTION_POLICY
Public PowerButtonDc As POWER_ACTION_POLICY
Public SleepButtonAc As POWER_ACTION_POLICY
Public SleepButtonDc As POWER_ACTION_POLICY
Public LidCloseAc As POWER_ACTION_POLICY
Public LidCloseDc As POWER_ACTION_POLICY
<MarshalAs(UnmanagedType.ByValArray, SizeConst:=NUM_DISCHARGE_POLICIES)>
Public DischargePolicy As SYSTEM_POWER_LEVEL()
Public GlobalFlags As GlobalPowerPolicyFlags
End Structure
None.