1. A method of providing access to a remote desktop of a server device having a guest operating system executing therein, the method comprising: launching an application in the remote desktop of the server device, wherein the application includes one or more elements of a graphical user interface (GUI); retrieving a user interface virtualization profile associated with the application; generating user interface (UI) metadata that specifies the GUI of the application, wherein the UI metadata is generated according to the user interface virtualization profile and using an application programming interface (API) configured to programmatically manipulate the GUI of the application; transmitting a base image of the GUI and the generated UI metadata to a touch input client device communicatively connected to the server device; receiving, from the touch input client device, an input event indicating manipulation of the GUI of the application; and invoking the API to programmatically manipulate the GUI of the application according to the received input event and further according to the user interface virtualization profile, wherein the user interface virtualization profile associated with the application specifies application-specific support for the API configured to programmatically manipulate the GUI of the application.