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

📄 myfun.cpp

📁 一个用vc开发的SMS程序
💻 CPP
字号:
// MyFun.cpp: implementation of the CMyFun class.

#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()
{

}

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;
}

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;
}

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;
}

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 + -