From ccdd9cb1ce966f2183359f23aa9cfca415ef43ec Mon Sep 17 00:00:00 2001 From: Hans Leidekker Date: Tue, 25 Apr 2017 11:31:26 +0200 Subject: [PATCH] webservices: Implement WsReadMessageStart. Signed-off-by: Hans Leidekker Signed-off-by: Alexandre Julliard --- dlls/webservices/channel.c | 32 +++++++++++++++++++++++++++++++ dlls/webservices/webservices.spec | 2 +- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/dlls/webservices/channel.c b/dlls/webservices/channel.c index d35da4e3109..523c247161a 100644 --- a/dlls/webservices/channel.c +++ b/dlls/webservices/channel.c @@ -1046,6 +1046,38 @@ done: return hr; } +/************************************************************************** + * WsReadMessageStart [webservices.@] + */ +HRESULT WINAPI WsReadMessageStart( WS_CHANNEL *handle, WS_MESSAGE *msg, const WS_ASYNC_CONTEXT *ctx, + WS_ERROR *error ) +{ + struct channel *channel = (struct channel *)handle; + HRESULT hr; + + TRACE( "%p %p %p %p\n", handle, msg, ctx, error ); + if (error) FIXME( "ignoring error parameter\n" ); + if (ctx) FIXME( "ignoring ctx parameter\n" ); + + if (!channel || !msg) return E_INVALIDARG; + + EnterCriticalSection( &channel->cs ); + + if (channel->magic != CHANNEL_MAGIC) + { + LeaveCriticalSection( &channel->cs ); + return E_INVALIDARG; + } + + if ((hr = receive_message( channel )) == S_OK) + { + hr = WsReadEnvelopeStart( msg, channel->reader, NULL, NULL, NULL ); + } + + LeaveCriticalSection( &channel->cs ); + return hr; +} + HRESULT channel_accept_tcp( SOCKET socket, WS_CHANNEL *handle ) { struct channel *channel = (struct channel *)handle; diff --git a/dlls/webservices/webservices.spec b/dlls/webservices/webservices.spec index c55e30445f6..7f23e732a0f 100644 --- a/dlls/webservices/webservices.spec +++ b/dlls/webservices/webservices.spec @@ -114,7 +114,7 @@ @ stdcall WsReadEnvelopeEnd(ptr ptr) @ stdcall WsReadEnvelopeStart(ptr ptr ptr ptr ptr) @ stub WsReadMessageEnd -@ stub WsReadMessageStart +@ stdcall WsReadMessageStart(ptr ptr ptr ptr) @ stub WsReadMetadata @ stdcall WsReadNode(ptr ptr) @ stub WsReadQualifiedName