mirror of
https://github.com/wwiinnddyy/LanMountainDesktop.git
synced 2026-08-19 06:53:25 +08:00
- 新增 Platform.Abstractions(接口+NoOp+PlatformLog 日志桥)、 Platform.Windows、Platform.MacOS、Platform.Android 四个项目 - 迁移电源管理、原生对话框、桌面层嵌入、窗口置底/区域穿透、 DWM 互操作、图标服务、包标识查询等全部 Windows P/Invoke 实现 - 主工程保留静态工厂门面,调用点不变;DllImport 扫描为零 - 更新 WindowPassthroughServiceTests 指向新位置(20/20 通过)
49 lines
1.4 KiB
C#
49 lines
1.4 KiB
C#
namespace LanMountainDesktop.Platform.Abstractions;
|
|
|
|
/// <summary>
|
|
/// 电源管理服务接口。桌面平台提供关机/重启/注销/锁定/睡眠能力;
|
|
/// 移动平台不提供此能力(使用 <see cref="NullPowerManagementService"/>)。
|
|
/// </summary>
|
|
public interface IPowerManagementService
|
|
{
|
|
bool IsShutdownSupported { get; }
|
|
bool IsRestartSupported { get; }
|
|
bool IsLogoutSupported { get; }
|
|
bool IsLockSupported { get; }
|
|
bool IsSleepSupported { get; }
|
|
|
|
Task ShutdownAsync();
|
|
Task RestartAsync();
|
|
Task LogoutAsync();
|
|
Task LockAsync();
|
|
Task SleepAsync();
|
|
|
|
void ShowNativePowerUI(PowerAction action);
|
|
}
|
|
|
|
public enum PowerAction
|
|
{
|
|
Shutdown,
|
|
Restart
|
|
}
|
|
|
|
/// <summary>
|
|
/// 无操作实现。用于不支持电源管理的平台(如移动端)。
|
|
/// </summary>
|
|
public sealed class NullPowerManagementService : IPowerManagementService
|
|
{
|
|
public bool IsShutdownSupported => false;
|
|
public bool IsRestartSupported => false;
|
|
public bool IsLogoutSupported => false;
|
|
public bool IsLockSupported => false;
|
|
public bool IsSleepSupported => false;
|
|
|
|
public Task ShutdownAsync() => Task.CompletedTask;
|
|
public Task RestartAsync() => Task.CompletedTask;
|
|
public Task LogoutAsync() => Task.CompletedTask;
|
|
public Task LockAsync() => Task.CompletedTask;
|
|
public Task SleepAsync() => Task.CompletedTask;
|
|
|
|
public void ShowNativePowerUI(PowerAction action) { }
|
|
}
|