/[rdesktop]/sourceforge.net/branches/seamlessrdp-branch/rdesktop/doc/seamlessrdp-channel.txt
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Contents of /sourceforge.net/branches/seamlessrdp-branch/rdesktop/doc/seamlessrdp-channel.txt

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1095 - (show annotations)
Fri Mar 10 12:22:51 2006 UTC (18 years, 2 months ago) by ossman_
File MIME type: text/plain
File size: 3833 byte(s)
Add a field to the create command to be able to indicate child windows.

1 TODO
2 ----
3
4 * Command for executing new programs.
5
6 * Commands for changing z order and focus.
7
8 * Command for transferring icon.
9
10 * Think about protocol version management
11
12 * Try to assure that messages aren't repeated or are sent for hidden windows.
13
14 Overview
15 ========
16
17 The protocol is a line based protocol following this simple syntax:
18
19 OPERATION[,ARG1[,ARG2,[...]]]
20
21 The goal is to have a generic protocol that can be used for other display
22 systems (e.g. VNC) as well.
23
24 One line may not exceed 1024 bytes, including newline.
25
26 The protocol has no concept of hidden or unmapped windows. A window does not
27 exist unless it is visible. Note that a minimized window is an exception to
28 this rule.
29
30 Data types
31 ==========
32 Window ID are written in hex, like 0x4321.
33
34 Window positions can be negative. This happens when a window is moved
35 outside the desktop.
36
37 All integers fit inside 32 bits.
38
39 Server to Client Operations
40 ===========================
41
42 CREATE
43 ------
44
45 Allocate structures for a new window.
46
47 Syntax:
48 CREATE,<ID>,<PARENT>,<FLAGS>
49
50 Indicates that a window has appeared on the server. If PARENT is non-zero then
51 the new window is a child of that window (it's transient for it).
52
53 Note that very little information is included in this message. Things like
54 title and state will come in subsequent messages. This message should only
55 be used to allocate data structures for the new window.
56
57 DESTROY
58 -------
59
60 Remove a window.
61
62 Syntax:
63 DESTROY,<ID>,<FLAGS>
64
65 Remove the window and deallocate all associated structures.
66
67 POSITION
68 --------
69
70 Move and/or resize a window.
71
72 Syntax:
73 POSITION,<ID>,<X>,<Y>,<WIDTH>,<HEIGHT>,<FLAGS>
74
75 If the window isn't visible yet (because a
76 STATE hasn't been set or because it's minimized), you must store the position
77 and size. A new POSITION is not guaranteed to be sent when the window changes
78 state.
79
80 TITLE
81 -----
82
83 Sets a window title.
84
85 Syntax:
86 TITLE,<ID>,<TITLE>,<FLAGS>
87
88 The text is guaranteed to be stripped of control characters (< 0x20).
89
90 Note that this has the same requirement as POSITION, that the title needs to
91 be stored for newly created windows until a STATE is sent.
92
93
94 ZCHANGE
95 -------
96
97 The window moved in z order.
98
99 Syntax:
100 ZCHANGE,<ID>,<BEHIND>,<FLAGS>
101
102 The window with the id ID is behind the window with the id BEHIND. If
103 BEHIND is 0, then this window should be brought to the front.
104
105 STATE
106 -----
107
108 Changes the window's state and/or title.
109
110 Syntax:
111 STATE,<ID>,<STATE>,<FLAGS>
112
113 State can have one of three values:
114 0 : "Normal" window.
115 1 : Minimized.
116 2 : Maximized.
117
118
119 DEBUG
120 -----
121
122 Debug output from the server component.
123
124 Syntax:
125 DEBUG,<STRING>
126
127 Used for debugging.
128
129 SYNCBEGIN
130 ---------
131
132 Indicates that a synchronisation has begun.
133
134 Syntax:
135 SYNCBEGIN,<FLAGS>
136
137 Sent when the server starts a synchronisation. The client should flush all
138 information at this point.
139
140 SYNCEND
141 -------
142
143 Indicates that a synchronisation is complete.
144
145 Syntac:
146 SYNCEND,<FLAGS>
147
148 Sent when the last message that is part of the synchronisation has been sent.
149 This may be followed by duplicate messages and/or messages referring invalid
150 windows that were queued up during the synchronisation.
151
152 Client to Server Operations
153 ===========================
154
155 SYNC
156 ----
157
158 Request a synchronisation of window information.
159
160 Syntax:
161 SYNC,<FLAGS>
162
163 For each window, the server will send CREATE, POSITION and SETSTATE just as
164 if the window was created.
165
166 POSITION
167 --------
168
169 Identical to the command sent from server to client.
170
171 TITLE
172 -----
173
174 Identical to the command sent from server to client.
175
176 ZCHANGE
177 -------
178
179 Identical to the command sent from server to client.
180
181 STATE
182 -----
183
184 Identical to the command sent from server to client.
185
186 FOCUS
187 -----
188
189 Sets which window has input focus.
190
191 Syntax:
192 FOCUS,<ID>,<FLAGS>
193
194 Changes which window that will recieve the keyboard events. Note that this
195 might cause the window to change z order.

  ViewVC Help
Powered by ViewVC 1.1.26