Console.h 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  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. enum STDINOUT { OFF, BINARY, CHUNKED };
  25. STDINOUT OutputFormat; // since version 10
  26. STDINOUT InputFormat; // since version 10
  27. };
  28. struct TPrintEvent
  29. {
  30. wchar_t Message[10240]; // wide since version 4
  31. bool FromBeginning;
  32. bool Error; // since vesion 7
  33. };
  34. struct TInputEvent
  35. {
  36. bool Echo;
  37. bool Result;
  38. wchar_t Str[10240]; // wide since version 4
  39. unsigned int Timer; // since version 2
  40. };
  41. struct TChoiceEvent
  42. {
  43. wchar_t Options[64]; // wide since version 4
  44. int Cancel;
  45. int Break;
  46. int Result;
  47. int Timeouted; // since version 2
  48. unsigned int Timer; // since version 2
  49. bool Timeouting; // since version 4
  50. int Continue; // since version 9
  51. wchar_t Message[5120]; // since version 9
  52. };
  53. struct TTitleEvent
  54. {
  55. wchar_t Title[10240]; // wide since version 4
  56. };
  57. // Since version 6
  58. struct TProgressEvent
  59. {
  60. enum { COPY } Operation;
  61. enum { LOCAL, REMOTE } Side;
  62. wchar_t FileName[1024];
  63. wchar_t Directory[1024];
  64. unsigned int OverallProgress;
  65. unsigned int FileProgress;
  66. unsigned int CPS;
  67. bool Cancel; // since version 8
  68. };
  69. // Since version 10
  70. struct TTransferEvent
  71. {
  72. unsigned char Data[20480];
  73. unsigned int Len;
  74. bool Error; // TRANSFERIN only
  75. };
  76. size_t Size;
  77. int Version;
  78. enum { NONE, PRINT, INPUT, CHOICE, TITLE, INIT, PROGRESS, TRANSFEROUT, TRANSFERIN } Event;
  79. union
  80. {
  81. TPrintEvent PrintEvent;
  82. TInputEvent InputEvent;
  83. TChoiceEvent ChoiceEvent;
  84. TTitleEvent TitleEvent;
  85. TInitEvent InitEvent;
  86. TProgressEvent ProgressEvent;
  87. TTransferEvent TransferEvent;
  88. };
  89. };
  90. //---------------------------------------------------------------------------
  91. #endif // ConsoleH