Blame include/freerdp/rail.h

Packit 1fb8d4
/**
Packit 1fb8d4
 * FreeRDP: A Remote Desktop Protocol Implementation
Packit 1fb8d4
 * Remote Applications Integrated Locally (RAIL)
Packit 1fb8d4
 *
Packit 1fb8d4
 * Copyright 2011 Marc-Andre Moreau <marcandre.moreau@gmail.com>
Packit 1fb8d4
 * Copyright 2011 Roman Barabanov <romanbarabanov@gmail.com>
Packit 1fb8d4
 *
Packit 1fb8d4
 * Licensed under the Apache License, Version 2.0 (the "License");
Packit 1fb8d4
 * you may not use this file except in compliance with the License.
Packit 1fb8d4
 * You may obtain a copy of the License at
Packit 1fb8d4
 *
Packit 1fb8d4
 *     http://www.apache.org/licenses/LICENSE-2.0
Packit 1fb8d4
 *
Packit 1fb8d4
 * Unless required by applicable law or agreed to in writing, software
Packit 1fb8d4
 * distributed under the License is distributed on an "AS IS" BASIS,
Packit 1fb8d4
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Packit 1fb8d4
 * See the License for the specific language governing permissions and
Packit 1fb8d4
 * limitations under the License.
Packit 1fb8d4
 */
Packit 1fb8d4
Packit 1fb8d4
#ifndef FREERDP_RAIL_GLOBAL_H
Packit 1fb8d4
#define FREERDP_RAIL_GLOBAL_H
Packit 1fb8d4
Packit 1fb8d4
#include <winpr/wnd.h>
Packit Service 5a9772
#include <winpr/windows.h>
Packit 1fb8d4
Packit 1fb8d4
#include <freerdp/types.h>
Packit 1fb8d4
Packit Service 5a9772
#define RAIL_SVC_CHANNEL_NAME "rail"
Packit Service 5a9772
Packit Service 5a9772
/* DEPRECATED: RAIL PDU flags use the spec conformant naming with TS_ prefix */
Packit Service 5a9772
#define RAIL_EXEC_FLAG_EXPAND_WORKINGDIRECTORY 0x0001
Packit Service 5a9772
#define RAIL_EXEC_FLAG_TRANSLATE_FILES 0x0002
Packit Service 5a9772
#define RAIL_EXEC_FLAG_FILE 0x0004
Packit Service 5a9772
#define RAIL_EXEC_FLAG_EXPAND_ARGUMENTS 0x0008
Packit Service 5a9772
Packit 1fb8d4
/* RAIL PDU flags */
Packit Service 5a9772
#define TS_RAIL_EXEC_FLAG_EXPAND_WORKINGDIRECTORY 0x0001
Packit Service 5a9772
#define TS_RAIL_EXEC_FLAG_TRANSLATE_FILES 0x0002
Packit Service 5a9772
#define TS_RAIL_EXEC_FLAG_FILE 0x0004
Packit Service 5a9772
#define TS_RAIL_EXEC_FLAG_EXPAND_ARGUMENTS 0x0008
Packit Service 5a9772
#define TS_RAIL_EXEC_FLAG_APP_USER_MODEL_ID 0x0010
Packit 1fb8d4
Packit 1fb8d4
/* Notification Icon Balloon Tooltip */
Packit Service 5a9772
#define NIIF_NONE 0x00000000
Packit Service 5a9772
#define NIIF_INFO 0x00000001
Packit Service 5a9772
#define NIIF_WARNING 0x00000002
Packit Service 5a9772
#define NIIF_ERROR 0x00000003
Packit Service 5a9772
#define NIIF_NOSOUND 0x00000010
Packit Service 5a9772
#define NIIF_LARGE_ICON 0x00000020
Packit 1fb8d4
Packit 1fb8d4
/* Client Execute PDU Flags */
Packit Service 5a9772
#define RAIL_EXEC_FLAG_EXPAND_WORKING_DIRECTORY 0x0001
Packit Service 5a9772
#define RAIL_EXEC_FLAG_TRANSLATE_FILES 0x0002
Packit Service 5a9772
#define RAIL_EXEC_FLAG_FILE 0x0004
Packit Service 5a9772
#define RAIL_EXEC_FLAG_EXPAND_ARGUMENTS 0x0008
Packit Service 5a9772
#define RAIL_EXEC_FLAG_APP_USER_MODEL_ID 0x0010
Packit 1fb8d4
Packit 1fb8d4
/* Server Execute Result PDU */
Packit Service 5a9772
#define RAIL_EXEC_S_OK 0x0000
Packit Service 5a9772
#define RAIL_EXEC_E_HOOK_NOT_LOADED 0x0001
Packit Service 5a9772
#define RAIL_EXEC_E_DECODE_FAILED 0x0002
Packit Service 5a9772
#define RAIL_EXEC_E_NOT_IN_ALLOWLIST 0x0003
Packit Service 5a9772
#define RAIL_EXEC_E_FILE_NOT_FOUND 0x0005
Packit Service 5a9772
#define RAIL_EXEC_E_FAIL 0x0006
Packit Service 5a9772
#define RAIL_EXEC_E_SESSION_LOCKED 0x0007
Packit Service 5a9772
Packit Service 5a9772
/* DEPRECATED: Server System Parameters Update PDU
Packit Service 5a9772
 * use the spec conformant naming scheme from winpr/windows.h
Packit Service 5a9772
 */
Packit Service 5a9772
#define SPI_SET_SCREEN_SAVE_ACTIVE 0x00000011
Packit Service 5a9772
#define SPI_SET_SCREEN_SAVE_SECURE 0x00000077
Packit 1fb8d4
Packit 1fb8d4
/*Bit mask values for SPI_ parameters*/
Packit 1fb8d4
enum SPI_MASK
Packit 1fb8d4
{
Packit Service 5a9772
	SPI_MASK_SET_DRAG_FULL_WINDOWS = 0x00000001,
Packit Service 5a9772
	SPI_MASK_SET_KEYBOARD_CUES = 0x00000002,
Packit Service 5a9772
	SPI_MASK_SET_KEYBOARD_PREF = 0x00000004,
Packit Service 5a9772
	SPI_MASK_SET_MOUSE_BUTTON_SWAP = 0x00000008,
Packit Service 5a9772
	SPI_MASK_SET_WORK_AREA = 0x00000010,
Packit Service 5a9772
	SPI_MASK_DISPLAY_CHANGE = 0x00000020,
Packit Service 5a9772
	SPI_MASK_TASKBAR_POS = 0x00000040,
Packit Service 5a9772
	SPI_MASK_SET_HIGH_CONTRAST = 0x00000080,
Packit Service 5a9772
	SPI_MASK_SET_SCREEN_SAVE_ACTIVE = 0x00000100,
Packit Service 5a9772
	SPI_MASK_SET_SET_SCREEN_SAVE_SECURE = 0x00000200,
Packit Service 5a9772
	SPI_MASK_SET_CARET_WIDTH = 0x00000400,
Packit Service 5a9772
	SPI_MASK_SET_STICKY_KEYS = 0x00000800,
Packit Service 5a9772
	SPI_MASK_SET_TOGGLE_KEYS = 0x00001000,
Packit Service 5a9772
	SPI_MASK_SET_FILTER_KEYS = 0x00002000,
Packit 1fb8d4
};
Packit 1fb8d4
Packit Service 5a9772
/* Client System Parameters Update PDU
Packit Service 5a9772
 * some are defined in winuser.h (winpr/windows.h wrapper)
Packit Service 5a9772
 */
Packit Service 5a9772
#define SPI_SET_DRAG_FULL_WINDOWS 0x00000025
Packit Service 5a9772
#define SPI_SET_KEYBOARD_CUES 0x0000100B
Packit Service 5a9772
#define SPI_SET_KEYBOARD_PREF 0x00000045
Packit Service 5a9772
#define SPI_SET_MOUSE_BUTTON_SWAP 0x00000021
Packit Service 5a9772
#define SPI_SET_WORK_AREA 0x0000002F
Packit Service 5a9772
#define SPI_DISPLAY_CHANGE 0x0000F001
Packit Service 5a9772
#define SPI_TASKBAR_POS 0x0000F000
Packit Service 5a9772
#define SPI_SET_HIGH_CONTRAST 0x00000043
Packit Service 5a9772
Packit 1fb8d4
/* Client System Command PDU */
Packit Service 5a9772
#define SC_SIZE 0xF000
Packit Service 5a9772
#define SC_MOVE 0xF010
Packit Service 5a9772
#define SC_MINIMIZE 0xF020
Packit Service 5a9772
#define SC_MAXIMIZE 0xF030
Packit Service 5a9772
#define SC_CLOSE 0xF060
Packit Service 5a9772
#define SC_KEYMENU 0xF100
Packit Service 5a9772
#define SC_RESTORE 0xF120
Packit Service 5a9772
#define SC_DEFAULT 0xF160
Packit 1fb8d4
Packit 1fb8d4
/* Client Notify Event PDU */
Packit 1fb8d4
#ifndef _WIN32
Packit Service 5a9772
#define NIN_SELECT 0x00000400
Packit Service 5a9772
#define NIN_KEYSELECT 0x00000401
Packit Service 5a9772
#define NIN_BALLOONSHOW 0x00000402
Packit Service 5a9772
#define NIN_BALLOONHIDE 0x00000403
Packit Service 5a9772
#define NIN_BALLOONTIMEOUT 0x00000404
Packit Service 5a9772
#define NIN_BALLOONUSERCLICK 0x00000405
Packit Service 5a9772
#else
Packit Service 5a9772
#include <shellapi.h>
Packit 1fb8d4
#endif
Packit 1fb8d4
Packit Service 5a9772
/* DEPRECATED: Client Information PDU
Packit Service 5a9772
 * use the spec conformant naming scheme TS_ below
Packit Service 5a9772
 */
Packit Service 5a9772
#define RAIL_CLIENTSTATUS_ALLOWLOCALMOVESIZE 0x00000001
Packit Service 5a9772
#define RAIL_CLIENTSTATUS_AUTORECONNECT 0x00000002
Packit Service 5a9772
Packit 1fb8d4
/* Client Information PDU */
Packit Service 5a9772
#define TS_RAIL_CLIENTSTATUS_ALLOWLOCALMOVESIZE 0x00000001
Packit Service 5a9772
#define TS_RAIL_CLIENTSTATUS_AUTORECONNECT 0x00000002
Packit Service 5a9772
#define TS_RAIL_CLIENTSTATUS_ZORDER_SYNC 0x00000004
Packit Service 5a9772
#define TS_RAIL_CLIENTSTATUS_WINDOW_RESIZE_MARGIN_SUPPORTED 0x00000010
Packit Service 5a9772
#define TS_RAIL_CLIENTSTATUS_HIGH_DPI_ICONS_SUPPORTED 0x00000020
Packit Service 5a9772
#define TS_RAIL_CLIENTSTATUS_APPBAR_REMOTING_SUPPORTED 0x00000040
Packit Service 5a9772
#define TS_RAIL_CLIENTSTATUS_POWER_DISPLAY_REQUEST_SUPPORTED 0x00000080
Packit Service 5a9772
#define TS_RAIL_CLIENTSTATUS_BIDIRECTIONAL_CLOAK_SUPPORTED 0x00000200
Packit 1fb8d4
Packit 1fb8d4
/* Server Move/Size Start PDU */
Packit Service 5a9772
#define RAIL_WMSZ_LEFT 0x0001
Packit Service 5a9772
#define RAIL_WMSZ_RIGHT 0x0002
Packit Service 5a9772
#define RAIL_WMSZ_TOP 0x0003
Packit Service 5a9772
#define RAIL_WMSZ_TOPLEFT 0x0004
Packit Service 5a9772
#define RAIL_WMSZ_TOPRIGHT 0x0005
Packit Service 5a9772
#define RAIL_WMSZ_BOTTOM 0x0006
Packit Service 5a9772
#define RAIL_WMSZ_BOTTOMLEFT 0x0007
Packit Service 5a9772
#define RAIL_WMSZ_BOTTOMRIGHT 0x0008
Packit Service 5a9772
#define RAIL_WMSZ_MOVE 0x0009
Packit Service 5a9772
#define RAIL_WMSZ_KEYMOVE 0x000A
Packit Service 5a9772
#define RAIL_WMSZ_KEYSIZE 0x000B
Packit 1fb8d4
Packit 1fb8d4
/* Language Bar Information PDU */
Packit Service 5a9772
#define TF_SFT_SHOWNORMAL 0x00000001
Packit Service 5a9772
#define TF_SFT_DOCK 0x00000002
Packit Service 5a9772
#define TF_SFT_MINIMIZED 0x00000004
Packit Service 5a9772
#define TF_SFT_HIDDEN 0x00000008
Packit Service 5a9772
#define TF_SFT_NOTRANSPARENCY 0x00000010
Packit Service 5a9772
#define TF_SFT_LOWTRANSPARENCY 0x00000020
Packit Service 5a9772
#define TF_SFT_HIGHTRANSPARENCY 0x00000040
Packit Service 5a9772
#define TF_SFT_LABELS 0x00000080
Packit Service 5a9772
#define TF_SFT_NOLABELS 0x00000100
Packit Service 5a9772
#define TF_SFT_EXTRAICONSONMINIMIZED 0x00000200
Packit Service 5a9772
#define TF_SFT_NOEXTRAICONSONMINIMIZED 0x00000400
Packit Service 5a9772
#define TF_SFT_DESKBAND 0x00000800
Packit Service 5a9772
Packit Service 5a9772
/* DEPRECATED: Extended Handshake Flags
Packit Service 5a9772
 * use the spec conformant naming scheme TS_ below
Packit Service 5a9772
 */
Packit Service 5a9772
#define RAIL_ORDER_HANDSHAKEEX_FLAGS_HIDEF 0x00000001
Packit Service 5a9772
#define RAIL_ORDER_HANDSHAKE_EX_FLAGS_EXTENDED_SPI_SUPPORTED 0x00000002
Packit Service 5a9772
#define RAIL_ORDER_HANDSHAKE_EX_FLAGS_SNAP_ARRANGE_SUPPORTED 0x00000004
Packit 1fb8d4
Packit 1fb8d4
/* Extended Handshake Flags */
Packit Service 5a9772
#define TS_RAIL_ORDER_HANDSHAKEEX_FLAGS_HIDEF 0x00000001
Packit Service 5a9772
#define TS_RAIL_ORDER_HANDSHAKE_EX_FLAGS_EXTENDED_SPI_SUPPORTED 0x00000002
Packit Service 5a9772
#define TS_RAIL_ORDER_HANDSHAKE_EX_FLAGS_SNAP_ARRANGE_SUPPORTED 0x00000004
Packit 1fb8d4
Packit 1fb8d4
/* Language Profile Information Flags */
Packit Service 5a9772
#define TF_PROFILETYPE_INPUTPROCESSOR 0x00000001
Packit Service 5a9772
#define TF_PROFILETYPE_KEYBOARDLAYOUT 0x00000002
Packit 1fb8d4
Packit Service 5a9772
/* LanguageProfileCLSID and ProfileGUID */
Packit Service 5a9772
#ifndef _WIN32
Packit Service 5a9772
#define GUID_NULL                                                                  \
Packit Service 5a9772
	{                                                                              \
Packit Service 5a9772
		0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 \
Packit Service 5a9772
	}
Packit Service 5a9772
#else
Packit Service 5a9772
#include <cguid.h>
Packit Service 5a9772
#endif
Packit Service 5a9772
#define GUID_MSIME_JPN                                                             \
Packit Service 5a9772
	{                                                                              \
Packit Service 5a9772
		0x03B5835F, 0xF03C, 0x411B, 0x9C, 0xE2, 0xAA, 0x23, 0xE1, 0x17, 0x1E, 0x36 \
Packit Service 5a9772
	}
Packit Service 5a9772
#define GUID_MSIME_KOR                                                             \
Packit Service 5a9772
	{                                                                              \
Packit Service 5a9772
		0xA028AE76, 0x01B1, 0x46C2, 0x99, 0xC4, 0xAC, 0xD9, 0x85, 0x8A, 0xE0, 0x02 \
Packit Service 5a9772
	}
Packit Service 5a9772
#define GUID_CHSIME                                                                \
Packit Service 5a9772
	{                                                                              \
Packit Service 5a9772
		0x81D4E9C9, 0x1D3B, 0x41BC, 0x9E, 0x6C, 0x4B, 0x40, 0xBF, 0x79, 0xE3, 0x5E \
Packit Service 5a9772
	}
Packit Service 5a9772
#define GUID_CHTIME                                                                \
Packit Service 5a9772
	{                                                                              \
Packit Service 5a9772
		0x531FDEBF, 0x9B4C, 0x4A43, 0xA2, 0xAA, 0x96, 0x0E, 0x8F, 0xCD, 0xC7, 0x32 \
Packit Service 5a9772
	}
Packit Service 5a9772
#define GUID_PROFILE_NEWPHONETIC                                                   \
Packit Service 5a9772
	{                                                                              \
Packit Service 5a9772
		0xB2F9C502, 0x1742, 0x11D4, 0x97, 0x90, 0x00, 0x80, 0xC8, 0x82, 0x68, 0x7E \
Packit Service 5a9772
	}
Packit Service 5a9772
#define GUID_PROFILE_CHANGJIE                                                      \
Packit Service 5a9772
	{                                                                              \
Packit Service 5a9772
		0x4BDF9F03, 0xC7D3, 0x11D4, 0xB2, 0xAB, 0x00, 0x80, 0xC8, 0x82, 0x68, 0x7E \
Packit Service 5a9772
	}
Packit Service 5a9772
#define GUID_PROFILE_QUICK                                                         \
Packit Service 5a9772
	{                                                                              \
Packit Service 5a9772
		0x6024B45F, 0x5C54, 0x11D4, 0xB9, 0x21, 0x00, 0x80, 0xC8, 0x82, 0x68, 0x7E \
Packit Service 5a9772
	}
Packit Service 5a9772
#define GUID_PROFILE_CANTONESE                                                     \
Packit Service 5a9772
	{                                                                              \
Packit Service 5a9772
		0x0AEC109C, 0x7E96, 0x11D4, 0xB2, 0xEF, 0x00, 0x80, 0xC8, 0x82, 0x68, 0x7E \
Packit Service 5a9772
	}
Packit Service 5a9772
#define GUID_PROFILE_PINYIN                                                        \
Packit Service 5a9772
	{                                                                              \
Packit Service 5a9772
		0xF3BA9077, 0x6C7E, 0x11D4, 0x97, 0xFA, 0x00, 0x80, 0xC8, 0x82, 0x68, 0x7E \
Packit Service 5a9772
	}
Packit Service 5a9772
#define GUID_PROFILE_SIMPLEFAST                                                    \
Packit Service 5a9772
	{                                                                              \
Packit Service 5a9772
		0xFA550B04, 0x5AD7, 0x411F, 0xA5, 0xAC, 0xCA, 0x03, 0x8E, 0xC5, 0x15, 0xD7 \
Packit Service 5a9772
	}
Packit Service 5a9772
#define GUID_GUID_PROFILE_MSIME_JPN                                                \
Packit Service 5a9772
	{                                                                              \
Packit Service 5a9772
		0xA76C93D9, 0x5523, 0x4E90, 0xAA, 0xFA, 0x4D, 0xB1, 0x12, 0xF9, 0xAC, 0x76 \
Packit Service 5a9772
	}
Packit Service 5a9772
#define GUID_PROFILE_MSIME_KOR                                                     \
Packit Service 5a9772
	{                                                                              \
Packit Service 5a9772
		0xB5FE1F02, 0xD5F2, 0x4445, 0x9C, 0x03, 0xC5, 0x68, 0xF2, 0x3C, 0x99, 0xA1 \
Packit Service 5a9772
	}
Packit Service 5a9772
Packit Service 5a9772
/* ImeState */
Packit Service 5a9772
#define IME_STATE_CLOSED 0x00000000
Packit Service 5a9772
#define IME_STATE_OPEN 0x00000001
Packit Service 5a9772
Packit Service 5a9772
/* ImeConvMode */
Packit 1fb8d4
#ifndef _IME_CMODES_
Packit Service 5a9772
#define IME_CMODE_NATIVE 0x00000001
Packit Service 5a9772
#define IME_CMODE_KATAKANA 0x00000002
Packit Service 5a9772
#define IME_CMODE_FULLSHAPE 0x00000008
Packit Service 5a9772
#define IME_CMODE_ROMAN 0x00000010
Packit Service 5a9772
#define IME_CMODE_CHARCODE 0x00000020
Packit Service 5a9772
#define IME_CMODE_HANJACONVERT 0x00000040
Packit Service 5a9772
#define IME_CMODE_SOFTKBD 0x00000080
Packit Service 5a9772
#define IME_CMODE_NOCONVERSION 0x00000100
Packit Service 5a9772
#define IME_CMODE_EUDC 0x00000200
Packit Service 5a9772
#define IME_CMODE_SYMBOL 0x00000400
Packit Service 5a9772
#define IME_CMODE_FIXED 0x00000800
Packit 1fb8d4
#endif
Packit 1fb8d4
Packit Service 5a9772
/* ImeSentenceMode */
Packit 1fb8d4
#ifndef _IMM_
Packit Service 5a9772
#define IME_SMODE_NONE 0x00000000
Packit Service 5a9772
#define IME_SMODE_PLURALCASE 0x00000001
Packit Service 5a9772
#define IME_SMODE_SINGLECONVERT 0x00000002
Packit Service 5a9772
#define IME_SMODE_AUTOMATIC 0x00000004
Packit Service 5a9772
#define IME_SMODE_PHRASEPREDICT 0x00000008
Packit Service 5a9772
#define IME_SMODE_CONVERSATION 0x00000010
Packit 1fb8d4
#endif
Packit 1fb8d4
Packit Service 5a9772
/* KANAMode */
Packit Service 5a9772
#define KANA_MODE_OFF 0x00000000
Packit Service 5a9772
#define KANA_MODE_ON 0x00000001
Packit Service 5a9772
Packit Service 5a9772
/* Taskbar */
Packit Service 5a9772
#define RAIL_TASKBAR_MSG_TAB_REGISTER 0x00000001
Packit Service 5a9772
#define RAIL_TASKBAR_MSG_TAB_UNREGISTER 0x00000002
Packit Service 5a9772
#define RAIL_TASKBAR_MSG_TAB_ORDER 0x00000003
Packit Service 5a9772
#define RAIL_TASKBAR_MSG_TAB_ACTIVE 0x00000004
Packit Service 5a9772
#define RAIL_TASKBAR_MSG_TAB_PROPERTIES 0x00000005
Packit Service 5a9772
Packit Service 5a9772
/* Taskbar body */
Packit Service 5a9772
#define RAIL_TASKBAR_MSG_TAB_REGISTER 0x00000001
Packit Service 5a9772
#define RAIL_TASKBAR_MSG_TAB_UNREGISTER 0x00000002
Packit Service 5a9772
#define RAIL_TASKBAR_MSG_TAB_ORDER 0x00000003
Packit Service 5a9772
#define RAIL_TASKBAR_MSG_TAB_ACTIVE 0x00000004
Packit Service 5a9772
#define RAIL_TASKBAR_MSG_TAB_PROPERTIES 0x00000005
Packit 1fb8d4
Packit 1fb8d4
struct _RAIL_UNICODE_STRING
Packit 1fb8d4
{
Packit 1fb8d4
	UINT16 length;
Packit 1fb8d4
	BYTE* string;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _RAIL_UNICODE_STRING RAIL_UNICODE_STRING;
Packit 1fb8d4
Packit 1fb8d4
struct _RAIL_HIGH_CONTRAST
Packit 1fb8d4
{
Packit 1fb8d4
	UINT32 flags;
Packit 1fb8d4
	UINT32 colorSchemeLength;
Packit 1fb8d4
	RAIL_UNICODE_STRING colorScheme;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _RAIL_HIGH_CONTRAST RAIL_HIGH_CONTRAST;
Packit 1fb8d4
Packit 1fb8d4
/* RAIL Orders */
Packit 1fb8d4
Packit 1fb8d4
struct _RAIL_HANDSHAKE_ORDER
Packit 1fb8d4
{
Packit 1fb8d4
	UINT32 buildNumber;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _RAIL_HANDSHAKE_ORDER RAIL_HANDSHAKE_ORDER;
Packit 1fb8d4
Packit 1fb8d4
struct _RAIL_HANDSHAKE_EX_ORDER
Packit 1fb8d4
{
Packit 1fb8d4
	UINT32 buildNumber;
Packit 1fb8d4
	UINT32 railHandshakeFlags;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _RAIL_HANDSHAKE_EX_ORDER RAIL_HANDSHAKE_EX_ORDER;
Packit 1fb8d4
Packit 1fb8d4
struct _RAIL_CLIENT_STATUS_ORDER
Packit 1fb8d4
{
Packit 1fb8d4
	UINT32 flags;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _RAIL_CLIENT_STATUS_ORDER RAIL_CLIENT_STATUS_ORDER;
Packit 1fb8d4
Packit 1fb8d4
struct _RAIL_EXEC_ORDER
Packit 1fb8d4
{
Packit 1fb8d4
	UINT16 flags;
Packit 1fb8d4
	char* RemoteApplicationProgram;
Packit 1fb8d4
	char* RemoteApplicationWorkingDir;
Packit 1fb8d4
	char* RemoteApplicationArguments;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _RAIL_EXEC_ORDER RAIL_EXEC_ORDER;
Packit 1fb8d4
Packit 1fb8d4
struct _RAIL_EXEC_RESULT_ORDER
Packit 1fb8d4
{
Packit 1fb8d4
	UINT16 flags;
Packit 1fb8d4
	UINT16 execResult;
Packit 1fb8d4
	UINT32 rawResult;
Packit 1fb8d4
	RAIL_UNICODE_STRING exeOrFile;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _RAIL_EXEC_RESULT_ORDER RAIL_EXEC_RESULT_ORDER;
Packit 1fb8d4
Packit Service 5a9772
struct _TS_FILTERKEYS
Packit Service 5a9772
{
Packit Service 5a9772
	UINT32 Flags;
Packit Service 5a9772
	UINT32 WaitTime;
Packit Service 5a9772
	UINT32 DelayTime;
Packit Service 5a9772
	UINT32 RepeatTime;
Packit Service 5a9772
	UINT32 BounceTime;
Packit Service 5a9772
};
Packit Service 5a9772
typedef struct _TS_FILTERKEYS TS_FILTERKEYS;
Packit Service 5a9772
Packit 1fb8d4
struct _RAIL_SYSPARAM_ORDER
Packit 1fb8d4
{
Packit 1fb8d4
	UINT32 param;
Packit 1fb8d4
	UINT32 params;
Packit 1fb8d4
	BOOL dragFullWindows;
Packit 1fb8d4
	BOOL keyboardCues;
Packit 1fb8d4
	BOOL keyboardPref;
Packit 1fb8d4
	BOOL mouseButtonSwap;
Packit 1fb8d4
	RECTANGLE_16 workArea;
Packit 1fb8d4
	RECTANGLE_16 displayChange;
Packit 1fb8d4
	RECTANGLE_16 taskbarPos;
Packit 1fb8d4
	RAIL_HIGH_CONTRAST highContrast;
Packit Service 5a9772
	UINT32 caretWidth;
Packit Service 5a9772
	UINT32 stickyKeys;
Packit Service 5a9772
	UINT32 toggleKeys;
Packit Service 5a9772
	TS_FILTERKEYS filterKeys;
Packit 1fb8d4
	BOOL setScreenSaveActive;
Packit 1fb8d4
	BOOL setScreenSaveSecure;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _RAIL_SYSPARAM_ORDER RAIL_SYSPARAM_ORDER;
Packit 1fb8d4
Packit 1fb8d4
struct _RAIL_ACTIVATE_ORDER
Packit 1fb8d4
{
Packit 1fb8d4
	UINT32 windowId;
Packit 1fb8d4
	BOOL enabled;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _RAIL_ACTIVATE_ORDER RAIL_ACTIVATE_ORDER;
Packit 1fb8d4
Packit 1fb8d4
struct _RAIL_SYSMENU_ORDER
Packit 1fb8d4
{
Packit 1fb8d4
	UINT32 windowId;
Packit Service 5a9772
	INT16 left;
Packit Service 5a9772
	INT16 top;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _RAIL_SYSMENU_ORDER RAIL_SYSMENU_ORDER;
Packit 1fb8d4
Packit 1fb8d4
struct _RAIL_SYSCOMMAND_ORDER
Packit 1fb8d4
{
Packit 1fb8d4
	UINT32 windowId;
Packit 1fb8d4
	UINT16 command;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _RAIL_SYSCOMMAND_ORDER RAIL_SYSCOMMAND_ORDER;
Packit 1fb8d4
Packit 1fb8d4
struct _RAIL_NOTIFY_EVENT_ORDER
Packit 1fb8d4
{
Packit 1fb8d4
	UINT32 windowId;
Packit 1fb8d4
	UINT32 notifyIconId;
Packit 1fb8d4
	UINT32 message;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _RAIL_NOTIFY_EVENT_ORDER RAIL_NOTIFY_EVENT_ORDER;
Packit 1fb8d4
Packit 1fb8d4
struct _RAIL_MINMAXINFO_ORDER
Packit 1fb8d4
{
Packit 1fb8d4
	UINT32 windowId;
Packit Service 5a9772
	INT16 maxWidth;
Packit Service 5a9772
	INT16 maxHeight;
Packit Service 5a9772
	INT16 maxPosX;
Packit Service 5a9772
	INT16 maxPosY;
Packit Service 5a9772
	INT16 minTrackWidth;
Packit Service 5a9772
	INT16 minTrackHeight;
Packit Service 5a9772
	INT16 maxTrackWidth;
Packit Service 5a9772
	INT16 maxTrackHeight;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _RAIL_MINMAXINFO_ORDER RAIL_MINMAXINFO_ORDER;
Packit 1fb8d4
Packit 1fb8d4
struct _RAIL_LOCALMOVESIZE_ORDER
Packit 1fb8d4
{
Packit 1fb8d4
	UINT32 windowId;
Packit 1fb8d4
	BOOL isMoveSizeStart;
Packit 1fb8d4
	UINT16 moveSizeType;
Packit Service 5a9772
	INT16 posX;
Packit Service 5a9772
	INT16 posY;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _RAIL_LOCALMOVESIZE_ORDER RAIL_LOCALMOVESIZE_ORDER;
Packit 1fb8d4
Packit 1fb8d4
struct _RAIL_WINDOWMOVE_ORDER
Packit 1fb8d4
{
Packit 1fb8d4
	UINT32 windowId;
Packit Service 5a9772
	INT16 left;
Packit Service 5a9772
	INT16 top;
Packit Service 5a9772
	INT16 right;
Packit Service 5a9772
	INT16 bottom;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _RAIL_WINDOWMOVE_ORDER RAIL_WINDOW_MOVE_ORDER;
Packit 1fb8d4
Packit 1fb8d4
struct _RAIL_GET_APPID_REQ_ORDER
Packit 1fb8d4
{
Packit 1fb8d4
	UINT32 windowId;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _RAIL_GET_APPID_REQ_ORDER RAIL_GET_APPID_REQ_ORDER;
Packit 1fb8d4
Packit 1fb8d4
struct _RAIL_GET_APPID_RESP_ORDER
Packit 1fb8d4
{
Packit 1fb8d4
	UINT32 windowId;
Packit Service 5a9772
	WCHAR applicationId[260];
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _RAIL_GET_APPID_RESP_ORDER RAIL_GET_APPID_RESP_ORDER;
Packit 1fb8d4
Packit 1fb8d4
struct _RAIL_LANGBAR_INFO_ORDER
Packit 1fb8d4
{
Packit 1fb8d4
	UINT32 languageBarStatus;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _RAIL_LANGBAR_INFO_ORDER RAIL_LANGBAR_INFO_ORDER;
Packit 1fb8d4
Packit 1fb8d4
struct _RAIL_COMPARTMENT_INFO_ORDER
Packit 1fb8d4
{
Packit 1fb8d4
	UINT32 ImeState;
Packit 1fb8d4
	UINT32 ImeConvMode;
Packit 1fb8d4
	UINT32 ImeSentenceMode;
Packit 1fb8d4
	UINT32 KanaMode;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct _RAIL_COMPARTMENT_INFO_ORDER RAIL_COMPARTMENT_INFO_ORDER;
Packit 1fb8d4
Packit Service 5a9772
struct _RAIL_ZORDER_SYNC
Packit Service 5a9772
{
Packit Service 5a9772
	UINT32 windowIdMarker;
Packit Service 5a9772
};
Packit Service 5a9772
typedef struct _RAIL_ZORDER_SYNC RAIL_ZORDER_SYNC;
Packit Service 5a9772
Packit Service 5a9772
struct _RAIL_CLOAK
Packit Service 5a9772
{
Packit Service 5a9772
	UINT32 windowId;
Packit Service 5a9772
	BOOL cloak;
Packit Service 5a9772
};
Packit Service 5a9772
typedef struct _RAIL_CLOAK RAIL_CLOAK;
Packit 1fb8d4
Packit Service 5a9772
struct _RAIL_POWER_DISPLAY_REQUEST
Packit Service 5a9772
{
Packit Service 5a9772
	UINT32 active;
Packit Service 5a9772
};
Packit Service 5a9772
typedef struct _RAIL_POWER_DISPLAY_REQUEST RAIL_POWER_DISPLAY_REQUEST;
Packit 1fb8d4
Packit Service 5a9772
struct _RAIL_TASKBAR_INFO_ORDER
Packit Service 5a9772
{
Packit Service 5a9772
	UINT32 TaskbarMessage;
Packit Service 5a9772
	UINT32 WindowIdTab;
Packit Service 5a9772
	UINT32 Body;
Packit Service 5a9772
};
Packit Service 5a9772
typedef struct _RAIL_TASKBAR_INFO_ORDER RAIL_TASKBAR_INFO_ORDER;
Packit Service 5a9772
Packit Service 5a9772
struct _RAIL_LANGUAGEIME_INFO_ORDER
Packit Service 5a9772
{
Packit Service 5a9772
	UINT32 ProfileType;
Packit Service 5a9772
	UINT32 LanguageID;
Packit Service 5a9772
	GUID LanguageProfileCLSID;
Packit Service 5a9772
	GUID ProfileGUID;
Packit Service 5a9772
	UINT32 KeyboardLayout;
Packit Service 5a9772
};
Packit Service 5a9772
typedef struct _RAIL_LANGUAGEIME_INFO_ORDER RAIL_LANGUAGEIME_INFO_ORDER;
Packit Service 5a9772
Packit Service 5a9772
struct _RAIL_SNAP_ARRANGE
Packit Service 5a9772
{
Packit Service 5a9772
	UINT32 windowId;
Packit Service 5a9772
	INT16 left;
Packit Service 5a9772
	INT16 top;
Packit Service 5a9772
	INT16 right;
Packit Service 5a9772
	INT16 bottom;
Packit Service 5a9772
};
Packit Service 5a9772
typedef struct _RAIL_SNAP_ARRANGE RAIL_SNAP_ARRANGE;
Packit Service 5a9772
Packit Service 5a9772
struct _RAIL_GET_APPID_RESP_EX
Packit Service 5a9772
{
Packit Service 5a9772
	UINT32 windowID;
Packit Service 5a9772
	WCHAR applicationID[520 / sizeof(WCHAR)];
Packit Service 5a9772
	UINT32 processId;
Packit Service 5a9772
	WCHAR processImageName[520 / sizeof(WCHAR)];
Packit Service 5a9772
};
Packit Service 5a9772
typedef struct _RAIL_GET_APPID_RESP_EX RAIL_GET_APPID_RESP_EX;
Packit Service 5a9772
Packit Service 5a9772
/* DEPRECATED: RAIL Constants
Packit Service 5a9772
 * use the spec conformant naming scheme TS_ below
Packit Service 5a9772
 */
Packit Service 5a9772
Packit Service 5a9772
#define RDP_RAIL_ORDER_EXEC 0x0001
Packit Service 5a9772
#define RDP_RAIL_ORDER_ACTIVATE 0x0002
Packit Service 5a9772
#define RDP_RAIL_ORDER_SYSPARAM 0x0003
Packit Service 5a9772
#define RDP_RAIL_ORDER_SYSCOMMAND 0x0004
Packit Service 5a9772
#define RDP_RAIL_ORDER_HANDSHAKE 0x0005
Packit Service 5a9772
#define RDP_RAIL_ORDER_NOTIFY_EVENT 0x0006
Packit Service 5a9772
#define RDP_RAIL_ORDER_WINDOWMOVE 0x0008
Packit Service 5a9772
#define RDP_RAIL_ORDER_LOCALMOVESIZE 0x0009
Packit Service 5a9772
#define RDP_RAIL_ORDER_MINMAXINFO 0x000A
Packit Service 5a9772
#define RDP_RAIL_ORDER_CLIENTSTATUS 0x000B
Packit Service 5a9772
#define RDP_RAIL_ORDER_SYSMENU 0x000C
Packit Service 5a9772
#define RDP_RAIL_ORDER_LANGBARINFO 0x000D
Packit Service 5a9772
#define RDP_RAIL_ORDER_EXEC_RESULT 0x0080
Packit Service 5a9772
#define RDP_RAIL_ORDER_GET_APPID_REQ 0x000E
Packit Service 5a9772
#define RDP_RAIL_ORDER_GET_APPID_RESP 0x000F
Packit Service 5a9772
#define RDP_RAIL_ORDER_LANGUAGEIMEINFO 0x0011
Packit Service 5a9772
#define RDP_RAIL_ORDER_COMPARTMENTINFO 0x0012
Packit Service 5a9772
#define RDP_RAIL_ORDER_HANDSHAKE_EX 0x0013
Packit Service 5a9772
#define RDP_RAIL_ORDER_ZORDER_SYNC 0x0014
Packit Service 5a9772
#define RDP_RAIL_ORDER_CLOAK 0x0015
Packit Service 5a9772
#define RDP_RAIL_ORDER_POWER_DISPLAY_REQUEST 0x0016
Packit Service 5a9772
#define RDP_RAIL_ORDER_SNAP_ARRANGE 0x0017
Packit Service 5a9772
#define RDP_RAIL_ORDER_GET_APPID_RESP_EX 0x0018
Packit Service 5a9772
Packit Service 5a9772
/* RAIL Constants */
Packit Service 5a9772
Packit Service 5a9772
#define TS_RAIL_ORDER_EXEC 0x0001
Packit Service 5a9772
#define TS_RAIL_ORDER_ACTIVATE 0x0002
Packit Service 5a9772
#define TS_RAIL_ORDER_SYSPARAM 0x0003
Packit Service 5a9772
#define TS_RAIL_ORDER_SYSCOMMAND 0x0004
Packit Service 5a9772
#define TS_RAIL_ORDER_HANDSHAKE 0x0005
Packit Service 5a9772
#define TS_RAIL_ORDER_NOTIFY_EVENT 0x0006
Packit Service 5a9772
#define TS_RAIL_ORDER_WINDOWMOVE 0x0008
Packit Service 5a9772
#define TS_RAIL_ORDER_LOCALMOVESIZE 0x0009
Packit Service 5a9772
#define TS_RAIL_ORDER_MINMAXINFO 0x000A
Packit Service 5a9772
#define TS_RAIL_ORDER_CLIENTSTATUS 0x000B
Packit Service 5a9772
#define TS_RAIL_ORDER_SYSMENU 0x000C
Packit Service 5a9772
#define TS_RAIL_ORDER_LANGBARINFO 0x000D
Packit Service 5a9772
#define TS_RAIL_ORDER_GET_APPID_REQ 0x000E
Packit Service 5a9772
#define TS_RAIL_ORDER_GET_APPID_RESP 0x000F
Packit Service 5a9772
#define TS_RAIL_ORDER_TASKBARINFO 0x0010
Packit Service 5a9772
#define TS_RAIL_ORDER_LANGUAGEIMEINFO 0x0011
Packit Service 5a9772
#define TS_RAIL_ORDER_COMPARTMENTINFO 0x0012
Packit Service 5a9772
#define TS_RAIL_ORDER_HANDSHAKE_EX 0x0013
Packit Service 5a9772
#define TS_RAIL_ORDER_ZORDER_SYNC 0x0014
Packit Service 5a9772
#define TS_RAIL_ORDER_CLOAK 0x0015
Packit Service 5a9772
#define TS_RAIL_ORDER_POWER_DISPLAY_REQUEST 0x0016
Packit Service 5a9772
#define TS_RAIL_ORDER_SNAP_ARRANGE 0x0017
Packit Service 5a9772
#define TS_RAIL_ORDER_GET_APPID_RESP_EX 0x0018
Packit Service 5a9772
#define TS_RAIL_ORDER_EXEC_RESULT 0x0080
Packit 1fb8d4
Packit 1fb8d4
#ifdef __cplusplus
Packit Service 5a9772
extern "C"
Packit Service 5a9772
{
Packit 1fb8d4
#endif
Packit 1fb8d4
Packit Service 5a9772
	FREERDP_API BOOL rail_read_unicode_string(wStream* s, RAIL_UNICODE_STRING* unicode_string);
Packit Service 5a9772
	FREERDP_API BOOL utf8_string_to_rail_string(const char* string,
Packit Service 5a9772
	                                            RAIL_UNICODE_STRING* unicode_string);
Packit 1fb8d4
Packit 1fb8d4
#ifdef __cplusplus
Packit 1fb8d4
}
Packit 1fb8d4
#endif
Packit 1fb8d4
Packit 1fb8d4
#endif /* FREERDP_RAIL_GLOBAL_H */