On Wed Apr 12 07:11:24 2023 +0000, Yeshun Ye wrote:
I tried to add an interface like this:
[ uuid(00000000-4114-0704-2301-000000000002) ] interface IServer_Expilicit { void need_explicit_handle([in] handle_t binding, [in] unsigned int protseq); }
I added the code above to the file 'server_interp.idl', the function code to 'server.c' like this:
void __cdecl s_need_explicit_handle(RPC_BINDING_HANDLE binding, unsigned int protseq) { RPC_STATUS status; ULONG pid; winetest_push_context("%s", client_test_name); ok(binding != NULL, "Got unexpected binding\n"); trace("s_need_explicit_handle\n"); if (protseq == RPC_PROTSEQ_LRPC) /* Other protocol sequences throw exceptions */ { trace("RPC_PROTSEQ_LRPC\n"); status = I_RpcBindingInqLocalClientPID(binding, &pid); trace("I_RpcBindingInqLocalClientPID\n"); ok(status == RPC_S_OK, "Got unexpected %ld.\n", status); ok(pid == client_info.dwProcessId, "Got unexpected pid.\n"); trace("pid=%x client_info.dwProcessId=%x\n", pid, client_info.dwProcessId); } winetest_pop_context(); }
Then I don't know what to do next.
For a generic test case, you can see https://source.winehq.org/git/wine.git/commitdiff/056dbb04dea4d0b990e0177f63... for an example. However, in this case, you need to add a test case specifically for your changes. To be honest, I don't understand your patch, that's why I asked for a test case.