ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

types.h
Go to the documentation of this file.
00001 /*
00002    rdesktop: A Remote Desktop Protocol client.
00003    Common data types
00004    Copyright (C) Matthew Chapman 1999-2005
00005 
00006    This program is free software; you can redistribute it and/or modify
00007    it under the terms of the GNU General Public License as published by
00008    the Free Software Foundation; either version 2 of the License, or
00009    (at your option) any later version.
00010 
00011    This program is distributed in the hope that it will be useful,
00012    but WITHOUT ANY WARRANTY; without even the implied warranty of
00013    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014    GNU General Public License for more details.
00015 
00016    You should have received a copy of the GNU General Public License along
00017    with this program; if not, write to the Free Software Foundation, Inc.,
00018    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
00019 */
00020 
00021 #ifndef True
00022 #define True  (1)
00023 #define False (0)
00024 #endif
00025 
00026 typedef unsigned char uint8;
00027 typedef signed char sint8;
00028 typedef unsigned short uint16;
00029 typedef signed short sint16;
00030 typedef unsigned int uint32;
00031 typedef signed int sint32;
00032 
00033 typedef void *RD_HBITMAP;
00034 typedef void *RD_HGLYPH;
00035 typedef void *RD_HCOLOURMAP;
00036 typedef void *RD_HCURSOR;
00037 
00038 typedef struct _RD_POINT
00039 {
00040     sint16 x, y;
00041 }
00042 RD_POINT;
00043 
00044 typedef struct _COLOURENTRY
00045 {
00046     uint8 red;
00047     uint8 green;
00048     uint8 blue;
00049 
00050 }
00051 COLOURENTRY;
00052 
00053 typedef struct _COLOURMAP
00054 {
00055     uint16 ncolours;
00056     COLOURENTRY *colours;
00057 
00058 }
00059 COLOURMAP;
00060 
00061 typedef struct _BOUNDS
00062 {
00063     sint16 left;
00064     sint16 top;
00065     sint16 right;
00066     sint16 bottom;
00067 
00068 }
00069 BOUNDS;
00070 
00071 typedef struct _PEN
00072 {
00073     uint8 style;
00074     uint8 width;
00075     uint32 colour;
00076 
00077 }
00078 PEN;
00079 
00080 typedef struct _BRUSH
00081 {
00082     uint8 xorigin;
00083     uint8 yorigin;
00084     uint8 style;
00085     uint8 pattern[8];
00086 
00087 }
00088 BRUSH;
00089 
00090 typedef struct _FONTGLYPH
00091 {
00092     sint16 offset;
00093     sint16 baseline;
00094     uint16 width;
00095     uint16 height;
00096     RD_HBITMAP pixmap;
00097 
00098 }
00099 FONTGLYPH;
00100 
00101 typedef struct _DATABLOB
00102 {
00103     void *data;
00104     int size;
00105 
00106 }
00107 DATABLOB;
00108 
00109 typedef struct _key_translation
00110 {
00111     /* For normal scancode translations */
00112     uint8 scancode;
00113     uint16 modifiers;
00114     /* For sequences. If keysym is nonzero, the fields above are not used. */
00115     uint32 seq_keysym;  /* Really KeySym */
00116     struct _key_translation *next;
00117 }
00118 key_translation;
00119 
00120 typedef struct _VCHANNEL
00121 {
00122     uint16 mcs_id;
00123     char name[8];
00124     uint32 flags;
00125     struct stream in;
00126     void (*process) (STREAM);
00127 }
00128 VCHANNEL;
00129 
00130 /* PSTCACHE */
00131 typedef uint8 HASH_KEY[8];
00132 
00133 /* Header for an entry in the persistent bitmap cache file */
00134 typedef struct _PSTCACHE_CELLHEADER
00135 {
00136     HASH_KEY key;
00137     uint8 width, height;
00138     uint16 length;
00139     uint32 stamp;
00140 }
00141 CELLHEADER;
00142 
00143 #define MAX_CBSIZE 256
00144 
00145 /* RDPSND */
00146 typedef struct
00147 {
00148     uint16 wFormatTag;
00149     uint16 nChannels;
00150     uint32 nSamplesPerSec;
00151     uint32 nAvgBytesPerSec;
00152     uint16 nBlockAlign;
00153     uint16 wBitsPerSample;
00154     uint16 cbSize;
00155     uint8 cb[MAX_CBSIZE];
00156 } RD_WAVEFORMATEX;
00157 
00158 typedef struct _RDPCOMP
00159 {
00160     uint32 roff;
00161     uint8 hist[RDP_MPPC_DICT_SIZE];
00162     struct stream ns;
00163 }
00164 RDPCOMP;
00165 
00166 /* RDPDR */
00167 typedef uint32 RD_NTSTATUS;
00168 typedef uint32 RD_NTHANDLE;
00169 
00170 typedef struct _DEVICE_FNS
00171 {
00172     RD_NTSTATUS(*create) (uint32 device, uint32 desired_access, uint32 share_mode,
00173                uint32 create_disposition, uint32 flags_and_attributes, char *filename,
00174                RD_NTHANDLE * handle);
00175     RD_NTSTATUS(*close) (RD_NTHANDLE handle);
00176     RD_NTSTATUS(*read) (RD_NTHANDLE handle, uint8 * data, uint32 length, uint32 offset,
00177              uint32 * result);
00178     RD_NTSTATUS(*write) (RD_NTHANDLE handle, uint8 * data, uint32 length, uint32 offset,
00179               uint32 * result);
00180     RD_NTSTATUS(*device_control) (RD_NTHANDLE handle, uint32 request, STREAM in, STREAM out);
00181 }
00182 DEVICE_FNS;
00183 
00184 
00185 typedef struct rdpdr_device_info
00186 {
00187     uint32 device_type;
00188     RD_NTHANDLE handle;
00189     char name[8];
00190     char *local_path;
00191     void *pdevice_data;
00192 }
00193 RDPDR_DEVICE;
00194 
00195 typedef struct rdpdr_serial_device_info
00196 {
00197     int dtr;
00198     int rts;
00199     uint32 control, xonoff, onlimit, offlimit;
00200     uint32 baud_rate,
00201         queue_in_size,
00202         queue_out_size,
00203         wait_mask,
00204         read_interval_timeout,
00205         read_total_timeout_multiplier,
00206         read_total_timeout_constant,
00207         write_total_timeout_multiplier, write_total_timeout_constant, posix_wait_mask;
00208     uint8 stop_bits, parity, word_length;
00209     uint8 chars[6];
00210     struct termios *ptermios, *pold_termios;
00211     int event_txempty, event_cts, event_dsr, event_rlsd, event_pending;
00212 }
00213 SERIAL_DEVICE;
00214 
00215 typedef struct rdpdr_parallel_device_info
00216 {
00217     char *driver, *printer;
00218     uint32 queue_in_size,
00219         queue_out_size,
00220         wait_mask,
00221         read_interval_timeout,
00222         read_total_timeout_multiplier,
00223         read_total_timeout_constant,
00224         write_total_timeout_multiplier,
00225         write_total_timeout_constant, posix_wait_mask, bloblen;
00226     uint8 *blob;
00227 }
00228 PARALLEL_DEVICE;
00229 
00230 typedef struct rdpdr_printer_info
00231 {
00232     FILE *printer_fp;
00233     char *driver, *printer;
00234     uint32 bloblen;
00235     uint8 *blob;
00236     BOOL default_printer;
00237 }
00238 PRINTER;
00239 
00240 typedef struct notify_data
00241 {
00242     time_t modify_time;
00243     time_t status_time;
00244     time_t total_time;
00245     unsigned int num_entries;
00246 }
00247 NOTIFY;
00248 
00249 #ifndef PATH_MAX
00250 #define PATH_MAX 256
00251 #endif
00252 
00253 #ifndef _WIN32
00254 typedef struct fileinfo
00255 {
00256     uint32 device_id, flags_and_attributes, accessmask;
00257     char path[PATH_MAX];
00258     DIR *pdir;
00259     struct dirent *pdirent;
00260     char pattern[PATH_MAX];
00261     BOOL delete_on_close;
00262     NOTIFY notify;
00263     uint32 info_class;
00264 }
00265 FILEINFO;
00266 #endif
00267 
00268 typedef BOOL(*str_handle_lines_t) (const char *line, void *data);

Generated on Sun May 27 2012 04:17:11 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.