1 /** 2 * FreeRDP: A Remote Desktop Protocol Implementation 3 * Remote Applications Integrated Locally (RAIL) 4 * 5 * Copyright 2011 Marc-Andre Moreau <marcandre.moreau@gmail.com> 6 * Copyright 2011 Roman Barabanov <romanbarabanov@gmail.com> 7 * 8 * Licensed under the Apache License, Version 2.0 (the "License"); 9 * you may not use this file except in compliance with the License. 10 * You may obtain a copy of the License at 11 * 12 * http://www.apache.org/licenses/LICENSE-2.0 13 * 14 * Unless required by applicable law or agreed to in writing, software 15 * distributed under the License is distributed on an "AS IS" BASIS, 16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 * See the License for the specific language governing permissions and 18 * limitations under the License. 19 */ 20 21 #ifndef FREERDP_RAIL_GLOBAL_H 22 #define FREERDP_RAIL_GLOBAL_H 23 24 #include <winpr/wnd.h> 25 #include <winpr/windows.h> 26 27 #include <freerdp/types.h> 28 29 #define RAIL_SVC_CHANNEL_NAME "rail" 30 31 #if !defined(DEFINE_NO_DEPRECATED) 32 /* DEPRECATED: RAIL PDU flags use the spec conformant naming with TS_ prefix */ 33 #define RAIL_EXEC_FLAG_EXPAND_WORKINGDIRECTORY 0x0001 34 #define RAIL_EXEC_FLAG_TRANSLATE_FILES 0x0002 35 #define RAIL_EXEC_FLAG_FILE 0x0004 36 #define RAIL_EXEC_FLAG_EXPAND_ARGUMENTS 0x0008 37 #endif 38 39 /* RAIL PDU flags */ 40 #define TS_RAIL_EXEC_FLAG_EXPAND_WORKINGDIRECTORY 0x0001 41 #define TS_RAIL_EXEC_FLAG_TRANSLATE_FILES 0x0002 42 #define TS_RAIL_EXEC_FLAG_FILE 0x0004 43 #define TS_RAIL_EXEC_FLAG_EXPAND_ARGUMENTS 0x0008 44 #define TS_RAIL_EXEC_FLAG_APP_USER_MODEL_ID 0x0010 45 46 /* Notification Icon Balloon Tooltip */ 47 #define NIIF_NONE 0x00000000 48 #define NIIF_INFO 0x00000001 49 #define NIIF_WARNING 0x00000002 50 #define NIIF_ERROR 0x00000003 51 #define NIIF_NOSOUND 0x00000010 52 #define NIIF_LARGE_ICON 0x00000020 53 54 /* Client Execute PDU Flags */ 55 #define RAIL_EXEC_FLAG_EXPAND_WORKING_DIRECTORY 0x0001 56 #define RAIL_EXEC_FLAG_TRANSLATE_FILES 0x0002 57 #define RAIL_EXEC_FLAG_FILE 0x0004 58 #define RAIL_EXEC_FLAG_EXPAND_ARGUMENTS 0x0008 59 #define RAIL_EXEC_FLAG_APP_USER_MODEL_ID 0x0010 60 61 /* Server Execute Result PDU */ 62 #define RAIL_EXEC_S_OK 0x0000 63 #define RAIL_EXEC_E_HOOK_NOT_LOADED 0x0001 64 #define RAIL_EXEC_E_DECODE_FAILED 0x0002 65 #define RAIL_EXEC_E_NOT_IN_ALLOWLIST 0x0003 66 #define RAIL_EXEC_E_FILE_NOT_FOUND 0x0005 67 #define RAIL_EXEC_E_FAIL 0x0006 68 #define RAIL_EXEC_E_SESSION_LOCKED 0x0007 69 70 /* DEPRECATED: Server System Parameters Update PDU 71 * use the spec conformant naming scheme from winpr/windows.h 72 */ 73 #define SPI_SET_SCREEN_SAVE_ACTIVE 0x00000011 74 #define SPI_SET_SCREEN_SAVE_SECURE 0x00000077 75 76 /*Bit mask values for SPI_ parameters*/ 77 enum SPI_MASK 78 { 79 SPI_MASK_SET_DRAG_FULL_WINDOWS = 0x00000001, 80 SPI_MASK_SET_KEYBOARD_CUES = 0x00000002, 81 SPI_MASK_SET_KEYBOARD_PREF = 0x00000004, 82 SPI_MASK_SET_MOUSE_BUTTON_SWAP = 0x00000008, 83 SPI_MASK_SET_WORK_AREA = 0x00000010, 84 SPI_MASK_DISPLAY_CHANGE = 0x00000020, 85 SPI_MASK_TASKBAR_POS = 0x00000040, 86 SPI_MASK_SET_HIGH_CONTRAST = 0x00000080, 87 SPI_MASK_SET_SCREEN_SAVE_ACTIVE = 0x00000100, 88 SPI_MASK_SET_SET_SCREEN_SAVE_SECURE = 0x00000200, 89 SPI_MASK_SET_CARET_WIDTH = 0x00000400, 90 SPI_MASK_SET_STICKY_KEYS = 0x00000800, 91 SPI_MASK_SET_TOGGLE_KEYS = 0x00001000, 92 SPI_MASK_SET_FILTER_KEYS = 0x00002000, 93 }; 94 95 /* Client System Parameters Update PDU 96 * some are defined in winuser.h (winpr/windows.h wrapper) 97 */ 98 #define SPI_SET_DRAG_FULL_WINDOWS 0x00000025 99 #define SPI_SET_KEYBOARD_CUES 0x0000100B 100 #define SPI_SET_KEYBOARD_PREF 0x00000045 101 #define SPI_SET_MOUSE_BUTTON_SWAP 0x00000021 102 #define SPI_SET_WORK_AREA 0x0000002F 103 #define SPI_DISPLAY_CHANGE 0x0000F001 104 #define SPI_TASKBAR_POS 0x0000F000 105 #define SPI_SET_HIGH_CONTRAST 0x00000043 106 107 /* Client System Command PDU */ 108 #define SC_SIZE 0xF000 109 #define SC_MOVE 0xF010 110 #define SC_MINIMIZE 0xF020 111 #define SC_MAXIMIZE 0xF030 112 #define SC_CLOSE 0xF060 113 #define SC_KEYMENU 0xF100 114 #define SC_RESTORE 0xF120 115 #define SC_DEFAULT 0xF160 116 117 /* Client Notify Event PDU */ 118 #ifndef _WIN32 119 #define NIN_SELECT 0x00000400 120 #define NIN_KEYSELECT 0x00000401 121 #define NIN_BALLOONSHOW 0x00000402 122 #define NIN_BALLOONHIDE 0x00000403 123 #define NIN_BALLOONTIMEOUT 0x00000404 124 #define NIN_BALLOONUSERCLICK 0x00000405 125 #else 126 #include <shellapi.h> 127 #endif 128 129 #if !defined(DEFINE_NO_DEPRECATED) 130 /* DEPRECATED: Client Information PDU 131 * use the spec conformant naming scheme TS_ below 132 */ 133 #define RAIL_CLIENTSTATUS_ALLOWLOCALMOVESIZE 0x00000001 134 #define RAIL_CLIENTSTATUS_AUTORECONNECT 0x00000002 135 #endif 136 137 /* Client Information PDU */ 138 #define TS_RAIL_CLIENTSTATUS_ALLOWLOCALMOVESIZE 0x00000001 139 #define TS_RAIL_CLIENTSTATUS_AUTORECONNECT 0x00000002 140 #define TS_RAIL_CLIENTSTATUS_ZORDER_SYNC 0x00000004 141 #define TS_RAIL_CLIENTSTATUS_WINDOW_RESIZE_MARGIN_SUPPORTED 0x00000010 142 #define TS_RAIL_CLIENTSTATUS_HIGH_DPI_ICONS_SUPPORTED 0x00000020 143 #define TS_RAIL_CLIENTSTATUS_APPBAR_REMOTING_SUPPORTED 0x00000040 144 #define TS_RAIL_CLIENTSTATUS_POWER_DISPLAY_REQUEST_SUPPORTED 0x00000080 145 #define TS_RAIL_CLIENTSTATUS_BIDIRECTIONAL_CLOAK_SUPPORTED 0x00000200 146 147 /* Server Move/Size Start PDU */ 148 #define RAIL_WMSZ_LEFT 0x0001 149 #define RAIL_WMSZ_RIGHT 0x0002 150 #define RAIL_WMSZ_TOP 0x0003 151 #define RAIL_WMSZ_TOPLEFT 0x0004 152 #define RAIL_WMSZ_TOPRIGHT 0x0005 153 #define RAIL_WMSZ_BOTTOM 0x0006 154 #define RAIL_WMSZ_BOTTOMLEFT 0x0007 155 #define RAIL_WMSZ_BOTTOMRIGHT 0x0008 156 #define RAIL_WMSZ_MOVE 0x0009 157 #define RAIL_WMSZ_KEYMOVE 0x000A 158 #define RAIL_WMSZ_KEYSIZE 0x000B 159 160 /* Language Bar Information PDU */ 161 #define TF_SFT_SHOWNORMAL 0x00000001 162 #define TF_SFT_DOCK 0x00000002 163 #define TF_SFT_MINIMIZED 0x00000004 164 #define TF_SFT_HIDDEN 0x00000008 165 #define TF_SFT_NOTRANSPARENCY 0x00000010 166 #define TF_SFT_LOWTRANSPARENCY 0x00000020 167 #define TF_SFT_HIGHTRANSPARENCY 0x00000040 168 #define TF_SFT_LABELS 0x00000080 169 #define TF_SFT_NOLABELS 0x00000100 170 #define TF_SFT_EXTRAICONSONMINIMIZED 0x00000200 171 #define TF_SFT_NOEXTRAICONSONMINIMIZED 0x00000400 172 #define TF_SFT_DESKBAND 0x00000800 173 174 #if !defined(DEFINE_NO_DEPRECATED) 175 /* DEPRECATED: Extended Handshake Flags 176 * use the spec conformant naming scheme TS_ below 177 */ 178 #define RAIL_ORDER_HANDSHAKEEX_FLAGS_HIDEF 0x00000001 179 #define RAIL_ORDER_HANDSHAKE_EX_FLAGS_EXTENDED_SPI_SUPPORTED 0x00000002 180 #define RAIL_ORDER_HANDSHAKE_EX_FLAGS_SNAP_ARRANGE_SUPPORTED 0x00000004 181 #endif 182 183 /* Extended Handshake Flags */ 184 #define TS_RAIL_ORDER_HANDSHAKEEX_FLAGS_HIDEF 0x00000001 185 #define TS_RAIL_ORDER_HANDSHAKE_EX_FLAGS_EXTENDED_SPI_SUPPORTED 0x00000002 186 #define TS_RAIL_ORDER_HANDSHAKE_EX_FLAGS_SNAP_ARRANGE_SUPPORTED 0x00000004 187 188 /* Language Profile Information Flags */ 189 #define TF_PROFILETYPE_INPUTPROCESSOR 0x00000001 190 #define TF_PROFILETYPE_KEYBOARDLAYOUT 0x00000002 191 192 /* LanguageProfileCLSID and ProfileGUID */ 193 #ifndef _WIN32 194 #define GUID_NULL \ 195 { \ 196 0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 \ 197 } 198 #else 199 #include <cguid.h> 200 #endif 201 #define GUID_MSIME_JPN \ 202 { \ 203 0x03B5835F, 0xF03C, 0x411B, 0x9C, 0xE2, 0xAA, 0x23, 0xE1, 0x17, 0x1E, 0x36 \ 204 } 205 #define GUID_MSIME_KOR \ 206 { \ 207 0xA028AE76, 0x01B1, 0x46C2, 0x99, 0xC4, 0xAC, 0xD9, 0x85, 0x8A, 0xE0, 0x02 \ 208 } 209 #define GUID_CHSIME \ 210 { \ 211 0x81D4E9C9, 0x1D3B, 0x41BC, 0x9E, 0x6C, 0x4B, 0x40, 0xBF, 0x79, 0xE3, 0x5E \ 212 } 213 #define GUID_CHTIME \ 214 { \ 215 0x531FDEBF, 0x9B4C, 0x4A43, 0xA2, 0xAA, 0x96, 0x0E, 0x8F, 0xCD, 0xC7, 0x32 \ 216 } 217 #define GUID_PROFILE_NEWPHONETIC \ 218 { \ 219 0xB2F9C502, 0x1742, 0x11D4, 0x97, 0x90, 0x00, 0x80, 0xC8, 0x82, 0x68, 0x7E \ 220 } 221 #define GUID_PROFILE_CHANGJIE \ 222 { \ 223 0x4BDF9F03, 0xC7D3, 0x11D4, 0xB2, 0xAB, 0x00, 0x80, 0xC8, 0x82, 0x68, 0x7E \ 224 } 225 #define GUID_PROFILE_QUICK \ 226 { \ 227 0x6024B45F, 0x5C54, 0x11D4, 0xB9, 0x21, 0x00, 0x80, 0xC8, 0x82, 0x68, 0x7E \ 228 } 229 #define GUID_PROFILE_CANTONESE \ 230 { \ 231 0x0AEC109C, 0x7E96, 0x11D4, 0xB2, 0xEF, 0x00, 0x80, 0xC8, 0x82, 0x68, 0x7E \ 232 } 233 #define GUID_PROFILE_PINYIN \ 234 { \ 235 0xF3BA9077, 0x6C7E, 0x11D4, 0x97, 0xFA, 0x00, 0x80, 0xC8, 0x82, 0x68, 0x7E \ 236 } 237 #define GUID_PROFILE_SIMPLEFAST \ 238 { \ 239 0xFA550B04, 0x5AD7, 0x411F, 0xA5, 0xAC, 0xCA, 0x03, 0x8E, 0xC5, 0x15, 0xD7 \ 240 } 241 #define GUID_GUID_PROFILE_MSIME_JPN \ 242 { \ 243 0xA76C93D9, 0x5523, 0x4E90, 0xAA, 0xFA, 0x4D, 0xB1, 0x12, 0xF9, 0xAC, 0x76 \ 244 } 245 #define GUID_PROFILE_MSIME_KOR \ 246 { \ 247 0xB5FE1F02, 0xD5F2, 0x4445, 0x9C, 0x03, 0xC5, 0x68, 0xF2, 0x3C, 0x99, 0xA1 \ 248 } 249 250 /* ImeState */ 251 #define IME_STATE_CLOSED 0x00000000 252 #define IME_STATE_OPEN 0x00000001 253 254 /* ImeConvMode */ 255 #ifndef _IME_CMODES_ 256 #define IME_CMODE_NATIVE 0x00000001 257 #define IME_CMODE_KATAKANA 0x00000002 258 #define IME_CMODE_FULLSHAPE 0x00000008 259 #define IME_CMODE_ROMAN 0x00000010 260 #define IME_CMODE_CHARCODE 0x00000020 261 #define IME_CMODE_HANJACONVERT 0x00000040 262 #define IME_CMODE_SOFTKBD 0x00000080 263 #define IME_CMODE_NOCONVERSION 0x00000100 264 #define IME_CMODE_EUDC 0x00000200 265 #define IME_CMODE_SYMBOL 0x00000400 266 #define IME_CMODE_FIXED 0x00000800 267 #endif 268 269 /* ImeSentenceMode */ 270 #ifndef _IMM_ 271 #define IME_SMODE_NONE 0x00000000 272 #define IME_SMODE_PLURALCASE 0x00000001 273 #define IME_SMODE_SINGLECONVERT 0x00000002 274 #define IME_SMODE_AUTOMATIC 0x00000004 275 #define IME_SMODE_PHRASEPREDICT 0x00000008 276 #define IME_SMODE_CONVERSATION 0x00000010 277 #endif 278 279 /* KANAMode */ 280 #define KANA_MODE_OFF 0x00000000 281 #define KANA_MODE_ON 0x00000001 282 283 /* Taskbar */ 284 #define RAIL_TASKBAR_MSG_TAB_REGISTER 0x00000001 285 #define RAIL_TASKBAR_MSG_TAB_UNREGISTER 0x00000002 286 #define RAIL_TASKBAR_MSG_TAB_ORDER 0x00000003 287 #define RAIL_TASKBAR_MSG_TAB_ACTIVE 0x00000004 288 #define RAIL_TASKBAR_MSG_TAB_PROPERTIES 0x00000005 289 290 /* Taskbar body */ 291 #define RAIL_TASKBAR_MSG_TAB_REGISTER 0x00000001 292 #define RAIL_TASKBAR_MSG_TAB_UNREGISTER 0x00000002 293 #define RAIL_TASKBAR_MSG_TAB_ORDER 0x00000003 294 #define RAIL_TASKBAR_MSG_TAB_ACTIVE 0x00000004 295 #define RAIL_TASKBAR_MSG_TAB_PROPERTIES 0x00000005 296 297 struct _RAIL_UNICODE_STRING 298 { 299 UINT16 length; 300 BYTE* string; 301 }; 302 typedef struct _RAIL_UNICODE_STRING RAIL_UNICODE_STRING; 303 304 struct _RAIL_HIGH_CONTRAST 305 { 306 UINT32 flags; 307 UINT32 colorSchemeLength; 308 RAIL_UNICODE_STRING colorScheme; 309 }; 310 typedef struct _RAIL_HIGH_CONTRAST RAIL_HIGH_CONTRAST; 311 312 /* RAIL Orders */ 313 314 struct _RAIL_HANDSHAKE_ORDER 315 { 316 UINT32 buildNumber; 317 }; 318 typedef struct _RAIL_HANDSHAKE_ORDER RAIL_HANDSHAKE_ORDER; 319 320 struct _RAIL_HANDSHAKE_EX_ORDER 321 { 322 UINT32 buildNumber; 323 UINT32 railHandshakeFlags; 324 }; 325 typedef struct _RAIL_HANDSHAKE_EX_ORDER RAIL_HANDSHAKE_EX_ORDER; 326 327 struct _RAIL_CLIENT_STATUS_ORDER 328 { 329 UINT32 flags; 330 }; 331 typedef struct _RAIL_CLIENT_STATUS_ORDER RAIL_CLIENT_STATUS_ORDER; 332 333 struct _RAIL_EXEC_ORDER 334 { 335 UINT16 flags; 336 char* RemoteApplicationProgram; 337 char* RemoteApplicationWorkingDir; 338 char* RemoteApplicationArguments; 339 }; 340 typedef struct _RAIL_EXEC_ORDER RAIL_EXEC_ORDER; 341 342 struct _RAIL_EXEC_RESULT_ORDER 343 { 344 UINT16 flags; 345 UINT16 execResult; 346 UINT32 rawResult; 347 RAIL_UNICODE_STRING exeOrFile; 348 }; 349 typedef struct _RAIL_EXEC_RESULT_ORDER RAIL_EXEC_RESULT_ORDER; 350 351 struct _TS_FILTERKEYS 352 { 353 UINT32 Flags; 354 UINT32 WaitTime; 355 UINT32 DelayTime; 356 UINT32 RepeatTime; 357 UINT32 BounceTime; 358 }; 359 typedef struct _TS_FILTERKEYS TS_FILTERKEYS; 360 361 struct _RAIL_SYSPARAM_ORDER 362 { 363 UINT32 param; 364 UINT32 params; 365 BOOL dragFullWindows; 366 BOOL keyboardCues; 367 BOOL keyboardPref; 368 BOOL mouseButtonSwap; 369 RECTANGLE_16 workArea; 370 RECTANGLE_16 displayChange; 371 RECTANGLE_16 taskbarPos; 372 RAIL_HIGH_CONTRAST highContrast; 373 UINT32 caretWidth; 374 UINT32 stickyKeys; 375 UINT32 toggleKeys; 376 TS_FILTERKEYS filterKeys; 377 BOOL setScreenSaveActive; 378 BOOL setScreenSaveSecure; 379 }; 380 typedef struct _RAIL_SYSPARAM_ORDER RAIL_SYSPARAM_ORDER; 381 382 struct _RAIL_ACTIVATE_ORDER 383 { 384 UINT32 windowId; 385 BOOL enabled; 386 }; 387 typedef struct _RAIL_ACTIVATE_ORDER RAIL_ACTIVATE_ORDER; 388 389 struct _RAIL_SYSMENU_ORDER 390 { 391 UINT32 windowId; 392 INT16 left; 393 INT16 top; 394 }; 395 typedef struct _RAIL_SYSMENU_ORDER RAIL_SYSMENU_ORDER; 396 397 struct _RAIL_SYSCOMMAND_ORDER 398 { 399 UINT32 windowId; 400 UINT16 command; 401 }; 402 typedef struct _RAIL_SYSCOMMAND_ORDER RAIL_SYSCOMMAND_ORDER; 403 404 struct _RAIL_NOTIFY_EVENT_ORDER 405 { 406 UINT32 windowId; 407 UINT32 notifyIconId; 408 UINT32 message; 409 }; 410 typedef struct _RAIL_NOTIFY_EVENT_ORDER RAIL_NOTIFY_EVENT_ORDER; 411 412 struct _RAIL_MINMAXINFO_ORDER 413 { 414 UINT32 windowId; 415 INT16 maxWidth; 416 INT16 maxHeight; 417 INT16 maxPosX; 418 INT16 maxPosY; 419 INT16 minTrackWidth; 420 INT16 minTrackHeight; 421 INT16 maxTrackWidth; 422 INT16 maxTrackHeight; 423 }; 424 typedef struct _RAIL_MINMAXINFO_ORDER RAIL_MINMAXINFO_ORDER; 425 426 struct _RAIL_LOCALMOVESIZE_ORDER 427 { 428 UINT32 windowId; 429 BOOL isMoveSizeStart; 430 UINT16 moveSizeType; 431 INT16 posX; 432 INT16 posY; 433 }; 434 typedef struct _RAIL_LOCALMOVESIZE_ORDER RAIL_LOCALMOVESIZE_ORDER; 435 436 struct _RAIL_WINDOWMOVE_ORDER 437 { 438 UINT32 windowId; 439 INT16 left; 440 INT16 top; 441 INT16 right; 442 INT16 bottom; 443 }; 444 typedef struct _RAIL_WINDOWMOVE_ORDER RAIL_WINDOW_MOVE_ORDER; 445 446 struct _RAIL_GET_APPID_REQ_ORDER 447 { 448 UINT32 windowId; 449 }; 450 typedef struct _RAIL_GET_APPID_REQ_ORDER RAIL_GET_APPID_REQ_ORDER; 451 452 struct _RAIL_GET_APPID_RESP_ORDER 453 { 454 UINT32 windowId; 455 WCHAR applicationId[260]; 456 }; 457 typedef struct _RAIL_GET_APPID_RESP_ORDER RAIL_GET_APPID_RESP_ORDER; 458 459 struct _RAIL_LANGBAR_INFO_ORDER 460 { 461 UINT32 languageBarStatus; 462 }; 463 typedef struct _RAIL_LANGBAR_INFO_ORDER RAIL_LANGBAR_INFO_ORDER; 464 465 struct _RAIL_COMPARTMENT_INFO_ORDER 466 { 467 UINT32 ImeState; 468 UINT32 ImeConvMode; 469 UINT32 ImeSentenceMode; 470 UINT32 KanaMode; 471 }; 472 typedef struct _RAIL_COMPARTMENT_INFO_ORDER RAIL_COMPARTMENT_INFO_ORDER; 473 474 struct _RAIL_ZORDER_SYNC 475 { 476 UINT32 windowIdMarker; 477 }; 478 typedef struct _RAIL_ZORDER_SYNC RAIL_ZORDER_SYNC; 479 480 struct _RAIL_CLOAK 481 { 482 UINT32 windowId; 483 BOOL cloak; 484 }; 485 typedef struct _RAIL_CLOAK RAIL_CLOAK; 486 487 struct _RAIL_POWER_DISPLAY_REQUEST 488 { 489 UINT32 active; 490 }; 491 typedef struct _RAIL_POWER_DISPLAY_REQUEST RAIL_POWER_DISPLAY_REQUEST; 492 493 struct _RAIL_TASKBAR_INFO_ORDER 494 { 495 UINT32 TaskbarMessage; 496 UINT32 WindowIdTab; 497 UINT32 Body; 498 }; 499 typedef struct _RAIL_TASKBAR_INFO_ORDER RAIL_TASKBAR_INFO_ORDER; 500 501 struct _RAIL_LANGUAGEIME_INFO_ORDER 502 { 503 UINT32 ProfileType; 504 UINT32 LanguageID; 505 GUID LanguageProfileCLSID; 506 GUID ProfileGUID; 507 UINT32 KeyboardLayout; 508 }; 509 typedef struct _RAIL_LANGUAGEIME_INFO_ORDER RAIL_LANGUAGEIME_INFO_ORDER; 510 511 struct _RAIL_SNAP_ARRANGE 512 { 513 UINT32 windowId; 514 INT16 left; 515 INT16 top; 516 INT16 right; 517 INT16 bottom; 518 }; 519 typedef struct _RAIL_SNAP_ARRANGE RAIL_SNAP_ARRANGE; 520 521 struct _RAIL_GET_APPID_RESP_EX 522 { 523 UINT32 windowID; 524 WCHAR applicationID[520 / sizeof(WCHAR)]; 525 UINT32 processId; 526 WCHAR processImageName[520 / sizeof(WCHAR)]; 527 }; 528 typedef struct _RAIL_GET_APPID_RESP_EX RAIL_GET_APPID_RESP_EX; 529 530 #if !defined(DEFINE_NO_DEPRECATED) 531 /* DEPRECATED: RAIL Constants 532 * use the spec conformant naming scheme TS_ below 533 */ 534 535 #define RDP_RAIL_ORDER_EXEC 0x0001 536 #define RDP_RAIL_ORDER_ACTIVATE 0x0002 537 #define RDP_RAIL_ORDER_SYSPARAM 0x0003 538 #define RDP_RAIL_ORDER_SYSCOMMAND 0x0004 539 #define RDP_RAIL_ORDER_HANDSHAKE 0x0005 540 #define RDP_RAIL_ORDER_NOTIFY_EVENT 0x0006 541 #define RDP_RAIL_ORDER_WINDOWMOVE 0x0008 542 #define RDP_RAIL_ORDER_LOCALMOVESIZE 0x0009 543 #define RDP_RAIL_ORDER_MINMAXINFO 0x000A 544 #define RDP_RAIL_ORDER_CLIENTSTATUS 0x000B 545 #define RDP_RAIL_ORDER_SYSMENU 0x000C 546 #define RDP_RAIL_ORDER_LANGBARINFO 0x000D 547 #define RDP_RAIL_ORDER_EXEC_RESULT 0x0080 548 #define RDP_RAIL_ORDER_GET_APPID_REQ 0x000E 549 #define RDP_RAIL_ORDER_GET_APPID_RESP 0x000F 550 #define RDP_RAIL_ORDER_LANGUAGEIMEINFO 0x0011 551 #define RDP_RAIL_ORDER_COMPARTMENTINFO 0x0012 552 #define RDP_RAIL_ORDER_HANDSHAKE_EX 0x0013 553 #define RDP_RAIL_ORDER_ZORDER_SYNC 0x0014 554 #define RDP_RAIL_ORDER_CLOAK 0x0015 555 #define RDP_RAIL_ORDER_POWER_DISPLAY_REQUEST 0x0016 556 #define RDP_RAIL_ORDER_SNAP_ARRANGE 0x0017 557 #define RDP_RAIL_ORDER_GET_APPID_RESP_EX 0x0018 558 #endif 559 560 /* RAIL Constants */ 561 562 #define TS_RAIL_ORDER_EXEC 0x0001 563 #define TS_RAIL_ORDER_ACTIVATE 0x0002 564 #define TS_RAIL_ORDER_SYSPARAM 0x0003 565 #define TS_RAIL_ORDER_SYSCOMMAND 0x0004 566 #define TS_RAIL_ORDER_HANDSHAKE 0x0005 567 #define TS_RAIL_ORDER_NOTIFY_EVENT 0x0006 568 #define TS_RAIL_ORDER_WINDOWMOVE 0x0008 569 #define TS_RAIL_ORDER_LOCALMOVESIZE 0x0009 570 #define TS_RAIL_ORDER_MINMAXINFO 0x000A 571 #define TS_RAIL_ORDER_CLIENTSTATUS 0x000B 572 #define TS_RAIL_ORDER_SYSMENU 0x000C 573 #define TS_RAIL_ORDER_LANGBARINFO 0x000D 574 #define TS_RAIL_ORDER_GET_APPID_REQ 0x000E 575 #define TS_RAIL_ORDER_GET_APPID_RESP 0x000F 576 #define TS_RAIL_ORDER_TASKBARINFO 0x0010 577 #define TS_RAIL_ORDER_LANGUAGEIMEINFO 0x0011 578 #define TS_RAIL_ORDER_COMPARTMENTINFO 0x0012 579 #define TS_RAIL_ORDER_HANDSHAKE_EX 0x0013 580 #define TS_RAIL_ORDER_ZORDER_SYNC 0x0014 581 #define TS_RAIL_ORDER_CLOAK 0x0015 582 #define TS_RAIL_ORDER_POWER_DISPLAY_REQUEST 0x0016 583 #define TS_RAIL_ORDER_SNAP_ARRANGE 0x0017 584 #define TS_RAIL_ORDER_GET_APPID_RESP_EX 0x0018 585 #define TS_RAIL_ORDER_EXEC_RESULT 0x0080 586 587 #ifdef __cplusplus 588 extern "C" 589 { 590 #endif 591 592 FREERDP_API BOOL rail_read_unicode_string(wStream* s, RAIL_UNICODE_STRING* unicode_string); 593 FREERDP_API BOOL utf8_string_to_rail_string(const char* string, 594 RAIL_UNICODE_STRING* unicode_string); 595 596 #ifdef __cplusplus 597 } 598 #endif 599 600 #endif /* FREERDP_RAIL_GLOBAL_H */ 601