feat.airapp与融合桌面

This commit is contained in:
lincube
2026-05-14 19:44:01 +08:00
parent ada0cd4a3a
commit a5abda62dc
64 changed files with 3617 additions and 362 deletions

View File

@@ -0,0 +1,52 @@
using dotnetCampus.Ipc.CompilerServices.Attributes;
namespace LanMountainDesktop.Shared.IPC.Abstractions.Services;
[IpcPublic(IgnoresIpcException = true)]
public interface IAirAppLifecycleService
{
Task<AirAppOperationResult> OpenAsync(AirAppOpenRequest request);
Task<AirAppOperationResult> ActivateAsync(string instanceKey);
Task<AirAppOperationResult> CloseAsync(string instanceKey);
Task<AirAppInstanceInfo[]> GetInstancesAsync();
Task<AirAppOperationResult> RegisterAsync(AirAppRegistrationRequest request);
Task<AirAppOperationResult> UnregisterAsync(string instanceKey, int processId);
}
public sealed record AirAppOpenRequest(
string AppId,
string? SourceComponentId,
string? SourcePlacementId,
int RequesterProcessId);
public sealed record AirAppRegistrationRequest(
string InstanceKey,
string AppId,
string SessionId,
int ProcessId,
string WindowTitle,
string? SourceComponentId,
string? SourcePlacementId);
public sealed record AirAppInstanceInfo(
string InstanceKey,
string AppId,
string SessionId,
int ProcessId,
string WindowTitle,
string? SourceComponentId,
string? SourcePlacementId,
bool ProcessAlive,
DateTimeOffset StartedAtUtc,
DateTimeOffset UpdatedAtUtc);
public sealed record AirAppOperationResult(
bool Accepted,
string Code,
string Message,
AirAppInstanceInfo? Instance);