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

📄 mysgipclient.cpp

📁 SMAL是short message abstract library的缩写,是由风起水流软件工作室(www.zealware.com)开发的一个支持短信网关系统开发的C++底层抽象接口库
💻 CPP
字号:
/**
*	MyCMPP3Client.cpp
*	
*	CMPP3 API Demo Application.
*
*	Copyright 2003-2007	北京风起水流软件工作室
*	
*	http://www.zealware.com
*	
*	princetoad@gmail.com
*
*/

#include "stdafx.h"

#include "MySGIPClient.h"

MySGIPClient::MySGIPClient(CSGIPAPIDemoDlg & _dlg)
:dlg(_dlg)
{
}

MySGIPClient::~MySGIPClient()
{
}

int MySGIPClient::OnDeliver(DeliverStr & deliver) {
	char  sMultiByte[141];
	ZeroMemory(&sMultiByte, 141);
	unsigned char uchTmp = 0;
	unsigned char pchTmp[1024];
	ZeroMemory(pchTmp, 1024);

	if (deliver.cMsgCoding == 8) {
		memcpy(pchTmp, deliver.sMsgContent, deliver.nMsgLen);
		for (unsigned ix=0; ix<deliver.nMsgLen/2; ix++) {
			uchTmp = pchTmp[ix*2];
			pchTmp[ix*2] = pchTmp[ix*2 + 1];
			pchTmp[ix*2 + 1] = uchTmp;
		}

		int nRet = WideCharToMultiByte(CP_ACP, WC_COMPOSITECHECK, (LPCWSTR)pchTmp, deliver.nMsgLen/2, sMultiByte, 140, NULL, NULL);	

		deliver.nMsgLen = nRet;
		ZeroMemory(deliver.sMsgContent, 160);
		memcpy(deliver.sMsgContent, sMultiByte, nRet);
	}

	CString str = _T("");

	switch( (int)deliver.cMsgCoding ) {
	case 0:
		str = "ASCII编码";
		break;
	case 4:
		str = "二进制编码";
		break;
	case 8:
		str = "UCS2编码";
		break;
	case 15:
		str = "GBK编码";
		break;
	default:
		str.Format("未知-<%d>", deliver.cMsgCoding);
	}

	OnLogWrite("Deliver, SeqId = <%u>, MsgLen = <%u>, MsgFmt = <%s>, MsgContent = <%s>, LinkId = <%s>.\n", \
		deliver.nSeq, deliver.nMsgLen, str, deliver.sMsgContent, deliver.sLinkId);

	return 0;
}

int MySGIPClient::OnReport(ReportStr & report){
	OnLogWrite("Report, SubmitSeqId = <%u>, SubmitDateTime = <%u>, sUserNumber = <%s>, State = <%d>, ErrorCode = <%d>.\n", \
		report.nSubmitSeq, report.nSubmitDateTime, report.sUserNumber, report.cState, report.cErrcode);

	return 0;
}

int MySGIPClient::OnResponse(MTRespStr & response){
	OnLogWrite("MTResponse, SeqId = <%u>, UserNumber = <%s>, Msg = <%s>, Result = <%d>.\n", \
		response.nSeq, response.ss.sUserNumber, response.ss.sMsgContent, response.cResult);

	return 0;
}

int MySGIPClient::OnMTError(MTErrorStr & mterror){
	OnLogWrite("MTError.Errcode = <%d>\n", mterror.nErrorType);

	return 0;
}

int MySGIPClient::OnLogWrite(const char* pchFmt, ...)
{
	char buffer[1024] = "";
	
	//SYSTEMTIME	time;
	//::GetLocalTime(&time);

	//sprintf(buffer, 
	//	"%02d:%02d:%02d:%03d\t", 
	//	time.wHour, 
	//	time.wMinute, 
	//	time.wSecond, 
	//	time.wMilliseconds
	//	);

	va_list arglist;						
	va_start(arglist, pchFmt);
	_vsnprintf(buffer, 1024, pchFmt, arglist);
	va_end(arglist);

	dlg.ShowLog(buffer);

	return 0;
}

⌨️ 快捷键说明

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