Files
rdp-proxy/workers/rdp-service-csharp/src/Rap.Rdp.Core/IRdpProtocolEngine.cs
T
2026-04-28 22:29:50 +03:00

40 lines
1.2 KiB
C#

namespace Rap.Rdp.Core;
public interface IRdpProtocolEngine : IAsyncDisposable
{
ValueTask ConnectAsync(RdpSessionDescriptor session, CancellationToken cancellationToken);
ValueTask DisconnectAsync(bool terminateRemoteSession, CancellationToken cancellationToken);
ValueTask SendInputAsync(RdpInputEvent inputEvent, CancellationToken cancellationToken);
ValueTask SendClipboardTextAsync(string text, CancellationToken cancellationToken);
}
public abstract record RdpInputEvent(string CorrelationId);
public sealed record RdpKeyboardEvent(
string CorrelationId,
ushort ScanCode,
bool KeyDown,
bool Extended) : RdpInputEvent(CorrelationId);
public sealed record RdpPointerMoveEvent(
string CorrelationId,
double NormalizedX,
double NormalizedY) : RdpInputEvent(CorrelationId);
public sealed record RdpPointerButtonEvent(
string CorrelationId,
string Button,
bool Pressed,
double NormalizedX,
double NormalizedY) : RdpInputEvent(CorrelationId);
public sealed record RdpPointerWheelEvent(
string CorrelationId,
int Delta,
bool Horizontal,
double NormalizedX,
double NormalizedY) : RdpInputEvent(CorrelationId);