VirtualBox

source: vbox/trunk/src/VBox/RDP/client/proto.h@ 14664

最後變更 在這個檔案從14664是 11982,由 vboxsync 提交於 16 年 前

All: license header changes for 2.0 (OSE headers, add Sun GPL/LGPL disclaimer)

  • 屬性 svn:eol-style 設為 native
  • 屬性 svn:keywords 設為 Author Date Id Revision
檔案大小: 15.2 KB
 
1/* -*- c-basic-offset: 8 -*-
2 rdesktop: A Remote Desktop Protocol client.
3 Copyright (C) Matthew Chapman 1999-2007
4
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version.
9
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18*/
19
20/*
21 * Sun GPL Disclaimer: For the avoidance of doubt, except that if any license choice
22 * other than GPL or LGPL is available it will apply instead, Sun elects to use only
23 * the General Public License version 2 (GPLv2) at this time for any software where
24 * a choice of GPL license versions is made available with the language indicating
25 * that GPLv2 or any later version may be used, or where a choice of which version
26 * of the GPL is applied is otherwise unspecified.
27 */
28
29#ifndef RDESKTOP_PROTO_H
30#define RDESKTOP_PROTO_H
31
32/* *INDENT-OFF* */
33#ifdef __cplusplus
34extern "C" {
35#endif
36/* *INDENT-ON* */
37/* bitmap.c */
38RD_BOOL bitmap_decompress(uint8 * output, int width, int height, uint8 * input, int size, int Bpp);
39/* cache.c */
40void cache_rebuild_bmpcache_linked_list(uint8 id, sint16 * idx, int count);
41void cache_bump_bitmap(uint8 id, uint16 idx, int bump);
42void cache_evict_bitmap(uint8 id);
43RD_HBITMAP cache_get_bitmap(uint8 id, uint16 idx);
44void cache_put_bitmap(uint8 id, uint16 idx, RD_HBITMAP bitmap);
45void cache_save_state(void);
46FONTGLYPH *cache_get_font(uint8 font, uint16 character);
47void cache_put_font(uint8 font, uint16 character, uint16 offset, uint16 baseline, uint16 width,
48 uint16 height, RD_HGLYPH pixmap);
49DATABLOB *cache_get_text(uint8 cache_id);
50void cache_put_text(uint8 cache_id, void *data, int length);
51uint8 *cache_get_desktop(uint32 offset, int cx, int cy, int bytes_per_pixel);
52void cache_put_desktop(uint32 offset, int cx, int cy, int scanline, int bytes_per_pixel,
53 uint8 * data);
54RD_HCURSOR cache_get_cursor(uint16 cache_idx);
55void cache_put_cursor(uint16 cache_idx, RD_HCURSOR cursor);
56/* channels.c */
57VCHANNEL *channel_register(char *name, uint32 flags, void (*callback) (STREAM));
58STREAM channel_init(VCHANNEL * channel, uint32 length);
59void channel_send(STREAM s, VCHANNEL * channel);
60void channel_process(STREAM s, uint16 mcs_channel);
61/* cliprdr.c */
62void cliprdr_send_simple_native_format_announce(uint32 format);
63void cliprdr_send_native_format_announce(uint8 * formats_data, uint32 formats_data_length);
64void cliprdr_send_data_request(uint32 format);
65void cliprdr_send_data(uint8 * data, uint32 length);
66void cliprdr_set_mode(const char *optarg);
67RD_BOOL cliprdr_init(void);
68/* disk.c */
69int disk_enum_devices(uint32 * id, char *optarg);
70RD_NTSTATUS disk_query_information(RD_NTHANDLE handle, uint32 info_class, STREAM out);
71RD_NTSTATUS disk_set_information(RD_NTHANDLE handle, uint32 info_class, STREAM in, STREAM out);
72RD_NTSTATUS disk_check_notify(RD_NTHANDLE handle);
73RD_NTSTATUS disk_create_notify(RD_NTHANDLE handle, uint32 info_class);
74RD_NTSTATUS disk_query_volume_information(RD_NTHANDLE handle, uint32 info_class, STREAM out);
75RD_NTSTATUS disk_query_directory(RD_NTHANDLE handle, uint32 info_class, char *pattern, STREAM out);
76/* mppc.c */
77int mppc_expand(uint8 * data, uint32 clen, uint8 ctype, uint32 * roff, uint32 * rlen);
78/* ewmhints.c */
79int get_current_workarea(uint32 * x, uint32 * y, uint32 * width, uint32 * height);
80void ewmh_init(void);
81/* iso.c */
82STREAM iso_init(int length);
83void iso_send(STREAM s);
84STREAM iso_recv(uint8 * rdpver);
85RD_BOOL iso_connect(char *server, char *username);
86RD_BOOL iso_reconnect(char *server);
87void iso_disconnect(void);
88void iso_reset_state(void);
89/* licence.c */
90void licence_process(STREAM s);
91/* mcs.c */
92STREAM mcs_init(int length);
93void mcs_send_to_channel(STREAM s, uint16 channel);
94void mcs_send(STREAM s);
95STREAM mcs_recv(uint16 * channel, uint8 * rdpver);
96RD_BOOL mcs_connect(char *server, STREAM mcs_data, char *username);
97RD_BOOL mcs_reconnect(char *server, STREAM mcs_data);
98void mcs_disconnect(void);
99void mcs_reset_state(void);
100/* orders.c */
101void process_orders(STREAM s, uint16 num_orders);
102void reset_order_state(void);
103/* parallel.c */
104int parallel_enum_devices(uint32 * id, char *optarg);
105/* printer.c */
106int printer_enum_devices(uint32 * id, char *optarg);
107/* printercache.c */
108int printercache_load_blob(char *printer_name, uint8 ** data);
109void printercache_process(STREAM s);
110/* pstcache.c */
111void pstcache_touch_bitmap(uint8 cache_id, uint16 cache_idx, uint32 stamp);
112RD_BOOL pstcache_load_bitmap(uint8 cache_id, uint16 cache_idx);
113RD_BOOL pstcache_save_bitmap(uint8 cache_id, uint16 cache_idx, uint8 * key, uint8 width,
114 uint8 height, uint16 length, uint8 * data);
115int pstcache_enumerate(uint8 id, HASH_KEY * keylist);
116RD_BOOL pstcache_init(uint8 cache_id);
117/* rdesktop.c */
118int main(int argc, char *argv[]);
119void generate_random(uint8 * random);
120void *xmalloc(int size);
121void exit_if_null(void *ptr);
122char *xstrdup(const char *s);
123void *xrealloc(void *oldmem, size_t size);
124void xfree(void *mem);
125void error(char *format, ...);
126void warning(char *format, ...);
127void unimpl(char *format, ...);
128void hexdump(unsigned char *p, unsigned int len);
129char *next_arg(char *src, char needle);
130void toupper_str(char *p);
131RD_BOOL str_startswith(const char *s, const char *prefix);
132RD_BOOL str_handle_lines(const char *input, char **rest, str_handle_lines_t linehandler,
133 void *data);
134RD_BOOL subprocess(char *const argv[], str_handle_lines_t linehandler, void *data);
135char *l_to_a(long N, int base);
136int load_licence(unsigned char **data);
137void save_licence(unsigned char *data, int length);
138RD_BOOL rd_pstcache_mkdir(void);
139int rd_open_file(char *filename);
140void rd_close_file(int fd);
141int rd_read_file(int fd, void *ptr, int len);
142int rd_write_file(int fd, void *ptr, int len);
143int rd_lseek_file(int fd, int offset);
144RD_BOOL rd_lock_file(int fd, int start, int len);
145/* rdp5.c */
146void rdp5_process(STREAM s);
147/* rdp.c */
148void rdp_out_unistr(STREAM s, char *string, int len);
149int rdp_in_unistr(STREAM s, char *string, int str_len, int in_len);
150void rdp_send_input(uint32 time, uint16 message_type, uint16 device_flags, uint16 param1,
151 uint16 param2);
152void rdp_send_client_window_status(int status);
153void process_colour_pointer_pdu(STREAM s);
154void process_cached_pointer_pdu(STREAM s);
155void process_system_pointer_pdu(STREAM s);
156void process_bitmap_updates(STREAM s);
157void process_palette(STREAM s);
158void process_disconnect_pdu(STREAM s, uint32 * ext_disc_reason);
159void rdp_main_loop(RD_BOOL * deactivated, uint32 * ext_disc_reason);
160RD_BOOL rdp_loop(RD_BOOL * deactivated, uint32 * ext_disc_reason);
161RD_BOOL rdp_connect(char *server, uint32 flags, char *domain, char *password, char *command,
162 char *directory);
163RD_BOOL rdp_reconnect(char *server, uint32 flags, char *domain, char *password, char *command,
164 char *directory, char *cookie);
165void rdp_reset_state(void);
166void rdp_disconnect(void);
167/* rdpdr.c */
168int get_device_index(RD_NTHANDLE handle);
169void convert_to_unix_filename(char *filename);
170void rdpdr_send_completion(uint32 device, uint32 id, uint32 status, uint32 result, uint8 * buffer,
171 uint32 length);
172RD_BOOL rdpdr_init(void);
173void rdpdr_add_fds(int *n, fd_set * rfds, fd_set * wfds, struct timeval *tv, RD_BOOL * timeout);
174struct async_iorequest *rdpdr_remove_iorequest(struct async_iorequest *prev,
175 struct async_iorequest *iorq);
176void rdpdr_check_fds(fd_set * rfds, fd_set * wfds, RD_BOOL timed_out);
177RD_BOOL rdpdr_abort_io(uint32 fd, uint32 major, RD_NTSTATUS status);
178/* rdpsnd.c */
179void rdpsnd_record(const void *data, unsigned int size);
180RD_BOOL rdpsnd_init(char *optarg);
181void rdpsnd_show_help(void);
182void rdpsnd_add_fds(int *n, fd_set * rfds, fd_set * wfds, struct timeval *tv);
183void rdpsnd_check_fds(fd_set * rfds, fd_set * wfds);
184struct audio_packet *rdpsnd_queue_current_packet(void);
185RD_BOOL rdpsnd_queue_empty(void);
186void rdpsnd_queue_next(unsigned long completed_in_us);
187int rdpsnd_queue_next_tick(void);
188/* secure.c */
189void sec_hash_48(uint8 * out, uint8 * in, uint8 * salt1, uint8 * salt2, uint8 salt);
190void sec_hash_16(uint8 * out, uint8 * in, uint8 * salt1, uint8 * salt2);
191void buf_out_uint32(uint8 * buffer, uint32 value);
192void sec_sign(uint8 * signature, int siglen, uint8 * session_key, int keylen, uint8 * data,
193 int datalen);
194void sec_decrypt(uint8 * data, int length);
195STREAM sec_init(uint32 flags, int maxlen);
196void sec_send_to_channel(STREAM s, uint32 flags, uint16 channel);
197void sec_send(STREAM s, uint32 flags);
198void sec_process_mcs_data(STREAM s);
199STREAM sec_recv(uint8 * rdpver);
200RD_BOOL sec_connect(char *server, char *username);
201RD_BOOL sec_reconnect(char *server);
202void sec_disconnect(void);
203void sec_reset_state(void);
204/* serial.c */
205int serial_enum_devices(uint32 * id, char *optarg);
206RD_BOOL serial_get_event(RD_NTHANDLE handle, uint32 * result);
207RD_BOOL serial_get_timeout(RD_NTHANDLE handle, uint32 length, uint32 * timeout,
208 uint32 * itv_timeout);
209/* tcp.c */
210STREAM tcp_init(uint32 maxlen);
211void tcp_send(STREAM s);
212STREAM tcp_recv(STREAM s, uint32 length);
213RD_BOOL tcp_connect(char *server);
214void tcp_disconnect(void);
215char *tcp_get_address(void);
216void tcp_reset_state(void);
217/* xclip.c */
218void ui_clip_format_announce(uint8 * data, uint32 length);
219void ui_clip_handle_data(uint8 * data, uint32 length);
220void ui_clip_request_failed(void);
221void ui_clip_request_data(uint32 format);
222void ui_clip_sync(void);
223void ui_clip_set_mode(const char *optarg);
224void xclip_init(void);
225void xclip_deinit(void);
226/* xkeymap.c */
227RD_BOOL xkeymap_from_locale(const char *locale);
228FILE *xkeymap_open(const char *filename);
229void xkeymap_init(void);
230RD_BOOL handle_special_keys(uint32 keysym, unsigned int state, uint32 ev_time, RD_BOOL pressed);
231key_translation xkeymap_translate_key(uint32 keysym, unsigned int keycode, unsigned int state);
232void xkeymap_send_keys(uint32 keysym, unsigned int keycode, unsigned int state, uint32 ev_time,
233 RD_BOOL pressed, uint8 nesting);
234uint16 xkeymap_translate_button(unsigned int button);
235char *get_ksname(uint32 keysym);
236void save_remote_modifiers(uint8 scancode);
237void restore_remote_modifiers(uint32 ev_time, uint8 scancode);
238void ensure_remote_modifiers(uint32 ev_time, key_translation tr);
239unsigned int read_keyboard_state(void);
240uint16 ui_get_numlock_state(unsigned int state);
241void reset_modifier_keys(void);
242void rdp_send_scancode(uint32 time, uint16 flags, uint8 scancode);
243/* xwin.c */
244RD_BOOL get_key_state(unsigned int state, uint32 keysym);
245RD_BOOL ui_init(void);
246void ui_deinit(void);
247RD_BOOL ui_create_window(void);
248void ui_resize_window(void);
249void ui_destroy_window(void);
250void xwin_toggle_fullscreen(void);
251int ui_select(int rdp_socket);
252void ui_move_pointer(int x, int y);
253RD_HBITMAP ui_create_bitmap(int width, int height, uint8 * data);
254void ui_paint_bitmap(int x, int y, int cx, int cy, int width, int height, uint8 * data);
255void ui_destroy_bitmap(RD_HBITMAP bmp);
256RD_HGLYPH ui_create_glyph(int width, int height, uint8 * data);
257void ui_destroy_glyph(RD_HGLYPH glyph);
258RD_HCURSOR ui_create_cursor(unsigned int x, unsigned int y, int width, int height, uint8 * andmask,
259 uint8 * xormask);
260void ui_set_cursor(RD_HCURSOR cursor);
261void ui_destroy_cursor(RD_HCURSOR cursor);
262void ui_set_null_cursor(void);
263RD_HCOLOURMAP ui_create_colourmap(COLOURMAP * colours);
264void ui_destroy_colourmap(RD_HCOLOURMAP map);
265void ui_set_colourmap(RD_HCOLOURMAP map);
266void ui_set_clip(int x, int y, int cx, int cy);
267void ui_reset_clip(void);
268void ui_bell(void);
269void ui_destblt(uint8 opcode, int x, int y, int cx, int cy);
270void ui_patblt(uint8 opcode, int x, int y, int cx, int cy, BRUSH * brush, int bgcolour,
271 int fgcolour);
272void ui_screenblt(uint8 opcode, int x, int y, int cx, int cy, int srcx, int srcy);
273void ui_memblt(uint8 opcode, int x, int y, int cx, int cy, RD_HBITMAP src, int srcx, int srcy);
274void ui_triblt(uint8 opcode, int x, int y, int cx, int cy, RD_HBITMAP src, int srcx, int srcy,
275 BRUSH * brush, int bgcolour, int fgcolour);
276void ui_line(uint8 opcode, int startx, int starty, int endx, int endy, PEN * pen);
277void ui_rect(int x, int y, int cx, int cy, int colour);
278void ui_polygon(uint8 opcode, uint8 fillmode, RD_POINT * point, int npoints, BRUSH * brush,
279 int bgcolour, int fgcolour);
280void ui_polyline(uint8 opcode, RD_POINT * points, int npoints, PEN * pen);
281void ui_ellipse(uint8 opcode, uint8 fillmode, int x, int y, int cx, int cy, BRUSH * brush,
282 int bgcolour, int fgcolour);
283void ui_draw_glyph(int mixmode, int x, int y, int cx, int cy, RD_HGLYPH glyph, int srcx, int srcy,
284 int bgcolour, int fgcolour);
285void ui_draw_text(uint8 font, uint8 flags, uint8 opcode, int mixmode, int x, int y, int clipx,
286 int clipy, int clipcx, int clipcy, int boxx, int boxy, int boxcx, int boxcy,
287 BRUSH * brush, int bgcolour, int fgcolour, uint8 * text, uint8 length);
288void ui_desktop_save(uint32 offset, int x, int y, int cx, int cy);
289void ui_desktop_restore(uint32 offset, int x, int y, int cx, int cy);
290void ui_begin_update(void);
291void ui_end_update(void);
292void ui_seamless_begin(RD_BOOL hidden);
293void ui_seamless_hide_desktop(void);
294void ui_seamless_unhide_desktop(void);
295void ui_seamless_toggle(void);
296void ui_seamless_create_window(unsigned long id, unsigned long group, unsigned long parent,
297 unsigned long flags);
298void ui_seamless_destroy_window(unsigned long id, unsigned long flags);
299void ui_seamless_destroy_group(unsigned long id, unsigned long flags);
300void ui_seamless_seticon(unsigned long id, const char *format, int width, int height, int chunk,
301 const char *data, int chunk_len);
302void ui_seamless_delicon(unsigned long id, const char *format, int width, int height);
303void ui_seamless_move_window(unsigned long id, int x, int y, int width, int height,
304 unsigned long flags);
305void ui_seamless_restack_window(unsigned long id, unsigned long behind, unsigned long flags);
306void ui_seamless_settitle(unsigned long id, const char *title, unsigned long flags);
307void ui_seamless_setstate(unsigned long id, unsigned int state, unsigned long flags);
308void ui_seamless_syncbegin(unsigned long flags);
309void ui_seamless_ack(unsigned int serial);
310/* lspci.c */
311RD_BOOL lspci_init(void);
312/* seamless.c */
313RD_BOOL seamless_init(void);
314unsigned int seamless_send_sync(void);
315unsigned int seamless_send_state(unsigned long id, unsigned int state, unsigned long flags);
316unsigned int seamless_send_position(unsigned long id, int x, int y, int width, int height,
317 unsigned long flags);
318void seamless_select_timeout(struct timeval *tv);
319unsigned int seamless_send_zchange(unsigned long id, unsigned long below, unsigned long flags);
320unsigned int seamless_send_focus(unsigned long id, unsigned long flags);
321unsigned int seamless_send_destroy(unsigned long id);
322/* scard.c */
323void scard_lock(int lock);
324void scard_unlock(int lock);
325/* vrdp/rdpusb.c */
326RD_BOOL rdpusb_init(void);
327void rdpusb_close (void);
328void rdpusb_add_fds(int *n, fd_set * rfds, fd_set * wfds);
329void rdpusb_check_fds(fd_set * rfds, fd_set * wfds);
330
331/* *INDENT-OFF* */
332#ifdef __cplusplus
333}
334#endif
335/* *INDENT-ON* */
336
337#endif
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette