mshtml: Added support for sending BSTR over IHTMLXMLHttpRequst::send.
Signed-off-by: Jacek Caban <jacek@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
80893bcf52
commit
5ae224dee8
|
@ -524,7 +524,8 @@ static HRESULT WINAPI HTMLXMLHttpRequest_open(IHTMLXMLHttpRequest *iface, BSTR b
|
||||||
static HRESULT WINAPI HTMLXMLHttpRequest_send(IHTMLXMLHttpRequest *iface, VARIANT varBody)
|
static HRESULT WINAPI HTMLXMLHttpRequest_send(IHTMLXMLHttpRequest *iface, VARIANT varBody)
|
||||||
{
|
{
|
||||||
HTMLXMLHttpRequest *This = impl_from_IHTMLXMLHttpRequest(iface);
|
HTMLXMLHttpRequest *This = impl_from_IHTMLXMLHttpRequest(iface);
|
||||||
nsresult nsres;
|
nsIWritableVariant *nsbody = NULL;
|
||||||
|
nsresult nsres = NS_OK;
|
||||||
|
|
||||||
TRACE("(%p)->(%s)\n", This, debugstr_variant(&varBody));
|
TRACE("(%p)->(%s)\n", This, debugstr_variant(&varBody));
|
||||||
|
|
||||||
|
@ -533,13 +534,27 @@ static HRESULT WINAPI HTMLXMLHttpRequest_send(IHTMLXMLHttpRequest *iface, VARIAN
|
||||||
case VT_EMPTY:
|
case VT_EMPTY:
|
||||||
case VT_ERROR:
|
case VT_ERROR:
|
||||||
break;
|
break;
|
||||||
|
case VT_BSTR: {
|
||||||
|
nsAString nsstr;
|
||||||
|
|
||||||
|
nsbody = create_nsvariant();
|
||||||
|
if(!nsbody)
|
||||||
|
return E_OUTOFMEMORY;
|
||||||
|
|
||||||
|
nsAString_InitDepend(&nsstr, V_BSTR(&varBody));
|
||||||
|
nsres = nsIWritableVariant_SetAsAString(nsbody, &nsstr);
|
||||||
|
nsAString_Finish(&nsstr);
|
||||||
|
break;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
FIXME("varBody(%s) unsupported\n", debugstr_variant(&varBody));
|
FIXME("unsupported body type %s\n", debugstr_variant(&varBody));
|
||||||
return E_FAIL;
|
return E_NOTIMPL;
|
||||||
}
|
}
|
||||||
|
|
||||||
nsres = nsIXMLHttpRequest_Send(This->nsxhr, NULL);
|
if(NS_SUCCEEDED(nsres))
|
||||||
|
nsres = nsIXMLHttpRequest_Send(This->nsxhr, (nsIVariant*)nsbody);
|
||||||
|
if(nsbody)
|
||||||
|
nsIWritableVariant_Release(nsbody);
|
||||||
if(NS_FAILED(nsres)) {
|
if(NS_FAILED(nsres)) {
|
||||||
ERR("nsIXMLHttpRequest_Send failed: %08x\n", nsres);
|
ERR("nsIXMLHttpRequest_Send failed: %08x\n", nsres);
|
||||||
return E_FAIL;
|
return E_FAIL;
|
||||||
|
|
Loading…
Reference in New Issue