📄 myfun.cpp
字号:
// MyFun.cpp: implementation of the CMyFun class.
// 作者:依星(airen3339@163.com)
// 日期:2005.9
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "..\MyUpdate.h"
#include "MyFun.h"
#include "Wininet.h"
#include "Mmsystem.h"
#include "Windows.h"
#include "afxsock.h"
#include <afxinet.h>
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CMyFun::CMyFun()
{
}
CMyFun::~CMyFun()
{
}
//////////////////////////////////////////////////////////////////////////////
//功能:从网上下载文件并保存到本地
//作者:依星(airen3339@163.com)
//日期:2005.9
/////////////////////////////////////////////////////////////////////////////
int CMyFun::InternetGetFile(CString szUrl, CString szFileName)
{
DWORD dwFlags;
InternetGetConnectedState(&dwFlags, 0);
CHAR strAgent[64];
memset(strAgent,0,sizeof(strAgent));
sprintf(strAgent, "Agent%ld", timeGetTime());
HINTERNET hOpen;
if(!(dwFlags & INTERNET_CONNECTION_PROXY))
hOpen = InternetOpenA(strAgent, INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY, NULL, NULL, 0);
else
hOpen = InternetOpenA(strAgent, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
if(!hOpen)
{
return -1;
}
DWORD dwSize;
CHAR szHead[] = "Accept: */*\r\n\r\n";
VOID* szTemp[16384];
HINTERNET hConnect;
CFile file;
if ( !(hConnect = InternetOpenUrlA ( hOpen, szUrl, szHead,
lstrlenA (szHead), INTERNET_FLAG_DONT_CACHE | INTERNET_FLAG_PRAGMA_NOCACHE | INTERNET_FLAG_RELOAD, 0)))
{
InternetCloseHandle(hOpen);
return -1;
}
if (file.Open(szFileName,CFile::modeWrite|CFile::modeCreate)==FALSE )
{
return -1;
}
DWORD dwByteToRead = 0;
DWORD dwSizeOfRq = 4;
DWORD dwBytes = 0;
if (!HttpQueryInfo(hConnect, HTTP_QUERY_CONTENT_LENGTH | HTTP_QUERY_FLAG_NUMBER,
(LPVOID)&dwByteToRead, &dwSizeOfRq, NULL))
{
dwByteToRead = 0;
}
memset(szTemp,0,sizeof(szTemp));
do
{
if (!InternetReadFile (hConnect, szTemp, 16384, &dwSize))
{
file.Close();
return -1;
}
if (dwSize==0)
break;
else
file.Write(szTemp,dwSize);
}while (TRUE);
file.Close();
InternetCloseHandle(hConnect);
InternetCloseHandle(hOpen);
return 0;
}
//////////////////////////////////////////////////////////////////////////////
//功能:从网上数据
//作者:依星(airen3339@163.com)
//日期:2005.9
/////////////////////////////////////////////////////////////////////////////
CString CMyFun::InternetGetInfo(CString szUrl)
{
DWORD dwFlags;
InternetGetConnectedState(&dwFlags, 0);
CString reValue,strContent;
reValue=_T("Error");
CHAR strAgent[64];
memset(strAgent,0,sizeof(strAgent));
sprintf(strAgent, "Agent%ld", timeGetTime());
HINTERNET hOpen;
if(!(dwFlags & INTERNET_CONNECTION_PROXY))
hOpen = InternetOpenA(strAgent, INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY, NULL, NULL, 0);
else
hOpen = InternetOpenA(strAgent, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
if(!hOpen)
{
return reValue;
}
DWORD dwSize;
CHAR szHead[] = "Accept: */*\r\n\r\n";
VOID* szTemp[16384];
HINTERNET hConnect;
if ( !(hConnect = InternetOpenUrlA ( hOpen, szUrl, szHead,
lstrlenA (szHead), INTERNET_FLAG_DONT_CACHE | INTERNET_FLAG_PRAGMA_NOCACHE | INTERNET_FLAG_RELOAD, 0)))
{
InternetCloseHandle(hOpen);
return reValue;
}
DWORD dwByteToRead = 0;
DWORD dwSizeOfRq = 4;
DWORD dwBytes = 0;
CString strInfoTemp;
if (!HttpQueryInfo(hConnect, HTTP_QUERY_CONTENT_LENGTH | HTTP_QUERY_FLAG_NUMBER,
(LPVOID)&dwByteToRead, &dwSizeOfRq, NULL))
{
dwByteToRead = 0;
}
memset(szTemp,0,sizeof(szTemp));
do
{
if (!InternetReadFile (hConnect, szTemp, 16384, &dwSize))
{
return reValue;
}
if (dwSize==0)
{
break;
}
else
{
strInfoTemp.Format("%s",szTemp);
strContent+=strInfoTemp;
}
}while (TRUE);
InternetCloseHandle(hConnect);
InternetCloseHandle(hOpen);
return strContent;
}
//////////////////////////////////////////////////////////////////////////////
//功能:比较版本号
//作者:依星(airen3339@163.com)
//日期:2005.9
/////////////////////////////////////////////////////////////////////////////
BOOL CMyFun::TestVersion(CString strOldVersion, CString strNewVersion)
{
int iOldPos1,iOldPos2,iOld,iNew,iPos1,iPos2;
CString strOldVer,strNewVer;
BOOL bHaveNewVersion=FALSE;
//只比较前两位
iOldPos1=strOldVersion.Find(".");
iOldPos2=strOldVersion.Find(".",iOldPos1+1);
iPos1=strNewVersion.Find(".");
iPos2=strNewVersion.Find(".",iPos1+1);
strOldVer=strOldVersion.Mid(0,iOldPos1);
strNewVer=strNewVersion.Mid(0,iPos1);
iOld=atoi(strOldVer);
iNew=atoi(strNewVer);
if(iNew>iOld)
{
bHaveNewVersion=TRUE;
}else if(iNew==iOld)
{
iOldPos2=strOldVersion.Find(".",iOldPos1+1);
iPos2=strNewVersion.Find(".",iPos1+1);
strOldVer=strOldVersion.Mid(iOldPos1+1,iOldPos2-iPos1-1);
strNewVer=strNewVersion.Mid(iPos1+1,iPos2-iPos1-1);
iOld=atoi(strOldVer);
iNew=atoi(strNewVer);
if(iNew>iOld)
{
bHaveNewVersion=TRUE;
}
}
return bHaveNewVersion;
}
//////////////////////////////////////////////////////////////////////////////
//功能:获得本文件的路径
//作者:依星(airen3339@163.com)
//日期:2005.9
/////////////////////////////////////////////////////////////////////////////
CString CMyFun::GetFileFullPath()
{
TCHAR szPath[MAX_PATH];
CString strError;
strError=_T("Error");
if( !GetModuleFileName( NULL, szPath, MAX_PATH ) )
{
return strError;
}
return (CString)szPath;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -