1
0

Console.h 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. //---------------------------------------------------------------------------
  2. #ifndef ConsoleH
  3. #define ConsoleH
  4. //---------------------------------------------------------------------------
  5. #define CONSOLE_MAPPING L"WinSCPConsoleMapping"
  6. #define CONSOLE_EVENT_REQUEST L"WinSCPConsoleEventRequest"
  7. #define CONSOLE_EVENT_RESPONSE L"WinSCPConsoleEventResponse"
  8. #define CONSOLE_EVENT_CANCEL L"WinSCPConsoleEventCancel"
  9. #define CONSOLE_JOB L"WinSCPConsoleJob"
  10. //---------------------------------------------------------------------------
  11. struct TConsoleCommStruct
  12. {
  13. enum TVersion
  14. {
  15. CurrentVersion = 0x000A,
  16. CurrentVersionConfirmed = 0x010A
  17. };
  18. struct TInitEvent
  19. {
  20. unsigned int InputType;
  21. unsigned int OutputType;
  22. bool WantsProgress; // since version 6
  23. bool UseStdErr; // since version 10
  24. bool BinaryOutput; // since version 10
  25. bool BinaryInput; // since version 10
  26. };
  27. struct TPrintEvent
  28. {
  29. wchar_t Message[10240]; // wide since version 4
  30. bool FromBeginning;
  31. bool Error; // since vesion 7
  32. };
  33. struct TInputEvent
  34. {
  35. bool Echo;
  36. bool Result;
  37. wchar_t Str[10240]; // wide since version 4
  38. unsigned int Timer; // since version 2
  39. };
  40. struct TChoiceEvent
  41. {
  42. wchar_t Options[64]; // wide since version 4
  43. int Cancel;
  44. int Break;
  45. int Result;
  46. int Timeouted; // since version 2
  47. unsigned int Timer; // since version 2
  48. bool Timeouting; // since version 4
  49. int Continue; // since version 9
  50. wchar_t Message[5120]; // since version 9
  51. };
  52. struct TTitleEvent
  53. {
  54. wchar_t Title[10240]; // wide since version 4
  55. };
  56. // Since version 6
  57. struct TProgressEvent
  58. {
  59. enum { COPY } Operation;
  60. enum { LOCAL, REMOTE } Side;
  61. wchar_t FileName[1024];
  62. wchar_t Directory[1024];
  63. unsigned int OverallProgress;
  64. unsigned int FileProgress;
  65. unsigned int CPS;
  66. bool Cancel; // since version 8
  67. };
  68. // Since version 10
  69. struct TTransferEvent
  70. {
  71. unsigned char Data[20480];
  72. size_t Len;
  73. bool Error;
  74. };
  75. size_t Size;
  76. int Version;
  77. enum { NONE, PRINT, INPUT, CHOICE, TITLE, INIT, PROGRESS, TRANSFEROUT, TRANSFERIN } Event;
  78. union
  79. {
  80. TPrintEvent PrintEvent;
  81. TInputEvent InputEvent;
  82. TChoiceEvent ChoiceEvent;
  83. TTitleEvent TitleEvent;
  84. TInitEvent InitEvent;
  85. TProgressEvent ProgressEvent;
  86. TTransferEvent TransferEvent;
  87. };
  88. };
  89. //---------------------------------------------------------------------------
  90. #endif // ConsoleH