static HRESULT WINAPI HTMLImgElement_get_src(IHTMLImgElement *iface, BSTR *p) { HTMLImgElement *This = impl_from_IHTMLImgElement(iface); const PRUnichar *src; nsAString src_str; nsresult nsres; HRESULT hres = S_OK; static const WCHAR blockedW[] = {'B','L','O','C','K','E','D',':',':',0}; TRACE("(%p)->(%p)\n", This, p); nsAString_Init(&src_str, NULL); nsres = nsIDOMHTMLImageElement_GetSrc(This->nsimg, &src_str); if(NS_SUCCEEDED(nsres)) { nsAString_GetData(&src_str, &src); if(!strncmpiW(src, blockedW, sizeof(blockedW)/sizeof(WCHAR)-1)) { TRACE("returning BLOCKED::\n"); *p = SysAllocString(blockedW); if(!*p) hres = E_OUTOFMEMORY; }else { hres = nsuri_to_url(src, TRUE, p); } }else { ERR("GetSrc failed: %08x\n", nsres); hres = E_FAIL; } nsAString_Finish(&src_str); return hres; }
static HRESULT WINAPI HTMLFormElement_get_action(IHTMLFormElement *iface, BSTR *p) { HTMLFormElement *This = impl_from_IHTMLFormElement(iface); nsAString action_str; nsresult nsres; HRESULT hres; TRACE("(%p)->(%p)\n", This, p); nsAString_Init(&action_str, NULL); nsres = nsIDOMHTMLFormElement_GetAction(This->nsform, &action_str); if(NS_SUCCEEDED(nsres)) { const PRUnichar *action; nsAString_GetData(&action_str, &action); hres = nsuri_to_url(action, FALSE, p); }else { ERR("GetAction failed: %08x\n", nsres); hres = E_FAIL; } nsAString_Finish(&action_str); return hres; }
static HRESULT WINAPI HTMLInputElement_get_src(IHTMLInputElement *iface, BSTR *p) { HTMLInputElement *This = impl_from_IHTMLInputElement(iface); const PRUnichar *src; nsAString src_str; nsresult nsres; HRESULT hres; TRACE("(%p)->(%p)\n", This, p); nsAString_Init(&src_str, NULL); nsres = nsIDOMHTMLInputElement_GetSrc(This->nsinput, &src_str); if(NS_FAILED(nsres)) { ERR("GetSrc failed: %08x\n", nsres); return E_FAIL; } nsAString_GetData(&src_str, &src); hres = nsuri_to_url(src, FALSE, p); nsAString_Finish(&src_str); return hres; }
static HRESULT WINAPI HTMLAnchorElement_get_href(IHTMLAnchorElement *iface, BSTR *p) { HTMLAnchorElement *This = impl_from_IHTMLAnchorElement(iface); nsAString href_str; nsresult nsres; HRESULT hres; TRACE("(%p)->(%p)\n", This, p); nsAString_Init(&href_str, NULL); nsres = nsIDOMHTMLAnchorElement_GetHref(This->nsanchor, &href_str); if(NS_SUCCEEDED(nsres)) { const PRUnichar *href; nsAString_GetData(&href_str, &href); hres = nsuri_to_url(href, TRUE, p); }else { ERR("GetHref failed: %08x\n", nsres); hres = E_FAIL; } nsAString_Finish(&href_str); return hres; }