About Windows Desktop Sharing
There are two participants in Windows Desktop Sharing: the sharer and the viewer. The sharer is the system whose screen is being shared out, while the viewer is the system that can view the sharer's screen.
The only objects that can be co-created are the RDPSession object for creating a sharer instance, and the RDPViewer object for creating a viewer instance. All other objects are created and accessed through the methods of these objects.
An application groups the sharable windows within a process. Each application object contains a list of window objects. If an application object is shared, all its windows are shared.
An application filter manages the shared desktop area at the window and process level. Applications can use the enumerators to display lists of objects in the session that can be shared.
Attendee objects are created as a result of clients connecting to the session and being authenticated. After an attendee object is created it is automatically added to the attendees list.
Invitations enable a person or group of persons to connect to a session. When an attendee connects to a session, the client sends a ticket and a password. These two pieces of information are used to authenticate an attendee.
Note Beginning with Windows 8 and Windows Server 2012, Windows Desktop Sharing uses the Desktop Duplication API. To ensure that your application will work correctly at all dots per inch (dpi) settings, your application must be DPI-aware. The recommended method for doing this is to configure the application manifest to mark your application as per-monitor DPI-aware as described in the paper: Writing DPI-Aware Desktop Applications in Windows 8.1 preview. This will set the application level when the application is launched.