/* http://msdn2.microsoft.com/en-us/library/aa372761.aspx */
/// <summary>
/// Full call to Vista method PowerSettingAccessCheck().
/// </summary>
/// <param name="accessFlags">One or more check specifier flags</param>
/// <param name="powerGuid">The relevant Power Policy GUID</param>
/// <returns></returns>
[DllImport("PowrProf.dll", CharSet = CharSet.Auto, SetLastError = true)]
[return: MarshalAs(UnmanagedType.U4)]
internal static extern UInt32 PowerSettingAccessCheck(
PowerSettingAccessFlags accessFlags,
[MarshalAs(UnmanagedType.LPStruct)] Guid powerGuid
);
/// <summary>
/// Partial call to Vista method PowerSettingAccessCheck() supporting null GUID parameter.
/// </summary>
/// <param name="accessFlags">One or more check specifier flags</param>
/// <param name="powerGuid">null</param>
/// <returns></returns>
[DllImport("PowrProf.dll", CharSet = CharSet.Auto, SetLastError = true)]
[return: MarshalAs(UnmanagedType.U4)]
private static extern UInt32 PowerSettingAccessCheck(
PowerSettingAccessFlags accessFlags,
IntPtr powerGuid
);
/// <summary>
/// Full call to Vista method PowerSettingAccessCheck() supporting empty power setting identifier.
/// </summary>
/// <param name="accessFlags">One or more check specifier flags</param>
/// <returns></returns>
internal static UInt32 PowerSettingAccessCheck(PowerSettingAccessFlags accessFlags)
{
return PowerSettingAccessCheck(accessFlags, IntPtr.Zero);
}
#region Group Policy Access FlagsAttribute
[Flags]
public enum PowerSettingAccessFlags
{
/// <summary>
/// Check for overrides on AC power settings.
/// </summary>
ACCESS_AC_POWER_SETTING_INDEX = 0x0,
/// <summary>
/// Check for overrides on DC power settings.
/// </summary>
ACCESS_DC_POWER_SETTING_INDEX = 0x1,
/// <summary>
/// Check for restrictions on specific power schemes.
/// </summary>
ACCESS_SCHEME = 0x10,
/// <summary>
/// Check for restrictions on active power schemes.
/// </summary>
ACCESS_ACTIVE_SCHEME = 0x13,
/// <summary>
/// Check for restrictions on creating or restoring power schemes.
/// </summary>
ACCESS_CREATE_SCHEME = 0x14
};
#endregion
Declare Function PowerSettingAccessCheck Lib "powrprof.dll" (TODO) As TODO
None.
Do you know one? Please contribute it!
This function is only available from Vista.
Please add some!
Please add some!