📄 mysgipclient.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 + -