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

View File

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

View File

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