Hi, all:
I am currently starting a project which tries to run a window application on one (source) machine, and display on another (destination) machine. Of course, the VNC or X11 forwarding technique can achieve the same goal, but I am trying to reduce the bandwidth by "not" transferring the video frame buffer but transfer the GDI function calls instead.
The way I can see is try to intercept all the calls inside gdi32.dll, and forward the calls and parameters to remote machine by using some RPC library, and then replay the GDI calls on the destination machine.
However, I have two doubts: (1) It seems like the user32.dll is actually handling the window, menu, and cursor. Does the drawing of menu and cursor depends on user-level gdi32.dll? or other kernel-level dlls? (2) It seems that there is no corresponding win32k.sys implementation in wine, and the user-level GDI calls seems to be forwarded to winex11.drv, right?
I wander is there any good way or a place inside the source to do this kind of interception? Appreciate any suggestions, Jui-Hao