Benoît Cortier
Benoît Cortier
This requires the Display Update Virtual Channel Extension: https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpedisp/d2954508-f487-48bc-8731-39743e0854a9 [TODO comment in code](https://github.com/Devolutions/IronRDP/blob/ccdd3825b08c64d7736dd3207c3d7281d0445b30/crates/client/src/rdp.rs#L189)
We need to expose options similar to [the ones in RDM](https://twitter.com/awakecoding/status/1651609994394062851). The native client already expose such options. Currently we only support enabling (or disabling) these two: - "Winlogon" (PROTOCOL_SSL)...
Instead of blending the cursor into the frame buffer, it’s much more efficient to set the hardware cursor. I’m not aware of any crate which handle setting the icon for...
Microsoft reference: - https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpbcgr/15b0d1c9-2891-4adb-a45e-deb4aeeeab7c [TODO comment in code](https://github.com/Devolutions/IronRDP/blob/2b501496d92330c5e3b80fa3311d30bfa2f6e195/crates/ironrdp-client/src/rdp.rs#L183)
`LICENSE_ERROR_MESSAGE` licensing packets should not be returned as errors by the parser. Such packets should be handled by the caller, and the caller is responsible for turning those into `Result::Err`...
Support macOS in `ironrdp-native-cursor-icon` crate.
Support Wayland in `ironrdp-native-cursor-icon` crate. `wayland_client` is a good starting point: https://docs.rs/wayland-client/latest/wayland_client/protocol/wl_pointer/struct.WlPointer.html
Support X11 in `ironrdp-native-cursor-icon` crate. `x11` crate is probably a good start point: https://docs.rs/x11/2.21.0/x11/xcursor/index.html
Support Windows in `ironrdp-native-cursor-icon` crate. We’ll have to use system API such as: - https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-createcursor - https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-createiconindirect - https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-setcursor
The [RDPDR static channel](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpefs/34d9de58-b2b5-40b6-b970-f82d4603bdb5) must be implemented. - [TODO comment in code](https://github.com/Devolutions/IronRDP/blob/ccdd3825b08c64d7736dd3207c3d7281d0445b30/crates/client/src/gui.rs#LL72C1-L72C1)