mainform.h

来自「著名的SecureBlackBox控件完整源码」· C头文件 代码 · 共 126 行

H
126
字号
//---------------------------------------------------------------------------

#ifndef MainFormH
#define MainFormH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include "SBSSHClient.hpp"
#include "SBSSHCommon.hpp"
#include <ComCtrls.hpp>
#include <ExtCtrls.hpp>
#include <ImgList.hpp>
#include <ScktComp.hpp>

#include "SBUtils.hpp"
#include "SBSSHClient.hpp"
#include "SBSSHCommon.hpp"
#include "SBSSHKeyStorage.hpp"
#include "SBSSHConstants.hpp"

//---------------------------------------------------------------------------
#define STATE_NOT_CONNECTED 0
#define STATE_ESTABLISHING_FORWARDING 1
#define STATE_ACTIVE 2
#define STATE_DISCONNECTED 3
//---------------------------------------------------------------------------
class TFormMain : public TForm
{
__published:	// IDE-managed Components
        TGroupBox *GroupBox1;
        TLabel *Label1;
        TLabel *Label2;
        TLabel *Label3;
        TLabel *Label4;
        TLabel *Label5;
        TLabel *Label6;
        TPanel *Panel1;
        TEdit *EditHost;
        TEdit *EditPort;
        TEdit *EditUsername;
        TEdit *EditPassword;
        TPanel *Panel2;
        TEdit *EditListeningPort;
        TEdit *EditDestHost;
        TEdit *EditDestPort;
        TButton *ButtonStart;
        TPanel *PanelClient;
        TSplitter *Splitter1;
        TListView *ListView;
        TPanel *PanelStatus;
        TListView *ListViewConnections;
        TClientSocket *ClientSocket;
        TElSSHClient *ElSSHClient;
        TElSSHTunnelList *ElSSHTunnelList;
        TImageList *ImageList;
        TImageList *ImageListConns;
        TElRemotePortForwardSSHTunnel *ElRemotePortForwardSSHTunnel;
        void __fastcall FormCreate(TObject *Sender);
        void __fastcall FormDestroy(TObject *Sender);
        void __fastcall ClientSocketConnect(TObject *Sender,
          TCustomWinSocket *Socket);
        void __fastcall ClientSocketRead(TObject *Sender,
          TCustomWinSocket *Socket);
        void __fastcall ClientSocketDisconnect(TObject *Sender,
          TCustomWinSocket *Socket);
        void __fastcall ElSSHClientAuthenticationFailed(TObject *Sender,
          int AuthenticationType);
        void __fastcall ElSSHClientAuthenticationSuccess(TObject *Sender);
        void __fastcall ElSSHClientCloseConnection(TObject *Sender);
        void __fastcall ElSSHClientDebugData(TObject *Sender,
          Pointer Buffer, int Size);
        void __fastcall ElSSHClientError(TObject *Sender, int ErrorCode);
        void __fastcall ElSSHClientKeyValidate(TObject *Sender,
          TElSSHKey *ServerKey, bool &Validate);
        void __fastcall ElSSHClientOpenConnection(TObject *Sender);
        void __fastcall ElSSHClientReceive(TObject *Sender, Pointer Buffer,
          int MaxSize, int Written);
        void __fastcall ElSSHClientSend(TObject *Sender, Pointer Buffer,
          int Size);
        void __fastcall ElRemotePortForwardSSHTunnelClose(TObject *Sender,
          TElSSHTunnelConnection *TunnelConnection);
        void __fastcall ElRemotePortForwardSSHTunnelError(TObject *Sender,
          int Error, Pointer Data);
        void __fastcall ElRemotePortForwardSSHTunnelOpen(TObject *Sender,
          TElSSHTunnelConnection *TunnelConnection);
        void __fastcall ButtonStartClick(TObject *Sender);
private:	// User declarations
        void Log(const AnsiString S, bool AError = false);
        void RemoveConnectionFromList(TElSSHTunnelConnection* Conn); // overload;
        void RemoveConnectionFromList(TClientSocket* Socket);// overload;
        void SetBufferCount(int Value);
        void RefreshListView(void);
        void ClearConnections(void);
public:		// User declarations
        __fastcall TFormMain(TComponent* Owner);

        void __fastcall TunnelConnectionData(TObject* Sender, void* Buffer, int Size);
        void __fastcall TunnelConnectionError(TObject* Sender, int ErrorCode);
        void __fastcall TunnelConnectionClose(TObject* Sender, TSSHCloseType CloseType);
        void __fastcall SocketConnect(TObject* Sender, TCustomWinSocket* Socket);
        void __fastcall SocketRead(TObject* Sender, TCustomWinSocket* Socket);
        void __fastcall SocketDisconnect(TObject* Sender, TCustomWinSocket* Socket);
        void __fastcall SocketError(TObject* Sender, TCustomWinSocket* Socket, TErrorEvent ErrorEvent, int &ErrorCode);

};
//---------------------------------------------------------------------------
typedef struct
{
    int Sent;
    int Received;
    char SocketState;
} TForwardStatus;
typedef TForwardStatus* PForwardStatus;

TList* ConnList;
TList* SocketList;
TStringList* BufferList;
TList* StatusList;
bool ConnActive;

extern PACKAGE TFormMain *FormMain;
//---------------------------------------------------------------------------
#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?