--- sourceforge.net/trunk/rdesktop/types.h 2000/10/16 07:37:52 20 +++ sourceforge.net/trunk/rdesktop/types.h 2003/10/14 07:46:49 492 @@ -1,7 +1,7 @@ /* rdesktop: A Remote Desktop Protocol client. Common data types - Copyright (C) Matthew Chapman 1999-2000 + Copyright (C) Matthew Chapman 1999-2002 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -26,12 +26,16 @@ #endif typedef unsigned char uint8; +typedef signed char sint8; typedef unsigned short uint16; +typedef signed short sint16; typedef unsigned int uint32; +typedef signed int sint32; typedef void *HBITMAP; typedef void *HGLYPH; typedef void *HCOLOURMAP; +typedef void *HCURSOR; typedef struct _COLOURENTRY { @@ -39,31 +43,35 @@ uint8 green; uint8 blue; -} COLOURENTRY; +} +COLOURENTRY; typedef struct _COLOURMAP { uint16 ncolours; COLOURENTRY *colours; -} COLOURMAP; +} +COLOURMAP; typedef struct _BOUNDS { - uint16 left; - uint16 top; - uint16 right; - uint16 bottom; + sint16 left; + sint16 top; + sint16 right; + sint16 bottom; -} BOUNDS; +} +BOUNDS; typedef struct _PEN { uint8 style; uint8 width; - uint8 colour; + uint32 colour; -} PEN; +} +PEN; typedef struct _BRUSH { @@ -72,21 +80,69 @@ uint8 style; uint8 pattern[8]; -} BRUSH; +} +BRUSH; typedef struct _FONTGLYPH { - uint16 offset; - uint16 baseline; + sint16 offset; + sint16 baseline; uint16 width; uint16 height; HBITMAP pixmap; -} FONTGLYPH; +} +FONTGLYPH; typedef struct _DATABLOB { void *data; int size; -} DATABLOB; +} +DATABLOB; + +typedef struct _key_translation +{ + uint8 scancode; + uint16 modifiers; +} +key_translation; + +typedef struct _VCHANNEL +{ + uint16 mcs_id; + char name[8]; + uint32 flags; + struct stream in; + void (*process) (STREAM); +} +VCHANNEL; + +#define MAX_CBSIZE 256 + +/* RDPSND */ +typedef struct { + uint16 wFormatTag; + uint16 nChannels; + uint32 nSamplesPerSec; + uint32 nAvgBytesPerSec; + uint16 nBlockAlign; + uint16 wBitsPerSample; + uint16 cbSize; + uint8 cb[MAX_CBSIZE]; +} WAVEFORMATEX; + +/* RDPDR */ +typedef uint32 NTSTATUS; +typedef uint32 HANDLE; + +typedef struct _DEVICE_FNS +{ + NTSTATUS(*create) (HANDLE * handle); + NTSTATUS(*close) (HANDLE handle); + NTSTATUS(*read) (HANDLE handle, uint8 * data, uint32 length, uint32 * result); + NTSTATUS(*write) (HANDLE handle, uint8 * data, uint32 length, uint32 * result); + NTSTATUS(*device_control) (HANDLE handle, uint32 request, STREAM in, STREAM out); +} +DEVICE_FNS;