static HRESULT WINAPI HTMLXMLHttpRequest_getResponseHeader(IHTMLXMLHttpRequest *iface, BSTR bstrHeader, BSTR *p) { HTMLXMLHttpRequest *This = impl_from_IHTMLXMLHttpRequest(iface); nsACString header, ret; char *cstr; nsresult nsres; HRESULT hres; LONG state; TRACE("(%p)->(%s %p)\n", This, debugstr_w(bstrHeader), p); if(!p) return E_POINTER; if(!bstrHeader) return E_INVALIDARG; hres = IHTMLXMLHttpRequest_get_readyState(iface, &state); if(FAILED(hres)) return hres; if(state < 2) { *p = NULL; return E_FAIL; } cstr = heap_strdupWtoU(bstrHeader); nsACString_InitDepend(&header, cstr); nsACString_Init(&ret, NULL); nsres = nsIXMLHttpRequest_GetResponseHeader(This->nsxhr, &header, &ret); nsACString_Finish(&header); heap_free(cstr); return return_nscstr(nsres, &ret, p); }
static HRESULT WINAPI HTMLXMLHttpRequest_getAllResponseHeaders(IHTMLXMLHttpRequest *iface, BSTR *p) { HTMLXMLHttpRequest *This = impl_from_IHTMLXMLHttpRequest(iface); nsACString nscstr; nsresult nsres; HRESULT hres; LONG state; TRACE("(%p)->(%p)\n", This, p); if(!p) return E_POINTER; hres = IHTMLXMLHttpRequest_get_readyState(iface, &state); if(FAILED(hres)) return hres; if(state < 2) { *p = NULL; return E_FAIL; } nsACString_Init(&nscstr, NULL); nsres = nsIXMLHttpRequest_GetAllResponseHeaders(This->nsxhr, &nscstr); return return_nscstr(nsres, &nscstr, p); }
static HRESULT bstr_to_nsacstr(BSTR bstr, nsACString *str) { char *cstr = heap_strdupWtoU(bstr); if(!cstr) return E_OUTOFMEMORY; nsACString_Init(str, cstr); heap_free(cstr); return S_OK; }
static nsresult NSAPI nsURIContentListener_OnStartURIOpen(nsIURIContentListener *iface, nsIURI *aURI, PRBool *_retval) { NSContainer *This = NSURICL_THIS(iface); nsIWineURI *wine_uri; nsACString spec_str; const char *spec; nsresult nsres; nsACString_Init(&spec_str, NULL); nsIURI_GetSpec(aURI, &spec_str); nsACString_GetData(&spec_str, &spec, NULL); TRACE("(%p)->(%p(%s) %p)\n", This, aURI, debugstr_a(spec), _retval); nsACString_Finish(&spec_str); nsres = nsIURI_QueryInterface(aURI, &IID_nsIWineURI, (void**)&wine_uri); if(NS_FAILED(nsres)) { WARN("Could not get nsIWineURI interface: %08lx\n", nsres); return NS_ERROR_NOT_IMPLEMENTED; } nsIWineURI_SetNSContainer(wine_uri, This); if(This->bscallback && This->bscallback->mon) { LPWSTR url; HRESULT hres; hres = IMoniker_GetDisplayName(This->bscallback->mon, NULL, 0, &url); if(SUCCEEDED(hres)) { IMoniker *mon = NULL; hres = CreateURLMoniker(NULL, url, &mon); if(SUCCEEDED(hres)) { nsIWineURI_SetMoniker(wine_uri, mon); IMoniker_Release(mon); }else { WARN("CreateURLMoniker failed: %08lx\n", hres); } }else { WARN("GetDisplayName failed: %08lx\n", hres); } } nsIWineURI_Release(wine_uri); return NS_ERROR_NOT_IMPLEMENTED; }