Console.h 2.5 KB

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