📄 rfbproto.h
字号:
} rfbXCursorColors;
#define sz_rfbXCursorColors 6
/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
* RichCursor encoding. This is a special encoding used to transmit cursor
* shapes from server to clients. It is similar to the XCursor encoding but
* uses client pixel format instead of two RGB colors to represent cursor
* image. For this encoding, coordinates in rfbFramebufferUpdateRectHeader
* structure hold hotspot position (r.x, r.y) and cursor size (r.w, r.h).
* After header, two pixmaps follow: first one with cursor image in current
* client pixel format (like in raw encoding), second with transparency data
* (1 bit per pixel, exactly the same format as used for transparency bitmap
* in the XCursor encoding). If (w * h == 0), cursor should be hidden (or
* default local cursor should be set by the client).
*/
/*-----------------------------------------------------------------------------
* SetColourMapEntries - these messages are only sent if the pixel
* format uses a "colour map" (i.e. trueColour false) and the client has not
* fixed the entire colour map using FixColourMapEntries. In addition they
* will only start being sent after the client has sent its first
* FramebufferUpdateRequest. So if the client always tells the server to use
* trueColour then it never needs to process this type of message.
*/
typedef struct _rfbSetColourMapEntriesMsg {
CARD8 type; /* always rfbSetColourMapEntries */
CARD8 pad;
CARD16 firstColour;
CARD16 nColours;
/* Followed by nColours * 3 * CARD16
r1, g1, b1, r2, g2, b2, r3, g3, b3, ..., rn, bn, gn */
} rfbSetColourMapEntriesMsg;
#define sz_rfbSetColourMapEntriesMsg 6
/*-----------------------------------------------------------------------------
* Bell - ring a bell on the client if it has one.
*/
typedef struct _rfbBellMsg {
CARD8 type; /* always rfbBell */
} rfbBellMsg;
#define sz_rfbBellMsg 1
/*-----------------------------------------------------------------------------
* ServerCutText - the server has new text in its cut buffer.
*/
typedef struct _rfbServerCutTextMsg {
CARD8 type; /* always rfbServerCutText */
CARD8 pad1;
CARD16 pad2;
CARD32 length;
/* followed by char text[length] */
} rfbServerCutTextMsg;
#define sz_rfbServerCutTextMsg 8
/*-----------------------------------------------------------------------------
* FileListData
*/
typedef struct _rfbFileListDataMsg {
CARD8 type;
CARD8 flags;
CARD16 numFiles;
CARD16 dataSize;
CARD16 compressedSize;
/* Followed by SizeData[numFiles] */
/* Followed by Filenames[compressedSize] */
} rfbFileListDataMsg;
#define sz_rfbFileListDataMsg 8
/*-----------------------------------------------------------------------------
* FileDownloadData
*/
typedef struct _rfbFileDownloadDataMsg {
CARD8 type;
CARD8 compressLevel;
CARD16 realSize;
CARD16 compressedSize;
/* Followed by File[copressedSize],
but if (realSize = compressedSize = 0) followed by CARD32 modTime */
} rfbFileDownloadDataMsg;
#define sz_rfbFileDownloadDataMsg 6
/*-----------------------------------------------------------------------------
* FileUploadCancel
*/
typedef struct _rfbFileUploadCancelMsg {
CARD8 type;
CARD8 unused;
CARD16 reasonLen;
/* Followed by reason[reasonLen] */
} rfbFileUploadCancelMsg;
#define sz_rfbFileUploadCancelMsg 4
/*-----------------------------------------------------------------------------
* FileDownloadFailed
*/
typedef struct _rfbFileDownloadFailedMsg {
CARD8 type;
CARD8 unused;
CARD16 reasonLen;
/* Followed by reason[reasonLen] */
} rfbFileDownloadFailedMsg;
#define sz_rfbFileDownloadFailedMsg 4
/*-----------------------------------------------------------------------------
* Union of all server->client messages.
*/
typedef union _rfbServerToClientMsg {
CARD8 type;
rfbFramebufferUpdateMsg fu;
rfbSetColourMapEntriesMsg scme;
rfbBellMsg b;
rfbServerCutTextMsg sct;
rfbFileListDataMsg fld;
rfbFileDownloadDataMsg fdd;
rfbFileUploadCancelMsg fuc;
rfbFileDownloadFailedMsg fdf;
} rfbServerToClientMsg;
/*****************************************************************************
*
* Message definitions (client -> server)
*
*****************************************************************************/
/*-----------------------------------------------------------------------------
* SetPixelFormat - tell the RFB server the format in which the client wants
* pixels sent.
*/
typedef struct _rfbSetPixelFormatMsg {
CARD8 type; /* always rfbSetPixelFormat */
CARD8 pad1;
CARD16 pad2;
rfbPixelFormat format;
} rfbSetPixelFormatMsg;
#define sz_rfbSetPixelFormatMsg (sz_rfbPixelFormat + 4)
/*-----------------------------------------------------------------------------
* FixColourMapEntries - when the pixel format uses a "colour map", fix
* read-only colour map entries.
*
* ***************** NOT CURRENTLY SUPPORTED *****************
*/
typedef struct _rfbFixColourMapEntriesMsg {
CARD8 type; /* always rfbFixColourMapEntries */
CARD8 pad;
CARD16 firstColour;
CARD16 nColours;
/* Followed by nColours * 3 * CARD16
r1, g1, b1, r2, g2, b2, r3, g3, b3, ..., rn, bn, gn */
} rfbFixColourMapEntriesMsg;
#define sz_rfbFixColourMapEntriesMsg 6
/*-----------------------------------------------------------------------------
* SetEncodings - tell the RFB server which encoding types we accept. Put them
* in order of preference, if we have any. We may always receive raw
* encoding, even if we don't specify it here.
*/
typedef struct _rfbSetEncodingsMsg {
CARD8 type; /* always rfbSetEncodings */
CARD8 pad;
CARD16 nEncodings;
/* followed by nEncodings * CARD32 encoding types */
} rfbSetEncodingsMsg;
#define sz_rfbSetEncodingsMsg 4
/*-----------------------------------------------------------------------------
* FramebufferUpdateRequest - request for a framebuffer update. If incremental
* is true then the client just wants the changes since the last update. If
* false then it wants the whole of the specified rectangle.
*/
typedef struct _rfbFramebufferUpdateRequestMsg {
CARD8 type; /* always rfbFramebufferUpdateRequest */
CARD8 incremental;
CARD16 x;
CARD16 y;
CARD16 w;
CARD16 h;
} rfbFramebufferUpdateRequestMsg;
#define sz_rfbFramebufferUpdateRequestMsg 10
/*-----------------------------------------------------------------------------
* KeyEvent - key press or release
*
* Keys are specified using the "keysym" values defined by the X Window System.
* For most ordinary keys, the keysym is the same as the corresponding ASCII
* value. Other common keys are:
*
* BackSpace 0xff08
* Tab 0xff09
* Return or Enter 0xff0d
* Escape 0xff1b
* Insert 0xff63
* Delete 0xffff
* Home 0xff50
* End 0xff57
* Page Up 0xff55
* Page Down 0xff56
* Left 0xff51
* Up 0xff52
* Right 0xff53
* Down 0xff54
* F1 0xffbe
* F2 0xffbf
* ... ...
* F12 0xffc9
* Shift 0xffe1
* Control 0xffe3
* Meta 0xffe7
* Alt 0xffe9
*/
typedef struct _rfbKeyEventMsg {
CARD8 type; /* always rfbKeyEvent */
CARD8 down; /* true if down (press), false if up */
CARD16 pad;
CARD32 key; /* key is specified as an X keysym */
} rfbKeyEventMsg;
#define sz_rfbKeyEventMsg 8
/*-----------------------------------------------------------------------------
* PointerEvent - mouse/pen move and/or button press.
*/
typedef struct _rfbPointerEventMsg {
CARD8 type; /* always rfbPointerEvent */
CARD8 buttonMask; /* bits 0-7 are buttons 1-8, 0=up, 1=down */
CARD16 x;
CARD16 y;
} rfbPointerEventMsg;
#define rfbButton1Mask 1
#define rfbButton2Mask 2
#define rfbButton3Mask 4
#define rfbButton4Mask 8
#define rfbButton5Mask 16
#define sz_rfbPointerEventMsg 6
/*-----------------------------------------------------------------------------
* ClientCutText - the client has new text in its cut buffer.
*/
typedef struct _rfbClientCutTextMsg {
CARD8 type; /* always rfbClientCutText */
CARD8 pad1;
CARD16 pad2;
CARD32 length;
/* followed by char text[length] */
} rfbClientCutTextMsg;
#define sz_rfbClientCutTextMsg 8
/*-----------------------------------------------------------------------------
* FileListRequest
*/
typedef struct _rfbFileListRequestMsg {
CARD8 type;
CARD8 flags;
CARD16 dirNameSize;
/* Followed by char Dirname[dirNameSize] */
} rfbFileListRequestMsg;
#define sz_rfbFileListRequestMsg 4
/*-----------------------------------------------------------------------------
* FileDownloadRequest
*/
typedef struct _rfbFileDownloadRequestMsg {
CARD8 type;
CARD8 compressedLevel;
CARD16 fNameSize;
CARD32 position;
/* Followed by char Filename[fNameSize] */
} rfbFileDownloadRequestMsg;
#define sz_rfbFileDownloadRequestMsg 8
/*-----------------------------------------------------------------------------
* FileUploadRequest
*/
typedef struct _rfbFileUploadRequestMsg {
CARD8 type;
CARD8 compressedLevel;
CARD16 fNameSize;
CARD32 position;
/* Followed by char Filename[fNameSize] */
} rfbFileUploadRequestMsg;
#define sz_rfbFileUploadRequestMsg 8
/*-----------------------------------------------------------------------------
* FileUploadData
*/
typedef struct _rfbFileUploadDataMsg {
CARD8 type;
CARD8 compressedLevel;
CARD16 realSize;
CARD16 compressedSize;
/* Followed by File[compressedSize],
but if (realSize = compressedSize = 0) followed by CARD32 modTime */
} rfbFileUploadDataMsg;
#define sz_rfbFileUploadDataMsg 6
/*-----------------------------------------------------------------------------
* FileDownloadCancel
*/
typedef struct _rfbFileDownloadCancelMsg {
CARD8 type;
CARD8 unused;
CARD16 reasonLen;
/* Followed by reason[reasonLen] */
} rfbFileDownloadCancelMsg;
#define sz_rfbFileDownloadCancelMsg 4
/*-----------------------------------------------------------------------------
* FileUploadFailed
*/
typedef struct _rfbFileUploadFailedMsg {
CARD8 type;
CARD8 unused;
CARD16 reasonLen;
/* Followed by reason[reasonLen] */
} rfbFileUploadFailedMsg;
#define sz_rfbFileUploadFailedMsg 4
/*-----------------------------------------------------------------------------
* FileCreateDirRequest
*/
typedef struct _rfbFileCreateDirRequestMsg {
CARD8 type;
CARD8 unused;
CARD16 dNameLen;
/* Followed by dName[dNameLen] */
} rfbFileCreateDirRequestMsg;
#define sz_rfbFileCreateDirRequestMsg 4
/*-----------------------------------------------------------------------------
* Union of all client->server messages.
*/
typedef union _rfbClientToServerMsg {
CARD8 type;
rfbSetPixelFormatMsg spf;
rfbFixColourMapEntriesMsg fcme;
rfbSetEncodingsMsg se;
rfbFramebufferUpdateRequestMsg fur;
rfbKeyEventMsg ke;
rfbPointerEventMsg pe;
rfbClientCutTextMsg cct;
rfbFileListRequestMsg flr;
rfbFileDownloadRequestMsg fdr;
rfbFileUploadRequestMsg fupr;
rfbFileUploadDataMsg fud;
rfbFileDownloadCancelMsg fdc;
rfbFileUploadFailedMsg fuf;
rfbFileCreateDirRequestMsg fcdr;
} rfbClientToServerMsg;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -