Refactoring

This commit is contained in:
Changhua 2023-02-28 20:53:27 +08:00
parent fa81ea3e24
commit 0b2e49ecba
3 changed files with 30 additions and 44 deletions

View File

@ -11,12 +11,6 @@ using namespace std;
extern WxCalls_t g_WxCalls; extern WxCalls_t g_WxCalls;
extern DWORD g_WeChatWinDllAddr; extern DWORD g_WeChatWinDllAddr;
typedef struct MemberList {
DWORD start;
DWORD end1;
DWORD end2;
} MemberList_t;
int AddChatroomMember(string roomid, string wxids) int AddChatroomMember(string roomid, string wxids)
{ {
if (roomid.empty() || wxids.empty()) { if (roomid.empty() || wxids.empty()) {
@ -29,23 +23,23 @@ int AddChatroomMember(string roomid, string wxids)
DWORD addRoomMemberCall2 = g_WeChatWinDllAddr + g_WxCalls.arm.call2; DWORD addRoomMemberCall2 = g_WeChatWinDllAddr + g_WxCalls.arm.call2;
DWORD addRoomMemberCall3 = g_WeChatWinDllAddr + g_WxCalls.arm.call3; DWORD addRoomMemberCall3 = g_WeChatWinDllAddr + g_WxCalls.arm.call3;
TextStruct_t txtRoomid = { 0 }; WxString_t txtRoomid = { 0 };
wstring wsRoomid = String2Wstring(roomid); wstring wsRoomid = String2Wstring(roomid);
txtRoomid.text = (wchar_t *)wsRoomid.c_str(); txtRoomid.text = (wchar_t *)wsRoomid.c_str();
txtRoomid.size = wsRoomid.size(); txtRoomid.size = wsRoomid.size();
txtRoomid.capacity = wsRoomid.capacity(); txtRoomid.capacity = wsRoomid.capacity();
vector<wstring> vMembers; vector<wstring> vMembers;
vector<TextStruct_t> vTxtMembers; vector<WxString_t> vTxtMembers;
wstringstream wss(String2Wstring(wxids)); wstringstream wss(String2Wstring(wxids));
while (wss.good()) { while (wss.good()) {
wstring wstr; wstring wstr;
getline(wss, wstr, L','); getline(wss, wstr, L',');
vMembers.push_back(wstr); vMembers.push_back(wstr);
TextStruct_t txtMember = { 0 }; WxString_t txtMember = { 0 };
txtMember.text = (wchar_t *)vMembers.back().c_str(); txtMember.text = (wchar_t *)vMembers.back().c_str();
txtMember.size = vMembers.back().size(); txtMember.size = vMembers.back().size();
txtMember.capacity = vMembers.back().capacity(); txtMember.capacity = vMembers.back().capacity();
vTxtMembers.push_back(txtMember); vTxtMembers.push_back(txtMember);
} }

View File

@ -10,19 +10,11 @@ extern HANDLE g_hEvent;
extern WxCalls_t g_WxCalls; extern WxCalls_t g_WxCalls;
extern DWORD g_WeChatWinDllAddr; extern DWORD g_WeChatWinDllAddr;
typedef struct AtList {
DWORD start;
DWORD end1;
DWORD end2;
} AtList_t;
void SendTextMessage(string wxid, string msg, string atWxids) void SendTextMessage(string wxid, string msg, string atWxids)
{ {
char buffer[0x3B0] = { 0 }; char buffer[0x3B0] = { 0 };
AtList_t atList = { 0 }; WxString_t txtMsg = { 0 };
TextStruct_t txtMsg = { 0 }; WxString_t txtWxid = { 0 };
TextStruct_t txtWxid = { 0 };
TextStruct_t *tsArray = NULL;
// 发送消息Call地址 = 微信基址 + 偏移 // 发送消息Call地址 = 微信基址 + 偏移
DWORD sendCallAddress = g_WeChatWinDllAddr + g_WxCalls.sendTextMsg; DWORD sendCallAddress = g_WeChatWinDllAddr + g_WxCalls.sendTextMsg;
@ -38,7 +30,7 @@ void SendTextMessage(string wxid, string msg, string atWxids)
txtWxid.size = wsWxid.size(); txtWxid.size = wsWxid.size();
txtWxid.capacity = wsWxid.capacity(); txtWxid.capacity = wsWxid.capacity();
vector<TextStruct_t> vTxtAtWxids; vector<WxString_t> vTxtAtWxids;
if (!atWxids.empty()) { if (!atWxids.empty()) {
vector<wstring> vAtWxids; vector<wstring> vAtWxids;
wstringstream wss(String2Wstring(atWxids)); wstringstream wss(String2Wstring(atWxids));
@ -46,10 +38,10 @@ void SendTextMessage(string wxid, string msg, string atWxids)
wstring wstr; wstring wstr;
getline(wss, wstr, L','); getline(wss, wstr, L',');
vAtWxids.push_back(wstr); vAtWxids.push_back(wstr);
TextStruct_t txtAtWxid = { 0 }; WxString_t txtAtWxid = { 0 };
txtAtWxid.text = (wchar_t *)vAtWxids.back().c_str(); txtAtWxid.text = (wchar_t *)vAtWxids.back().c_str();
txtAtWxid.size = vAtWxids.back().size(); txtAtWxid.size = vAtWxids.back().size();
txtAtWxid.capacity = vAtWxids.back().capacity(); txtAtWxid.capacity = vAtWxids.back().capacity();
vTxtAtWxids.push_back(txtAtWxid); vTxtAtWxids.push_back(txtAtWxid);
} }
} }
@ -73,11 +65,11 @@ void SendImageMessage(string wxid, string path)
if (g_WeChatWinDllAddr == 0) { if (g_WeChatWinDllAddr == 0) {
return; return;
} }
DWORD tmpEAX = 0; DWORD tmpEAX = 0;
char buf1[0x48] = { 0 }; char buf1[0x48] = { 0 };
char buf2[0x3B0] = { 0 }; char buf2[0x3B0] = { 0 };
TextStruct_t imgWxid = { 0 }; WxString_t imgWxid = { 0 };
TextStruct_t imgPath = { 0 }; WxString_t imgPath = { 0 };
wstring wsWxid = String2Wstring(wxid); wstring wsWxid = String2Wstring(wxid);
wstring wspath = String2Wstring(path); wstring wspath = String2Wstring(path);
@ -121,11 +113,11 @@ void SendFileMessage(string wxid, string path)
if (g_WeChatWinDllAddr == 0) { if (g_WeChatWinDllAddr == 0) {
return; return;
} }
DWORD tmpEAX = 0; DWORD tmpEAX = 0;
char buffer[0x3B0] = { 0 }; char buffer[0x3B0] = { 0 };
TextStruct_t fileWxid = { 0 }; WxString_t fileWxid = { 0 };
TextStruct_t filePath = { 0 }; WxString_t filePath = { 0 };
TextStruct_t nullbuffer = { 0 }; WxString_t nullbuffer = { 0 };
wstring wsWxid = String2Wstring(wxid); wstring wsWxid = String2Wstring(wxid);
wstring wspath = String2Wstring(path); wstring wspath = String2Wstring(path);

View File

@ -72,9 +72,9 @@ typedef struct WxCalls {
RoomMember_t arm; // 添加群成员 RoomMember_t arm; // 添加群成员
} WxCalls_t; } WxCalls_t;
typedef struct TextStruct { typedef struct WxString {
wchar_t *text; wchar_t *text;
DWORD size; DWORD size;
DWORD capacity; DWORD capacity;
char fill[8]; char fill[8];
} TextStruct_t; } WxString_t;