mainform.h

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

H
153
字号
//---------------------------------------------------------------------------

#ifndef MainFormH
#define MainFormH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <Buttons.hpp>
#include <Dialogs.hpp>
#include <Grids.hpp>
#include <ScktComp.hpp>

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

#include "ProgressForm.h"

//---------------------------------------------------------------------------
#define FILE_BLOCK_SIZE                0x10000
#define STATE_OPEN_DIRECTORY_SENT      1
#define STATE_READ_DIRECTORY_SENT      2
#define STATE_CHANGE_DIR               3
#define STATE_MAKE_DIR                 4
#define STATE_RENAME                   5
#define STATE_REMOVE                   6
#define STATE_DOWNLOAD_OPEN            7
#define STATE_DOWNLOAD_RECEIVE         8
#define STATE_UPLOAD_OPEN              9
#define STATE_UPLOAD_SEND              10
#define STATE_CLOSE_HANDLE             11
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:	// IDE-managed Components
        TGroupBox *GroupBox1;
        TLabel *Label1;
        TLabel *Label2;
        TLabel *Label3;
        TLabel *lbPrivateKey;
        TSpeedButton *sbPrivateKey;
        TEdit *editHost;
        TEdit *editUserName;
        TEdit *editPassword;
        TEdit *edPrivateKey;
        TStringGrid *StringGrid1;
        TMemo *Memo1;
        TButton *Button2;
        TButton *Button3;
        TButton *Button4;
        TButton *Button5;
        TButton *Button6;
        TEdit *Edit4;
        TEdit *EditPath;
        TButton *btnUpdateFileInfo;
        TGroupBox *GroupBox2;
        TCheckBox *CheckBoxV3;
        TCheckBox *CheckBoxV4;
        TCheckBox *CheckBoxV2;
        TButton *btnConnect;
        TClientSocket *scktClient;
        TSaveDialog *SaveDialog1;
        TOpenDialog *OpenDialog1;
        TOpenDialog *OpenDialog;
        void __fastcall FormCreate(TObject *Sender);
        void __fastcall FormDestroy(TObject *Sender);
        void __fastcall scktClientConnect(TObject *Sender,
          TCustomWinSocket *Socket);
        void __fastcall scktClientDisconnect(TObject *Sender,
          TCustomWinSocket *Socket);
        void __fastcall scktClientRead(TObject *Sender,
          TCustomWinSocket *Socket);
        void __fastcall sbPrivateKeyClick(TObject *Sender);
        void __fastcall btnConnectClick(TObject *Sender);
        void __fastcall StringGrid1DblClick(TObject *Sender);
        void __fastcall StringGrid1MouseMove(TObject *Sender,
          TShiftState Shift, int X, int Y);
        void __fastcall Button2Click(TObject *Sender);
        void __fastcall Button3Click(TObject *Sender);
        void __fastcall Button4Click(TObject *Sender);
        void __fastcall Button5Click(TObject *Sender);
        void __fastcall Button6Click(TObject *Sender);
        void __fastcall btnUpdateFileInfoClick(TObject *Sender);
private:	// User declarations
        void __fastcall HandleSSHClientSend(TObject* Sender, void* Buffer, int Size);
        void __fastcall HandleSSHClientReceive(TObject* Sender, void* Buffer, int MaxSize, int &Written);
        void __fastcall HandleSSHClientOpenConnection(TObject* Sender);
        void __fastcall HandleSSHClientCloseConnection(TObject* Sender);
        void __fastcall HandleSSHClientAuthSuccess(TObject* Sender);
        void __fastcall HandleSSHClientAuthFailed(TObject* Sender, int AuthType);
        void __fastcall HandleSSHClientKeyValidate(TObject* Sender, TElSSHKey* ServerKey, bool &Validate);
        void __fastcall HandleSftpOpenConnection(TObject* Sender);
        void __fastcall HandleSftpCloseConnection(TObject* Sender);
        void __fastcall HandleSftpOpenFile(TObject* Sender, TSBSftpFileHandle Handle);
        void __fastcall HandleSftpError(TObject* Sender, int ErrorCode, const AnsiString Comment);
        void __fastcall HandleSftpSuccess(TObject* Sender, const AnsiString Comment);
        void __fastcall HandleSftpDirectoryListing(TObject* Sender, TList* Listing);
        void __fastcall HandleSftpData(TObject* Sender, void* Buffer, int Size);
        void __fastcall HandleSftpAbsolutePath(TObject* Sender, const AnsiString Path);
        void __fastcall HandleSftpFileAttributes(TObject* Sender, TElSftpFileAttributes* Attributes);
        void __fastcall ClearFileList(void);
public:		// User declarations
        __fastcall TForm1(TComponent* Owner);

        void CloseCurrentHandle(void);

        void Log(AnsiString  S);
        void BuildFileList(AnsiString Path);
        void OutputFileList(void);
        void ChangeDir(AnsiString Dir);
        void MakeDir(AnsiString Dir);
        void RenameFile(AnsiString OldName, AnsiString NewName);
        void DeleteDir(AnsiString Name);
        void DeleteFile(AnsiString Name);
        void DownloadFile(TElSftpFileInfo* Info, AnsiString LocalName);
        void UploadFile(AnsiString LocalFile);
        void WriteNextBlockToFile(void);
        AnsiString WritePermissions(TElSftpFileAttributes* Attributes);
        AnsiString FormatPath(AnsiString Path);
        void RequestAbsolutePath(AnsiString Path);
        void SetCellInfo(int Index, TElSftpFileInfo* Info);

};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;

TElSSHClient* SSHClient;
TElSSHTunnelList* TunnelList;
TElSubsystemSSHTunnel* SftpTunnel;
TElSftpClient* SftpClient;
TElSSHMemoryKeyStorage* KeyStorage;
int State;
TSBSftpFileHandle CurrentHandle;
TList* CurrentFileList;
AnsiString CurrentDir;
AnsiString  RelDir;
unsigned int CurrentFileOffset;
unsigned int CurrentFileSize;
//HANDLE CurrentFile;
TFileStream* CurrentFile = NULL;




//---------------------------------------------------------------------------
#endif

⌨️ 快捷键说明

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