Refactoring
This commit is contained in:
parent
bd0387882d
commit
770f56de50
@ -115,37 +115,11 @@ void SendFileMessage(string wxid, string path)
|
|||||||
funcFree(pMsg);
|
funcFree(pMsg);
|
||||||
}
|
}
|
||||||
|
|
||||||
WxString *NewWxString(const std::wstring &ws)
|
|
||||||
{
|
|
||||||
WxString *p = (WxString *)HeapAlloc(GetProcessHeap(), 0, sizeof(WxString));
|
|
||||||
wchar_t *pWstring = (wchar_t *)HeapAlloc(GetProcessHeap(), 0, (ws.size() + 1) * 2);
|
|
||||||
if (p == NULL || pWstring == NULL) {
|
|
||||||
LOG_ERROR("Out of Memory...");
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
wmemcpy(pWstring, ws.c_str(), ws.size() + 1);
|
|
||||||
p->wptr = pWstring;
|
|
||||||
p->size = (DWORD)ws.size();
|
|
||||||
p->capacity = (DWORD)ws.size();
|
|
||||||
p->ptr = 0;
|
|
||||||
p->clen = 0;
|
|
||||||
return p;
|
|
||||||
}
|
|
||||||
|
|
||||||
int SendRichTextMessage(RichText_t &rt)
|
int SendRichTextMessage(RichText_t &rt)
|
||||||
{ // TODO: Fix memory leak
|
{ // TODO: Fix memory leak
|
||||||
#define SRTM_SIZE 0x3F0
|
#define SRTM_SIZE 0x3F0
|
||||||
QWORD status = -1;
|
QWORD status = -1;
|
||||||
|
|
||||||
wstring receiver = String2Wstring(rt.receiver);
|
|
||||||
wstring title = String2Wstring(rt.title);
|
|
||||||
wstring url = String2Wstring(rt.url);
|
|
||||||
wstring thumburl = String2Wstring(rt.thumburl);
|
|
||||||
wstring account = String2Wstring(rt.account);
|
|
||||||
wstring name = String2Wstring(rt.name);
|
|
||||||
wstring digest = String2Wstring(rt.digest);
|
|
||||||
|
|
||||||
funcNew_t funcNew = (funcNew_t)(g_WeChatWinDllAddr + g_WxCalls.rt.call1);
|
funcNew_t funcNew = (funcNew_t)(g_WeChatWinDllAddr + g_WxCalls.rt.call1);
|
||||||
funcFree_t funcFree = (funcFree_t)(g_WeChatWinDllAddr + g_WxCalls.rt.call2);
|
funcFree_t funcFree = (funcFree_t)(g_WeChatWinDllAddr + g_WxCalls.rt.call2);
|
||||||
funcGetAppMsgMgr_t funcGetAppMsgMgr = (funcGetAppMsgMgr_t)(g_WeChatWinDllAddr + g_WxCalls.rt.call3);
|
funcGetAppMsgMgr_t funcGetAppMsgMgr = (funcGetAppMsgMgr_t)(g_WeChatWinDllAddr + g_WxCalls.rt.call3);
|
||||||
@ -159,13 +133,13 @@ int SendRichTextMessage(RichText_t &rt)
|
|||||||
|
|
||||||
memset(buff, 0, SRTM_SIZE);
|
memset(buff, 0, SRTM_SIZE);
|
||||||
funcNew((QWORD)buff);
|
funcNew((QWORD)buff);
|
||||||
WxString *pReceiver = NewWxString(receiver);
|
WxString *pReceiver = NewWxStringFromStr(rt.receiver);
|
||||||
WxString *pTitle = NewWxString(title);
|
WxString *pTitle = NewWxStringFromStr(rt.title);
|
||||||
WxString *pUrl = NewWxString(url);
|
WxString *pUrl = NewWxStringFromStr(rt.url);
|
||||||
WxString *pThumburl = NewWxString(thumburl);
|
WxString *pThumburl = NewWxStringFromStr(rt.thumburl);
|
||||||
WxString *pDigest = NewWxString(digest);
|
WxString *pDigest = NewWxStringFromStr(rt.digest);
|
||||||
WxString *pAccount = NewWxString(account);
|
WxString *pAccount = NewWxStringFromStr(rt.account);
|
||||||
WxString *pName = NewWxString(name);
|
WxString *pName = NewWxStringFromStr(rt.name);
|
||||||
|
|
||||||
memcpy(buff + 0x8, pTitle, sizeof(WxString));
|
memcpy(buff + 0x8, pTitle, sizeof(WxString));
|
||||||
memcpy(buff + 0x48, pUrl, sizeof(WxString));
|
memcpy(buff + 0x48, pUrl, sizeof(WxString));
|
||||||
@ -208,8 +182,7 @@ int ForwardMessage(QWORD msgid, string receiver)
|
|||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
wstring wsReceiver = String2Wstring(receiver);
|
WxString *pReceiver = NewWxStringFromStr(receiver);
|
||||||
WxString *pReceiver = NewWxString(wsReceiver);
|
|
||||||
|
|
||||||
LARGE_INTEGER l;
|
LARGE_INTEGER l;
|
||||||
l.HighPart = dbIdx;
|
l.HighPart = dbIdx;
|
||||||
|
Loading…
Reference in New Issue
Block a user