home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 March / Chip_2000-03_cd.bin / zkuste / Delphi / kompon / d345 / gui2console.EXE / lib / bcb3 / ConsoleIO.hpp < prev    next >
C/C++ Source or Header  |  1998-05-08  |  8KB  |  243 lines

  1. // Borland C++ Builder
  2. // Copyright (c) 1995, 1998 by Borland International
  3. // All rights reserved
  4.  
  5. // (DO NOT EDIT: machine generated header) 'ConsoleIO.pas' rev: 3.00
  6.  
  7. #ifndef ConsoleIOHPP
  8. #define ConsoleIOHPP
  9. #include <SyncObjs.hpp>
  10. #include <Dialogs.hpp>
  11. #include <Forms.hpp>
  12. #include <Controls.hpp>
  13. #include <Graphics.hpp>
  14. #include <Classes.hpp>
  15. #include <SysUtils.hpp>
  16. #include <Messages.hpp>
  17. #include <Windows.hpp>
  18. #include <SysInit.hpp>
  19. #include <System.hpp>
  20.  
  21. //-- user supplied -----------------------------------------------------------
  22.  
  23. namespace Consoleio
  24. {
  25. //-- type declarations -------------------------------------------------------
  26. enum TProcessState { psRunning, psTimeOut, psFinished };
  27.  
  28. enum TBufferSize { bs256, bs512, bs1k, bs2k, bs4k, bs8k };
  29.  
  30. enum TPipeSize { ps1k, ps2k, ps4k, ps8k, ps16k, ps32k, ps64k, ps96K, ps128k, ps256k };
  31.  
  32. typedef int TABufferSize[6];
  33.  
  34. typedef int TAPipeSize[10];
  35.  
  36. typedef Word TTimeOutDelay;
  37.  
  38. typedef char TBuffer[1];
  39.  
  40. typedef TBuffer *pTBuffer;
  41.  
  42. enum TAppType { at16bit, at32bit, atDontCare };
  43.  
  44. typedef void __fastcall (__closure *TStartEvent)(System::TObject* Sender, const System::AnsiString Command
  45.     );
  46.  
  47. typedef void __fastcall (__closure *TDoneEvent)(System::TObject* Sender);
  48.  
  49. typedef void __fastcall (__closure *TSendLine)(System::TObject* Sender, const System::AnsiString Line
  50.     );
  51.  
  52. typedef void __fastcall (__closure *TError)(System::TObject* Sender, const System::AnsiString Error)
  53.     ;
  54.  
  55. typedef void __fastcall (__closure *TTimeOut)(System::TObject* Sender, bool &Kill);
  56.  
  57. typedef void __fastcall (__closure *TPromptEvent)(System::TObject* Sender, const System::AnsiString 
  58.     Line);
  59.  
  60. typedef void __fastcall (__closure *TStatusEvent)(System::TObject* Sender, const System::AnsiString 
  61.     Status);
  62.  
  63. typedef void __fastcall (__closure *TPreTerminateEvent)(System::TObject* Sender);
  64.  
  65. struct TConsoleProperties
  66. {
  67.     TTimeOutDelay FTimeOutDelay;
  68.     TPipeSize FPipeSize;
  69.     TBufferSize FBufferSize;
  70.     bool FAutoTerminate;
  71.     System::AnsiString FLogFile;
  72.     System::AnsiString FEnvironment;
  73.     System::AnsiString FApp;
  74.     TAppType FAppType;
  75.     System::AnsiString FCommand;
  76.     System::AnsiString FPrompt;
  77.     int FPromptLength;
  78.     System::AnsiString FHomeDir;
  79.     TThreadPriority FPriority;
  80. } ;
  81.  
  82. struct TConsoleEvents
  83. {
  84.     TStartEvent FStart;
  85.     TDoneEvent FDone;
  86.     TSendLine FSendLine;
  87.     TError FError;
  88.     TStatusEvent FStatus;
  89.     TTimeOut FTimeOut;
  90.     TAppType FAppType;
  91.     TPromptEvent FPromptEvent;
  92.     TPreTerminateEvent FPreTerminate;
  93. } ;
  94.  
  95. class DELPHICLASS TLogFile;
  96. class PASCALIMPLEMENTATION TLogFile : public Classes::TFileStream 
  97. {
  98.     typedef Classes::TFileStream inherited;
  99.     
  100. public:
  101.     void __fastcall WriteString(const System::AnsiString Str);
  102. public:
  103.     /* TFileStream.Create */ __fastcall TLogFile(const System::AnsiString FileName, Word Mode) : Classes::
  104.         TFileStream(FileName, Mode) { }
  105.     /* TFileStream.Destroy */ __fastcall virtual ~TLogFile(void) { }
  106.     
  107. };
  108.  
  109. class DELPHICLASS TLineStream;
  110. class PASCALIMPLEMENTATION TLineStream : public Classes::TMemoryStream 
  111. {
  112.     typedef Classes::TMemoryStream inherited;
  113.     
  114. protected:
  115.     char __fastcall GetChar(int Index);
  116.     void __fastcall SetChar(int Index, char C);
  117.     
  118. public:
  119.     __property char Chr[int Index] = {read=GetChar, write=SetChar};
  120. public:
  121.     /* TMemoryStream.Destroy */ __fastcall virtual ~TLineStream(void) { }
  122.     
  123. public:
  124.     /* TObject.Create */ __fastcall TLineStream(void) : Classes::TMemoryStream() { }
  125.     
  126. };
  127.  
  128. class DELPHICLASS TConsoleThread;
  129. class DELPHICLASS TGUI2Console;
  130. class PASCALIMPLEMENTATION TConsoleThread : public Classes::TThread 
  131. {
  132.     typedef Classes::TThread inherited;
  133.     
  134. private:
  135.     TConsoleProperties FCP;
  136.     TConsoleEvents FCE;
  137.     System::TObject* FCO;
  138.     bool FAtPrompt;
  139.     int hInputRead;
  140.     int hInputWrite;
  141.     int hOutputRead;
  142.     int hOutputWrite;
  143.     _PROCESS_INFORMATION pi;
  144.     TLineStream* FStream;
  145.     Classes::TStringList* List;
  146.     System::AnsiString FLine;
  147.     _SECURITY_DESCRIPTOR sd;
  148.     _SECURITY_ATTRIBUTES sa;
  149.     _SECURITY_ATTRIBUTES *lpsa;
  150.     _STARTUPINFOA si;
  151.     int Timer;
  152.     TBuffer *FBuffer;
  153.     int Flag;
  154.     TLogFile* FLogFile;
  155.     bool FFreed;
  156.     int __fastcall WaitForSingleObject(int Handle);
  157.     void __fastcall CheckSecurity(void);
  158.     void __fastcall CreateProcess(void);
  159.     void __fastcall CloseHandles(void);
  160.     void __fastcall RunPipe(void);
  161.     void __fastcall TerminateProcess(const System::AnsiString Msg);
  162.     
  163. protected:
  164.     System::AnsiString Message;
  165.     void __fastcall DoStart(void);
  166.     void __fastcall DoDone(void);
  167.     void __fastcall DoPreTerminate(void);
  168.     void __fastcall SendLine(void);
  169.     void __fastcall DoError(void);
  170.     void __fastcall DoTimeOut(void);
  171.     void __fastcall DoStatus(void);
  172.     void __fastcall DoPrompt(void);
  173.     void __fastcall WriteBuffer(int Count);
  174.     System::AnsiString __fastcall Cmd();
  175.     
  176. public:
  177.     __fastcall TConsoleThread(TGUI2Console* Console);
  178.     virtual void __fastcall Execute(void);
  179.     __fastcall virtual ~TConsoleThread(void);
  180. public:
  181.     /* TThread.Create */ __fastcall TConsoleThread(bool CreateSuspended) : Classes::TThread(CreateSuspended
  182.         ) { }
  183.     
  184. };
  185.  
  186. class PASCALIMPLEMENTATION TGUI2Console : public Classes::TComponent 
  187. {
  188.     typedef Classes::TComponent inherited;
  189.     
  190. private:
  191.     TConsoleProperties FCP;
  192.     TConsoleEvents FCE;
  193.     TConsoleThread* FConsoleThread;
  194.     void __fastcall Terminate(System::TObject* Sender);
  195.     void __fastcall SetPrompt(System::AnsiString P);
  196.     
  197. public:
  198.     void __fastcall Start(void);
  199.     __fastcall virtual TGUI2Console(Classes::TComponent* AOwner);
  200.     __fastcall virtual ~TGUI2Console(void);
  201.     void __fastcall Stop(void);
  202.     void __fastcall Write(System::AnsiString Buffer);
  203.     void __fastcall WriteLN(System::AnsiString Buffer);
  204.     
  205. __published:
  206.     __property System::AnsiString Application = {read=FCP.FApp, write=FCP.FApp};
  207.     __property TAppType AppType = {read=FCP.FAppType, write=FCP.FAppType, nodefault};
  208.     __property System::AnsiString Environment = {read=FCP.FEnvironment, write=FCP.FEnvironment};
  209.     __property System::AnsiString Command = {read=FCP.FCommand, write=FCP.FCommand};
  210.     __property System::AnsiString HomeDirectory = {read=FCP.FHomeDir, write=FCP.FHomeDir};
  211.     __property System::AnsiString LogFile = {read=FCP.FLogFile, write=FCP.FLogFile};
  212.     __property System::AnsiString Prompt = {read=FCP.FPrompt, write=SetPrompt};
  213.     __property bool AutoTerminate = {read=FCP.FAutoTerminate, write=FCP.FAutoTerminate, nodefault};
  214.     __property TPipeSize PipeSize = {read=FCP.FPipeSize, write=FCP.FPipeSize, nodefault};
  215.     __property TBufferSize BufferSize = {read=FCP.FBufferSize, write=FCP.FBufferSize, nodefault};
  216.     __property TTimeOutDelay TimeOutDelay = {read=FCP.FTimeOutDelay, write=FCP.FTimeOutDelay, nodefault
  217.         };
  218.     __property Classes::TThreadPriority Priority = {read=FCP.FPriority, write=FCP.FPriority, nodefault}
  219.         ;
  220.     __property TStartEvent OnStart = {read=FCE.FStart, write=FCE.FStart};
  221.     __property TDoneEvent OnDone = {read=FCE.FDone, write=FCE.FDone};
  222.     __property TSendLine OnLine = {read=FCE.FSendLine, write=FCE.FSendLine};
  223.     __property TError OnError = {read=FCE.FError, write=FCE.FError};
  224.     __property TTimeOut OnTimeOut = {read=FCE.FTimeOut, write=FCE.FTimeOut};
  225.     __property TStatusEvent OnStatus = {read=FCE.FStatus, write=FCE.FStatus};
  226.     __property TPromptEvent OnPrompt = {read=FCE.FPromptEvent, write=FCE.FPromptEvent};
  227.     __property TPreTerminateEvent OnPreTerminate = {read=FCE.FPreTerminate, write=FCE.FPreTerminate};
  228. };
  229.  
  230. //-- var, const, procedure ---------------------------------------------------
  231. #define CR (char)(13)
  232. #define LF (char)(10)
  233. #define Space (char)(32)
  234. #define CRLF "\r\n"
  235. extern PACKAGE void __fastcall Register(void);
  236.  
  237. }    /* namespace Consoleio */
  238. #if !defined(NO_IMPLICIT_NAMESPACE_USE)
  239. using namespace Consoleio;
  240. #endif
  241. //-- end unit ----------------------------------------------------------------
  242. #endif    // ConsoleIO
  243.