HRESULT channel_receive_message( WS_CHANNEL *handle, char **buf, ULONG *len ) { struct channel *channel = (struct channel *)handle; ULONG max_len; WsGetChannelProperty( handle, WS_CHANNEL_PROPERTY_MAX_BUFFERED_MESSAGE_SIZE, &max_len, sizeof(max_len), NULL ); return receive_message( channel, max_len, buf, len ); }
/************************************************************************** * WsCreateMessageForChannel [webservices.@] */ HRESULT WINAPI WsCreateMessageForChannel( WS_CHANNEL *channel_handle, const WS_MESSAGE_PROPERTY *properties, ULONG count, WS_MESSAGE **handle, WS_ERROR *error ) { WS_ENVELOPE_VERSION version_env; WS_ADDRESSING_VERSION version_addr; HRESULT hr; TRACE( "%p %p %u %p %p\n", channel_handle, properties, count, handle, error ); if (error) FIXME( "ignoring error parameter\n" ); if (!channel_handle || !handle) return E_INVALIDARG; if ((hr = WsGetChannelProperty( channel_handle, WS_CHANNEL_PROPERTY_ENVELOPE_VERSION, &version_env, sizeof(version_env), NULL )) != S_OK || !version_env) version_env = WS_ENVELOPE_VERSION_SOAP_1_2; if ((hr = WsGetChannelProperty( channel_handle, WS_CHANNEL_PROPERTY_ADDRESSING_VERSION, &version_addr, sizeof(version_addr), NULL )) != S_OK || !version_addr) version_addr = WS_ADDRESSING_VERSION_1_0; return create_msg( version_env, version_addr, properties, count, handle ); }