Add contextual comments.

This commit is contained in:
Den Delimarsky 2021-05-10 21:06:03 -07:00
parent c2f1cbf867
commit 0931d23fc5
No known key found for this signature in database
GPG Key ID: E1BE1355085F0BCF

View File

@ -38,6 +38,7 @@ namespace Espresso.Shell.Core
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)] [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
static extern EXECUTION_STATE SetThreadExecutionState(EXECUTION_STATE esFlags); static extern EXECUTION_STATE SetThreadExecutionState(EXECUTION_STATE esFlags);
// More details about the API used: https://docs.microsoft.com/windows/win32/api/shellapi/nf-shellapi-extracticonexw
[DllImport("Shell32.dll", EntryPoint = "ExtractIconExW", CharSet = CharSet.Unicode, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)] [DllImport("Shell32.dll", EntryPoint = "ExtractIconExW", CharSet = CharSet.Unicode, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]
private static extern int ExtractIconEx(string sFile, int iIndex, out IntPtr piLargeVersion, out IntPtr piSmallVersion, int amountIcons); private static extern int ExtractIconEx(string sFile, int iIndex, out IntPtr piLargeVersion, out IntPtr piSmallVersion, int amountIcons);
@ -75,12 +76,22 @@ namespace Espresso.Shell.Core
} }
} }
/// <summary>
/// Attempts to reset the current machine state to one where Espresso doesn't try to keep it awake.
/// This does not interfere with the state that can be potentially set by other applications.
/// </summary>
/// <returns>Status of the attempt. True is successful, false if not.</returns>
public static bool SetNormalKeepAwake() public static bool SetNormalKeepAwake()
{ {
TokenSource.Cancel(); TokenSource.Cancel();
return SetAwakeState(EXECUTION_STATE.ES_CONTINUOUS); return SetAwakeState(EXECUTION_STATE.ES_CONTINUOUS);
} }
/// <summary>
/// Sets up the machine to be awake indefinitely.
/// </summary>
/// <param name="keepDisplayOn">Determines whether the display should be kept on while the machine is awake.</param>
/// <returns>Status of the attempt. True if successful, false if not.</returns>
public static bool SetIndefiniteKeepAwake(bool keepDisplayOn = true) public static bool SetIndefiniteKeepAwake(bool keepDisplayOn = true)
{ {
if (keepDisplayOn) if (keepDisplayOn)