[3/5] webservices: Implement WsWriteMessageStart.
Hans Leidekker
hans at codeweavers.com
Tue Apr 25 04:31:28 CDT 2017
Signed-off-by: Hans Leidekker <hans at codeweavers.com>
---
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 0d8f78af96..bff9a4b15e 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 5c9beba66d..204e3f209f 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)
--
2.11.0
More information about the wine-patches
mailing list