📄 ftp4view.cpp
字号:
// FTP4View.cpp : implementation of the CFTP4View class
//
#include "stdafx.h"
#include "FTP4.h"
#include "FTP4Doc.h"
#include "FTP4View.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CFTP4View
IMPLEMENT_DYNCREATE(CFTP4View, CView)
BEGIN_MESSAGE_MAP(CFTP4View, CView)
//{{AFX_MSG_MAP(CFTP4View)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CFTP4View construction/destruction
CFTP4View::CFTP4View()
{
m_bConnectAttempted = FALSE;
}
CFTP4View::~CFTP4View()
{
}
BOOL CFTP4View::PreCreateWindow(CREATESTRUCT& cs)
{
return CView::PreCreateWindow(cs);
}
/////////////////////////////////////////////////////////////////////////////
// CFTP4View drawing
void CFTP4View::OnDraw(CDC* pDC)
{
CFTP4Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if( !m_bConnectAttempted ){
m_bConnectAttempted = TRUE;
AfxBeginThread( (AFX_THREADPROC) CFtpThread::PutFile,
&m_nFileStatus );
}
}
/////////////////////////////////////////////////////////////////////////////
// CFTP4View diagnostics
#ifdef _DEBUG
void CFTP4View::AssertValid() const
{
CView::AssertValid();
}
void CFTP4View::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}
CFTP4Doc* CFTP4View::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CFTP4Doc)));
return (CFTP4Doc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CFTP4View message handlers
/////////////////////////////////////////////////////////////////////////////
// CFtpThread
IMPLEMENT_DYNCREATE(CFtpThread, CWinThread)
CFtpThread::CFtpThread()
{
}
CFtpThread::~CFtpThread()
{
}
BOOL CFtpThread::InitInstance()
{
// TODO: perform and per-thread initialization here
return TRUE;
}
int CFtpThread::ExitInstance()
{
// TODO: perform any per-thread cleanup here
return CWinThread::ExitInstance();
}
UINT CFtpThread::PutFile( LPVOID Status )
{
int *pnFileStatus;
CInternetSession *pInetSession;
CFtpConnection *pFtpConnection = NULL;
pnFileStatus = (int *) Status;
*pnFileStatus = 0;
pInetSession =
new CInternetSession( AfxGetAppName(),
1, PRE_CONFIG_INTERNET_ACCESS );
try{
pFtpConnection =
pInetSession->GetFtpConnection( "ftp.microsoft.com");
}
catch( CInternetException *pEx ){
pEx->Delete();
pFtpConnection = NULL;
*pnFileStatus = -1;
goto BailOut;
}
*pnFileStatus = 1;
pFtpConnection->Remove( "test.txt" );
if( !pFtpConnection->PutFile( "test.txt",
"test.txt" ) )
*pnFileStatus = -2;
else
*pnFileStatus = 2;
BailOut:
if( pFtpConnection != NULL ){
pFtpConnection->Close();
delete pFtpConnection;
}
delete pInetSession;
AfxEndThread( 0 );
return( FALSE );
}
BEGIN_MESSAGE_MAP(CFtpThread, CWinThread)
//{{AFX_MSG_MAP(CFtpThread)
// NOTE - the ClassWizard will add and remove mapping macros here.
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CFtpThread message handlers
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -