ForwardMessage.cpp 833 字节
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
#include "pch.h"

struct ForwardMessageStruct
{
    DWORD wxid;
    DWORD localId;
};

BOOL ForwardMessage(DWORD pid, wchar_t *wxid, int localId)
{
    WeChatProcess hp(pid);
    if (!hp.m_init)
        return 1;
    DWORD ForwardMessageRemoteAddr = hp.GetProcAddr(ForwardMessageRemote);
    if (ForwardMessageRemoteAddr == 0)
    {
        return 1;
    }
    ForwardMessageStruct params = {0};
    WeChatData<wchar_t *> r_wxid(hp.GetHandle(), wxid, TEXTLENGTH(wxid));
    params.wxid = (DWORD)r_wxid.GetAddr();
    params.localId = localId;
    WeChatData<ForwardMessageStruct *> r_params(hp.GetHandle(), &params, sizeof(params));
    if (!params.wxid || !r_params.GetAddr())
    {
        return 1;
    }
    DWORD dwRet = CallRemoteFunction(hp.GetHandle(), ForwardMessageRemoteAddr, r_params.GetAddr());
    return dwRet == 0;
}