📄 rfbproto.h
字号:
} rfbModeChangeMsg;
/*-----------------------------------------------------------------------------
* TR@2003
* Client should switch to fullscreen display mode
* (useful for presentations to inexperienced users)
*/
typedef struct _rfbSetDisplayDimensionsMsg {
CARD8 type; /* always rfbSetDisplayDimensions */
CARD16 displaysettings;
CARD16 visible_x; /* width of viewer window */
CARD16 visible_y;
CARD16 offset_x; /* number of pixel scrolled left */
CARD16 offset_y;
} rfbSetDisplayDimensionsMsg;
#define sz_rfbSetDisplayDimensionsMsg 11
// numbers >100 are server modes, smaller ones clients!
// There MUST be a difference of rfbMC_Servermodes between corresponding modes
#define rfbMC_Servermodes 0x80
// Recipient of message (may be active client or server) should now be a
#define rfbMC_TeamworkClient 0x01 // teamwork client(viewer)
#define rfbMC_TeamworkServer 0x81 // teamwork server
#define rfbMC_PresentationClient 0x02
#define rfbMC_PresentationServer 0x82
#define rfbMC_RemotecontrolClient 0x03
#define rfbMC_RemotecontrolServer 0x83
#define rfbMC_FiletransferClient 0x04
#define rfbMC_FiletransferServer 0x84
#define sz_rfbModeChangeMsg 4
/*-----------------------------------------------------------------------------
* Copyright (C) 2001 Harakan Software
* PalmVNC 1.4 & 2.? ResizeFrameBuffer message
* ReSizeFrameBuffer - tell the RFB client to alter its framebuffer, either
* due to a resize of the server desktop or a client-requested scaling factor.
* The pixel format remains unchanged.
*/
typedef struct {
CARD8 type; /* always rfbReSizeFrameBuffer */
CARD8 pad1;
CARD16 desktop_w; /* Desktop width */
CARD16 desktop_h; /* Desktop height */
CARD16 buffer_w; /* FrameBuffer width */
CARD16 buffer_h; /* Framebuffer height */
CARD16 pad2;
} rfbPalmVNCReSizeFrameBufferMsg;
#define sz_rfbPalmVNCReSizeFrameBufferMsg (12)
/*-----------------------------------------------------------------------------
* TeamviewerInfo - transmit additional information from client to server
* or vice versa
* This message consists of a header giving the length of all messages
* followed by the messages themselves. Each message consists of 1 byte
* message ID, 4 byte message length and the message
* Message-ID 1-127, followed by length and string -> transmit local settings to partner
* Message-ID 128-255 -> request for partners settings
*/
typedef struct {
CARD8 type; /* always rfbTeamviewerInfo */
CARD8 pad;
CARD16 pad2;
CARD32 len;
/* followed by len Bytes */
} rfbTeamviewerInfoMsg;
#define sz_rfbTeamviewerInfoMsg 8
typedef struct {
CARD16 tvMessageID;
CARD16 pad;
CARD32 tvlen;
} tvMessage;
#define sz_tvMessage 8
// Teamviewer Messages
#define tvVersion 1 /* Teamviewer version */
#define tvID 2 /* Dyngate-ID of partner */
#define tvMode 3 /* Teamviewer mode: Remote Control, Presentation, Teamwork */
#define tvIdentity 4 /* Users name */
#define tvError 5 /* Custom error message */
#define tvAllowPointer 6 /* server to client: Allow client to send special pointer positions */
#define tvDisplayPointer 7 /* client to server: send special pointer positions */
#define tvRunningAsService 8 /* server to client: is server running as windows-service? */
#define tvRemoveWallpaper 9 /* client to server: remove servers wallpaper */
#define tvBlankMonitor 10 /* client to server: turn servers monitor off (only if serverinput is disabled)*/
#define tvChangeEncoding 11 /* server to client: set encoding and colorsfor presentations. Format "%d,%d" */
#define tvSecureDesktop 12 /* server to client: TRUE = changed to secured desktop, FALSE = leave secure desktop */
#define tvSendAll 0x7fff /* Send *all* available messages */
#define tvRequest(x) (x + 0x8000)
/*-----------------------------------------------------------------------------
* Union of all server->client messages.
*/
typedef union {
CARD8 type;
rfbFramebufferUpdateMsg fu;
rfbSetColourMapEntriesMsg scme;
rfbBellMsg b;
rfbServerCutTextMsg sct;
rfbResizeFrameBufferMsg rsfb;
rfbPalmVNCReSizeFrameBufferMsg prsfb;
rfbFileTransferMsg ft;
rfbTextChatMsg tc;
rfbModeChangeMsg mchange;
rfbSetDisplayDimensionsMsg sdim;
rfbTeamviewerInfoMsg tvinfo;
} rfbServerToClientMsg;
/*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
* RDV Cache Encoding.
* special is not used at this point, can be used to reset cache or other specials
* just put it to make sure we don't have to change the encoding again.
*/
typedef struct {
CARD16 special;
} rfbCacheRect;
#define sz_rfbCacheRect 2
/*****************************************************************************
*
* Message definitions (client -> server)
*
*****************************************************************************/
/*-----------------------------------------------------------------------------
* SetPixelFormat - tell the RFB server the format in which the client wants
* pixels sent.
*/
typedef struct {
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 {
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 {
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 {
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 {
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 {
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 rfbWheelUpMask rfbButton4Mask // RealVNC 335 method
#define rfbWheelDownMask rfbButton5Mask
#define sz_rfbPointerEventMsg 6
/*-----------------------------------------------------------------------------
* ClientCutText - the client has new text in its cut buffer.
*/
typedef struct {
CARD8 type; /* always rfbClientCutText */
CARD8 pad1;
CARD16 pad2;
CARD32 length;
/* followed by char text[length] */
} rfbClientCutTextMsg;
#define sz_rfbClientCutTextMsg 8
/*-----------------------------------------------------------------------------
* sf@2002 - Set Server Scale
* SetServerScale - Server must change the scale of the client buffer.
*/
typedef struct _rfbSetScaleMsg {
CARD8 type; /* always rfbSetScale */
CARD8 scale; /* Scale value 1<sv<n */
CARD16 pad;
} rfbSetScaleMsg;
#define sz_rfbSetScaleMsg 4
/*-----------------------------------------------------------------------------
* Copyright (C) 2001 Harakan Software
* PalmVNC 1.4 & 2.? SetScale Factor message
* SetScaleFactor - tell the RFB server to alter the scale factor for the
* client buffer.
*/
typedef struct {
CARD8 type; /* always rfbSetScaleFactor */
CARD8 scale; /* Scale factor (positive non-zero integer) */
CARD16 pad2;
} rfbPalmVNCSetScaleFactorMsg;
#define sz_rfbPalmVNCSetScaleFactorMsg (4)
/*-----------------------------------------------------------------------------
* rdv@2002 - Set input status
* SetServerInput - Server input is dis/enabled
*/
typedef struct _rfbSetServerInputMsg {
CARD8 type; /* always rfbSetScale */
CARD8 status; /* Scale value 1<sv<n */
CARD16 pad;
} rfbSetServerInputMsg;
#define sz_rfbSetServerInputMsg 4
/*-----------------------------------------------------------------------------
* rdv@2002 - Set SW
* SetSW - Server SW/full desktop
*/
typedef struct _rfbSetSWMsg {
CARD8 type; /* always rfbSetSW */
CARD8 status;
CARD16 x;
CARD16 y;
} rfbSetSWMsg;
#define sz_rfbSetSWMsg 6
/*-----------------------------------------------------------------------------
* TR@2003
* Client should request Full Framebuffer Update
* (as Server doesn磘 know client磗 display data we have to know the region to send)
*/
typedef struct _rfbPleaseRequestFullUpdateMsg {
CARD8 type; /* always rfbPleaseRequestFullUpdate */
} rfbPleaseRequestFullUpdateMsg;
#define sz_rfbPleaseRequestFullUpdateMsg 1
/*-----------------------------------------------------------------------------
* TR@2003
* Tell the server our screen dimensions
*/
typedef struct _rfbDisplayDimensionsMsg {
CARD8 type; /* always rfbDisplayDimensions */
CARD16 displaysettings;
CARD16 total_x; /* total screen width */
CARD16 total_y;
CARD16 visible_x; /* width of viewer window */
CARD16 visible_y;
CARD16 offset_x; /* number of pixel scrolled left */
CARD16 offset_y;
} rfbDisplayDimensionsMsg;
#define sz_rfbDisplayDimensionsMsg 15
/*-----------------------------------------------------------------------------
* Union of all client->server messages.
*/
typedef union {
CARD8 type;
rfbSetPixelFormatMsg spf;
rfbFixColourMapEntriesMsg fcme;
rfbSetEncodingsMsg se;
rfbFramebufferUpdateRequestMsg fur;
rfbKeyEventMsg ke;
rfbPointerEventMsg pe;
rfbClientCutTextMsg cct;
rfbSetScaleMsg ssc;
rfbPalmVNCSetScaleFactorMsg pssf;
rfbSetServerInputMsg sim;
rfbFileTransferMsg ft;
rfbSetSWMsg sw;
rfbTextChatMsg tc;
rfbModeChangeMsg mchange;
rfbPleaseRequestFullUpdateMsg rfu;
rfbDisplayDimensionsMsg sdims;
rfbTeamviewerInfoMsg tvinfo;
} rfbClientToServerMsg;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -