소스 검색

移动CharEncoding和CurlClient到common文件夹中。

Jeff 6 년 전
부모
커밋
eb75a935df
4개의 변경된 파일0개의 추가작업 그리고 1443개의 파일을 삭제
  1. 0 739
      source/hook/WeChats/CharEncoding.cpp
  2. 0 97
      source/hook/WeChats/CharEncoding.h
  3. 0 530
      source/hook/WeChats/CurlClient.cpp
  4. 0 77
      source/hook/WeChats/CurlClient.h

+ 0 - 739
source/hook/WeChats/CharEncoding.cpp

@@ -1,739 +0,0 @@
-#include "StdAfx.h"
-#include "CharEncoding.h"
-
-WCHAR* CharEncoding::ASCII2UNICODE(IN LPCCH lpASCIIStr)
-{
-	if ( lpASCIIStr == NULL )
-		return NULL;
-
-	// 获取宽字符字节数;
-	int cchWideChar  = MultiByteToWideChar(CP_ACP, 0, lpASCIIStr, -1, NULL, 0);
-	if ( cchWideChar == 0)
-		return NULL;
-
-	// 转换成宽字符串;
-	WCHAR *pWideChar = new WCHAR[cchWideChar + 1];
-	memset(pWideChar, 0 , sizeof(WCHAR)*(cchWideChar + 1));
-	int nWriteNum = MultiByteToWideChar(CP_ACP, 0, lpASCIIStr, -1, pWideChar, cchWideChar );
-	if ( nWriteNum != cchWideChar)
-	{ 
-		if (pWideChar) 
-			delete []pWideChar;
-		return NULL;
-	}
-
-	return pWideChar;
-}
-
-BOOL CharEncoding::ASCII2UNICODE(IN LPCCH lpASCIIStr, OUT PWCH pUNICODEStr, IN CONST INT& nUNICODEStrLen)
-{
-	if ( lpASCIIStr == NULL )
-		return FALSE;
-
-	// 获取宽字符字节数;
-	int cchWideChar  = MultiByteToWideChar(CP_ACP, 0, lpASCIIStr, -1, NULL, 0);
-	if ( cchWideChar == 0 || cchWideChar >= nUNICODEStrLen)
-		return FALSE;
-
-	// 转换成宽字符串;
-	memset(pUNICODEStr, 0 , sizeof(WCHAR)*nUNICODEStrLen);
-	int nWriteNum = MultiByteToWideChar(CP_ACP, 0, lpASCIIStr, -1, pUNICODEStr, cchWideChar );
-	if ( nWriteNum != cchWideChar)
-		return FALSE;
-
-	return TRUE;
-}
-
-BOOL CharEncoding::ASCII2UNICODE(IN LPCCH lpASCIIStr, OUT wstring &strResult)
-{
-	if ( lpASCIIStr == NULL )
-		return FALSE;
-
-	// 获取宽字符字节数;
-	int cchWideChar  = MultiByteToWideChar(CP_ACP, 0, lpASCIIStr, -1, NULL, 0);
-	if ( cchWideChar == 0 )
-		return FALSE;
-
-	// 转换成宽字符串;
-	WCHAR *pResult = new WCHAR[cchWideChar];
-	memset(pResult, 0 , sizeof(WCHAR)*cchWideChar);
-	int nWriteNum = MultiByteToWideChar(CP_ACP, 0, lpASCIIStr, -1, pResult, cchWideChar );
-	if ( nWriteNum != cchWideChar)
-		return FALSE;
-
-	strResult = pResult;
-	if ( pResult )
-		delete[] pResult;
-
-	return TRUE;
-}
-
-CHAR* CharEncoding::UNICODE2ASCII(IN LPWCH lpUNICODEStr)
-{
-	if ( lpUNICODEStr == NULL )
-		return NULL;
-
-	// 获取多字节字符字节数;
-	int cbMultiByte = WideCharToMultiByte(CP_OEMCP, 0, lpUNICODEStr, -1, NULL, 0, NULL, NULL);
-	if ( cbMultiByte == 0 )
-		return NULL;
-
-	// 转换成多字节字符;
-	CHAR *pMultiByteStr = new CHAR[cbMultiByte+1];
-	memset(pMultiByteStr, 0, cbMultiByte + 1);
-	int nWriteNum = WideCharToMultiByte(CP_OEMCP, 0, lpUNICODEStr, -1, pMultiByteStr, cbMultiByte, NULL, NULL);
-	if (nWriteNum != cbMultiByte)
-	{
-		if (pMultiByteStr) 
-			delete []pMultiByteStr;
-		return NULL;
-	}
-
-	return pMultiByteStr;
-}
-
-BOOL CharEncoding::UNICODE2ASCII(IN LPWCH lpUNICODEStr, OUT LPCH pASCIIStr, IN CONST INT& nASCIIStrLen)
-{
-	if ( lpUNICODEStr == NULL )
-		return FALSE;
-
-	// 获取多字节字符字节数;
-	int cbMultiByte = WideCharToMultiByte(CP_OEMCP, 0, lpUNICODEStr, -1, NULL, 0, NULL, NULL);
-	if ( cbMultiByte == 0 || cbMultiByte >= nASCIIStrLen )
-		return FALSE;
-
-	// 转换成多字节字符;
-	memset((void*)pASCIIStr, 0, nASCIIStrLen);
-	int nWriteNum = WideCharToMultiByte(CP_OEMCP, 0, lpUNICODEStr, -1, pASCIIStr, cbMultiByte, NULL, NULL);
-	if (nWriteNum != cbMultiByte)
-	{
-		return FALSE;
-	}
-
-	return TRUE;
-}
-
-BOOL CharEncoding::UNICODE2ASCII(IN LPWCH lpUNICODEStr, OUT string &strResult)
-{
-	if ( lpUNICODEStr == NULL )
-		return FALSE;
-
-	// 获取多字节字符字节数;
-	int cbMultiByte = WideCharToMultiByte(CP_OEMCP, 0, lpUNICODEStr, -1, NULL, 0, NULL, NULL);
-	if ( cbMultiByte == 0 )
-		return FALSE;
-
-	// 转换成多字节字符;
-	CHAR* pResult = new CHAR[cbMultiByte];
-	memset(pResult, 0, cbMultiByte);
-	int nWriteNum = WideCharToMultiByte(CP_OEMCP, 0, lpUNICODEStr, -1, pResult, cbMultiByte, NULL, NULL);
-	if (nWriteNum != cbMultiByte)
-		return FALSE;
-
-	strResult = pResult;
-	if ( pResult )
-		delete[] pResult;
-
-	return TRUE;
-}
-
-CHAR* CharEncoding::UNICODE2UTF8(IN LPWCH lpUNICODEStr)
-{
-	if ( lpUNICODEStr == NULL )
-		return NULL;
-
-	// 获取多字节字符字节数;
-	int cbMultiByte = WideCharToMultiByte(CP_UTF8, 0, lpUNICODEStr, -1, NULL, 0, NULL, NULL);
-	if ( cbMultiByte == 0 )
-		return NULL;
-
-	// 转换成多字节字符;
-	CHAR* pMultiByteStr = new CHAR[cbMultiByte+1];
-	memset(pMultiByteStr, 0, cbMultiByte + 1);
-	int nWriteNum = WideCharToMultiByte(CP_UTF8, 0, lpUNICODEStr, -1, pMultiByteStr, cbMultiByte, NULL, NULL);
-	if (nWriteNum != cbMultiByte)
-	{
-		if (pMultiByteStr) 
-			delete []pMultiByteStr;
-		return NULL;
-	}
-
-	return pMultiByteStr;
-}
-
-BOOL CharEncoding::UNICODE2UTF8(IN LPWCH lpUNICODEStr, OUT LPCH pUTF8Str, IN CONST INT& nUTF8StrLen)
-{
-	if ( lpUNICODEStr == NULL )
-		return FALSE;
-
-	// 获取多字节字符字节数;
-	int cbMultiByte = WideCharToMultiByte(CP_UTF8, 0, lpUNICODEStr, -1, NULL, 0, NULL, NULL);
-	if ( cbMultiByte == 0 || cbMultiByte >= nUTF8StrLen )
-		return FALSE;
-
-	// 转换成多字节字符;
-	memset(pUTF8Str, 0, nUTF8StrLen);
-	int nWriteNum = WideCharToMultiByte(CP_UTF8, 0, lpUNICODEStr, -1, pUTF8Str, cbMultiByte, NULL, NULL);
-	if (nWriteNum != cbMultiByte)
-	{
-		return FALSE;
-	}
-
-	return TRUE;
-}
-
-BOOL CharEncoding::UNICODE2UTF8(IN LPWCH lpUNICODEStr, OUT string &strResult)
-{
-	if ( lpUNICODEStr == NULL )
-		return FALSE;
-
-	// 获取多字节字符字节数;
-	int cbMultiByte = WideCharToMultiByte(CP_UTF8, 0, lpUNICODEStr, -1, NULL, 0, NULL, NULL);
-	if ( cbMultiByte == 0 )
-		return FALSE;
-
-	// 转换成多字节字符;
-	CHAR *pResult = new CHAR[cbMultiByte];
-	memset(pResult, 0, cbMultiByte);
-	int nWriteNum = WideCharToMultiByte(CP_UTF8, 0, lpUNICODEStr, -1, pResult, cbMultiByte, NULL, NULL);
-	if (nWriteNum != cbMultiByte)
-		return FALSE;
-
-	strResult = pResult;
-	if ( pResult )
-		delete[] pResult;
-
-	return TRUE;
-}
-
-CHAR* CharEncoding::ASCII2UTF8(IN LPCCH lpASCIIStr)
-{
-	// 将ASCII字符串转成UNICODE字符串;
-	WCHAR* pWideChar = ASCII2UNICODE(lpASCIIStr);
-	if ( pWideChar == NULL )
-		return NULL;
-
-	// 再将UICODE转成UTF8;
-	CHAR* pUTF8 = UNICODE2UTF8(pWideChar);
-	if ( pWideChar )
-		delete []pWideChar;
-
-	return pUTF8;
-}
-
-BOOL CharEncoding::ASCII2UTF8(IN LPCCH lpASCIIStr, OUT LPCH pUTF8Str, IN CONST INT& nUTF8StrLen)
-{
-	// 将ASCII字符串转成UNICODE字符串;
-	WCHAR* pWideChar = ASCII2UNICODE(lpASCIIStr);
-	if ( pWideChar == NULL )
-		return FALSE;
-
-	// 再将UICODE转成UTF8;
-	BOOL bResult = UNICODE2UTF8(pWideChar, pUTF8Str, nUTF8StrLen);
-
-	if ( pWideChar )
-		delete []pWideChar;
-
-	return bResult;
-}
-
-BOOL CharEncoding::ASCII2UTF8(IN LPCCH lpASCIIStr, OUT string &strResult)
-{
-	// 将ASCII字符串转成UNICODE字符串;
-	WCHAR* pWideChar = ASCII2UNICODE(lpASCIIStr);
-	if ( pWideChar == NULL )
-		return FALSE;
-
-	// 再将UICODE转成UTF8;
-	BOOL bResult = UNICODE2UTF8(pWideChar, strResult);
-
-	if ( pWideChar )
-		delete []pWideChar;
-
-	return bResult;
-}
-
-WCHAR* CharEncoding::UTF82UNICODE(IN LPCCH lpUTF8)
-{
-	if ( lpUTF8 == NULL )
-		return NULL;
-
-	// 获取unicode字符数;
-	int cchWideChar = MultiByteToWideChar(CP_UTF8, 0, lpUTF8, -1, NULL, 0);
-	if ( cchWideChar == 0)
-		return NULL;
-
-	// 转换成宽字符串;
-	WCHAR *pWideChar = new WCHAR[cchWideChar + 1];
-	memset(pWideChar, 0 , sizeof(WCHAR)*(cchWideChar + 1));
-	int nWriteNum = MultiByteToWideChar(CP_UTF8, 0, lpUTF8, -1, pWideChar, cchWideChar );
-	if ( nWriteNum != cchWideChar)
-	{ 
-		if (pWideChar) 
-			delete []pWideChar;
-		return NULL;
-	}
-
-	return pWideChar;
-}
-
-BOOL CharEncoding::UTF82UNICODE(IN LPCCH lpUTF8, OUT PWCH pUNICODEStr, IN CONST INT& nUNICODEStrLen)
-{
-	if ( lpUTF8 == NULL )
-		return FALSE;
-
-	// 获取宽字符字节数;
-	int cchWideChar  = MultiByteToWideChar(CP_UTF8, 0, lpUTF8, -1, NULL, 0);
-	if ( cchWideChar == 0 || cchWideChar >= nUNICODEStrLen)
-		return FALSE;
-
-	// 转换成宽字符串;
-	memset(pUNICODEStr, 0 , sizeof(WCHAR)*nUNICODEStrLen);
-	int nWriteNum = MultiByteToWideChar(CP_UTF8, 0, lpUTF8, -1, pUNICODEStr, cchWideChar );
-	if ( nWriteNum != cchWideChar)
-		return FALSE;
-
-	return TRUE;
-}
-
-BOOL CharEncoding::UTF82UNICODE(IN LPCCH lpUTF8, OUT wstring &strResult)
-{
-	if ( lpUTF8 == NULL )
-		return FALSE;
-
-	// 获取宽字符字节数;
-	int cchWideChar  = MultiByteToWideChar(CP_UTF8, 0, lpUTF8, -1, NULL, 0);
-	if ( cchWideChar == 0 )
-		return FALSE;
-
-	// 转换成宽字符串;
-	WCHAR* pResult = new WCHAR[cchWideChar];
-	memset(pResult, 0 , sizeof(WCHAR)*cchWideChar);
-	int nWriteNum = MultiByteToWideChar(CP_UTF8, 0, lpUTF8, -1, pResult, cchWideChar );
-	if ( nWriteNum != cchWideChar)
-		return FALSE;
-
-	strResult = pResult;
-	if ( pResult )
-		delete[] pResult;
-
-	return TRUE;
-}
-
-CHAR* CharEncoding::UTF82ASCII(IN LPCCH lpUTF8)
-{
-	// 将ASCII字符串转成UNICODE字符串;
-	WCHAR* pWideChar = UTF82UNICODE(lpUTF8);
-	if ( pWideChar == NULL )
-		return NULL;
-
-	// 再将UICODE转成UTF8;
-	CHAR* pUTF8 = UNICODE2ASCII(pWideChar);
-	if ( pWideChar )
-		delete []pWideChar;
-
-	return pUTF8;
-}
-
-BOOL CharEncoding::UTF82ASCII(IN LPCCH lpUTF8, OUT LPCH pASCIIStr, IN CONST INT& nASCIIStrLen)
-{
-	// 将ASCII字符串转成UNICODE字符串;
-	WCHAR* pWideChar = UTF82UNICODE(lpUTF8);
-	if ( pWideChar == NULL )
-		return FALSE;
-
-	// 再将UICODE转成UTF8;
-	BOOL bResult = UNICODE2ASCII(pWideChar, pASCIIStr, nASCIIStrLen);
-
-	if ( pWideChar )
-		delete []pWideChar;
-
-	return bResult;
-}
-
-BOOL CharEncoding::UTF82ASCII(IN LPCCH lpUTF8, OUT string &strResult)
-{
-	// 将ASCII字符串转成UNICODE字符串;
-	WCHAR* pWideChar = UTF82UNICODE(lpUTF8);
-	if ( pWideChar == NULL )
-		return FALSE;
-
-	// 再将UICODE转成UTF8;
-	BOOL bResult = UNICODE2ASCII(pWideChar, strResult);
-
-	if ( pWideChar )
-		delete []pWideChar;
-
-	return bResult;
-}
-
-//做为解Url使用
-char CharEncoding::CharToInt(char ch)
-{
-	if (ch >= '0' && ch <= '9')return (char)(ch - '0');
-	if (ch >= 'a' && ch <= 'f')return (char)(ch - 'a' + 10);
-	if (ch >= 'A' && ch <= 'F')return (char)(ch - 'A' + 10);
-	return -1;
-}
-
-char CharEncoding::StrToBin(IN char (&str)[2])
-{
-	char tempWord[2];
-	char chn;
-
-	tempWord[0] = CharToInt(str[0]);                         //make the B to 11 -- 00001011
-	tempWord[1] = CharToInt(str[1]);                         //make the 0 to 0  -- 00000000
-
-	chn = (tempWord[0] << 4) | tempWord[1];                //to change the BO to 10110000
-
-	return chn;
-}
-
-//GB2312 转为 UTF-8
-void CharEncoding::GB2312ToUTF_8(string& pOut, const char *pText, int pLen)
-{
-	char buf[4];
-	memset(buf, 0, 4);
-
-	pOut.clear();
-
-	int i = 0;
-	while (i < pLen)
-	{
-		//如果是英文直接复制就可以;
-		if (pText[i] >= 0)
-		{
-			char asciistr[2] = { 0 };
-			asciistr[0] = (pText[i++]);
-			pOut.append(asciistr);
-		}
-		else
-		{
-			WCHAR pbuffer[2] = {0};
-			MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, pText + i, 2, pbuffer, 1);
-			UNICODE2UTF8(pbuffer, buf, 4);
-			pOut.append(buf);
-			i += 2;
-		}
-	}
-
-	return;
-}
-
-/************************************************************************/
-/*  函数:[7/26/2016 IT];
-/*  描述:将字符串编码成为GB2312格式的URL;;
-/*  参数:;
-/*  	[IN] :;
-/*  	[OUT] :;
-/*  	[IN/OUT] :;
-/*  返回:void;
-/*  注意:;
-/*  示例:;
-/*
-/*  修改:;
-/*  日期:;
-/*  内容:;
-/************************************************************************/
-string CharEncoding::EnCode_GB2312URL(IN CHAR* pText)
-{
-	string dd;
-	size_t len = strlen(pText);
-	for (size_t i = 0; i < len; i++)
-	{
-		if (isalnum((BYTE)pText[i]))
-		{
-			char tempbuff[2];
-			sprintf_s(tempbuff, "%c", pText[i]);
-			dd.append(tempbuff);
-		}
-		else if (isspace((BYTE)pText[i]))
-		{
-			dd.append("+");
-		}
-		else
-		{
-			char tempbuff[4];
-			sprintf_s(tempbuff, "%%%X%X", ((BYTE*)pText)[i] >> 4, ((BYTE*)pText)[i] % 16);
-			dd.append(tempbuff);
-		}
-	}
-	return dd;
-}
-
-void CharEncoding::EnCode_GB2312URL(IN CHAR* pText, OUT string& strResult)
-{
-	size_t len = strlen(pText);
-	for (size_t i = 0; i < len; i++)
-	{
-		if (isalnum((BYTE)pText[i]))
-		{
-			char tempbuff[2];
-			sprintf_s(tempbuff, "%c", pText[i]);
-			strResult.append(tempbuff);
-		}
-		else if (isspace((BYTE)pText[i]))
-		{
-			strResult.append("+");
-		}
-		else
-		{
-			char tempbuff[4];
-			sprintf_s(tempbuff, "%%%X%X", ((BYTE*)pText)[i] >> 4, ((BYTE*)pText)[i] % 16);
-			strResult.append(tempbuff);
-		}
-	}
-}
-
-/************************************************************************/
-/*  函数:[7/26/2016 IT];
-/*  描述:;
-/*  参数:;
-/*  	[IN] :;
-/*  	[OUT] :;
-/*  	[IN/OUT] :;
-/*  返回:void;
-/*  注意:;
-/*  示例:;
-/*
-/*  修改:;
-/*  日期:;
-/*  内容:;
-/************************************************************************/
-string CharEncoding::EnCode_UTF8URL(IN const CHAR* pText)
-{
-	string tt = "";
-	string dd = "";
-	ASCII2UTF8(pText,tt);
-
-	size_t len = tt.length();
-	for (size_t i = 0; i < len; i++)
-	{
-		if (isalnum((BYTE)tt.at(i)))
-		{
-			char tempbuff[2] = { 0 };
-			sprintf_s(tempbuff, "%c", (BYTE)tt.at(i));
-			dd.append(tempbuff);
-		}
-		else if (isspace((BYTE)tt.at(i)))
-		{
-			dd.append("+");
-		}
-		else
-		{
-			char tempbuff[4];
-			sprintf_s(tempbuff, "%%%X%X", ((BYTE)tt.at(i)) >> 4, ((BYTE)tt.at(i)) % 16);
-			dd.append(tempbuff);
-		}
-	}
-	return dd;
-}
-
-void CharEncoding::EnCode_UTF8URL(IN const CHAR* pText, OUT string& strResult)
-{
-	string tt = "";
-	ASCII2UTF8(pText,tt);
-
-	size_t len = tt.length();
-	for (size_t i = 0; i < len; i++)
-	{
-		if (isalnum((BYTE)tt.at(i)))
-		{
-			char tempbuff[2] = { 0 };
-			sprintf_s(tempbuff, "%c", (BYTE)tt.at(i));
-			strResult.append(tempbuff);
-		}
-		else if (isspace((BYTE)tt.at(i)))
-		{
-			strResult.append("+");
-		}
-		else
-		{
-			char tempbuff[4];
-			sprintf_s(tempbuff, "%%%X%X", ((BYTE)tt.at(i)) >> 4, ((BYTE)tt.at(i)) % 16);
-			strResult.append(tempbuff);
-		}
-	}
-}
-
-string CharEncoding::EnCode_UNICODEURL(IN const CHAR* pText)
-{
-	return "";
-}
-
-/************************************************************************/
-/*  函数:[7/26/2016 IT];
-/*  描述:;
-/*  参数:;
-/*  	[IN] :;
-/*  	[OUT] :;
-/*  	[IN/OUT] :;
-/*  返回:void;
-/*  注意:;
-/*  示例:;
-/*
-/*  修改:;
-/*  日期:;
-/*  内容:;
-/************************************************************************/
-string CharEncoding::DeCode_URLGB2312(IN const CHAR* pURLText)
-{
-	string output = "";
-	char tmp[2];
-	int i = 0, idx = 0, ndx, len = strlen(pURLText);
-
-	while (i < len){
-		if (pURLText[i] == '%')
-		{
-			tmp[0] = pURLText[i + 1];
-			tmp[1] = pURLText[i + 2];
-			output += StrToBin(tmp);
-			i = i + 3;
-		}
-		else if (pURLText[i] == '+')
-		{
-			output += ' ';
-			i++;
-		}
-		else{
-			output += pURLText[i];
-			i++;
-		}
-	}
-
-	return output;
-}
-
-void CharEncoding::DeCode_URLGB2312(IN const CHAR* pURLText, OUT string& strResult)
-{
-	char tmp[2];
-	int i = 0, idx = 0, ndx, len = strlen(pURLText);
-
-	while (i < len){
-		if (pURLText[i] == '%')
-		{
-			tmp[0] = pURLText[i + 1];
-			tmp[1] = pURLText[i + 2];
-			strResult += StrToBin(tmp);
-			i = i + 3;
-		}
-		else if (pURLText[i] == '+')
-		{
-			strResult += ' ';
-			i++;
-		}
-		else{
-			strResult += pURLText[i];
-			i++;
-		}
-	}
-}
-
-/************************************************************************/
-/*  函数:[7/26/2016 IT];
-/*  描述:;
-/*  参数:;
-/*  	[IN] :;
-/*  	[OUT] :;
-/*  	[IN/OUT] :;
-/*  返回:void;
-/*  注意:;
-/*  示例:;
-/*
-/*  修改:;
-/*  日期:;
-/*  内容:;
-/************************************************************************/
-string CharEncoding::DeCode_URLUTF8(IN const CHAR* pURLText)
-{
-	string output = "";
-	string temp = DeCode_URLGB2312(pURLText);
-	UTF82ASCII(temp.c_str(), output);
-	return output;
-}
-
-void CharEncoding::DeCode_URLUTF8(IN const CHAR* pURLText, OUT string& strResult)
-{
-	string temp = DeCode_URLGB2312(pURLText);
-	UTF82ASCII(temp.c_str(), strResult);
-}
-
-/************************************************************************/
-/*  函数:[7/26/2016 IT];
-/*  描述:;
-/*  参数:;
-/*  	[IN] :;
-/*  	[OUT] :;
-/*  	[IN/OUT] :;
-/*  返回:void;
-/*  注意:;
-/*  示例:;
-/*
-/*  修改:;
-/*  日期:;
-/*  内容:;
-/************************************************************************/
-string CharEncoding::DeCode_URLUNICODE(IN const CHAR* pURLText)
-{
-	string str = pURLText;
-	string strResult = "";
-
-	INT nIndex = 0;
-	string strTemp = "";
-
-	while ( str.find_first_of("\\u") != string::npos )
-	{
-		nIndex = str.find_first_of("\\u");
-		strResult.append(str.substr(0, nIndex));
-		strTemp = str.substr(nIndex + 2, 4);
-		str = str.substr(nIndex + 2 +4);
-		CHAR szReturn[10] = {0};
-
-		union  __UNION_VAR_INT{
-			BYTE   ch[2];   
-			int	   value;   
-		}unionVarInt;
-
-		unionVarInt.ch[0] =  (CharToInt(strTemp.at(2)) << 4) | (CharToInt(strTemp.at(3))  & 0x00FF);
-		unionVarInt.ch[1] =  (CharToInt(strTemp.at(0)) << 4) | (CharToInt(strTemp.at(1))  & 0x00FF);
-
-		WCHAR szWide[2] = {0};
-		szWide[0] = unionVarInt.value;
-		UNICODE2ASCII(szWide,szReturn,10);
-		strResult.append(szReturn);
-	}
-	strResult.append(str);
-
-	return strResult;
-}
-
-void CharEncoding::DeCode_URLUNICODE(IN const CHAR* pURLText, OUT string& strResult)
-{
-	string str = pURLText;
-
-	INT nIndex = 0;
-	string strTemp = "";
-
-	while ( str.find_first_of("\\u") != string::npos )
-	{
-		nIndex = str.find_first_of("\\u");
-		strResult.append(str.substr(0, nIndex));
-		strTemp = str.substr(nIndex + 2, 4);
-		str = str.substr(nIndex + 2 +4);
-		CHAR szReturn[10] = {0};
-
-		union  __UNION_VAR_INT{
-			BYTE   ch[2];   
-			int	   value;   
-		}unionVarInt;
-
-		unionVarInt.ch[0] =  (CharToInt(strTemp.at(2)) << 4) | (CharToInt(strTemp.at(3))  & 0x00FF);
-		unionVarInt.ch[1] =  (CharToInt(strTemp.at(0)) << 4) | (CharToInt(strTemp.at(1))  & 0x00FF);
-
-		WCHAR szWide[2] = {0};
-		szWide[0] = unionVarInt.value;
-		UNICODE2ASCII(szWide,szReturn,10);
-		strResult.append(szReturn);
-	}
-	strResult.append(str);
-}

+ 0 - 97
source/hook/WeChats/CharEncoding.h

@@ -1,97 +0,0 @@
-/************************************************************************/
-/*  Copyright (C), 2016-2020, [IT], 保留所有权利;
-/*  模 块 名:公共模块,未做性能优化;
-/*  描    述:;
-/*
-/*  版    本:[V];	
-/*  作    者:[IT];
-/*  日    期:[7/26/2016];
-/*
-/*
-/*  注    意:;
-/*
-/*  修改记录:[IT];
-/*  修改日期:;
-/*  修改版本:;
-/*  修改内容:;
-/************************************************************************/
-#ifndef __CHAR_ENCODING__
-#define __CHAR_ENCODING__
-
-#include <string>
-#include <vector>
-using namespace std;
-
-#ifndef _UNICODE
-typedef string TString;
-#else
-typedef wstring TString;
-#endif
-
-#pragma once
-
-
-class  CharEncoding
-{
-public:
-	// 将字符转化为对应的ASCII十进制值;
-	static char CharToInt(char ch);
-	// 将两个字符串转化成十六进制值;
-	static char StrToBin(IN char (&str)[2]);
-	static void GB2312ToUTF_8(string& pOut, const char *pText, int pLen);
-	// 将ASCII字符串转成UNICODE字符串;
-	static WCHAR* ASCII2UNICODE(IN LPCCH lpASCIIStr);
-	static BOOL   ASCII2UNICODE(IN LPCCH lpASCIIStr, OUT PWCH pUNICODEStr, IN CONST INT& nUNICODEStrLen);
-	static BOOL   ASCII2UNICODE(IN LPCCH lpASCIIStr, OUT wstring &strResult);
-
-	// 将UNICODE字符串转成ASCII字符串;
-	static CHAR* UNICODE2ASCII(IN LPWCH lpUNICODEStr);
-	static BOOL  UNICODE2ASCII(IN LPWCH lpUNICODEStr, OUT LPCH pASCIIStr, IN CONST INT& nASCIIStrLen);
-	static BOOL  UNICODE2ASCII(IN LPWCH lpUNICODEStr, OUT string &strResult);
-
-	// 将UNICODE字符串转成UFT8字符串;
-	static CHAR* UNICODE2UTF8(IN LPWCH lpUNICODEStr);
-	static BOOL  UNICODE2UTF8(IN LPWCH lpUNICODEStr, OUT LPCH pUTF8Str, IN CONST INT& nUTF8StrLen);
-	static BOOL  UNICODE2UTF8(IN LPWCH lpUNICODEStr, OUT string &strResult);
-
-	// 将ASCII字符串转成UTF8字符串;
-	static CHAR* ASCII2UTF8(IN LPCCH lpASCIIStr);
-	static BOOL  ASCII2UTF8(IN LPCCH lpASCIIStr, OUT LPCH pUTF8Str, IN CONST INT& nUTF8StrLen);
-	static BOOL  ASCII2UTF8(IN LPCCH lpASCIIStr, OUT string &strResult);
-
-	// 将UTF-8字符串转成UNICODE字符串;
-	static WCHAR* UTF82UNICODE(IN LPCCH lpUTF8);
-	static BOOL   UTF82UNICODE(IN LPCCH lpUTF8, OUT PWCH pUNICODEStr, IN CONST INT& nUNICODEStrLen);
-	static BOOL   UTF82UNICODE(IN LPCCH lpUTF8, OUT wstring &strResult);
-
-	// 将UTF-8字符串转成ASCII字符串;
-	static CHAR*  UTF82ASCII(IN LPCCH lpUTF8);
-	static BOOL   UTF82ASCII(IN LPCCH lpUTF8, OUT LPCH pASCIIStr, IN CONST INT& nASCIIStrLen);
-	static BOOL   UTF82ASCII(IN LPCCH lpUTF8, OUT string &strResult);
-
-	// 将UTF-8编码成GB2312;
-	static string UTF8IntoGB2313(IN CHAR* pUTF8Text, IN const INT& nUTF8TextLen);
-	// 将GB2312编码成UTF-8;
-	static string GB2312IntoUTF8(IN CHAR* pGB2312Text, IN const INT& nGB2312TextLen);
-
-	// 将字符串编码成为GB2312编码格式的URL;
-	static string EnCode_GB2312URL(IN CHAR* pText);
-	static void EnCode_GB2312URL(IN CHAR* pText, OUT string& strResult);
-	// 将字符串编码成为UTF-8编码格式的URL;
-	static string EnCode_UTF8URL(IN const CHAR* pText);
-	static void EnCode_UTF8URL(IN const CHAR* pText, OUT string& strResult);
-	// 将字符串编码成为UNICODE编码格式的URL;
-	static string EnCode_UNICODEURL(IN const CHAR* pText);	// 未完成该函数;
-
-	// 解码UTF-8编码格式的URL;
-	static string DeCode_URLUTF8(IN const CHAR* pURLText);
-	static void DeCode_URLUTF8(IN const CHAR* pURLText, OUT string& strResult);
-	// 解码GB2312编码格式的URL;
-	static string DeCode_URLGB2312(IN const CHAR* pURLText);
-	static void DeCode_URLGB2312(IN const CHAR* pURLText, OUT string& strResult);
-	// 解码UNICODE编码格式的URL;
-	static string DeCode_URLUNICODE(IN const CHAR* pURLText);
-	static void DeCode_URLUNICODE(IN const CHAR* pURLText, OUT string& strResult);
-};
-
-#endif

+ 0 - 530
source/hook/WeChats/CurlClient.cpp

@@ -1,530 +0,0 @@
-#include "StdAfx.h"
-#include "CurlClient.h"
-#include "curl/curl.h"
-#include "curl/easy.h"
-#include "curl/curlver.h"
-#include "CharEncoding.h"
-
-
-CCurlClient::CCurlClient(void)
-{
-	m_bDebug = TRUE;
-}
-
-CCurlClient::~CCurlClient(void)
-{
-	// 释放curl的全局对象;
-	curl_global_cleanup(); 
-}
-
-INT CCurlClient::Initialize()
-{
-	// 初始化全局调用模式;
-	CURLcode res = ::curl_global_init( CURL_GLOBAL_ALL );
-	if( CURLE_OK != res ) 
-	{
-		fprintf( stderr, "curl_global_init failed: %d \n", res ); 
-		return -1;
-	}
-
-	return 0;
-}
-
-static int OnDebug(CURL *, curl_infotype itype, char * pData, size_t size, void *)   
-{   
-	if(itype == CURLINFO_TEXT)   
-	{   
-		TRACE("[TEXT]%s\n", pData);   
-	}   
-	else if(itype == CURLINFO_HEADER_IN)   
-	{   
-		TRACE("[HEADER_IN]%s\n", pData);   
-	}   
-	else if(itype == CURLINFO_HEADER_OUT)   
-	{   
-		TRACE("[HEADER_OUT]%s\n", pData);   
-	}   
-	else if(itype == CURLINFO_DATA_IN)   
-	{   
-		TRACE("[DATA_IN]%s\n", pData);   
-	}   
-	else if(itype == CURLINFO_DATA_OUT)   
-	{   
-		TRACE("[DATA_OUT]%s\n", pData);   
-	}   
-	return 0;   
-}   
-
-size_t CCurlClient::OnWriteData(const void *ptr, size_t size, size_t nmemb, std::string *stream)   
-{   
-	if( NULL == stream || NULL == ptr )
-		return -1;
-
-	stream->append((char*)ptr, size * nmemb);   
-	return nmemb;   
-}   
-
-int CCurlClient::Post(const std::string & strUrl, const std::string & strPost, std::string & strResponse)   
-{   
-	CURLcode res;   
-	CURL* curl = curl_easy_init();   
-	if(NULL == curl)   
-	{   
-		return CURLE_FAILED_INIT;   
-	}   
-	if(m_bDebug)   
-	{// 是否开启调试日志输出;   
-		curl_easy_setopt(curl, CURLOPT_VERBOSE, 1);   
-		curl_easy_setopt(curl, CURLOPT_DEBUGFUNCTION, OnDebug);   
-	}   
-	// 设置URL地址;
-	curl_easy_setopt(curl, CURLOPT_URL, strUrl.c_str());   
-	// 设置POST方式;
-	curl_easy_setopt(curl, CURLOPT_POST, 1);   
-	// 设置POST参数;
-	curl_easy_setopt(curl, CURLOPT_POSTFIELDS, strPost.c_str());  
-    // 设置回调函数-读取;	
-	curl_easy_setopt(curl, CURLOPT_READFUNCTION, NULL);   
-	// 设置回调函数-写入;
-	curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, OnWriteData);   
-	// 设置回调函数-写入的缓存区;
-	curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *)&strResponse);   
-	// 设置(多线程下,只是尽量减少)无签名;
-	curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1);   
-	// 设置连接超时值(单位毫秒);
-	curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 30000); 
-	// 设置操作超时值(单位毫秒);
-	curl_easy_setopt(curl, CURLOPT_TIMEOUT, 30000);  
-
-	// 执行POST提交;
-	res = curl_easy_perform(curl);   
-	
-	// 释放资源;
-	curl_easy_cleanup(curl); 
-
-	return res;   
-}  
-
-int CCurlClient::Post(IN LPCTSTR lpUrl, IN LPCTSTR lpPost, OUT LPTSTR lpResponse, IN CONST INT& nMaxlen)
-{
-	if ( lpUrl == NULL || lpPost == NULL )
-		return CURLE_FAILED_INIT;
-
-	string strUrl;
-	string strPost;
-	string strResponse;
-#ifdef UNICODE
-	CharEncoding::UNICODE2ASCII((LPWCH)lpUrl, strUrl);
-	CharEncoding::UNICODE2ASCII((LPWCH)lpPost, strPost);
-
-	int res = Post(strUrl, strPost, strResponse) ;
-	if ( CURLE_OK == res )
-	{
-		CharEncoding::ASCII2UNICODE(strResponse.c_str(), (LPWCH)lpResponse, nMaxlen);
-		return CURLE_OK;
-	}
-
-	return res;
-#else
-	strUrl = lpUrl;
-	strPost = lpPost;
-	int res = Post(strUrl, strPost, strResponse) ;
-	if ( CURLE_OK == res )
-	{
-		sprintf_s(lpResponse, nMaxlen, "%s", strResponse.c_str());
-		return CURLE_OK;
-	}
-	return res;
-#endif
-}
-
-int CCurlClient::Post(IN CString& strUrl, IN CString& strPost, OUT CString& strResponse)
-{
-	if ( strUrl.IsEmpty() || strPost.IsEmpty() )
-		return CURLE_FAILED_INIT;
-
-	string url;
-	string post;
-	string response;
-#ifdef UNICODE
-	CharEncoding::UNICODE2ASCII((LPWCH)strUrl.GetString(), url);
-	CharEncoding::UNICODE2ASCII((LPWCH)strPost.GetString(), post);
-
-	int res = Post(url, post, response) ;
-	if ( CURLE_OK == res )
-	{
-		WCHAR* pResult = CharEncoding::ASCII2UNICODE(response.c_str());
-		if ( pResult )
-		{
-			strResponse = pResult;
-			delete []pResult;
-			pResult = NULL;
-			return CURLE_OK;
-		}
-	}
-
-	return res;
-#else
-	url = strUrl.GetString();
-	post = strPost.GetString();
-	int res = Post(url, post, response) ;
-	if ( CURLE_OK == res )
-	{
-		strResponse = response.c_str();
-		return CURLE_OK;
-	}
-	return res;
-#endif
-}
-
-int CCurlClient::Get(const std::string & strUrl, std::string & strResponse)   
-{   
-	CURLcode res;   
-	CURL* curl = curl_easy_init();   
-	if(NULL == curl)   
-	{   
-		return CURLE_FAILED_INIT;   
-	}   
-	if(m_bDebug)   
-	{   
-		curl_easy_setopt(curl, CURLOPT_VERBOSE, 1);   
-		curl_easy_setopt(curl, CURLOPT_DEBUGFUNCTION, OnDebug);   
-	}   
-
-	// 设置URL地址;
-	curl_easy_setopt(curl, CURLOPT_URL, strUrl.c_str());   
-	// 设置回调函数-读取;
-	curl_easy_setopt(curl, CURLOPT_READFUNCTION, NULL);   
-	// 设置回调函数-写入;
-	curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, OnWriteData);   
-	// 设置回调函数-写入的缓存区;
-	curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *)&strResponse);   
-	/**  
-	* 当多个线程都使用超时处理的时候,同时主线程中有sleep或是wait等操作。  
-	* 如果不设置这个选项,libcurl将会发信号打断这个wait从而导致程序退出。  
-	*/  
-	// 设置(多线程下,只是尽量减少)无签名;	
-	curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1);   
-	// 设置连接超时值;
-	curl_easy_setopt(curl,CURLOPT_CONNECTTIMEOUT,5000);
-	// 设置超时值;
-	curl_easy_setopt(curl,CURLOPT_TIMEOUT,5000);
-	res = curl_easy_perform(curl);   
-	curl_easy_cleanup(curl);
-
-	return res;   
-}  
-
-int CCurlClient::Get(IN LPCTSTR lpUrl, OUT LPTSTR lpResponse, IN CONST INT& nMaxlen)
-{
-	if ( lpUrl == NULL )
-		return CURLE_FAILED_INIT;
-
-	string strUrl;
-	string strResponse;
-#ifdef UNICODE
-	CharEncoding::UNICODE2ASCII((LPWCH)lpUrl, strUrl);
-
-	int res = Get(strUrl, strResponse) ;
-	if ( CURLE_OK == res )
-	{
-		CharEncoding::ASCII2UNICODE(strResponse.c_str(), (LPWCH)lpResponse, nMaxlen);
-		return CURLE_OK;
-	}
-
-	return res;
-#else
-	strUrl = lpUrl;
-	int res = Get(strUrl, strResponse) ;
-	if ( CURLE_OK == res )
-	{
-		sprintf_s(lpResponse, nMaxlen, "%s", strResponse.c_str());
-		return CURLE_OK;
-	}
-	return res;
-#endif
-}
-
-int CCurlClient::Get(IN CString& strUrl, OUT CString& strResponse)
-{
-	if ( strUrl.IsEmpty() )
-		return CURLE_FAILED_INIT;
-
-	string url;
-	string post;
-	string response;
-#ifdef UNICODE
-	CharEncoding::UNICODE2ASCII((LPWCH)strUrl.GetString(), url);
-
-	int res = Get(url, response) ;
-	if ( CURLE_OK == res )
-	{
-		WCHAR* pResult = CharEncoding::ASCII2UNICODE(response.c_str());
-		if ( pResult )
-		{
-			strResponse = pResult;
-			delete []pResult;
-			pResult = NULL;
-			return CURLE_OK;
-		}
-	}
-
-	return res;
-#else
-	url = strUrl.GetString();
-	int res = Get(url, response) ;
-	if ( CURLE_OK == res )
-	{
-		strResponse = response.c_str();
-		return CURLE_OK;
-	}
-	return res;
-#endif
-}
-
-int CCurlClient::Posts(const std::string & strUrl, const std::string & strPost, std::string & strResponse, const char * pCaPath)   
-{   
-	CURLcode res;   
-	CURL* curl = curl_easy_init();   
-	if(NULL == curl)   
-	{   
-		return CURLE_FAILED_INIT;   
-	}   
-	if(m_bDebug)   
-	{   
-		curl_easy_setopt(curl, CURLOPT_VERBOSE, 1);   
-		curl_easy_setopt(curl, CURLOPT_DEBUGFUNCTION, OnDebug);   
-	}   
-	
-	// 设置URL地址;
-	curl_easy_setopt(curl, CURLOPT_URL, strUrl.c_str());   
-	// 设置POST提交方式;
-	curl_easy_setopt(curl, CURLOPT_POST, 1);   
-	// 设置POST参数;
-	curl_easy_setopt(curl, CURLOPT_POSTFIELDS, strPost.c_str());   
-	// 设置回调函数-读取;
-	curl_easy_setopt(curl, CURLOPT_READFUNCTION, NULL);   
-	// 设置回调函数-写入;
-	curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, OnWriteData);   
-	// 设置回调函数-写入的缓存区;
-	curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *)&strResponse);   
-	// 设置;
-	curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1);   
-	if(NULL == pCaPath || pCaPath[0] == '\0')   
-	{   
-		curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, false);   
-		curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, false);   
-	}   
-	else   
-	{   
-		//缺省情况就是PEM,所以无需设置,另外支持DER   
-		//curl_easy_setopt(curl,CURLOPT_SSLCERTTYPE,"PEM");   
-		curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, true);   
-		curl_easy_setopt(curl, CURLOPT_CAINFO, pCaPath);   
-	}   
-	// 设置连接超时值;
-	curl_easy_setopt(curl,CURLOPT_CONNECTTIMEOUT,5000);
-	// 设置超时值;
-	curl_easy_setopt(curl,CURLOPT_TIMEOUT,5000);
-	
-	// 执行POST提交;
-	res = curl_easy_perform(curl);   
-	
-	// 释放资源;
-	curl_easy_cleanup(curl); 
-
-	return res;   
-}  
-
-int CCurlClient::Posts(IN LPCTSTR lpUrl, IN LPCTSTR lpPost, OUT LPTSTR lpResponse, IN CONST INT& nMaxlen, IN LPCTSTR lpCaPath /* = NULL */)
-{
-	if ( lpUrl == NULL || lpPost == NULL )
-		return CURLE_FAILED_INIT;
-
-	string strUrl;
-	string strPost;
-	string strCapath;
-	string strResponse;
-#ifdef UNICODE
-	CharEncoding::UNICODE2ASCII((LPWCH)lpUrl, strUrl);
-	CharEncoding::UNICODE2ASCII((LPWCH)lpPost, strPost);
-	CharEncoding::UNICODE2ASCII((LPWCH)lpCaPath, strCapath);
-
-	int res = Posts(strUrl, strPost, strResponse, strCapath.c_str()) ;
-	if ( CURLE_OK == res )
-	{
-		CharEncoding::ASCII2UNICODE(strResponse.c_str(), (LPWCH)lpResponse, nMaxlen);
-		return CURLE_OK;
-	}
-
-	return res;
-#else
-	strUrl = lpUrl;
-	strPost = lpPost;
-	strCapath = lpCaPath;
-	int res = Posts(strUrl, strPost, strResponse, strCapath.c_str()) ;
-	if ( CURLE_OK == res )
-	{
-		sprintf_s(lpResponse, nMaxlen, "%s", strResponse.c_str());
-		return CURLE_OK;
-	}
-	return res;
-#endif
-}
-
-int CCurlClient::Posts(IN CString& strUrl, IN CString& strPost, OUT CString& strResponse, IN const CString& strCaPath /* = _T("") */)
-{
-	if ( strUrl.IsEmpty() || strPost.IsEmpty() )
-		return CURLE_FAILED_INIT;
-
-	string url;
-	string post;
-	string capth;
-	string response;
-#ifdef UNICODE
-	CharEncoding::UNICODE2ASCII((LPWCH)strUrl.GetString(), url);
-	CharEncoding::UNICODE2ASCII((LPWCH)strPost.GetString(), post);
-	CharEncoding::UNICODE2ASCII((LPWCH)strCaPath.GetString(), capth);
-
-	int res = Posts(url, post, response, capth.c_str()) ;
-	if ( CURLE_OK == res )
-	{
-		WCHAR* pResult = CharEncoding::ASCII2UNICODE(response.c_str());
-		if ( pResult )
-		{
-			strResponse = pResult;
-			delete []pResult;
-			pResult = NULL;
-			return CURLE_OK;
-		}
-	}
-
-	return res;
-#else
-	url = strUrl.GetString();
-	post = strPost.GetString();
-	capth = strCaPath.GetString();
-	int res = Posts(url, post, response, capth.c_str()) ;
-	if ( CURLE_OK == res )
-	{
-		strResponse = response.c_str();
-		return CURLE_OK;
-	}
-	return res;
-#endif
-}
-
-int CCurlClient::Gets(const std::string & strUrl, std::string & strResponse, const char * pCaPath)   
-{   
-	CURLcode res;   
-	CURL* curl = curl_easy_init();   
-	if(NULL == curl)   
-	{   
-		return CURLE_FAILED_INIT;   
-	}   
-	if(m_bDebug)   
-	{   
-		curl_easy_setopt(curl, CURLOPT_VERBOSE, 1);   
-		curl_easy_setopt(curl, CURLOPT_DEBUGFUNCTION, OnDebug);   
-	}   
-	curl_easy_setopt(curl, CURLOPT_URL, strUrl.c_str());   
-	curl_easy_setopt(curl, CURLOPT_READFUNCTION, NULL);   
-	curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, OnWriteData);   
-	curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *)&strResponse);   
-	curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1);   
-	if(NULL == pCaPath || pCaPath[0] == '\0')   
-	{   
-		curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, false);   
-		curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, false);   
-	}   
-	else   
-	{   
-		curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, true);   
-		curl_easy_setopt(curl, CURLOPT_CAINFO, pCaPath);   
-	}   
-	curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 3);   
-	curl_easy_setopt(curl, CURLOPT_TIMEOUT, 3);   
-	res = curl_easy_perform(curl);   
-	curl_easy_cleanup(curl); 
-
-	return res;   
-} 
-
-int CCurlClient::Gets(IN LPCTSTR lpUrl, OUT LPTSTR lpResponse, IN CONST INT& nMaxlen, IN LPCTSTR lpCaPath /* = NULL */)
-{
-	if ( lpUrl == NULL )
-		return CURLE_FAILED_INIT;
-
-	string strUrl;
-	string strCapath;
-	string strResponse;
-#ifdef UNICODE
-	CharEncoding::UNICODE2ASCII((LPWCH)lpUrl, strUrl);
-	CharEncoding::UNICODE2ASCII((LPWCH)lpCaPath, strCapath);
-
-	int res = Gets(strUrl, strResponse, strCapath.c_str()) ;
-	if ( CURLE_OK == res )
-	{
-		CharEncoding::ASCII2UNICODE(strResponse.c_str(), (LPWCH)lpResponse, nMaxlen);
-		return CURLE_OK;
-	}
-
-	return res;
-#else
-	strUrl = lpUrl;
-	strCapath = lpCaPath;
-	int res = Gets(strUrl, strResponse, strCapath.c_str()) ;
-	if ( CURLE_OK == res )
-	{
-		sprintf_s(lpResponse, nMaxlen, "%s", strResponse.c_str());
-		return CURLE_OK;
-	}
-	return res;
-#endif
-}
-
-int CCurlClient::Gets(IN CString& strUrl, OUT CString& strResponse, IN const CString& strCaPath /* = _T("") */)
-{
-	if ( strUrl.IsEmpty() )
-		return CURLE_FAILED_INIT;
-
-	string url;
-	string post;
-	string capth;
-	string response;
-#ifdef UNICODE
-	CharEncoding::UNICODE2ASCII((LPWCH)strUrl.GetString(), url);
-	CharEncoding::UNICODE2ASCII((LPWCH)strCaPath.GetString(), capth);
-
-	int res = Gets(url, response, capth.c_str()) ;
-	if ( CURLE_OK == res )
-	{
-		WCHAR* pResult = CharEncoding::ASCII2UNICODE(response.c_str());
-		if ( pResult )
-		{
-			strResponse = pResult;
-			delete []pResult;
-			pResult = NULL;
-			return CURLE_OK;
-		}
-	}
-
-	return res;
-#else
-	url = strUrl.GetString();
-	capth = strCaPath.GetString();
-	int res = Gets(url, response, capth.c_str()) ;
-	if ( CURLE_OK == res )
-	{
-		strResponse = response.c_str();
-		return CURLE_OK;
-	}
-	return res;
-#endif
-}
-
-void CCurlClient::SetDebug(bool bDebug)   
-{   
-	m_bDebug = bDebug;   
-}   
-

+ 0 - 77
source/hook/WeChats/CurlClient.h

@@ -1,77 +0,0 @@
-#ifndef __CURLCLIENT__
-#define __CURLCLIENT__
-
-#include <string>
-#include <vector>
-using namespace std;
-
-#ifndef _UNICODE
-typedef string TString;
-#else
-typedef wstring TString;
-#endif
-
-#pragma once
-
-class  CCurlClient
-{
-public:
-	CCurlClient(void);
-	~CCurlClient(void);
-
-public:
-	INT Initialize();
-	/**  
-	* @brief HTTP POST请求  
-	* @param strUrl 输入参数,请求的Url地址,如:http://www.baidu.com  
-	* @param strPost 输入参数,使用如下格式para1=val1?2=val2&…  
-	* @param strResponse 输出参数,返回的内容  
-	* @return 返回是否Post成功  
-	*/   
-	int Post(const std::string & strUrl, const std::string & strPost, std::string & strResponse);
-	int Post(IN LPCTSTR lpUrl, IN LPCTSTR lpPost, OUT LPTSTR lpResponse, IN CONST INT& nMaxlen);
-	int Post(IN CString& strUrl, IN CString& strPost, OUT CString& strResponse);
-
-	/**  
-	* @brief HTTP GET请求  
-	* @param strUrl 输入参数,请求的Url地址,如:http://www.baidu.com  
-	* @param strResponse 输出参数,返回的内容  
-	* @return 返回是否Post成功  
-	*/   
-	int Get(const std::string & strUrl, std::string & strResponse); 
-	int Get(IN LPCTSTR lpUrl, OUT LPTSTR lpResponse, IN CONST INT& nMaxlen);
-	int Get(IN CString& strUrl, OUT CString& strResponse);
-
-	/**  
-	* @brief HTTPS POST请求,无证书版本  
-	* @param strUrl 输入参数,请求的Url地址,如:https://www.alipay.com  
-	* @param strPost 输入参数,使用如下格式para1=val1?2=val2&…  
-	* @param strResponse 输出参数,返回的内容  
-	* @param pCaPath 输入参数,为CA证书的路径.如果输入为NULL,则不验证服务器端证书的有效性.  
-	* @return 返回是否Post成功  
-	*/   
-	int Posts(const std::string & strUrl, const std::string & strPost, std::string & strResponse, const char * pCaPath = NULL);   
-	int Posts(IN LPCTSTR lpUrl, IN LPCTSTR lpPost, OUT LPTSTR lpResponse, IN CONST INT& nMaxlen, IN LPCTSTR lpCaPath = NULL);
-	int Posts(IN CString& strUrl, IN CString& strPost, OUT CString& strResponse, IN const CString& strCaPath = _T(""));
-
-	/**  
-	* @brief HTTPS GET请求,无证书版本  
-	* @param strUrl 输入参数,请求的Url地址,如:https://www.alipay.com  
-	* @param strResponse 输出参数,返回的内容  
-	* @param pCaPath 输入参数,为CA证书的路径.如果输入为NULL,则不验证服务器端证书的有效性.  
-	* @return 返回是否Post成功  
-	*/   
-	int Gets(const std::string & strUrl, std::string & strResponse, const char * pCaPath = NULL); 
-	int Gets(IN LPCTSTR lpUrl, OUT LPTSTR lpResponse, IN CONST INT& nMaxlen, IN LPCTSTR lpCaPath = NULL);
-	int Gets(IN CString& strUrl, OUT CString& strResponse, IN const CString& strCaPath = _T(""));
-
-public:   
-	void SetDebug(bool bDebug);   
-
-private:   
-	// 是否启用调试输出;
-	BOOL	m_bDebug;	
-	static size_t OnWriteData(const void *ptr, size_t size, size_t nmemb, std::string *stream);
-};
-
-#endif