一个ftp操作的例子:
156::EnterCriticalSection(&m_rCriticalSection);
157if(m_pInetSession==NULL)
158m_pInetSession=newCInternetSession(AfxGetAppName(),1,PRE_CONFIG_INTERNET_ACCESS);
159elseif(m_pFtpConnection!=NULL)
160m_pFtpConnection->Close();
161WORDTimeOut=gSysInfo.nTimeOut;
162m_pInetSession->SetOption(INTERNET_OPTION_CONNECT_TIMEOUT,&TimeOut,sizeof(TimeOut));
163m_pInetSession->SetOption(INTERNET_OPTION_CONTROL_RECEIVE_TIMEOUT,&TimeOut,sizeof(TimeOut));
164m_pInetSession->SetOption(INTERNET_OPTION_DATA_RECEIVE_TIMEOUT,&TimeOut,sizeof(TimeOut));
165
166WriteBaseMsg("FTP连接中,请稍后!\r\n",0);
167try168{
169m_pFtpConnection=m_pInetSession->GetFtpConnection(gSysInfo.szIp,gSysInfo.szUser,gSysInfo.szPass,gSysInfo.nPort);
170if(m_pFtpConnection!=NULL)
171{
172m_pFtpConnection->SetOption(INTERNET_OPTION_CONNECT_TIMEOUT,&TimeOut,sizeof(TimeOut));
173m_pFtpConnection->SetOption(INTERNET_OPTION_CONTROL_RECEIVE_TIMEOUT,&TimeOut,sizeof(TimeOut));
174m_pFtpConnection->SetOption(INTERNET_OPTION_DATA_RECEIVE_TIMEOUT,&TimeOut,sizeof(TimeOut));
175WriteBaseMsg("FTP连接成功\r\n",0);
176::LeaveCriticalSection(&m_rCriticalSection);
177returnTRUE;
178}179}180catch(CInternetException*pEx)
181{
182CStringstrErrorMsg;
183strErrorMsg="FTP连接不成功";
184TCHARszError[1024];
185if(pEx->GetErrorMessage(szError,1024))
186{
187strErrorMsg.Format("FTP连接不成功,错误代码:%s\r\n",szError);
188WriteBaseMsg(strErrorMsg.GetBuffer(),0);
189}190pEx->Delete();
191m_pFtpConnection=NULL;
192::LeaveCriticalSection(&m_rCriticalSection);
193returnFALSE;
194}195::LeaveCriticalSection(&m_rCriticalSection);
196returntrue;
197}