void sendMessage(const WCHAR * pwxid,const WCHAR * pmessage)
{
const WCHAR * writestring = (WCHAR *)pmessage;
int * p = (int*)((int)pWinImplBase+0xDEC);
VString * ptemp1 = new VString;
memcpy(ptemp1,p,sizeof(VString));
wstring temp((WCHAR *)pwxid);
VString * pstring = new VString;
pstring->pstting = (WCHAR*)temp.c_str();
pstring->size = temp.size();
pstring->lsize = temp.size();
memcpy(p,pstring,sizeof(VString));
void * psendwxid = nullptr;
__asm{
pushfd
pushad
mov eax, pWinImplBase
mov ecx,dword ptr ds:[eax+0x9BC]
add ecx,0x9B0
lea eax,dword ptr ds:[ecx+0x14]
mov psendwxid,eax
popad
popfd
}
VString * ptemp2 = new VString;
memcpy(ptemp2,psendwxid,sizeof(VString));
memcpy(psendwxid,pstring,sizeof(VString));
__asm{
pushfd
pushad
mov eax ,writestring
push eax
mov ecx,g_input_richedit
mov eax,[g_input_richedit]
mov eax,[eax]
call [eax+0x2C]
popad
popfd
}
__asm{
pushfd
pushad
mov ecx,pWinImplBase
call g_sendText
popad
popfd
}
//恢复数据
memcpy(p,ptemp1,sizeof(VString));
memcpy(psendwxid,ptemp2,sizeof(VString));
if (ptemp2)
{
delete ptemp2;
}
if (ptemp1)
{
delete ptemp1;
}
if (pstring)
{
delete pstring;
}