rpcrt4: Flesh out more of the IRpcChannelBuffer vtable to make the test_delegating_Invoke test succeed on Windows.
This commit is contained in:
parent
8f3afb4120
commit
f191f59ee4
|
@ -836,7 +836,25 @@ static ITypeLibVtbl delegating_invoke_test_obj_vtbl =
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
static HRESULT WINAPI delegating_invoke_test_get_buffer(IRpcChannelBuffer *pchan,
|
static HRESULT WINAPI delegating_invoke_chan_query_interface(IRpcChannelBuffer *pchan,
|
||||||
|
REFIID iid,
|
||||||
|
void **ppv)
|
||||||
|
{
|
||||||
|
ok(0, "call to QueryInterface not expected\n");
|
||||||
|
return E_NOINTERFACE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static ULONG WINAPI delegating_invoke_chan_add_ref(IRpcChannelBuffer *pchan)
|
||||||
|
{
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
static ULONG WINAPI delegating_invoke_chan_release(IRpcChannelBuffer *pchan)
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI delegating_invoke_chan_get_buffer(IRpcChannelBuffer *pchan,
|
||||||
RPCOLEMESSAGE *msg,
|
RPCOLEMESSAGE *msg,
|
||||||
REFIID iid)
|
REFIID iid)
|
||||||
{
|
{
|
||||||
|
@ -844,16 +862,46 @@ static HRESULT WINAPI delegating_invoke_test_get_buffer(IRpcChannelBuffer *pchan
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI delegating_invoke_chan_send_receive(IRpcChannelBuffer *pchan,
|
||||||
|
RPCOLEMESSAGE *pMessage,
|
||||||
|
ULONG *pStatus)
|
||||||
|
{
|
||||||
|
ok(0, "call to SendReceive not expected\n");
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI delegating_invoke_chan_free_buffer(IRpcChannelBuffer *pchan,
|
||||||
|
RPCOLEMESSAGE *pMessage)
|
||||||
|
{
|
||||||
|
ok(0, "call to FreeBuffer not expected\n");
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI delegating_invoke_chan_get_dest_ctx(IRpcChannelBuffer *pchan,
|
||||||
|
DWORD *pdwDestContext,
|
||||||
|
void **ppvDestContext)
|
||||||
|
{
|
||||||
|
*pdwDestContext = MSHCTX_LOCAL;
|
||||||
|
*ppvDestContext = NULL;
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI delegating_invoke_chan_is_connected(IRpcChannelBuffer *pchan)
|
||||||
|
{
|
||||||
|
ok(0, "call to IsConnected not expected\n");
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
static IRpcChannelBufferVtbl delegating_invoke_test_rpc_chan_vtbl =
|
static IRpcChannelBufferVtbl delegating_invoke_test_rpc_chan_vtbl =
|
||||||
{
|
{
|
||||||
NULL,
|
delegating_invoke_chan_query_interface,
|
||||||
NULL,
|
delegating_invoke_chan_add_ref,
|
||||||
NULL,
|
delegating_invoke_chan_release,
|
||||||
delegating_invoke_test_get_buffer,
|
delegating_invoke_chan_get_buffer,
|
||||||
NULL,
|
delegating_invoke_chan_send_receive,
|
||||||
NULL,
|
delegating_invoke_chan_free_buffer,
|
||||||
NULL,
|
delegating_invoke_chan_get_dest_ctx,
|
||||||
NULL
|
delegating_invoke_chan_is_connected
|
||||||
};
|
};
|
||||||
|
|
||||||
static void test_delegating_Invoke(IPSFactoryBuffer *ppsf)
|
static void test_delegating_Invoke(IPSFactoryBuffer *ppsf)
|
||||||
|
@ -869,7 +917,6 @@ static void test_delegating_Invoke(IPSFactoryBuffer *ppsf)
|
||||||
memset(&msg, 0, sizeof(msg));
|
memset(&msg, 0, sizeof(msg));
|
||||||
msg.dataRepresentation = NDR_LOCAL_DATA_REPRESENTATION;
|
msg.dataRepresentation = NDR_LOCAL_DATA_REPRESENTATION;
|
||||||
msg.iMethod = 3;
|
msg.iMethod = 3;
|
||||||
/* FIXME: Figure out why this fails on Windows */
|
|
||||||
r = IRpcStubBuffer_Invoke(pstub, &msg, pchan);
|
r = IRpcStubBuffer_Invoke(pstub, &msg, pchan);
|
||||||
ok(r == S_OK, "ret %08x\n", r);
|
ok(r == S_OK, "ret %08x\n", r);
|
||||||
if(r == S_OK)
|
if(r == S_OK)
|
||||||
|
|
Loading…
Reference in New Issue