FreeRDP
rail.h File Reference
#include <winpr/windows.h>
#include <freerdp/api.h>
#include <freerdp/types.h>
This graph shows which files directly or indirectly include this file:

Data Structures

struct  RAIL_UNICODE_STRING
 
struct  RAIL_HIGH_CONTRAST
 
struct  RAIL_HANDSHAKE_ORDER
 
struct  RAIL_HANDSHAKE_EX_ORDER
 
struct  RAIL_CLIENT_STATUS_ORDER
 
struct  RAIL_EXEC_ORDER
 
struct  RAIL_EXEC_RESULT_ORDER
 
struct  TS_FILTERKEYS
 
struct  RAIL_SYSPARAM_ORDER
 
struct  RAIL_ACTIVATE_ORDER
 
struct  RAIL_SYSMENU_ORDER
 
struct  RAIL_SYSCOMMAND_ORDER
 
struct  RAIL_NOTIFY_EVENT_ORDER
 
struct  RAIL_MINMAXINFO_ORDER
 
struct  RAIL_LOCALMOVESIZE_ORDER
 
struct  RAIL_WINDOW_MOVE_ORDER
 
struct  RAIL_GET_APPID_REQ_ORDER
 
struct  RAIL_GET_APPID_RESP_ORDER
 
struct  RAIL_LANGBAR_INFO_ORDER
 
struct  RAIL_COMPARTMENT_INFO_ORDER
 
struct  RAIL_ZORDER_SYNC
 
struct  RAIL_CLOAK
 
struct  RAIL_POWER_DISPLAY_REQUEST
 
struct  RAIL_TASKBAR_INFO_ORDER
 
struct  RAIL_LANGUAGEIME_INFO_ORDER
 
struct  RAIL_SNAP_ARRANGE
 
struct  RAIL_GET_APPID_RESP_EX
 

Macros

#define RAIL_SVC_CHANNEL_NAME   "rail"
 
#define TS_RAIL_EXEC_FLAG_EXPAND_WORKINGDIRECTORY   0x0001
 
#define TS_RAIL_EXEC_FLAG_TRANSLATE_FILES   0x0002
 
#define TS_RAIL_EXEC_FLAG_FILE   0x0004
 
#define TS_RAIL_EXEC_FLAG_EXPAND_ARGUMENTS   0x0008
 
#define TS_RAIL_EXEC_FLAG_APP_USER_MODEL_ID   0x0010
 
#define NIIF_NONE   0x00000000
 
#define NIIF_INFO   0x00000001
 
#define NIIF_WARNING   0x00000002
 
#define NIIF_ERROR   0x00000003
 
#define NIIF_NOSOUND   0x00000010
 
#define NIIF_LARGE_ICON   0x00000020
 
#define RAIL_EXEC_FLAG_EXPAND_WORKING_DIRECTORY   0x0001
 
#define RAIL_EXEC_FLAG_TRANSLATE_FILES   0x0002
 
#define RAIL_EXEC_FLAG_FILE   0x0004
 
#define RAIL_EXEC_FLAG_EXPAND_ARGUMENTS   0x0008
 
#define RAIL_EXEC_FLAG_APP_USER_MODEL_ID   0x0010
 
#define RAIL_EXEC_S_OK   0x0000
 
#define RAIL_EXEC_E_HOOK_NOT_LOADED   0x0001
 
#define RAIL_EXEC_E_DECODE_FAILED   0x0002
 
#define RAIL_EXEC_E_NOT_IN_ALLOWLIST   0x0003
 
#define RAIL_EXEC_E_FILE_NOT_FOUND   0x0005
 
#define RAIL_EXEC_E_FAIL   0x0006
 
#define RAIL_EXEC_E_SESSION_LOCKED   0x0007
 
#define SPI_SET_SCREEN_SAVE_ACTIVE   0x00000011
 
#define SPI_SET_SCREEN_SAVE_SECURE   0x00000077
 
#define SPI_SET_DRAG_FULL_WINDOWS   0x00000025
 
#define SPI_SET_KEYBOARD_CUES   0x0000100B
 
#define SPI_SET_KEYBOARD_PREF   0x00000045
 
#define SPI_SET_MOUSE_BUTTON_SWAP   0x00000021
 
#define SPI_SET_WORK_AREA   0x0000002F
 
#define SPI_DISPLAY_CHANGE   0x0000F001
 
#define SPI_TASKBAR_POS   0x0000F000
 
#define SPI_SET_HIGH_CONTRAST   0x00000043
 
#define SC_SIZE   0xF000
 
#define SC_MOVE   0xF010
 
#define SC_MINIMIZE   0xF020
 
#define SC_MAXIMIZE   0xF030
 
#define SC_CLOSE   0xF060
 
#define SC_KEYMENU   0xF100
 
#define SC_RESTORE   0xF120
 
#define SC_DEFAULT   0xF160
 
#define WM_LBUTTONDOWN   0x00000201
 
#define WM_LBUTTONUP   0x00000202
 
#define WM_RBUTTONDOWN   0x00000204
 
#define WM_RBUTTONUP   0x00000205
 
#define WM_CONTEXTMENU   0x0000007b
 
#define WM_LBUTTONDBLCLK   0x00000203
 
#define WM_RBUTTONDBLCLK   0x00000206
 
#define NIN_SELECT   0x00000400
 
#define NIN_KEYSELECT   0x00000401
 
#define NIN_BALLOONSHOW   0x00000402
 
#define NIN_BALLOONHIDE   0x00000403
 
#define NIN_BALLOONTIMEOUT   0x00000404
 
#define NIN_BALLOONUSERCLICK   0x00000405
 
#define RAIL_CLIENTSTATUS_ALLOWLOCALMOVESIZE   0x00000001
 
#define RAIL_CLIENTSTATUS_AUTORECONNECT   0x00000002
 
#define RAIL_WMSZ_LEFT   0x0001
 
#define RAIL_WMSZ_RIGHT   0x0002
 
#define RAIL_WMSZ_TOP   0x0003
 
#define RAIL_WMSZ_TOPLEFT   0x0004
 
#define RAIL_WMSZ_TOPRIGHT   0x0005
 
#define RAIL_WMSZ_BOTTOM   0x0006
 
#define RAIL_WMSZ_BOTTOMLEFT   0x0007
 
#define RAIL_WMSZ_BOTTOMRIGHT   0x0008
 
#define RAIL_WMSZ_MOVE   0x0009
 
#define RAIL_WMSZ_KEYMOVE   0x000A
 
#define RAIL_WMSZ_KEYSIZE   0x000B
 
#define TF_SFT_SHOWNORMAL   0x00000001
 
#define TF_SFT_DOCK   0x00000002
 
#define TF_SFT_MINIMIZED   0x00000004
 
#define TF_SFT_HIDDEN   0x00000008
 
#define TF_SFT_NOTRANSPARENCY   0x00000010
 
#define TF_SFT_LOWTRANSPARENCY   0x00000020
 
#define TF_SFT_HIGHTRANSPARENCY   0x00000040
 
#define TF_SFT_LABELS   0x00000080
 
#define TF_SFT_NOLABELS   0x00000100
 
#define TF_SFT_EXTRAICONSONMINIMIZED   0x00000200
 
#define TF_SFT_NOEXTRAICONSONMINIMIZED   0x00000400
 
#define TF_SFT_DESKBAND   0x00000800
 
#define RAIL_ORDER_HANDSHAKEEX_FLAGS_HIDEF   0x00000001
 
#define RAIL_ORDER_HANDSHAKE_EX_FLAGS_EXTENDED_SPI_SUPPORTED   0x00000002
 
#define RAIL_ORDER_HANDSHAKE_EX_FLAGS_SNAP_ARRANGE_SUPPORTED   0x00000004
 
#define TF_PROFILETYPE_INPUTPROCESSOR   0x00000001
 
#define TF_PROFILETYPE_KEYBOARDLAYOUT   0x00000002
 
#define GUID_NULL
 
#define GUID_MSIME_JPN
 
#define GUID_MSIME_KOR
 
#define GUID_CHSIME
 
#define GUID_CHTIME
 
#define GUID_PROFILE_NEWPHONETIC
 
#define GUID_PROFILE_CHANGJIE
 
#define GUID_PROFILE_QUICK
 
#define GUID_PROFILE_CANTONESE
 
#define GUID_PROFILE_PINYIN
 
#define GUID_PROFILE_SIMPLEFAST
 
#define GUID_GUID_PROFILE_MSIME_JPN
 
#define GUID_PROFILE_MSIME_KOR
 
#define IME_STATE_CLOSED   0x00000000
 
#define IME_STATE_OPEN   0x00000001
 
#define IME_CMODE_NATIVE   0x00000001
 
#define IME_CMODE_KATAKANA   0x00000002
 
#define IME_CMODE_FULLSHAPE   0x00000008
 
#define IME_CMODE_ROMAN   0x00000010
 
#define IME_CMODE_CHARCODE   0x00000020
 
#define IME_CMODE_HANJACONVERT   0x00000040
 
#define IME_CMODE_SOFTKBD   0x00000080
 
#define IME_CMODE_NOCONVERSION   0x00000100
 
#define IME_CMODE_EUDC   0x00000200
 
#define IME_CMODE_SYMBOL   0x00000400
 
#define IME_CMODE_FIXED   0x00000800
 
#define IME_SMODE_NONE   0x00000000
 
#define IME_SMODE_PLURALCASE   0x00000001
 
#define IME_SMODE_SINGLECONVERT   0x00000002
 
#define IME_SMODE_AUTOMATIC   0x00000004
 
#define IME_SMODE_PHRASEPREDICT   0x00000008
 
#define IME_SMODE_CONVERSATION   0x00000010
 
#define KANA_MODE_OFF   0x00000000
 
#define KANA_MODE_ON   0x00000001
 
#define RAIL_TASKBAR_MSG_TAB_REGISTER   0x00000001
 
#define RAIL_TASKBAR_MSG_TAB_UNREGISTER   0x00000002
 
#define RAIL_TASKBAR_MSG_TAB_ORDER   0x00000003
 
#define RAIL_TASKBAR_MSG_TAB_ACTIVE   0x00000004
 
#define RAIL_TASKBAR_MSG_TAB_PROPERTIES   0x00000005
 
#define RAIL_TASKBAR_MSG_TAB_REGISTER   0x00000001
 
#define RAIL_TASKBAR_MSG_TAB_UNREGISTER   0x00000002
 
#define RAIL_TASKBAR_MSG_TAB_ORDER   0x00000003
 
#define RAIL_TASKBAR_MSG_TAB_ACTIVE   0x00000004
 
#define RAIL_TASKBAR_MSG_TAB_PROPERTIES   0x00000005
 
#define RDP_RAIL_ORDER_EXEC   0x0001
 
#define RDP_RAIL_ORDER_ACTIVATE   0x0002
 
#define RDP_RAIL_ORDER_SYSPARAM   0x0003
 
#define RDP_RAIL_ORDER_SYSCOMMAND   0x0004
 
#define RDP_RAIL_ORDER_HANDSHAKE   0x0005
 
#define RDP_RAIL_ORDER_NOTIFY_EVENT   0x0006
 
#define RDP_RAIL_ORDER_WINDOWMOVE   0x0008
 
#define RDP_RAIL_ORDER_LOCALMOVESIZE   0x0009
 
#define RDP_RAIL_ORDER_MINMAXINFO   0x000A
 
#define RDP_RAIL_ORDER_CLIENTSTATUS   0x000B
 
#define RDP_RAIL_ORDER_SYSMENU   0x000C
 
#define RDP_RAIL_ORDER_LANGBARINFO   0x000D
 
#define RDP_RAIL_ORDER_EXEC_RESULT   0x0080
 
#define RDP_RAIL_ORDER_GET_APPID_REQ   0x000E
 
#define RDP_RAIL_ORDER_GET_APPID_RESP   0x000F
 
#define RDP_RAIL_ORDER_LANGUAGEIMEINFO   0x0011
 
#define RDP_RAIL_ORDER_COMPARTMENTINFO   0x0012
 
#define RDP_RAIL_ORDER_HANDSHAKE_EX   0x0013
 
#define RDP_RAIL_ORDER_ZORDER_SYNC   0x0014
 
#define RDP_RAIL_ORDER_CLOAK   0x0015
 
#define RDP_RAIL_ORDER_POWER_DISPLAY_REQUEST   0x0016
 
#define RDP_RAIL_ORDER_SNAP_ARRANGE   0x0017
 
#define RDP_RAIL_ORDER_GET_APPID_RESP_EX   0x0018
 

Enumerations

enum  SPI_MASK {
  SPI_MASK_SET_DRAG_FULL_WINDOWS = 0x00000001 , SPI_MASK_SET_KEYBOARD_CUES = 0x00000002 , SPI_MASK_SET_KEYBOARD_PREF = 0x00000004 , SPI_MASK_SET_MOUSE_BUTTON_SWAP = 0x00000008 ,
  SPI_MASK_SET_WORK_AREA = 0x00000010 , SPI_MASK_DISPLAY_CHANGE = 0x00000020 , SPI_MASK_TASKBAR_POS = 0x00000040 , SPI_MASK_SET_HIGH_CONTRAST = 0x00000080 ,
  SPI_MASK_SET_SCREEN_SAVE_ACTIVE = 0x00000100 , SPI_MASK_SET_SET_SCREEN_SAVE_SECURE = 0x00000200 , SPI_MASK_SET_CARET_WIDTH = 0x00000400 , SPI_MASK_SET_STICKY_KEYS = 0x00000800 ,
  SPI_MASK_SET_TOGGLE_KEYS = 0x00001000 , SPI_MASK_SET_FILTER_KEYS = 0x00002000
}
 
enum  CLIENT_INFO_PDU {
  TS_RAIL_CLIENTSTATUS_ALLOWLOCALMOVESIZE = 0x00000001 , TS_RAIL_CLIENTSTATUS_AUTORECONNECT = 0x00000002 , TS_RAIL_CLIENTSTATUS_ZORDER_SYNC = 0x00000004 , TS_RAIL_CLIENTSTATUS_WINDOW_RESIZE_MARGIN_SUPPORTED = 0x00000010 ,
  TS_RAIL_CLIENTSTATUS_HIGH_DPI_ICONS_SUPPORTED = 0x00000020 , TS_RAIL_CLIENTSTATUS_APPBAR_REMOTING_SUPPORTED = 0x00000040 , TS_RAIL_CLIENTSTATUS_POWER_DISPLAY_REQUEST_SUPPORTED = 0x00000080 , TS_RAIL_CLIENTSTATUS_GET_APPID_RESPONSE_EX_SUPPORTED = 0x00000100 ,
  TS_RAIL_CLIENTSTATUS_BIDIRECTIONAL_CLOAK_SUPPORTED = 0x00000200 , TS_RAIL_CLIENTSTATUS_SUPPRESS_ICON_ORDERS = 0x00000400
}
 
enum  EXTENDED_HANDSHAKE_FLAGS {
  TS_RAIL_ORDER_HANDSHAKEEX_FLAGS_HIDEF = 0x00000001 , TS_RAIL_ORDER_HANDSHAKE_EX_FLAGS_EXTENDED_SPI_SUPPORTED = 0x00000002 , TS_RAIL_ORDER_HANDSHAKE_EX_FLAGS_SNAP_ARRANGE_SUPPORTED = 0x00000004 , TS_RAIL_ORDER_HANDSHAKE_EX_FLAGS_TEXT_SCALE_SUPPORTED = 0x00000008 ,
  TS_RAIL_ORDER_HANDSHAKE_EX_FLAGS_CARET_BLINK_SUPPORTED = 0x00000010 , TS_RAIL_ORDER_HANDSHAKE_EX_FLAGS_EXTENDED_SPI_2_SUPPORTED = 0x00000020
}
 
enum  ORDER_TYPE {
  TS_RAIL_ORDER_EXEC = 0x0001 , TS_RAIL_ORDER_ACTIVATE = 0x0002 , TS_RAIL_ORDER_SYSPARAM = 0x0003 , TS_RAIL_ORDER_SYSCOMMAND = 0x0004 ,
  TS_RAIL_ORDER_HANDSHAKE = 0x0005 , TS_RAIL_ORDER_NOTIFY_EVENT = 0x0006 , TS_RAIL_ORDER_WINDOWMOVE = 0x0008 , TS_RAIL_ORDER_LOCALMOVESIZE = 0x0009 ,
  TS_RAIL_ORDER_MINMAXINFO = 0x000A , TS_RAIL_ORDER_CLIENTSTATUS = 0x000B , TS_RAIL_ORDER_SYSMENU = 0x000C , TS_RAIL_ORDER_LANGBARINFO = 0x000D ,
  TS_RAIL_ORDER_GET_APPID_REQ = 0x000E , TS_RAIL_ORDER_GET_APPID_RESP = 0x000F , TS_RAIL_ORDER_TASKBARINFO = 0x0010 , TS_RAIL_ORDER_LANGUAGEIMEINFO = 0x0011 ,
  TS_RAIL_ORDER_COMPARTMENTINFO = 0x0012 , TS_RAIL_ORDER_HANDSHAKE_EX = 0x0013 , TS_RAIL_ORDER_ZORDER_SYNC = 0x0014 , TS_RAIL_ORDER_CLOAK = 0x0015 ,
  TS_RAIL_ORDER_POWER_DISPLAY_REQUEST = 0x0016 , TS_RAIL_ORDER_SNAP_ARRANGE = 0x0017 , TS_RAIL_ORDER_GET_APPID_RESP_EX = 0x0018 , TS_RAIL_ORDER_TEXTSCALEINFO = 0x0019 ,
  TS_RAIL_ORDER_CARETBLINKINFO = 0x001A , TS_RAIL_ORDER_EXEC_RESULT = 0x0080
}
 

Functions

FREERDP_API BOOL rail_read_unicode_string (wStream *s, RAIL_UNICODE_STRING *unicode_string)
 
FREERDP_API BOOL utf8_string_to_rail_string (const char *string, RAIL_UNICODE_STRING *unicode_string)
 
FREERDP_API const char * rail_handshake_ex_flags_to_string (UINT32 flags, char *buffer, size_t len)
 

Macro Definition Documentation

◆ GUID_CHSIME

#define GUID_CHSIME
Value:
{ \
0x81D4E9C9, 0x1D3B, 0x41BC, 0x9E, 0x6C, 0x4B, 0x40, 0xBF, 0x79, 0xE3, 0x5E \
}

◆ GUID_CHTIME

#define GUID_CHTIME
Value:
{ \
0x531FDEBF, 0x9B4C, 0x4A43, 0xA2, 0xAA, 0x96, 0x0E, 0x8F, 0xCD, 0xC7, 0x32 \
}

◆ GUID_GUID_PROFILE_MSIME_JPN

#define GUID_GUID_PROFILE_MSIME_JPN
Value:
{ \
0xA76C93D9, 0x5523, 0x4E90, 0xAA, 0xFA, 0x4D, 0xB1, 0x12, 0xF9, 0xAC, 0x76 \
}

◆ GUID_MSIME_JPN

#define GUID_MSIME_JPN
Value:
{ \
0x03B5835F, 0xF03C, 0x411B, 0x9C, 0xE2, 0xAA, 0x23, 0xE1, 0x17, 0x1E, 0x36 \
}

◆ GUID_MSIME_KOR

#define GUID_MSIME_KOR
Value:
{ \
0xA028AE76, 0x01B1, 0x46C2, 0x99, 0xC4, 0xAC, 0xD9, 0x85, 0x8A, 0xE0, 0x02 \
}

◆ GUID_NULL

#define GUID_NULL
Value:
{ \
0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 \
}

◆ GUID_PROFILE_CANTONESE

#define GUID_PROFILE_CANTONESE
Value:
{ \
0x0AEC109C, 0x7E96, 0x11D4, 0xB2, 0xEF, 0x00, 0x80, 0xC8, 0x82, 0x68, 0x7E \
}

◆ GUID_PROFILE_CHANGJIE

#define GUID_PROFILE_CHANGJIE
Value:
{ \
0x4BDF9F03, 0xC7D3, 0x11D4, 0xB2, 0xAB, 0x00, 0x80, 0xC8, 0x82, 0x68, 0x7E \
}

◆ GUID_PROFILE_MSIME_KOR

#define GUID_PROFILE_MSIME_KOR
Value:
{ \
0xB5FE1F02, 0xD5F2, 0x4445, 0x9C, 0x03, 0xC5, 0x68, 0xF2, 0x3C, 0x99, 0xA1 \
}

◆ GUID_PROFILE_NEWPHONETIC

#define GUID_PROFILE_NEWPHONETIC
Value:
{ \
0xB2F9C502, 0x1742, 0x11D4, 0x97, 0x90, 0x00, 0x80, 0xC8, 0x82, 0x68, 0x7E \
}

◆ GUID_PROFILE_PINYIN

#define GUID_PROFILE_PINYIN
Value:
{ \
0xF3BA9077, 0x6C7E, 0x11D4, 0x97, 0xFA, 0x00, 0x80, 0xC8, 0x82, 0x68, 0x7E \
}

◆ GUID_PROFILE_QUICK

#define GUID_PROFILE_QUICK
Value:
{ \
0x6024B45F, 0x5C54, 0x11D4, 0xB9, 0x21, 0x00, 0x80, 0xC8, 0x82, 0x68, 0x7E \
}

◆ GUID_PROFILE_SIMPLEFAST

#define GUID_PROFILE_SIMPLEFAST
Value:
{ \
0xFA550B04, 0x5AD7, 0x411F, 0xA5, 0xAC, 0xCA, 0x03, 0x8E, 0xC5, 0x15, 0xD7 \
}

◆ IME_CMODE_CHARCODE

#define IME_CMODE_CHARCODE   0x00000020

◆ IME_CMODE_EUDC

#define IME_CMODE_EUDC   0x00000200

◆ IME_CMODE_FIXED

#define IME_CMODE_FIXED   0x00000800

◆ IME_CMODE_FULLSHAPE

#define IME_CMODE_FULLSHAPE   0x00000008

◆ IME_CMODE_HANJACONVERT

#define IME_CMODE_HANJACONVERT   0x00000040

◆ IME_CMODE_KATAKANA

#define IME_CMODE_KATAKANA   0x00000002

◆ IME_CMODE_NATIVE

#define IME_CMODE_NATIVE   0x00000001

◆ IME_CMODE_NOCONVERSION

#define IME_CMODE_NOCONVERSION   0x00000100

◆ IME_CMODE_ROMAN

#define IME_CMODE_ROMAN   0x00000010

◆ IME_CMODE_SOFTKBD

#define IME_CMODE_SOFTKBD   0x00000080

◆ IME_CMODE_SYMBOL

#define IME_CMODE_SYMBOL   0x00000400

◆ IME_SMODE_AUTOMATIC

#define IME_SMODE_AUTOMATIC   0x00000004

◆ IME_SMODE_CONVERSATION

#define IME_SMODE_CONVERSATION   0x00000010

◆ IME_SMODE_NONE

#define IME_SMODE_NONE   0x00000000

◆ IME_SMODE_PHRASEPREDICT

#define IME_SMODE_PHRASEPREDICT   0x00000008

◆ IME_SMODE_PLURALCASE

#define IME_SMODE_PLURALCASE   0x00000001

◆ IME_SMODE_SINGLECONVERT

#define IME_SMODE_SINGLECONVERT   0x00000002

◆ IME_STATE_CLOSED

#define IME_STATE_CLOSED   0x00000000

◆ IME_STATE_OPEN

#define IME_STATE_OPEN   0x00000001

◆ KANA_MODE_OFF

#define KANA_MODE_OFF   0x00000000

◆ KANA_MODE_ON

#define KANA_MODE_ON   0x00000001

◆ NIIF_ERROR

#define NIIF_ERROR   0x00000003

◆ NIIF_INFO

#define NIIF_INFO   0x00000001

◆ NIIF_LARGE_ICON

#define NIIF_LARGE_ICON   0x00000020

◆ NIIF_NONE

#define NIIF_NONE   0x00000000

◆ NIIF_NOSOUND

#define NIIF_NOSOUND   0x00000010

◆ NIIF_WARNING

#define NIIF_WARNING   0x00000002

◆ NIN_BALLOONHIDE

#define NIN_BALLOONHIDE   0x00000403

◆ NIN_BALLOONSHOW

#define NIN_BALLOONSHOW   0x00000402

◆ NIN_BALLOONTIMEOUT

#define NIN_BALLOONTIMEOUT   0x00000404

◆ NIN_BALLOONUSERCLICK

#define NIN_BALLOONUSERCLICK   0x00000405

◆ NIN_KEYSELECT

#define NIN_KEYSELECT   0x00000401

◆ NIN_SELECT

#define NIN_SELECT   0x00000400

◆ RAIL_CLIENTSTATUS_ALLOWLOCALMOVESIZE

#define RAIL_CLIENTSTATUS_ALLOWLOCALMOVESIZE   0x00000001

◆ RAIL_CLIENTSTATUS_AUTORECONNECT

#define RAIL_CLIENTSTATUS_AUTORECONNECT   0x00000002

◆ RAIL_EXEC_E_DECODE_FAILED

#define RAIL_EXEC_E_DECODE_FAILED   0x0002

◆ RAIL_EXEC_E_FAIL

#define RAIL_EXEC_E_FAIL   0x0006

◆ RAIL_EXEC_E_FILE_NOT_FOUND

#define RAIL_EXEC_E_FILE_NOT_FOUND   0x0005

◆ RAIL_EXEC_E_HOOK_NOT_LOADED

#define RAIL_EXEC_E_HOOK_NOT_LOADED   0x0001

◆ RAIL_EXEC_E_NOT_IN_ALLOWLIST

#define RAIL_EXEC_E_NOT_IN_ALLOWLIST   0x0003

◆ RAIL_EXEC_E_SESSION_LOCKED

#define RAIL_EXEC_E_SESSION_LOCKED   0x0007

◆ RAIL_EXEC_FLAG_APP_USER_MODEL_ID

#define RAIL_EXEC_FLAG_APP_USER_MODEL_ID   0x0010

◆ RAIL_EXEC_FLAG_EXPAND_ARGUMENTS

#define RAIL_EXEC_FLAG_EXPAND_ARGUMENTS   0x0008

◆ RAIL_EXEC_FLAG_EXPAND_WORKING_DIRECTORY

#define RAIL_EXEC_FLAG_EXPAND_WORKING_DIRECTORY   0x0001

◆ RAIL_EXEC_FLAG_FILE

#define RAIL_EXEC_FLAG_FILE   0x0004

◆ RAIL_EXEC_FLAG_TRANSLATE_FILES

#define RAIL_EXEC_FLAG_TRANSLATE_FILES   0x0002

◆ RAIL_EXEC_S_OK

#define RAIL_EXEC_S_OK   0x0000

◆ RAIL_ORDER_HANDSHAKE_EX_FLAGS_EXTENDED_SPI_SUPPORTED

#define RAIL_ORDER_HANDSHAKE_EX_FLAGS_EXTENDED_SPI_SUPPORTED   0x00000002

◆ RAIL_ORDER_HANDSHAKE_EX_FLAGS_SNAP_ARRANGE_SUPPORTED

#define RAIL_ORDER_HANDSHAKE_EX_FLAGS_SNAP_ARRANGE_SUPPORTED   0x00000004

◆ RAIL_ORDER_HANDSHAKEEX_FLAGS_HIDEF

#define RAIL_ORDER_HANDSHAKEEX_FLAGS_HIDEF   0x00000001

◆ RAIL_SVC_CHANNEL_NAME

#define RAIL_SVC_CHANNEL_NAME   "rail"

FreeRDP: A Remote Desktop Protocol Implementation Remote Applications Integrated Locally (RAIL)

Copyright 2011 Marc-Andre Moreau marca.nosp@m.ndre.nosp@m..more.nosp@m.au@g.nosp@m.mail..nosp@m.com Copyright 2011 Roman Barabanov roman.nosp@m.bara.nosp@m.banov.nosp@m.@gma.nosp@m.il.co.nosp@m.m

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

◆ RAIL_TASKBAR_MSG_TAB_ACTIVE [1/2]

#define RAIL_TASKBAR_MSG_TAB_ACTIVE   0x00000004

◆ RAIL_TASKBAR_MSG_TAB_ACTIVE [2/2]

#define RAIL_TASKBAR_MSG_TAB_ACTIVE   0x00000004

◆ RAIL_TASKBAR_MSG_TAB_ORDER [1/2]

#define RAIL_TASKBAR_MSG_TAB_ORDER   0x00000003

◆ RAIL_TASKBAR_MSG_TAB_ORDER [2/2]

#define RAIL_TASKBAR_MSG_TAB_ORDER   0x00000003

◆ RAIL_TASKBAR_MSG_TAB_PROPERTIES [1/2]

#define RAIL_TASKBAR_MSG_TAB_PROPERTIES   0x00000005

◆ RAIL_TASKBAR_MSG_TAB_PROPERTIES [2/2]

#define RAIL_TASKBAR_MSG_TAB_PROPERTIES   0x00000005

◆ RAIL_TASKBAR_MSG_TAB_REGISTER [1/2]

#define RAIL_TASKBAR_MSG_TAB_REGISTER   0x00000001

◆ RAIL_TASKBAR_MSG_TAB_REGISTER [2/2]

#define RAIL_TASKBAR_MSG_TAB_REGISTER   0x00000001

◆ RAIL_TASKBAR_MSG_TAB_UNREGISTER [1/2]

#define RAIL_TASKBAR_MSG_TAB_UNREGISTER   0x00000002

◆ RAIL_TASKBAR_MSG_TAB_UNREGISTER [2/2]

#define RAIL_TASKBAR_MSG_TAB_UNREGISTER   0x00000002

◆ RAIL_WMSZ_BOTTOM

#define RAIL_WMSZ_BOTTOM   0x0006

◆ RAIL_WMSZ_BOTTOMLEFT

#define RAIL_WMSZ_BOTTOMLEFT   0x0007

◆ RAIL_WMSZ_BOTTOMRIGHT

#define RAIL_WMSZ_BOTTOMRIGHT   0x0008

◆ RAIL_WMSZ_KEYMOVE

#define RAIL_WMSZ_KEYMOVE   0x000A

◆ RAIL_WMSZ_KEYSIZE

#define RAIL_WMSZ_KEYSIZE   0x000B

◆ RAIL_WMSZ_LEFT

#define RAIL_WMSZ_LEFT   0x0001

◆ RAIL_WMSZ_MOVE

#define RAIL_WMSZ_MOVE   0x0009

◆ RAIL_WMSZ_RIGHT

#define RAIL_WMSZ_RIGHT   0x0002

◆ RAIL_WMSZ_TOP

#define RAIL_WMSZ_TOP   0x0003

◆ RAIL_WMSZ_TOPLEFT

#define RAIL_WMSZ_TOPLEFT   0x0004

◆ RAIL_WMSZ_TOPRIGHT

#define RAIL_WMSZ_TOPRIGHT   0x0005

◆ RDP_RAIL_ORDER_ACTIVATE

#define RDP_RAIL_ORDER_ACTIVATE   0x0002

◆ RDP_RAIL_ORDER_CLIENTSTATUS

#define RDP_RAIL_ORDER_CLIENTSTATUS   0x000B

◆ RDP_RAIL_ORDER_CLOAK

#define RDP_RAIL_ORDER_CLOAK   0x0015

◆ RDP_RAIL_ORDER_COMPARTMENTINFO

#define RDP_RAIL_ORDER_COMPARTMENTINFO   0x0012

◆ RDP_RAIL_ORDER_EXEC

#define RDP_RAIL_ORDER_EXEC   0x0001

◆ RDP_RAIL_ORDER_EXEC_RESULT

#define RDP_RAIL_ORDER_EXEC_RESULT   0x0080

◆ RDP_RAIL_ORDER_GET_APPID_REQ

#define RDP_RAIL_ORDER_GET_APPID_REQ   0x000E

◆ RDP_RAIL_ORDER_GET_APPID_RESP

#define RDP_RAIL_ORDER_GET_APPID_RESP   0x000F

◆ RDP_RAIL_ORDER_GET_APPID_RESP_EX

#define RDP_RAIL_ORDER_GET_APPID_RESP_EX   0x0018

◆ RDP_RAIL_ORDER_HANDSHAKE

#define RDP_RAIL_ORDER_HANDSHAKE   0x0005

◆ RDP_RAIL_ORDER_HANDSHAKE_EX

#define RDP_RAIL_ORDER_HANDSHAKE_EX   0x0013

◆ RDP_RAIL_ORDER_LANGBARINFO

#define RDP_RAIL_ORDER_LANGBARINFO   0x000D

◆ RDP_RAIL_ORDER_LANGUAGEIMEINFO

#define RDP_RAIL_ORDER_LANGUAGEIMEINFO   0x0011

◆ RDP_RAIL_ORDER_LOCALMOVESIZE

#define RDP_RAIL_ORDER_LOCALMOVESIZE   0x0009

◆ RDP_RAIL_ORDER_MINMAXINFO

#define RDP_RAIL_ORDER_MINMAXINFO   0x000A

◆ RDP_RAIL_ORDER_NOTIFY_EVENT

#define RDP_RAIL_ORDER_NOTIFY_EVENT   0x0006

◆ RDP_RAIL_ORDER_POWER_DISPLAY_REQUEST

#define RDP_RAIL_ORDER_POWER_DISPLAY_REQUEST   0x0016

◆ RDP_RAIL_ORDER_SNAP_ARRANGE

#define RDP_RAIL_ORDER_SNAP_ARRANGE   0x0017

◆ RDP_RAIL_ORDER_SYSCOMMAND

#define RDP_RAIL_ORDER_SYSCOMMAND   0x0004

◆ RDP_RAIL_ORDER_SYSMENU

#define RDP_RAIL_ORDER_SYSMENU   0x000C

◆ RDP_RAIL_ORDER_SYSPARAM

#define RDP_RAIL_ORDER_SYSPARAM   0x0003

◆ RDP_RAIL_ORDER_WINDOWMOVE

#define RDP_RAIL_ORDER_WINDOWMOVE   0x0008

◆ RDP_RAIL_ORDER_ZORDER_SYNC

#define RDP_RAIL_ORDER_ZORDER_SYNC   0x0014

◆ SC_CLOSE

#define SC_CLOSE   0xF060

◆ SC_DEFAULT

#define SC_DEFAULT   0xF160

◆ SC_KEYMENU

#define SC_KEYMENU   0xF100

◆ SC_MAXIMIZE

#define SC_MAXIMIZE   0xF030

◆ SC_MINIMIZE

#define SC_MINIMIZE   0xF020

◆ SC_MOVE

#define SC_MOVE   0xF010

◆ SC_RESTORE

#define SC_RESTORE   0xF120

◆ SC_SIZE

#define SC_SIZE   0xF000

◆ SPI_DISPLAY_CHANGE

#define SPI_DISPLAY_CHANGE   0x0000F001

◆ SPI_SET_DRAG_FULL_WINDOWS

#define SPI_SET_DRAG_FULL_WINDOWS   0x00000025

◆ SPI_SET_HIGH_CONTRAST

#define SPI_SET_HIGH_CONTRAST   0x00000043

◆ SPI_SET_KEYBOARD_CUES

#define SPI_SET_KEYBOARD_CUES   0x0000100B

◆ SPI_SET_KEYBOARD_PREF

#define SPI_SET_KEYBOARD_PREF   0x00000045

◆ SPI_SET_MOUSE_BUTTON_SWAP

#define SPI_SET_MOUSE_BUTTON_SWAP   0x00000021

◆ SPI_SET_SCREEN_SAVE_ACTIVE

#define SPI_SET_SCREEN_SAVE_ACTIVE   0x00000011

◆ SPI_SET_SCREEN_SAVE_SECURE

#define SPI_SET_SCREEN_SAVE_SECURE   0x00000077

◆ SPI_SET_WORK_AREA

#define SPI_SET_WORK_AREA   0x0000002F

◆ SPI_TASKBAR_POS

#define SPI_TASKBAR_POS   0x0000F000

◆ TF_PROFILETYPE_INPUTPROCESSOR

#define TF_PROFILETYPE_INPUTPROCESSOR   0x00000001

◆ TF_PROFILETYPE_KEYBOARDLAYOUT

#define TF_PROFILETYPE_KEYBOARDLAYOUT   0x00000002

◆ TF_SFT_DESKBAND

#define TF_SFT_DESKBAND   0x00000800

◆ TF_SFT_DOCK

#define TF_SFT_DOCK   0x00000002

◆ TF_SFT_EXTRAICONSONMINIMIZED

#define TF_SFT_EXTRAICONSONMINIMIZED   0x00000200

◆ TF_SFT_HIDDEN

#define TF_SFT_HIDDEN   0x00000008

◆ TF_SFT_HIGHTRANSPARENCY

#define TF_SFT_HIGHTRANSPARENCY   0x00000040

◆ TF_SFT_LABELS

#define TF_SFT_LABELS   0x00000080

◆ TF_SFT_LOWTRANSPARENCY

#define TF_SFT_LOWTRANSPARENCY   0x00000020

◆ TF_SFT_MINIMIZED

#define TF_SFT_MINIMIZED   0x00000004

◆ TF_SFT_NOEXTRAICONSONMINIMIZED

#define TF_SFT_NOEXTRAICONSONMINIMIZED   0x00000400

◆ TF_SFT_NOLABELS

#define TF_SFT_NOLABELS   0x00000100

◆ TF_SFT_NOTRANSPARENCY

#define TF_SFT_NOTRANSPARENCY   0x00000010

◆ TF_SFT_SHOWNORMAL

#define TF_SFT_SHOWNORMAL   0x00000001

◆ TS_RAIL_EXEC_FLAG_APP_USER_MODEL_ID

#define TS_RAIL_EXEC_FLAG_APP_USER_MODEL_ID   0x0010

◆ TS_RAIL_EXEC_FLAG_EXPAND_ARGUMENTS

#define TS_RAIL_EXEC_FLAG_EXPAND_ARGUMENTS   0x0008

◆ TS_RAIL_EXEC_FLAG_EXPAND_WORKINGDIRECTORY

#define TS_RAIL_EXEC_FLAG_EXPAND_WORKINGDIRECTORY   0x0001

◆ TS_RAIL_EXEC_FLAG_FILE

#define TS_RAIL_EXEC_FLAG_FILE   0x0004

◆ TS_RAIL_EXEC_FLAG_TRANSLATE_FILES

#define TS_RAIL_EXEC_FLAG_TRANSLATE_FILES   0x0002

◆ WM_CONTEXTMENU

#define WM_CONTEXTMENU   0x0000007b

◆ WM_LBUTTONDBLCLK

#define WM_LBUTTONDBLCLK   0x00000203

◆ WM_LBUTTONDOWN

#define WM_LBUTTONDOWN   0x00000201

◆ WM_LBUTTONUP

#define WM_LBUTTONUP   0x00000202

◆ WM_RBUTTONDBLCLK

#define WM_RBUTTONDBLCLK   0x00000206

◆ WM_RBUTTONDOWN

#define WM_RBUTTONDOWN   0x00000204

◆ WM_RBUTTONUP

#define WM_RBUTTONUP   0x00000205

Enumeration Type Documentation

◆ CLIENT_INFO_PDU

Enumerator
TS_RAIL_CLIENTSTATUS_ALLOWLOCALMOVESIZE 
TS_RAIL_CLIENTSTATUS_AUTORECONNECT 
TS_RAIL_CLIENTSTATUS_ZORDER_SYNC 
TS_RAIL_CLIENTSTATUS_WINDOW_RESIZE_MARGIN_SUPPORTED 
TS_RAIL_CLIENTSTATUS_HIGH_DPI_ICONS_SUPPORTED 
TS_RAIL_CLIENTSTATUS_APPBAR_REMOTING_SUPPORTED 
TS_RAIL_CLIENTSTATUS_POWER_DISPLAY_REQUEST_SUPPORTED 
TS_RAIL_CLIENTSTATUS_GET_APPID_RESPONSE_EX_SUPPORTED 
TS_RAIL_CLIENTSTATUS_BIDIRECTIONAL_CLOAK_SUPPORTED 
TS_RAIL_CLIENTSTATUS_SUPPRESS_ICON_ORDERS 

◆ EXTENDED_HANDSHAKE_FLAGS

Enumerator
TS_RAIL_ORDER_HANDSHAKEEX_FLAGS_HIDEF 
TS_RAIL_ORDER_HANDSHAKE_EX_FLAGS_EXTENDED_SPI_SUPPORTED 
TS_RAIL_ORDER_HANDSHAKE_EX_FLAGS_SNAP_ARRANGE_SUPPORTED 
TS_RAIL_ORDER_HANDSHAKE_EX_FLAGS_TEXT_SCALE_SUPPORTED 
TS_RAIL_ORDER_HANDSHAKE_EX_FLAGS_CARET_BLINK_SUPPORTED 
TS_RAIL_ORDER_HANDSHAKE_EX_FLAGS_EXTENDED_SPI_2_SUPPORTED 

◆ ORDER_TYPE

enum ORDER_TYPE
Enumerator
TS_RAIL_ORDER_EXEC 
TS_RAIL_ORDER_ACTIVATE 
TS_RAIL_ORDER_SYSPARAM 
TS_RAIL_ORDER_SYSCOMMAND 
TS_RAIL_ORDER_HANDSHAKE 
TS_RAIL_ORDER_NOTIFY_EVENT 
TS_RAIL_ORDER_WINDOWMOVE 
TS_RAIL_ORDER_LOCALMOVESIZE 
TS_RAIL_ORDER_MINMAXINFO 
TS_RAIL_ORDER_CLIENTSTATUS 
TS_RAIL_ORDER_SYSMENU 
TS_RAIL_ORDER_LANGBARINFO 
TS_RAIL_ORDER_GET_APPID_REQ 
TS_RAIL_ORDER_GET_APPID_RESP 
TS_RAIL_ORDER_TASKBARINFO 
TS_RAIL_ORDER_LANGUAGEIMEINFO 
TS_RAIL_ORDER_COMPARTMENTINFO 
TS_RAIL_ORDER_HANDSHAKE_EX 
TS_RAIL_ORDER_ZORDER_SYNC 
TS_RAIL_ORDER_CLOAK 
TS_RAIL_ORDER_POWER_DISPLAY_REQUEST 
TS_RAIL_ORDER_SNAP_ARRANGE 
TS_RAIL_ORDER_GET_APPID_RESP_EX 
TS_RAIL_ORDER_TEXTSCALEINFO 
TS_RAIL_ORDER_CARETBLINKINFO 
TS_RAIL_ORDER_EXEC_RESULT 

◆ SPI_MASK

enum SPI_MASK
Enumerator
SPI_MASK_SET_DRAG_FULL_WINDOWS 
SPI_MASK_SET_KEYBOARD_CUES 
SPI_MASK_SET_KEYBOARD_PREF 
SPI_MASK_SET_MOUSE_BUTTON_SWAP 
SPI_MASK_SET_WORK_AREA 
SPI_MASK_DISPLAY_CHANGE 
SPI_MASK_TASKBAR_POS 
SPI_MASK_SET_HIGH_CONTRAST 
SPI_MASK_SET_SCREEN_SAVE_ACTIVE 
SPI_MASK_SET_SET_SCREEN_SAVE_SECURE 
SPI_MASK_SET_CARET_WIDTH 
SPI_MASK_SET_STICKY_KEYS 
SPI_MASK_SET_TOGGLE_KEYS 
SPI_MASK_SET_FILTER_KEYS 

Function Documentation

◆ rail_handshake_ex_flags_to_string()

FREERDP_API const char* rail_handshake_ex_flags_to_string ( UINT32  flags,
char *  buffer,
size_t  len 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ rail_read_unicode_string()

FREERDP_API BOOL rail_read_unicode_string ( wStream s,
RAIL_UNICODE_STRING unicode_string 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ utf8_string_to_rail_string()

FREERDP_API BOOL utf8_string_to_rail_string ( const char *  string,
RAIL_UNICODE_STRING unicode_string 
)
Here is the call graph for this function:
Here is the caller graph for this function: