⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ftp2view.cpp

📁 《Visual C++ Bible》或者说是《Visual C++ 宝典》的对应的源码文件
💻 CPP
字号:
// FTP2View.cpp : implementation of the CFTP2View class
//

#include "stdafx.h"
#include "FTP2.h"

#include "FTP2Doc.h"
#include "FTP2View.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CFTP2View

IMPLEMENT_DYNCREATE(CFTP2View, CView)

BEGIN_MESSAGE_MAP(CFTP2View, CView)
	//{{AFX_MSG_MAP(CFTP2View)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CFTP2View construction/destruction

CFTP2View::CFTP2View()
{

	m_pInetSession = NULL;
	m_pFtpConnection = NULL;
	m_bConnectAttempted = FALSE;

}

CFTP2View::~CFTP2View()
{

	if( m_pFtpConnection != NULL ){
		m_pFtpConnection->Close();
		delete m_pFtpConnection;
		}

	if( m_pInetSession != NULL )
		delete m_pInetSession;

}

BOOL CFTP2View::PreCreateWindow(CREATESTRUCT& cs)
{
	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CFTP2View drawing

void CFTP2View::OnDraw(CDC* pDC)
{
	CFTP2Doc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);

	if( !m_bConnectAttempted ){
		m_bConnectAttempted = TRUE;
		pDC->TextOut( 0, 0, "Attempting a connection", 23 );

		m_pInetSession =
			new CInternetSession( AfxGetAppName(),
			1, PRE_CONFIG_INTERNET_ACCESS );

		try{
			m_pFtpConnection =
			m_pInetSession->GetFtpConnection("ftp.microsoft.com");
			}

		catch( CInternetException *pEx ){
			TCHAR szError[1024];
			if( pEx->GetErrorMessage( szError, 1024 ) )
				pDC->TextOut( 0, 20, szError, strlen( szError ) );
			else
				pDC->TextOut( 0, 20,
					"There was a connection exception.", 33 );
			pEx->Delete();
			m_pFtpConnection = NULL;
			}

		if( m_pFtpConnection != NULL ){
			pDC->TextOut( 0, 20,
				"Retrieving 'disclaimer.txt'", 27 );
			remove( "disclaimer.txt" );
			if( !m_pFtpConnection->GetFile( "disclaimer.txt",
				"disclaimer.txt" ) )
				pDC->TextOut( 0, 40, "GetFile() error!", 16 );
			else
				pDC->TextOut( 0, 40, "GetFile() success!", 18 );
			}
		}

}

/////////////////////////////////////////////////////////////////////////////
// CFTP2View diagnostics

#ifdef _DEBUG
void CFTP2View::AssertValid() const
{
	CView::AssertValid();
}

void CFTP2View::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}

CFTP2Doc* CFTP2View::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CFTP2Doc)));
	return (CFTP2Doc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CFTP2View message handlers

⌨️ 快捷键说明

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