Impl invite chatroom members
This commit is contained in:
parent
64a3a916f0
commit
d56163709c
@ -78,11 +78,17 @@ int DelChatroomMember(string roomid, string wxids)
|
|||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
|
||||||
int InviteChatroomMember(string roomid, string wxids)
|
int InviteChatroomMember(string roomid, string wxids)
|
||||||
{
|
{
|
||||||
wstring wsRoomid = String2Wstring((roomid));
|
int status = -1;
|
||||||
WxString wxRoomid(wsRoomid);
|
|
||||||
|
if (roomid.empty() || wxids.empty()) {
|
||||||
|
LOG_ERROR("Empty roomid or wxids.");
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
funcInviteMemberToChatRoom_t InviteMembers
|
||||||
|
= (funcInviteMemberToChatRoom_t)(g_WeChatWinDllAddr + g_WxCalls.irm.call1);
|
||||||
|
|
||||||
vector<wstring> vMembers;
|
vector<wstring> vMembers;
|
||||||
vector<WxString> vWxMembers;
|
vector<WxString> vWxMembers;
|
||||||
@ -94,52 +100,11 @@ int InviteChatroomMember(string roomid, string wxids)
|
|||||||
WxString wxMember(vMembers.back());
|
WxString wxMember(vMembers.back());
|
||||||
vWxMembers.push_back(wxMember);
|
vWxMembers.push_back(wxMember);
|
||||||
}
|
}
|
||||||
|
QWORD temp[2] = { 0 };
|
||||||
|
wstring wsRoomid = String2Wstring(roomid);
|
||||||
|
WxString *pWxRoomid = NewWxStringFromWstr(wsRoomid);
|
||||||
|
QWORD pMembers = (QWORD) & ((RawVector_t *)&vWxMembers)->start;
|
||||||
|
|
||||||
LOG_DEBUG("Inviting {} members[{}] to {}", vWxMembers.size(), wxids.c_str(), roomid.c_str());
|
status = (int)InviteMembers((QWORD)wsRoomid.c_str(), pMembers, (QWORD)pWxRoomid, (QWORD)temp);
|
||||||
|
return status;
|
||||||
DWORD irmCall1 = g_WeChatWinDllAddr + g_WxCalls.irm.call1;
|
|
||||||
DWORD irmCall2 = g_WeChatWinDllAddr + g_WxCalls.irm.call2;
|
|
||||||
DWORD irmCall3 = g_WeChatWinDllAddr + g_WxCalls.irm.call3;
|
|
||||||
DWORD irmCall4 = g_WeChatWinDllAddr + g_WxCalls.irm.call4;
|
|
||||||
DWORD irmCall5 = g_WeChatWinDllAddr + g_WxCalls.irm.call5;
|
|
||||||
DWORD irmCall6 = g_WeChatWinDllAddr + g_WxCalls.irm.call6;
|
|
||||||
DWORD irmCall7 = g_WeChatWinDllAddr + g_WxCalls.irm.call7;
|
|
||||||
DWORD irmCall8 = g_WeChatWinDllAddr + g_WxCalls.irm.call8;
|
|
||||||
|
|
||||||
DWORD sys_addr = (DWORD)GetModuleHandleA("win32u.dll") + 0x116C;
|
|
||||||
DWORD addr[2] = { sys_addr, 0 };
|
|
||||||
__asm {
|
|
||||||
pushad;
|
|
||||||
pushfd;
|
|
||||||
call irmCall1;
|
|
||||||
lea ecx, addr;
|
|
||||||
push ecx;
|
|
||||||
mov ecx, eax;
|
|
||||||
call irmCall2;
|
|
||||||
call irmCall3;
|
|
||||||
sub esp, 0x8;
|
|
||||||
lea eax, addr;
|
|
||||||
mov ecx, esp;
|
|
||||||
push eax;
|
|
||||||
call irmCall4;
|
|
||||||
sub esp, 0x14;
|
|
||||||
mov ecx, esp;
|
|
||||||
lea eax, wxRoomid;
|
|
||||||
push eax;
|
|
||||||
call irmCall5;
|
|
||||||
lea eax, vWxMembers;
|
|
||||||
push eax;
|
|
||||||
call irmCall6;
|
|
||||||
call irmCall1;
|
|
||||||
push 0x0;
|
|
||||||
push 0x1;
|
|
||||||
mov ecx, eax;
|
|
||||||
call irmCall7;
|
|
||||||
lea ecx, addr;
|
|
||||||
call irmCall8;
|
|
||||||
popfd;
|
|
||||||
popad;
|
|
||||||
}
|
|
||||||
return 1;
|
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
@ -818,7 +818,6 @@ bool func_del_room_members(char *roomid, char *wxids, uint8_t *out, size_t *len)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
|
||||||
bool func_invite_room_members(char *roomid, char *wxids, uint8_t *out, size_t *len)
|
bool func_invite_room_members(char *roomid, char *wxids, uint8_t *out, size_t *len)
|
||||||
{
|
{
|
||||||
Response rsp = Response_init_default;
|
Response rsp = Response_init_default;
|
||||||
@ -842,7 +841,6 @@ bool func_invite_room_members(char *roomid, char *wxids, uint8_t *out, size_t *l
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
static bool dispatcher(uint8_t *in, size_t in_len, uint8_t *out, size_t *out_len)
|
static bool dispatcher(uint8_t *in, size_t in_len, uint8_t *out, size_t *out_len)
|
||||||
{
|
{
|
||||||
@ -984,12 +982,10 @@ static bool dispatcher(uint8_t *in, size_t in_len, uint8_t *out, size_t *out_len
|
|||||||
ret = func_del_room_members(req.msg.m.roomid, req.msg.m.wxids, out, out_len);
|
ret = func_del_room_members(req.msg.m.roomid, req.msg.m.wxids, out, out_len);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#if 0
|
|
||||||
case Functions_FUNC_INV_ROOM_MEMBERS: {
|
case Functions_FUNC_INV_ROOM_MEMBERS: {
|
||||||
ret = func_invite_room_members(req.msg.m.roomid, req.msg.m.wxids, out, out_len);
|
ret = func_invite_room_members(req.msg.m.roomid, req.msg.m.wxids, out, out_len);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
default: {
|
default: {
|
||||||
LOG_ERROR("[UNKNOW FUNCTION]");
|
LOG_ERROR("[UNKNOW FUNCTION]");
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user