static HRESULT WINAPI HTMLTable_put_cellSpacing(IHTMLTable *iface, VARIANT v) { HTMLTable *This = impl_from_IHTMLTable(iface); nsAString nsstr; WCHAR buf[64]; nsresult nsres; TRACE("(%p)->(%s)\n", This, debugstr_variant(&v)); switch(V_VT(&v)) { case VT_BSTR: nsAString_InitDepend(&nsstr, V_BSTR(&v)); break; case VT_I4: { static const WCHAR formatW[] = {'%','d',0}; sprintfW(buf, formatW, V_I4(&v)); nsAString_InitDepend(&nsstr, buf); break; } default: FIXME("unsupported arg %s\n", debugstr_variant(&v)); return E_NOTIMPL; } nsres = nsIDOMHTMLTableElement_SetCellSpacing(This->nstable, &nsstr); nsAString_Finish(&nsstr); if(NS_FAILED(nsres)) { ERR("SetCellSpacing failed: %08x\n", nsres); return E_FAIL; } return S_OK; }
static HRESULT WINAPI HTMLFrameBase_put_scrolling(IHTMLFrameBase *iface, BSTR v) { HTMLFrameBase *This = impl_from_IHTMLFrameBase(iface); nsAString nsstr; nsresult nsres; TRACE("(%p)->(%s)\n", This, debugstr_w(v)); if(!(!strcmpiW(v, yesW) || !strcmpiW(v, noW) || !strcmpiW(v, autoW))) return E_INVALIDARG; if(This->nsframe) { nsAString_InitDepend(&nsstr, v); nsres = nsIDOMHTMLFrameElement_SetScrolling(This->nsframe, &nsstr); }else if(This->nsiframe) { nsAString_InitDepend(&nsstr, v); nsres = nsIDOMHTMLIFrameElement_SetScrolling(This->nsiframe, &nsstr); }else { ERR("No attached ns frame object\n"); return E_UNEXPECTED; } nsAString_Finish(&nsstr); if(NS_FAILED(nsres)) { ERR("SetScrolling failed: 0x%08x\n", nsres); return E_FAIL; } return S_OK; }
static HRESULT WINAPI HTMLDocument3_getElementsByTagName(IHTMLDocument3 *iface, BSTR v, IHTMLElementCollection **pelColl) { HTMLDocument *This = HTMLDOC3_THIS(iface); nsIDOMNodeList *nslist; nsAString id_str, ns_str; nsresult nsres; static const WCHAR str[] = {'*',0}; TRACE("(%p)->(%s %p)\n", This, debugstr_w(v), pelColl); if(!This->doc_node->nsdoc) { WARN("NULL nsdoc\n"); return E_UNEXPECTED; } nsAString_InitDepend(&id_str, v); nsAString_InitDepend(&ns_str, str); nsres = nsIDOMHTMLDocument_GetElementsByTagNameNS(This->doc_node->nsdoc, &ns_str, &id_str, &nslist); nsAString_Finish(&id_str); nsAString_Finish(&ns_str); if(FAILED(nsres)) { ERR("GetElementByName failed: %08x\n", nsres); return E_FAIL; } *pelColl = (IHTMLElementCollection*)create_collection_from_nodelist(This->doc_node, (IUnknown*)HTMLDOC3(This), nslist); nsIDOMNodeList_Release(nslist); return S_OK; }
static void set_font_size(HTMLDocument *This, LPCWSTR size) { nsISelection *nsselection; cpp_bool collapsed; nsIDOMHTMLElement *elem; nsIDOMRange *range; LONG range_cnt = 0; nsAString size_str; nsAString val_str; if(!This->doc_node->nsdoc) { WARN("NULL nsdoc\n"); return; } nsselection = get_ns_selection(This); if(!nsselection) return; nsISelection_GetRangeCount(nsselection, &range_cnt); if(range_cnt != 1) { FIXME("range_cnt %d not supprted\n", range_cnt); if(!range_cnt) { nsISelection_Release(nsselection); return; } } create_nselem(This->doc_node, fontW, &elem); nsAString_InitDepend(&size_str, sizeW); nsAString_InitDepend(&val_str, size); nsIDOMHTMLElement_SetAttribute(elem, &size_str, &val_str); nsAString_Finish(&val_str); nsISelection_GetRangeAt(nsselection, 0, &range); nsISelection_GetIsCollapsed(nsselection, &collapsed); nsISelection_RemoveAllRanges(nsselection); nsIDOMRange_SurroundContents(range, (nsIDOMNode*)elem); if(collapsed) { nsISelection_Collapse(nsselection, (nsIDOMNode*)elem, 0); }else { /* Remove all size attributes from the range */ remove_child_attr((nsIDOMElement*)elem, fontW, &size_str); nsISelection_SelectAllChildren(nsselection, (nsIDOMNode*)elem); } nsISelection_Release(nsselection); nsIDOMRange_Release(range); nsIDOMHTMLElement_Release(elem); nsAString_Finish(&size_str); set_dirty(This, VARIANT_TRUE); }
static HRESULT WINAPI HTMLDocument5_createComment(IHTMLDocument5 *iface, BSTR bstrdata, IHTMLDOMNode **ppRetNode) { HTMLDocument *This = impl_from_IHTMLDocument5(iface); nsIDOMComment *nscomment; HTMLElement *elem; nsAString str; nsresult nsres; HRESULT hres; TRACE("(%p)->(%s %p)\n", This, debugstr_w(bstrdata), ppRetNode); if(!This->doc_node->nsdoc) { WARN("NULL nsdoc\n"); return E_UNEXPECTED; } nsAString_InitDepend(&str, bstrdata); nsres = nsIDOMHTMLDocument_CreateComment(This->doc_node->nsdoc, &str, &nscomment); nsAString_Finish(&str); if(NS_FAILED(nsres)) { ERR("CreateTextNode failed: %08x\n", nsres); return E_FAIL; } hres = HTMLCommentElement_Create(This->doc_node, (nsIDOMNode*)nscomment, &elem); nsIDOMComment_Release(nscomment); if(FAILED(hres)) return hres; *ppRetNode = &elem->node.IHTMLDOMNode_iface; return S_OK; }
static HRESULT WINAPI HTMLDOMNode_put_nodeValue(IHTMLDOMNode *iface, VARIANT v) { HTMLDOMNode *This = impl_from_IHTMLDOMNode(iface); TRACE("(%p)->()\n", This); switch(V_VT(&v)) { case VT_BSTR: { nsAString val_str; TRACE("bstr %s\n", debugstr_w(V_BSTR(&v))); nsAString_InitDepend(&val_str, V_BSTR(&v)); nsIDOMNode_SetNodeValue(This->nsnode, &val_str); nsAString_Finish(&val_str); return S_OK; } default: FIXME("unsupported vt %d\n", V_VT(&v)); } return E_NOTIMPL; }
static HRESULT set_event_info(HTMLEventObj *event, HTMLDOMNode *target, eventid_t eid, nsIDOMEvent *nsevent) { event->type = event_info+eid; event->nsevent = nsevent; if(nsevent) { nsIDOMEvent_AddRef(nsevent); }else if(event_types[event_info[eid].type]) { nsAString type_str; nsresult nsres; nsAString_InitDepend(&type_str, event_types[event_info[eid].type]); nsres = nsIDOMHTMLDocument_CreateEvent(target->doc->nsdoc, &type_str, &event->nsevent); nsAString_Finish(&type_str); if(NS_FAILED(nsres)) { ERR("Could not create event: %08x\n", nsres); return E_FAIL; } } event->target = target; if(target) IHTMLDOMNode_AddRef(&target->IHTMLDOMNode_iface); return S_OK; }
static BOOL is_elem_name(HTMLElement *elem, LPCWSTR name) { const PRUnichar *str; nsAString nsstr, nsname; BOOL ret = FALSE; nsresult nsres; static const PRUnichar nameW[] = {'n','a','m','e',0}; if(!elem->nselem) return FALSE; nsAString_Init(&nsstr, NULL); nsIDOMHTMLElement_GetId(elem->nselem, &nsstr); nsAString_GetData(&nsstr, &str); if(!strcmpiW(str, name)) { nsAString_Finish(&nsstr); return TRUE; } nsAString_InitDepend(&nsname, nameW); nsres = nsIDOMHTMLElement_GetAttribute(elem->nselem, &nsname, &nsstr); nsAString_Finish(&nsname); if(NS_SUCCEEDED(nsres)) { nsAString_GetData(&nsstr, &str); ret = !strcmpiW(str, name); } nsAString_Finish(&nsstr); return ret; }
static HRESULT WINAPI HTMLDocument3_createTextNode(IHTMLDocument3 *iface, BSTR text, IHTMLDOMNode **newTextNode) { HTMLDocument *This = impl_from_IHTMLDocument3(iface); nsIDOMText *nstext; HTMLDOMNode *node; nsAString text_str; nsresult nsres; HRESULT hres; TRACE("(%p)->(%s %p)\n", This, debugstr_w(text), newTextNode); if(!This->doc_node->nsdoc) { WARN("NULL nsdoc\n"); return E_UNEXPECTED; } nsAString_InitDepend(&text_str, text); nsres = nsIDOMHTMLDocument_CreateTextNode(This->doc_node->nsdoc, &text_str, &nstext); nsAString_Finish(&text_str); if(NS_FAILED(nsres)) { ERR("CreateTextNode failed: %08x\n", nsres); return E_FAIL; } hres = HTMLDOMTextNode_Create(This->doc_node, (nsIDOMNode*)nstext, &node); nsIDOMText_Release(nstext); if(FAILED(hres)) return hres; *newTextNode = &node->IHTMLDOMNode_iface; return S_OK; }
static HRESULT WINAPI HTMLFrameBase_put_src(IHTMLFrameBase *iface, BSTR v) { HTMLFrameBase *This = impl_from_IHTMLFrameBase(iface); TRACE("(%p)->(%s)\n", This, debugstr_w(v)); if(!This->content_window || !This->element.node.doc || !This->element.node.doc->basedoc.window) { nsAString nsstr; nsresult nsres; nsAString_InitDepend(&nsstr, v); if(This->nsframe) nsres = nsIDOMHTMLFrameElement_SetSrc(This->nsframe, &nsstr); else nsres = nsIDOMHTMLIFrameElement_SetSrc(This->nsiframe, &nsstr); nsAString_Finish(&nsstr); if(NS_FAILED(nsres)) { ERR("SetSrc failed: %08x\n", nsres); return E_FAIL; } return S_OK; } return navigate_url(This->content_window, v, This->element.node.doc->basedoc.window->uri, BINDING_NAVIGATED); }
static void HTMLXMLHttpRequest_bind_event(DispatchEx *dispex, int eid) { HTMLXMLHttpRequest *This = impl_from_DispatchEx(dispex); nsIDOMEventTarget *nstarget; nsAString type_str; nsresult nsres; static const WCHAR readystatechangeW[] = {'r','e','a','d','y','s','t','a','t','e','c','h','a','n','g','e',0}; TRACE("(%p)\n", This); assert(eid == EVENTID_READYSTATECHANGE); if(This->event_listener) return; This->event_listener = heap_alloc(sizeof(*This->event_listener)); if(!This->event_listener) return; This->event_listener->nsIDOMEventListener_iface.lpVtbl = &XMLHttpReqEventListenerVtbl; This->event_listener->ref = 1; This->event_listener->xhr = This; nsres = nsIXMLHttpRequest_QueryInterface(This->nsxhr, &IID_nsIDOMEventTarget, (void**)&nstarget); assert(nsres == NS_OK); nsAString_InitDepend(&type_str, readystatechangeW); nsres = nsIDOMEventTarget_AddEventListener(nstarget, &type_str, &This->event_listener->nsIDOMEventListener_iface, FALSE, TRUE, 2); nsAString_Finish(&type_str); nsIDOMEventTarget_Release(nstarget); if(NS_FAILED(nsres)) ERR("AddEventListener failed: %08x\n", nsres); }
static HRESULT WINAPI HTMLFormElement_put_encoding(IHTMLFormElement *iface, BSTR v) { static const WCHAR urlencodedW[] = {'a','p','p','l','i','c','a','t','i','o','n','/', 'x','-','w','w','w','-','f','o','r','m','-','u','r','l','e','n','c','o','d','e','d',0}; static const WCHAR dataW[] = {'m','u','l','t','i','p','a','r','t','/', 'f','o','r','m','-','d','a','t','a',0}; static const WCHAR plainW[] = {'t','e','x','t','/','p','l','a','i','n',0}; HTMLFormElement *This = impl_from_IHTMLFormElement(iface); nsAString encoding_str; nsresult nsres; TRACE("(%p)->(%s)\n", This, wine_dbgstr_w(v)); if(lstrcmpiW(v, urlencodedW) && lstrcmpiW(v, dataW) && lstrcmpiW(v, plainW)) { WARN("incorrect enctype\n"); return E_INVALIDARG; } nsAString_InitDepend(&encoding_str, v); nsres = nsIDOMHTMLFormElement_SetEnctype(This->nsform, &encoding_str); nsAString_Finish(&encoding_str); if(NS_FAILED(nsres)) return E_FAIL; return S_OK; }
static HRESULT WINAPI HTMLFrameBase_put_frameBorder(IHTMLFrameBase *iface, BSTR v) { HTMLFrameBase *This = impl_from_IHTMLFrameBase(iface); nsAString nsstr; nsresult nsres; TRACE("(%p)->(%s)\n", This, debugstr_w(v)); if(!This->nsframe && !This->nsiframe) { ERR("No attached ns frame object\n"); return E_UNEXPECTED; } nsAString_InitDepend(&nsstr, v); if(This->nsframe) nsres = nsIDOMHTMLFrameElement_SetFrameBorder(This->nsframe, &nsstr); else nsres = nsIDOMHTMLIFrameElement_SetFrameBorder(This->nsiframe, &nsstr); nsAString_Finish(&nsstr); if(NS_FAILED(nsres)) { ERR("SetFrameBorder failed: %08x\n", nsres); return E_FAIL; } return S_OK; }
static HRESULT WINAPI HTMLObjectElement_put_height(IHTMLObjectElement *iface, VARIANT v) { HTMLObjectElement *This = impl_from_IHTMLObjectElement(iface); nsAString height_str; PRUnichar buf[12]; nsresult nsres; TRACE("(%p)->(%s)\n", This, debugstr_variant(&v)); switch(V_VT(&v)) { case VT_I4: { static const WCHAR formatW[] = {'%','d',0}; sprintfW(buf, formatW, V_I4(&v)); break; } default: FIXME("unimplemented for arg %s\n", debugstr_variant(&v)); return E_NOTIMPL; } nsAString_InitDepend(&height_str, buf); nsres = nsIDOMHTMLObjectElement_SetHeight(This->nsobject, &height_str); nsAString_Finish(&height_str); if(NS_FAILED(nsres)) { FIXME("SetHeight failed: %08x\n", nsres); return E_FAIL; } notif_container_change(&This->plugin_container, DISPID_UNKNOWN); return S_OK; }
static HRESULT WINAPI HTMLScriptElement_put_src(IHTMLScriptElement *iface, BSTR v) { HTMLScriptElement *This = impl_from_IHTMLScriptElement(iface); HTMLInnerWindow *window; nsIDOMNode *parent; nsAString src_str; nsresult nsres; TRACE("(%p)->(%s)\n", This, debugstr_w(v)); if(!This->element.node.doc || !This->element.node.doc->window) { WARN("no windoow\n"); return E_UNEXPECTED; } window = This->element.node.doc->window; nsAString_InitDepend(&src_str, v); nsres = nsIDOMHTMLScriptElement_SetSrc(This->nsscript, &src_str); nsAString_Finish(&src_str); if(NS_FAILED(nsres)) { ERR("SetSrc failed: %08x\n", nsres); return E_FAIL; } if(This->parsed) { WARN("already parsed\n"); return S_OK; } if(window->parser_callback_cnt) { script_queue_entry_t *queue; queue = heap_alloc(sizeof(*queue)); if(!queue) return E_OUTOFMEMORY; IHTMLScriptElement_AddRef(&This->IHTMLScriptElement_iface); queue->script = This; list_add_tail(&window->script_queue, &queue->entry); return S_OK; } nsres = nsIDOMHTMLElement_GetParentNode(This->element.nselem, &parent); if(NS_FAILED(nsres) || !parent) { TRACE("No parent, not executing\n"); This->parse_on_bind = TRUE; return S_OK; } nsIDOMNode_Release(parent); doc_insert_script(window, This); return S_OK; }
static HRESULT WINAPI HTMLDOMTextNode_put_data(IHTMLDOMTextNode *iface, BSTR v) { HTMLDOMTextNode *This = impl_from_IHTMLDOMTextNode(iface); nsAString nsstr; nsresult nsres; TRACE("(%p)->(%s)\n", This, debugstr_w(v)); nsAString_InitDepend(&nsstr, v); nsres = nsIDOMText_SetData(This->nstext, &nsstr); nsAString_Finish(&nsstr); return NS_SUCCEEDED(nsres) ? S_OK : E_FAIL; }
static void init_event(nsIDOMEventTarget *target, const PRUnichar *type, nsIDOMEventListener *listener, BOOL capture) { nsAString type_str; nsresult nsres; nsAString_InitDepend(&type_str, type); nsres = nsIDOMEventTarget_AddEventListener(target, &type_str, listener, capture, FALSE, 1); nsAString_Finish(&type_str); if(NS_FAILED(nsres)) ERR("AddEventTarget failed: %08x\n", nsres); }
static HRESULT WINAPI HTMLObjectElement_put_name(IHTMLObjectElement *iface, BSTR v) { HTMLObjectElement *This = impl_from_IHTMLObjectElement(iface); nsAString nsstr; nsresult nsres; TRACE("(%p)->(%s)\n", This, debugstr_w(v)); nsAString_InitDepend(&nsstr, v); nsres = nsIDOMHTMLObjectElement_SetName(This->nsobject, &nsstr); nsAString_Finish(&nsstr); return NS_SUCCEEDED(nsres) ? S_OK : E_FAIL; }
static HRESULT WINAPI HTMLLinkElement_put_href(IHTMLLinkElement *iface, BSTR v) { HTMLLinkElement *This = impl_from_IHTMLLinkElement(iface); nsAString href_str; nsresult nsres; TRACE("(%p)->(%s)\n", This, debugstr_w(v)); nsAString_InitDepend(&href_str, v); nsres = nsIDOMHTMLLinkElement_SetHref(This->nslink, &href_str); nsAString_Finish(&href_str); return NS_SUCCEEDED(nsres) ? S_OK : E_FAIL; }
static HRESULT WINAPI HTMLOptionElement_put_text(IHTMLOptionElement *iface, BSTR v) { HTMLOptionElement *This = impl_from_IHTMLOptionElement(iface); nsIDOMText *text_node; nsAString text_str; nsIDOMNode *tmp; nsresult nsres; TRACE("(%p)->(%s)\n", This, debugstr_w(v)); if(!This->element.node.doc->nsdoc) { WARN("NULL nsdoc\n"); return E_UNEXPECTED; } while(1) { nsIDOMNode *child; nsres = nsIDOMHTMLOptionElement_GetFirstChild(This->nsoption, &child); if(NS_FAILED(nsres) || !child) break; nsres = nsIDOMHTMLOptionElement_RemoveChild(This->nsoption, child, &tmp); nsIDOMNode_Release(child); if(NS_SUCCEEDED(nsres)) { nsIDOMNode_Release(tmp); }else { ERR("RemoveChild failed: %08x\n", nsres); break; } } nsAString_InitDepend(&text_str, v); nsres = nsIDOMHTMLDocument_CreateTextNode(This->element.node.doc->nsdoc, &text_str, &text_node); nsAString_Finish(&text_str); if(NS_FAILED(nsres)) { ERR("CreateTextNode failed: %08x\n", nsres); return E_FAIL; } nsres = nsIDOMHTMLOptionElement_AppendChild(This->nsoption, (nsIDOMNode*)text_node, &tmp); if(NS_SUCCEEDED(nsres)) nsIDOMNode_Release(tmp); else ERR("AppendChild failed: %08x\n", nsres); return S_OK; }
static HRESULT variant_to_nsastr(VARIANT var, nsAString *ret) { switch(V_VT(&var)) { case VT_NULL: case VT_ERROR: case VT_EMPTY: nsAString_Init(ret, NULL); return S_OK; case VT_BSTR: nsAString_InitDepend(ret, V_BSTR(&var)); return S_OK; default: FIXME("Unsupported VARIANT: %s\n", debugstr_variant(&var)); return E_INVALIDARG; } }
static HRESULT WINAPI HTMLBodyElement_put_background(IHTMLBodyElement *iface, BSTR v) { HTMLBodyElement *This = impl_from_IHTMLBodyElement(iface); nsAString nsstr; nsresult nsres; TRACE("(%p)->(%s)\n", This, debugstr_w(v)); nsAString_InitDepend(&nsstr, v); nsres = nsIDOMHTMLBodyElement_SetBackground(This->nsbody, &nsstr); nsAString_Finish(&nsstr); if(NS_FAILED(nsres)) return E_FAIL; return S_OK; }
static HRESULT WINAPI HTMLOptionElement_put_value(IHTMLOptionElement *iface, BSTR v) { HTMLOptionElement *This = impl_from_IHTMLOptionElement(iface); nsAString value_str; nsresult nsres; TRACE("(%p)->(%s)\n", This, debugstr_w(v)); nsAString_InitDepend(&value_str, v); nsres = nsIDOMHTMLOptionElement_SetValue(This->nsoption, &value_str); nsAString_Finish(&value_str); if(NS_FAILED(nsres)) ERR("SetValue failed: %08x\n", nsres); return S_OK; }
static HRESULT WINAPI HTMLFormElement_put_name(IHTMLFormElement *iface, BSTR v) { HTMLFormElement *This = impl_from_IHTMLFormElement(iface); nsAString name_str; nsresult nsres; TRACE("(%p)->(%s)\n", This, wine_dbgstr_w(v)); nsAString_InitDepend(&name_str, v); nsres = nsIDOMHTMLFormElement_SetName(This->nsform, &name_str); nsAString_Finish(&name_str); if(NS_FAILED(nsres)) return E_FAIL; return S_OK; }
static HRESULT WINAPI HTMLImgElement_put_src(IHTMLImgElement *iface, BSTR v) { HTMLImgElement *This = impl_from_IHTMLImgElement(iface); nsAString src_str; nsresult nsres; TRACE("(%p)->(%s)\n", This, debugstr_w(v)); nsAString_InitDepend(&src_str, v); nsres = nsIDOMHTMLImageElement_SetSrc(This->nsimg, &src_str); nsAString_Finish(&src_str); if(NS_FAILED(nsres)) ERR("SetSrc failed: %08x\n", nsres); return NS_OK; }
static HRESULT WINAPI HTMLSelectElement_put_name(IHTMLSelectElement *iface, BSTR v) { HTMLSelectElement *This = impl_from_IHTMLSelectElement(iface); nsAString str; nsresult nsres; TRACE("(%p)->(%s)\n", This, debugstr_w(v)); nsAString_InitDepend(&str, v); nsres = nsIDOMHTMLSelectElement_SetName(This->nsselect, &str); nsAString_Finish(&str); if(NS_FAILED(nsres)) { ERR("SetName failed: %08x\n", nsres); return E_FAIL; } return S_OK; }
static HRESULT WINAPI HTMLMetaElement_get_httpEquiv(IHTMLMetaElement *iface, BSTR *p) { HTMLMetaElement *This = impl_from_IHTMLMetaElement(iface); nsAString httpequiv_str, val_str; nsresult nsres; static const PRUnichar httpEquivW[] = {'h','t','t','p','-','e','q','u','i','v',0}; TRACE("(%p)->(%p)\n", This, p); nsAString_InitDepend(&httpequiv_str, httpEquivW); nsAString_Init(&val_str, NULL); nsres = nsIDOMHTMLElement_GetAttribute(This->element.nselem, &httpequiv_str, &val_str); nsAString_Finish(&httpequiv_str); return return_nsstr(nsres, &val_str, p); }
static HRESULT WINAPI HTMLTableCell_put_align(IHTMLTableCell *iface, BSTR v) { HTMLTableCell *This = impl_from_IHTMLTableCell(iface); nsAString str; nsresult nsres; TRACE("(%p)->(%s)\n", This, debugstr_w(v)); nsAString_InitDepend(&str, v); nsres = nsIDOMHTMLTableCellElement_SetAlign(This->nscell, &str); nsAString_Finish(&str); if (NS_FAILED(nsres)) { ERR("Set Align failed: %08x\n", nsres); return E_FAIL; } return S_OK; }
static HRESULT WINAPI HTMLMetaElement_get_name(IHTMLMetaElement *iface, BSTR *p) { HTMLMetaElement *This = impl_from_IHTMLMetaElement(iface); nsAString name_str, val_str; nsresult nsres; static const PRUnichar nameW[] = {'n','a','m','e',0}; TRACE("(%p)->(%p)\n", This, p); nsAString_InitDepend(&name_str, nameW); nsAString_Init(&val_str, NULL); nsres = nsIDOMHTMLElement_GetAttribute(This->element.nselem, &name_str, &val_str); nsAString_Finish(&name_str); return return_nsstr(nsres, &val_str, p); }
static HRESULT WINAPI HTMLTableRow_put_align(IHTMLTableRow *iface, BSTR v) { HTMLTableRow *This = impl_from_IHTMLTableRow(iface); nsAString val; nsresult nsres; TRACE("(%p)->(%s)\n", This, debugstr_w(v)); nsAString_InitDepend(&val, v); nsres = nsIDOMHTMLTableRowElement_SetAlign(This->nsrow, &val); nsAString_Finish(&val); if (NS_FAILED(nsres)){ ERR("Set Align(%s) failed!\n", debugstr_w(v)); return E_FAIL; } return S_OK; }