Module: wine Branch: master Commit: 6d4f83162a40cdf385e64a17a1a1c3280351468b URL: http://source.winehq.org/git/wine.git/?a=commit;h=6d4f83162a40cdf385e64a17a1...
Author: Hans Leidekker hans@codeweavers.com Date: Tue Apr 25 11:31:28 2017 +0200
webservices: Implement WsWriteMessageStart.
Signed-off-by: Hans Leidekker hans@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
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 0d8f78a..bff9a4b 100644 --- a/dlls/webservices/channel.c +++ b/dlls/webservices/channel.c @@ -1107,6 +1107,38 @@ HRESULT WINAPI WsReadMessageEnd( WS_CHANNEL *handle, WS_MESSAGE *msg, const WS_A return hr; }
+/************************************************************************** + * WsWriteMessageStart [webservices.@] + */ +HRESULT WINAPI WsWriteMessageStart( 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 = init_writer( channel )) != S_OK) goto done; + if ((hr = WsAddressMessage( msg, &channel->addr, NULL )) != S_OK) goto done; + hr = WsWriteEnvelopeStart( msg, channel->writer, NULL, NULL, NULL ); + +done: + 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 5c9beba..204e3f2 100644 --- a/dlls/webservices/webservices.spec +++ b/dlls/webservices/webservices.spec @@ -178,7 +178,7 @@ @ stdcall WsWriteEnvelopeEnd(ptr ptr) @ stdcall WsWriteEnvelopeStart(ptr ptr ptr ptr ptr) @ stub WsWriteMessageEnd -@ stub WsWriteMessageStart +@ stdcall WsWriteMessageStart(ptr ptr ptr ptr) @ stdcall WsWriteNode(ptr ptr ptr) @ stub WsWriteQualifiedName @ stdcall WsWriteStartAttribute(ptr ptr ptr ptr long ptr)