~ubuntu-branches/ubuntu/raring/freerdp/raring-proposed

« back to all changes in this revision

Viewing changes to include/freerdp/rail.h

  • Committer: Package Import Robot
  • Author(s): Martin Pitt, Jeremy Bicha, Jean-Louis Dupond, Martin Pitt
  • Date: 2012-01-31 10:02:14 UTC
  • mfrom: (1.1.6)
  • Revision ID: package-import@ubuntu.com-20120131100214-jaok3uwvni7sqxth
Tags: 1.0.0-0git1
Upload current Debian packaging git to get this rolling for precise.

[ Jeremy Bicha ]
* New upstream release. Closes: #647498.
* Updated symbols and bumped soname
* debian/control:
  - Added new build dependencies
  - Bump Standards-Version to 3.9.2
* debian/source/format: Set to 3.0 (quilt)
* debian/rules: Turn on strict symbols checking
* debian/watch: Watch github

[ Jean-Louis Dupond ]
* debian/control: Updated homepage
* debian/copyright: Reflect upstream switch to the Apache license

[ Martin Pitt ]
* debian/libfreerdp0.symbols: Fix version number, should
  be 1.0~beta5, not 1.0-beta5.
* debian/control: Add libavcodec-dev build dependency, upstream build system
  checks for that. Thanks Jean-Louis Dupond!

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/**
 
2
 * FreeRDP: A Remote Desktop Protocol Client
 
3
 * Remote Applications Integrated Locally (RAIL)
 
4
 *
 
5
 * Copyright 2011 Marc-Andre Moreau <marcandre.moreau@gmail.com>
 
6
 * Copyright 2011 Roman Barabanov <romanbarabanov@gmail.com>
 
7
 *
 
8
 * Licensed under the Apache License, Version 2.0 (the "License");
 
9
 * you may not use this file except in compliance with the License.
 
10
 * You may obtain a copy of the License at
 
11
 *
 
12
 *     http://www.apache.org/licenses/LICENSE-2.0
 
13
 *
 
14
 * Unless required by applicable law or agreed to in writing, software
 
15
 * distributed under the License is distributed on an "AS IS" BASIS,
 
16
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
17
 * See the License for the specific language governing permissions and
 
18
 * limitations under the License.
 
19
 */
 
20
 
 
21
#ifndef __RAIL_GLOBAL_H
 
22
#define __RAIL_GLOBAL_H
 
23
 
 
24
#include <freerdp/types.h>
 
25
 
 
26
/* RAIL PDU flags */
 
27
#define RAIL_EXEC_FLAG_EXPAND_WORKINGDIRECTORY          0x0001
 
28
#define RAIL_EXEC_FLAG_TRANSLATE_FILES                  0x0002
 
29
#define RAIL_EXEC_FLAG_FILE                             0x0004
 
30
#define RAIL_EXEC_FLAG_EXPAND_ARGUMENTS                 0x0008
 
31
 
 
32
/* Notification Icon Balloon Tooltip */
 
33
#define NIIF_NONE                                       0x00000000
 
34
#define NIIF_INFO                                       0x00000001
 
35
#define NIIF_WARNING                                    0x00000002
 
36
#define NIIF_ERROR                                      0x00000003
 
37
#define NIIF_NOSOUND                                    0x00000010
 
38
#define NIIF_LARGE_ICON                                 0x00000020
 
39
 
 
40
/* Client Execute PDU Flags */
 
41
#define RAIL_EXEC_FLAG_EXPAND_WORKING_DIRECTORY         0x0001
 
42
#define RAIL_EXEC_FLAG_TRANSLATE_FILES                  0x0002
 
43
#define RAIL_EXEC_FLAG_FILE                             0x0004
 
44
#define RAIL_EXEC_FLAG_EXPAND_ARGUMENTS                 0x0008
 
45
 
 
46
/* Server Execute Result PDU */
 
47
#define RAIL_EXEC_S_OK                                  0x0000
 
48
#define RAIL_EXEC_E_HOOK_NOT_LOADED                     0x0001
 
49
#define RAIL_EXEC_E_DECODE_FAILED                       0x0002
 
50
#define RAIL_EXEC_E_NOT_IN_ALLOWLIST                    0x0003
 
51
#define RAIL_EXEC_E_FILE_NOT_FOUND                      0x0005
 
52
#define RAIL_EXEC_E_FAIL                                0x0006
 
53
#define RAIL_EXEC_E_SESSION_LOCKED                      0x0007
 
54
 
 
55
/* Client System Parameters Update PDU */
 
56
#define SPI_SET_DRAG_FULL_WINDOWS                       0x00000025
 
57
#define SPI_SET_KEYBOARD_CUES                           0x0000100B
 
58
#define SPI_SET_KEYBOARD_PREF                           0x00000045
 
59
#define SPI_SET_MOUSE_BUTTON_SWAP                       0x00000021
 
60
#define SPI_SET_WORK_AREA                               0x0000002F
 
61
#define SPI_DISPLAY_CHANGE                              0x0000F001
 
62
#define SPI_TASKBAR_POS                                 0x0000F000
 
63
#define SPI_SET_HIGH_CONTRAST                           0x00000043
 
64
 
 
65
/* Server System Parameters Update PDU */
 
66
#define SPI_SET_SCREEN_SAVE_ACTIVE                      0x00000011
 
67
#define SPI_SET_SCREEN_SAVE_SECURE                      0x00000077
 
68
 
 
69
/*Bit mask values for SPI_ parameters*/
 
70
enum SPI_MASK
 
71
{
 
72
        SPI_MASK_SET_DRAG_FULL_WINDOWS          = 0x00000001,
 
73
        SPI_MASK_SET_KEYBOARD_CUES                      = 0x00000002,
 
74
        SPI_MASK_SET_KEYBOARD_PREF                      = 0x00000004,
 
75
        SPI_MASK_SET_MOUSE_BUTTON_SWAP          = 0x00000008,
 
76
        SPI_MASK_SET_WORK_AREA                          = 0x00000010,
 
77
        SPI_MASK_DISPLAY_CHANGE                         = 0x00000020,
 
78
        SPI_MASK_TASKBAR_POS                            = 0x00000040,
 
79
        SPI_MASK_SET_HIGH_CONTRAST                      = 0x00000080,
 
80
        SPI_MASK_SET_SCREEN_SAVE_ACTIVE         = 0x00000100,
 
81
        SPI_MASK_SET_SET_SCREEN_SAVE_SECURE = 0x00000200
 
82
};
 
83
 
 
84
 
 
85
/* Client System Command PDU */
 
86
#define SC_SIZE                                         0xF000
 
87
#define SC_MOVE                                         0xF010
 
88
#define SC_MINIMIZE                                     0xF020
 
89
#define SC_MAXIMIZE                                     0xF030
 
90
#define SC_CLOSE                                        0xF060
 
91
#define SC_KEYMENU                                      0xF100
 
92
#define SC_RESTORE                                      0xF120
 
93
#define SC_DEFAULT                                      0xF160
 
94
 
 
95
/* Client Notify Event PDU */
 
96
#ifndef _WIN32
 
97
#define WM_LBUTTONDOWN                                  0x00000201
 
98
#define WM_LBUTTONUP                                    0x00000202
 
99
#define WM_RBUTTONDOWN                                  0x00000204
 
100
#define WM_RBUTTONUP                                    0x00000205
 
101
#define WM_CONTEXTMENU                                  0x0000007B
 
102
#define WM_LBUTTONDBLCLK                                0x00000203
 
103
#define WM_RBUTTONDBLCLK                                0x00000206
 
104
 
 
105
#define NIN_SELECT                                      0x00000400
 
106
#define NIN_KEYSELECT                                   0x00000401
 
107
#define NIN_BALLOONSHOW                                 0x00000402
 
108
#define NIN_BALLOONHIDE                                 0x00000403
 
109
#define NIN_BALLOONTIMEOUT                              0x00000404
 
110
#define NIN_BALLOONUSERCLICK                            0x00000405
 
111
#endif
 
112
 
 
113
/* Client Information PDU */
 
114
#define RAIL_CLIENTSTATUS_ALLOWLOCALMOVESIZE            0x00000001
 
115
#define RAIL_CLIENTSTATUS_AUTORECONNECT                 0x00000002
 
116
 
 
117
/* HIGHCONTRAST flags values */
 
118
#define HCF_AVAILABLE                                   0x00000002
 
119
#define HCF_CONFIRMHOTKEY                               0x00000008
 
120
#define HCF_HIGHCONTRASTON                              0x00000001
 
121
#define HCF_HOTKEYACTIVE                                0x00000004
 
122
#define HCF_HOTKEYAVAILABLE                             0x00000040
 
123
#define HCF_HOTKEYSOUND                                 0x00000010
 
124
#define HCF_INDICATOR                                   0x00000020
 
125
 
 
126
/* Server Move/Size Start PDU */
 
127
#define RAIL_WMSZ_LEFT                                  0x0001
 
128
#define RAIL_WMSZ_RIGHT                                 0x0002
 
129
#define RAIL_WMSZ_TOP                                   0x0003
 
130
#define RAIL_WMSZ_TOPLEFT                               0x0004
 
131
#define RAIL_WMSZ_TOPRIGHT                              0x0005
 
132
#define RAIL_WMSZ_BOTTOM                                0x0006
 
133
#define RAIL_WMSZ_BOTTOMLEFT                            0x0007
 
134
#define RAIL_WMSZ_BOTTOMRIGHT                           0x0008
 
135
#define RAIL_WMSZ_MOVE                                  0x0009
 
136
#define RAIL_WMSZ_KEYMOVE                               0x000A
 
137
#define RAIL_WMSZ_KEYSIZE                               0x000B
 
138
 
 
139
/* Language Bar Information PDU */
 
140
#define TF_SFT_SHOWNORMAL                               0x00000001
 
141
#define TF_SFT_DOCK                                     0x00000002
 
142
#define TF_SFT_MINIMIZED                                0x00000004
 
143
#define TF_SFT_HIDDEN                                   0x00000008
 
144
#define TF_SFT_NOTRANSPARENCY                           0x00000010
 
145
#define TF_SFT_LOWTRANSPARENCY                          0x00000020
 
146
#define TF_SFT_HIGHTRANSPARENCY                         0x00000040
 
147
#define TF_SFT_LABELS                                   0x00000080
 
148
#define TF_SFT_NOLABELS                                 0x00000100
 
149
#define TF_SFT_EXTRAICONSONMINIMIZED                    0x00000200
 
150
#define TF_SFT_NOEXTRAICONSONMINIMIZED                  0x00000400
 
151
#define TF_SFT_DESKBAND                                 0x00000800
 
152
 
 
153
struct _UNICODE_STRING
 
154
{
 
155
        uint16 length;
 
156
        uint8* string;
 
157
};
 
158
typedef struct _UNICODE_STRING UNICODE_STRING;
 
159
 
 
160
struct _HIGH_CONTRAST
 
161
{
 
162
        uint32 flags;
 
163
        uint32 colorSchemeLength;
 
164
        UNICODE_STRING colorScheme;
 
165
};
 
166
typedef struct _HIGH_CONTRAST HIGH_CONTRAST;
 
167
 
 
168
/* RAIL Orders */
 
169
 
 
170
struct _RAIL_HANDSHAKE_ORDER
 
171
{
 
172
        uint32 buildNumber;
 
173
};
 
174
typedef struct _RAIL_HANDSHAKE_ORDER RAIL_HANDSHAKE_ORDER;
 
175
 
 
176
struct _RAIL_CLIENT_STATUS_ORDER
 
177
{
 
178
        uint32 flags;
 
179
};
 
180
typedef struct _RAIL_CLIENT_STATUS_ORDER RAIL_CLIENT_STATUS_ORDER;
 
181
 
 
182
struct _RAIL_EXEC_ORDER
 
183
{
 
184
        uint16 flags;
 
185
        UNICODE_STRING exeOrFile;
 
186
        UNICODE_STRING workingDir;
 
187
        UNICODE_STRING arguments;
 
188
};
 
189
typedef struct _RAIL_EXEC_ORDER RAIL_EXEC_ORDER;
 
190
 
 
191
struct _RAIL_EXEC_RESULT_ORDER
 
192
{
 
193
        uint16 flags;
 
194
        uint16 execResult;
 
195
        uint32 rawResult;
 
196
        UNICODE_STRING exeOrFile;
 
197
};
 
198
typedef struct _RAIL_EXEC_RESULT_ORDER RAIL_EXEC_RESULT_ORDER;
 
199
 
 
200
struct _RAIL_SYSPARAM_ORDER
 
201
{
 
202
        uint32 param;
 
203
        uint32 params;
 
204
        boolean dragFullWindows;
 
205
        boolean keyboardCues;
 
206
        boolean keyboardPref;
 
207
        boolean mouseButtonSwap;
 
208
        RECTANGLE_16 workArea;
 
209
        RECTANGLE_16 displayChange;
 
210
        RECTANGLE_16 taskbarPos;
 
211
        HIGH_CONTRAST highContrast;
 
212
        boolean setScreenSaveActive;
 
213
        boolean setScreenSaveSecure;
 
214
};
 
215
typedef struct _RAIL_SYSPARAM_ORDER RAIL_SYSPARAM_ORDER;
 
216
 
 
217
struct _RAIL_ACTIVATE_ORDER
 
218
{
 
219
        uint32 windowId;
 
220
        boolean enabled;
 
221
};
 
222
typedef struct _RAIL_ACTIVATE_ORDER RAIL_ACTIVATE_ORDER;
 
223
 
 
224
struct _RAIL_SYSMENU_ORDER
 
225
{
 
226
        uint32 windowId;
 
227
        uint16 left;
 
228
        uint16 top;
 
229
};
 
230
typedef struct _RAIL_SYSMENU_ORDER RAIL_SYSMENU_ORDER;
 
231
 
 
232
struct _RAIL_SYSCOMMAND_ORDER
 
233
{
 
234
        uint32 windowId;
 
235
        uint16 command;
 
236
};
 
237
typedef struct _RAIL_SYSCOMMAND_ORDER RAIL_SYSCOMMAND_ORDER;
 
238
 
 
239
struct _RAIL_NOTIFY_EVENT_ORDER
 
240
{
 
241
        uint32 windowId;
 
242
        uint32 notifyIconId;
 
243
        uint32 message;
 
244
};
 
245
typedef struct _RAIL_NOTIFY_EVENT_ORDER RAIL_NOTIFY_EVENT_ORDER;
 
246
 
 
247
struct _RAIL_MINMAXINFO_ORDER
 
248
{
 
249
        uint32 windowId;
 
250
        uint16 maxWidth;
 
251
        uint16 maxHeight;
 
252
        uint16 maxPosX;
 
253
        uint16 maxPosY;
 
254
        uint16 minTrackWidth;
 
255
        uint16 minTrackHeight;
 
256
        uint16 maxTrackWidth;
 
257
        uint16 maxTrackHeight;
 
258
};
 
259
typedef struct _RAIL_MINMAXINFO_ORDER RAIL_MINMAXINFO_ORDER;
 
260
 
 
261
struct _RAIL_LOCALMOVESIZE_ORDER
 
262
{
 
263
        uint32 windowId;
 
264
        boolean isMoveSizeStart;
 
265
        uint16 moveSizeType;
 
266
        uint16 posX;
 
267
        uint16 posY;
 
268
};
 
269
typedef struct _RAIL_LOCALMOVESIZE_ORDER RAIL_LOCALMOVESIZE_ORDER;
 
270
 
 
271
struct _RAIL_WINDOWMOVE_ORDER
 
272
{
 
273
        uint32 windowId;
 
274
        uint16 left;
 
275
        uint16 top;
 
276
        uint16 right;
 
277
        uint16 bottom;
 
278
};
 
279
typedef struct _RAIL_WINDOWMOVE_ORDER RAIL_WINDOW_MOVE_ORDER;
 
280
 
 
281
struct _RAIL_GET_APPID_REQ_ORDER
 
282
{
 
283
        uint32 windowId;
 
284
};
 
285
typedef struct _RAIL_GET_APPID_REQ_ORDER RAIL_GET_APPID_REQ_ORDER;
 
286
 
 
287
struct _RAIL_GET_APPID_RESP_ORDER
 
288
{
 
289
        uint32 windowId;
 
290
        UNICODE_STRING applicationId;
 
291
        uint8 applicationIdBuffer[512];
 
292
};
 
293
typedef struct _RAIL_GET_APPID_RESP_ORDER RAIL_GET_APPID_RESP_ORDER;
 
294
 
 
295
struct _RAIL_LANGBARINFO_ORDER
 
296
{
 
297
        uint32 languageBarStatus;
 
298
};
 
299
typedef struct _RAIL_LANGBARINFO_ORDER RAIL_LANGBAR_INFO_ORDER;
 
300
 
 
301
/* RAIL Constants */
 
302
 
 
303
enum RDP_RAIL_PDU_TYPE
 
304
{
 
305
        RDP_RAIL_ORDER_EXEC             = 0x0001,
 
306
        RDP_RAIL_ORDER_ACTIVATE         = 0x0002,
 
307
        RDP_RAIL_ORDER_SYSPARAM         = 0x0003,
 
308
        RDP_RAIL_ORDER_SYSCOMMAND       = 0x0004,
 
309
        RDP_RAIL_ORDER_HANDSHAKE        = 0x0005,
 
310
        RDP_RAIL_ORDER_NOTIFY_EVENT     = 0x0006,
 
311
        RDP_RAIL_ORDER_WINDOWMOVE       = 0x0008,
 
312
        RDP_RAIL_ORDER_LOCALMOVESIZE    = 0x0009,
 
313
        RDP_RAIL_ORDER_MINMAXINFO       = 0x000A,
 
314
        RDP_RAIL_ORDER_CLIENTSTATUS     = 0x000B,
 
315
        RDP_RAIL_ORDER_SYSMENU          = 0x000C,
 
316
        RDP_RAIL_ORDER_LANGBARINFO      = 0x000D,
 
317
        RDP_RAIL_ORDER_EXEC_RESULT      = 0x0080,
 
318
        RDP_RAIL_ORDER_GET_APPID_REQ    = 0x000E,
 
319
        RDP_RAIL_ORDER_GET_APPID_RESP   = 0x000F
 
320
};
 
321
 
 
322
enum RDP_EVENT_TYPE_RAIL
 
323
{
 
324
        RDP_EVENT_TYPE_RAIL_CHANNEL_GET_SYSPARAMS = 1,
 
325
        RDP_EVENT_TYPE_RAIL_CHANNEL_EXEC_RESULTS,
 
326
        RDP_EVENT_TYPE_RAIL_CHANNEL_SERVER_SYSPARAM,
 
327
        RDP_EVENT_TYPE_RAIL_CHANNEL_SERVER_MINMAXINFO,
 
328
        RDP_EVENT_TYPE_RAIL_CHANNEL_SERVER_LOCALMOVESIZE,
 
329
        RDP_EVENT_TYPE_RAIL_CHANNEL_APPID_RESP,
 
330
        RDP_EVENT_TYPE_RAIL_CHANNEL_LANGBARINFO,
 
331
 
 
332
        RDP_EVENT_TYPE_RAIL_CLIENT_SET_SYSPARAMS,
 
333
        RDP_EVENT_TYPE_RAIL_CLIENT_EXEC_REMOTE_APP,
 
334
        RDP_EVENT_TYPE_RAIL_CLIENT_ACTIVATE,
 
335
        RDP_EVENT_TYPE_RAIL_CLIENT_SYSMENU,
 
336
        RDP_EVENT_TYPE_RAIL_CLIENT_SYSCOMMAND,
 
337
        RDP_EVENT_TYPE_RAIL_CLIENT_NOTIFY_EVENT,
 
338
        RDP_EVENT_TYPE_RAIL_CLIENT_WINDOW_MOVE,
 
339
        RDP_EVENT_TYPE_RAIL_CLIENT_APPID_REQ,
 
340
        RDP_EVENT_TYPE_RAIL_CLIENT_LANGBARINFO
 
341
};
 
342
 
 
343
#endif /* __RAIL_GLOBAL_H */
 
344