参考:
1.wine 8.14
作用:从wine server中获取message reply
static LRESULT retrieve_reply(const struct send_message_info *info, size_t reply_size, LRESULT *result)
{
......
void *reply_data = NULL;
if(reply_size)
{
if(!(reply_data = malloc(reply_size)))
{
......
}
}
SERVER_START_REQ(get_message_reply)
{
......
if(reply_size) wine_server_set_reply(req, reply_data, reply_size);
if(!(status = wine_server_call(req))) *result = reply->result;
reply_size = wine_server_reply_size(reply);
}
SERVER_END_REQ;
if(!status && reply_size)
unpack_reply(info->hwnd, info->msg, info->wparam, info->lparam, reply_data, reply_size);
......
}
首先为Reply data 分配空间,之后调用wine_server_set_reply将其赋值给req相应成员,通过server端的get_message_reply获取数据, 函数返回后,reply data 就获取成功了。
那么获取哪个message 的reply呢?有其参数info指定。