diff --git a/dlls/webservices/msg.c b/dlls/webservices/msg.c index ada549c7734..31c424b8f00 100644 --- a/dlls/webservices/msg.c +++ b/dlls/webservices/msg.c @@ -831,6 +831,33 @@ done: return hr; } +/************************************************************************** + * WsFlushBody [webservices.@] + */ +HRESULT WINAPI WsFlushBody( WS_MESSAGE *handle, ULONG size, const WS_ASYNC_CONTEXT *ctx, WS_ERROR *error ) +{ + struct msg *msg = (struct msg *)handle; + HRESULT hr; + + TRACE( "%p %u %p %p\n", handle, size, ctx, error ); + + if (!msg) return E_INVALIDARG; + + EnterCriticalSection( &msg->cs ); + + if (msg->magic != MSG_MAGIC) + { + LeaveCriticalSection( &msg->cs ); + return E_INVALIDARG; + } + + hr = WsFlushWriter( msg->writer_body, size, ctx, error ); + + LeaveCriticalSection( &msg->cs ); + TRACE( "returning %08x\n", hr ); + return hr; +} + static BOOL match_current_element( WS_XML_READER *reader, const WS_XML_STRING *localname ) { const WS_XML_NODE *node; diff --git a/dlls/webservices/webservices.spec b/dlls/webservices/webservices.spec index bd152b1ac34..c8db3a0375e 100644 --- a/dlls/webservices/webservices.spec +++ b/dlls/webservices/webservices.spec @@ -46,7 +46,7 @@ @ stdcall WsFillBody(ptr long ptr ptr) @ stdcall WsFillReader(ptr long ptr ptr) @ stdcall WsFindAttribute(ptr ptr ptr long ptr ptr) -@ stub WsFlushBody +@ stdcall WsFlushBody(ptr long ptr ptr) @ stdcall WsFlushWriter(ptr long ptr ptr) @ stdcall WsFreeChannel(ptr) @ stdcall WsFreeError(ptr)