VirtualBox

source: vbox/trunk/src/VBox/RDP/client-1.8.3/proto.h@ 55121

最後變更 在這個檔案從55121是 55121,由 vboxsync 提交於 10 年 前

rdesktop 1.8.3 unmodified

  • 屬性 svn:eol-style 設為 native
  • 屬性 svn:keywords 設為 Author Date Id Revision
檔案大小: 16.2 KB
 
1/* -*- c-basic-offset: 8 -*-
2 rdesktop: A Remote Desktop Protocol client.
3 Copyright (C) Matthew Chapman 1999-2008
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 3 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, see <http://www.gnu.org/licenses/>.
17*/
18
19#ifndef RDESKTOP_PROTO_H
20#define RDESKTOP_PROTO_H
21
22/* *INDENT-OFF* */
23#ifdef __cplusplus
24extern "C" {
25#endif
26/* *INDENT-ON* */
27/* utils.c */
28char *utils_string_escape(const char *str);
29char *utils_string_unescape(const char *str);
30int utils_locale_to_utf8(const char *src, size_t is, char *dest, size_t os);
31int utils_mkdir_safe(const char *path, int mask);
32int utils_mkdir_p(const char *path, int mask);
33/* bitmap.c */
34RD_BOOL bitmap_decompress(uint8 * output, int width, int height, uint8 * input, int size, int Bpp);
35/* cache.c */
36void cache_rebuild_bmpcache_linked_list(uint8 id, sint16 * idx, int count);
37void cache_bump_bitmap(uint8 id, uint16 idx, int bump);
38void cache_evict_bitmap(uint8 id);
39RD_HBITMAP cache_get_bitmap(uint8 id, uint16 idx);
40void cache_put_bitmap(uint8 id, uint16 idx, RD_HBITMAP bitmap);
41void cache_save_state(void);
42FONTGLYPH *cache_get_font(uint8 font, uint16 character);
43void cache_put_font(uint8 font, uint16 character, uint16 offset, uint16 baseline, uint16 width,
44 uint16 height, RD_HGLYPH pixmap);
45DATABLOB *cache_get_text(uint8 cache_id);
46void cache_put_text(uint8 cache_id, void *data, int length);
47uint8 *cache_get_desktop(uint32 offset, int cx, int cy, int bytes_per_pixel);
48void cache_put_desktop(uint32 offset, int cx, int cy, int scanline, int bytes_per_pixel,
49 uint8 * data);
50RD_HCURSOR cache_get_cursor(uint16 cache_idx);
51void cache_put_cursor(uint16 cache_idx, RD_HCURSOR cursor);
52BRUSHDATA *cache_get_brush_data(uint8 colour_code, uint8 idx);
53void cache_put_brush_data(uint8 colour_code, uint8 idx, BRUSHDATA * brush_data);
54/* channels.c */
55VCHANNEL *channel_register(char *name, uint32 flags, void (*callback) (STREAM));
56STREAM channel_init(VCHANNEL * channel, uint32 length);
57void channel_send(STREAM s, VCHANNEL * channel);
58void channel_process(STREAM s, uint16 mcs_channel);
59/* cliprdr.c */
60void cliprdr_send_simple_native_format_announce(uint32 format);
61void cliprdr_send_native_format_announce(uint8 * formats_data, uint32 formats_data_length);
62void cliprdr_send_data_request(uint32 format);
63void cliprdr_send_data(uint8 * data, uint32 length);
64void cliprdr_set_mode(const char *optarg);
65RD_BOOL cliprdr_init(void);
66/* ctrl.c */
67int ctrl_init(const char *user, const char *domain, const char *host);
68void ctrl_cleanup();
69RD_BOOL ctrl_is_slave();
70int ctrl_send_command(const char *cmd, const char *args);
71void ctrl_add_fds(int *n, fd_set * rfds);
72void ctrl_check_fds(fd_set * rfds, fd_set * wfds);
73
74/* disk.c */
75int disk_enum_devices(uint32 * id, char *optarg);
76RD_NTSTATUS disk_query_information(RD_NTHANDLE handle, uint32 info_class, STREAM out);
77RD_NTSTATUS disk_set_information(RD_NTHANDLE handle, uint32 info_class, STREAM in, STREAM out);
78RD_NTSTATUS disk_check_notify(RD_NTHANDLE handle);
79RD_NTSTATUS disk_create_notify(RD_NTHANDLE handle, uint32 info_class);
80RD_NTSTATUS disk_query_volume_information(RD_NTHANDLE handle, uint32 info_class, STREAM out);
81RD_NTSTATUS disk_query_directory(RD_NTHANDLE handle, uint32 info_class, char *pattern, STREAM out);
82/* mppc.c */
83int mppc_expand(uint8 * data, uint32 clen, uint8 ctype, uint32 * roff, uint32 * rlen);
84/* ewmhints.c */
85int get_current_workarea(uint32 * x, uint32 * y, uint32 * width, uint32 * height);
86void ewmh_init(void);
87/* iso.c */
88STREAM iso_init(int length);
89void iso_send(STREAM s);
90STREAM iso_recv(uint8 * rdpver);
91RD_BOOL iso_connect(char *server, char *username, char *domain, char *password, RD_BOOL reconnect,
92 uint32 * selected_protocol);
93void iso_disconnect(void);
94void iso_reset_state(void);
95/* cssp.c */
96RD_BOOL cssp_connect(char *server, char *user, char *domain, char *password, STREAM s);
97/* licence.c */
98void licence_process(STREAM s);
99/* mcs.c */
100STREAM mcs_init(int length);
101void mcs_send_to_channel(STREAM s, uint16 channel);
102void mcs_send(STREAM s);
103STREAM mcs_recv(uint16 * channel, uint8 * rdpver);
104RD_BOOL mcs_connect_start(char *server, char *username, char *domain, char *password,
105 RD_BOOL reconnect, uint32 * selected_protocol);
106RD_BOOL mcs_connect_finalize(STREAM s);
107void mcs_disconnect(void);
108void mcs_reset_state(void);
109/* orders.c */
110void process_orders(STREAM s, uint16 num_orders);
111void reset_order_state(void);
112/* parallel.c */
113int parallel_enum_devices(uint32 * id, char *optarg);
114/* printer.c */
115int printer_enum_devices(uint32 * id, char *optarg);
116/* printercache.c */
117int printercache_load_blob(char *printer_name, uint8 ** data);
118void printercache_process(STREAM s);
119/* pstcache.c */
120void pstcache_touch_bitmap(uint8 cache_id, uint16 cache_idx, uint32 stamp);
121RD_BOOL pstcache_load_bitmap(uint8 cache_id, uint16 cache_idx);
122RD_BOOL pstcache_save_bitmap(uint8 cache_id, uint16 cache_idx, uint8 * key, uint8 width,
123 uint8 height, uint16 length, uint8 * data);
124int pstcache_enumerate(uint8 id, HASH_KEY * keylist);
125RD_BOOL pstcache_init(uint8 cache_id);
126/* rdesktop.c */
127int main(int argc, char *argv[]);
128void generate_random(uint8 * random);
129void *xmalloc(int size);
130void exit_if_null(void *ptr);
131char *xstrdup(const char *s);
132void *xrealloc(void *oldmem, size_t size);
133void xfree(void *mem);
134void error(char *format, ...);
135void warning(char *format, ...);
136void unimpl(char *format, ...);
137void hexdump(unsigned char *p, unsigned int len);
138char *next_arg(char *src, char needle);
139void toupper_str(char *p);
140RD_BOOL str_startswith(const char *s, const char *prefix);
141RD_BOOL str_handle_lines(const char *input, char **rest, str_handle_lines_t linehandler,
142 void *data);
143RD_BOOL subprocess(char *const argv[], str_handle_lines_t linehandler, void *data);
144char *l_to_a(long N, int base);
145int load_licence(unsigned char **data);
146void save_licence(unsigned char *data, int length);
147void rd_create_ui(void);
148RD_BOOL rd_pstcache_mkdir(void);
149int rd_open_file(char *filename);
150void rd_close_file(int fd);
151int rd_read_file(int fd, void *ptr, int len);
152int rd_write_file(int fd, void *ptr, int len);
153int rd_lseek_file(int fd, int offset);
154RD_BOOL rd_lock_file(int fd, int start, int len);
155/* rdp5.c */
156void rdp5_process(STREAM s);
157/* rdp.c */
158void rdp_out_unistr(STREAM s, char *string, int len);
159void rdp_in_unistr(STREAM s, int in_len, char **string, uint32 * str_size);
160void rdp_send_input(uint32 time, uint16 message_type, uint16 device_flags, uint16 param1,
161 uint16 param2);
162void rdp_send_client_window_status(int status);
163void process_colour_pointer_pdu(STREAM s);
164void process_new_pointer_pdu(STREAM s);
165void process_cached_pointer_pdu(STREAM s);
166void process_system_pointer_pdu(STREAM s);
167void process_bitmap_updates(STREAM s);
168void process_palette(STREAM s);
169void process_disconnect_pdu(STREAM s, uint32 * ext_disc_reason);
170void rdp_main_loop(RD_BOOL * deactivated, uint32 * ext_disc_reason);
171RD_BOOL rdp_loop(RD_BOOL * deactivated, uint32 * ext_disc_reason);
172RD_BOOL rdp_connect(char *server, uint32 flags, char *domain, char *password, char *command,
173 char *directory, RD_BOOL reconnect);
174void rdp_reset_state(void);
175void rdp_disconnect(void);
176/* rdpdr.c */
177int get_device_index(RD_NTHANDLE handle);
178void convert_to_unix_filename(char *filename);
179void rdpdr_send_completion(uint32 device, uint32 id, uint32 status, uint32 result, uint8 * buffer,
180 uint32 length);
181RD_BOOL rdpdr_init();
182void rdpdr_add_fds(int *n, fd_set * rfds, fd_set * wfds, struct timeval *tv, RD_BOOL * timeout);
183struct async_iorequest *rdpdr_remove_iorequest(struct async_iorequest *prev,
184 struct async_iorequest *iorq);
185void rdpdr_check_fds(fd_set * rfds, fd_set * wfds, RD_BOOL timed_out);
186RD_BOOL rdpdr_abort_io(uint32 fd, uint32 major, RD_NTSTATUS status);
187/* rdpsnd.c */
188void rdpsnd_record(const void *data, unsigned int size);
189RD_BOOL rdpsnd_init(char *optarg);
190void rdpsnd_show_help(void);
191void rdpsnd_add_fds(int *n, fd_set * rfds, fd_set * wfds, struct timeval *tv);
192void rdpsnd_check_fds(fd_set * rfds, fd_set * wfds);
193struct audio_packet *rdpsnd_queue_current_packet(void);
194RD_BOOL rdpsnd_queue_empty(void);
195void rdpsnd_queue_next(unsigned long completed_in_us);
196int rdpsnd_queue_next_tick(void);
197void rdpsnd_reset_state(void);
198/* secure.c */
199void sec_hash_to_string(char *out, int out_size, uint8 * in, int in_size);
200void sec_hash_sha1_16(uint8 * out, uint8 * in, uint8 * salt1);
201void sec_hash_48(uint8 * out, uint8 * in, uint8 * salt1, uint8 * salt2, uint8 salt);
202void sec_hash_16(uint8 * out, uint8 * in, uint8 * salt1, uint8 * salt2);
203void buf_out_uint32(uint8 * buffer, uint32 value);
204void sec_sign(uint8 * signature, int siglen, uint8 * session_key, int keylen, uint8 * data,
205 int datalen);
206void sec_decrypt(uint8 * data, int length);
207STREAM sec_init(uint32 flags, int maxlen);
208void sec_send_to_channel(STREAM s, uint32 flags, uint16 channel);
209void sec_send(STREAM s, uint32 flags);
210void sec_process_mcs_data(STREAM s);
211STREAM sec_recv(uint8 * rdpver);
212RD_BOOL sec_connect(char *server, char *username, char *domain, char *password, RD_BOOL reconnect);
213void sec_disconnect(void);
214void sec_reset_state(void);
215/* serial.c */
216int serial_enum_devices(uint32 * id, char *optarg);
217RD_BOOL serial_get_event(RD_NTHANDLE handle, uint32 * result);
218RD_BOOL serial_get_timeout(RD_NTHANDLE handle, uint32 length, uint32 * timeout,
219 uint32 * itv_timeout);
220/* tcp.c */
221STREAM tcp_init(uint32 maxlen);
222void tcp_send(STREAM s);
223STREAM tcp_recv(STREAM s, uint32 length);
224RD_BOOL tcp_connect(char *server);
225void tcp_disconnect(void);
226char *tcp_get_address(void);
227RD_BOOL tcp_is_connected(void);
228void tcp_reset_state(void);
229RD_BOOL tcp_tls_connect(void);
230RD_BOOL tcp_tls_get_server_pubkey(STREAM s);
231void tcp_run_ui(RD_BOOL run);
232
233/* asn.c */
234RD_BOOL ber_in_header(STREAM s, int *tagval, int *length);
235void ber_out_header(STREAM s, int tagval, int length);
236RD_BOOL ber_parse_header(STREAM s, int tagval, int *length);
237void ber_out_integer(STREAM s, int value);
238
239/* xclip.c */
240void ui_clip_format_announce(uint8 * data, uint32 length);
241void ui_clip_handle_data(uint8 * data, uint32 length);
242void ui_clip_request_failed(void);
243void ui_clip_request_data(uint32 format);
244void ui_clip_sync(void);
245void ui_clip_set_mode(const char *optarg);
246void xclip_init(void);
247void xclip_deinit(void);
248/* xkeymap.c */
249RD_BOOL xkeymap_from_locale(const char *locale);
250FILE *xkeymap_open(const char *filename);
251void xkeymap_init(void);
252RD_BOOL handle_special_keys(uint32 keysym, unsigned int state, uint32 ev_time, RD_BOOL pressed);
253key_translation xkeymap_translate_key(uint32 keysym, unsigned int keycode, unsigned int state);
254void xkeymap_send_keys(uint32 keysym, unsigned int keycode, unsigned int state, uint32 ev_time,
255 RD_BOOL pressed, uint8 nesting);
256uint16 xkeymap_translate_button(unsigned int button);
257char *get_ksname(uint32 keysym);
258void save_remote_modifiers(uint8 scancode);
259void restore_remote_modifiers(uint32 ev_time, uint8 scancode);
260void ensure_remote_modifiers(uint32 ev_time, key_translation tr);
261unsigned int read_keyboard_state(void);
262uint16 ui_get_numlock_state(unsigned int state);
263void reset_modifier_keys(void);
264void rdp_send_scancode(uint32 time, uint16 flags, uint8 scancode);
265/* xwin.c */
266RD_BOOL get_key_state(unsigned int state, uint32 keysym);
267RD_BOOL ui_init(void);
268void ui_init_connection(void);
269void ui_deinit(void);
270RD_BOOL ui_create_window(void);
271void ui_resize_window(void);
272void ui_destroy_window(void);
273RD_BOOL ui_have_window(void);
274void xwin_toggle_fullscreen(void);
275int ui_select(int rdp_socket);
276void ui_move_pointer(int x, int y);
277RD_HBITMAP ui_create_bitmap(int width, int height, uint8 * data);
278void ui_paint_bitmap(int x, int y, int cx, int cy, int width, int height, uint8 * data);
279void ui_destroy_bitmap(RD_HBITMAP bmp);
280RD_HGLYPH ui_create_glyph(int width, int height, uint8 * data);
281void ui_destroy_glyph(RD_HGLYPH glyph);
282RD_HCURSOR ui_create_cursor(unsigned int x, unsigned int y, int width, int height, uint8 * andmask,
283 uint8 * xormask, int bpp);
284void ui_set_cursor(RD_HCURSOR cursor);
285void ui_destroy_cursor(RD_HCURSOR cursor);
286void ui_set_null_cursor(void);
287RD_HCOLOURMAP ui_create_colourmap(COLOURMAP * colours);
288void ui_destroy_colourmap(RD_HCOLOURMAP map);
289void ui_set_colourmap(RD_HCOLOURMAP map);
290void ui_set_clip(int x, int y, int cx, int cy);
291void ui_reset_clip(void);
292void ui_bell(void);
293void ui_destblt(uint8 opcode, int x, int y, int cx, int cy);
294void ui_patblt(uint8 opcode, int x, int y, int cx, int cy, BRUSH * brush, int bgcolour,
295 int fgcolour);
296void ui_screenblt(uint8 opcode, int x, int y, int cx, int cy, int srcx, int srcy);
297void ui_memblt(uint8 opcode, int x, int y, int cx, int cy, RD_HBITMAP src, int srcx, int srcy);
298void ui_triblt(uint8 opcode, int x, int y, int cx, int cy, RD_HBITMAP src, int srcx, int srcy,
299 BRUSH * brush, int bgcolour, int fgcolour);
300void ui_line(uint8 opcode, int startx, int starty, int endx, int endy, PEN * pen);
301void ui_rect(int x, int y, int cx, int cy, int colour);
302void ui_polygon(uint8 opcode, uint8 fillmode, RD_POINT * point, int npoints, BRUSH * brush,
303 int bgcolour, int fgcolour);
304void ui_polyline(uint8 opcode, RD_POINT * points, int npoints, PEN * pen);
305void ui_ellipse(uint8 opcode, uint8 fillmode, int x, int y, int cx, int cy, BRUSH * brush,
306 int bgcolour, int fgcolour);
307void ui_draw_glyph(int mixmode, int x, int y, int cx, int cy, RD_HGLYPH glyph, int srcx, int srcy,
308 int bgcolour, int fgcolour);
309void ui_draw_text(uint8 font, uint8 flags, uint8 opcode, int mixmode, int x, int y, int clipx,
310 int clipy, int clipcx, int clipcy, int boxx, int boxy, int boxcx, int boxcy,
311 BRUSH * brush, int bgcolour, int fgcolour, uint8 * text, uint8 length);
312void ui_desktop_save(uint32 offset, int x, int y, int cx, int cy);
313void ui_desktop_restore(uint32 offset, int x, int y, int cx, int cy);
314void ui_begin_update(void);
315void ui_end_update(void);
316void ui_seamless_begin(RD_BOOL hidden);
317void ui_seamless_end();
318void ui_seamless_hide_desktop(void);
319void ui_seamless_unhide_desktop(void);
320void ui_seamless_toggle(void);
321void ui_seamless_create_window(unsigned long id, unsigned long group, unsigned long parent,
322 unsigned long flags);
323void ui_seamless_destroy_window(unsigned long id, unsigned long flags);
324void ui_seamless_destroy_group(unsigned long id, unsigned long flags);
325void ui_seamless_seticon(unsigned long id, const char *format, int width, int height, int chunk,
326 const char *data, int chunk_len);
327void ui_seamless_delicon(unsigned long id, const char *format, int width, int height);
328void ui_seamless_move_window(unsigned long id, int x, int y, int width, int height,
329 unsigned long flags);
330void ui_seamless_restack_window(unsigned long id, unsigned long behind, unsigned long flags);
331void ui_seamless_settitle(unsigned long id, const char *title, unsigned long flags);
332void ui_seamless_setstate(unsigned long id, unsigned int state, unsigned long flags);
333void ui_seamless_syncbegin(unsigned long flags);
334void ui_seamless_ack(unsigned int serial);
335/* lspci.c */
336RD_BOOL lspci_init(void);
337/* seamless.c */
338RD_BOOL seamless_init(void);
339void seamless_reset_state(void);
340unsigned int seamless_send_sync(void);
341unsigned int seamless_send_state(unsigned long id, unsigned int state, unsigned long flags);
342unsigned int seamless_send_position(unsigned long id, int x, int y, int width, int height,
343 unsigned long flags);
344void seamless_select_timeout(struct timeval *tv);
345unsigned int seamless_send_zchange(unsigned long id, unsigned long below, unsigned long flags);
346unsigned int seamless_send_focus(unsigned long id, unsigned long flags);
347unsigned int seamless_send_destroy(unsigned long id);
348unsigned int seamless_send_spawn(char *cmd);
349unsigned int seamless_send_persistent(RD_BOOL);
350
351/* scard.c */
352void scard_lock(int lock);
353void scard_unlock(int lock);
354int scard_enum_devices(uint32 * id, char *optarg);
355void scardSetInfo(uint32 epoch, uint32 device, uint32 id, uint32 bytes_out);
356void scard_reset_state();
357
358/* *INDENT-OFF* */
359#ifdef __cplusplus
360}
361#endif
362/* *INDENT-ON* */
363
364#endif
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

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