Commit 300c6460 authored by Jacek Caban's avatar Jacek Caban Committed by Alexandre Julliard

mshtml: Return element as ndIDOMElement from create_nselem.

parent 3e4565f5
...@@ -324,7 +324,7 @@ static void set_font_size(HTMLDocument *This, LPCWSTR size) ...@@ -324,7 +324,7 @@ static void set_font_size(HTMLDocument *This, LPCWSTR size)
{ {
nsISelection *nsselection; nsISelection *nsselection;
cpp_bool collapsed; cpp_bool collapsed;
nsIDOMHTMLElement *elem; nsIDOMElement *elem;
nsIDOMRange *range; nsIDOMRange *range;
LONG range_cnt = 0; LONG range_cnt = 0;
nsAString size_str; nsAString size_str;
...@@ -353,7 +353,7 @@ static void set_font_size(HTMLDocument *This, LPCWSTR size) ...@@ -353,7 +353,7 @@ static void set_font_size(HTMLDocument *This, LPCWSTR size)
nsAString_InitDepend(&size_str, sizeW); nsAString_InitDepend(&size_str, sizeW);
nsAString_InitDepend(&val_str, size); nsAString_InitDepend(&val_str, size);
nsIDOMHTMLElement_SetAttribute(elem, &size_str, &val_str); nsIDOMElement_SetAttribute(elem, &size_str, &val_str);
nsAString_Finish(&val_str); nsAString_Finish(&val_str);
nsISelection_GetRangeAt(nsselection, 0, &range); nsISelection_GetRangeAt(nsselection, 0, &range);
...@@ -372,7 +372,7 @@ static void set_font_size(HTMLDocument *This, LPCWSTR size) ...@@ -372,7 +372,7 @@ static void set_font_size(HTMLDocument *This, LPCWSTR size)
nsISelection_Release(nsselection); nsISelection_Release(nsselection);
nsIDOMRange_Release(range); nsIDOMRange_Release(range);
nsIDOMHTMLElement_Release(elem); nsIDOMElement_Release(elem);
nsAString_Finish(&size_str); nsAString_Finish(&size_str);
...@@ -1106,7 +1106,7 @@ static HRESULT exec_hyperlink(HTMLDocument *This, DWORD cmdexecopt, VARIANT *in, ...@@ -1106,7 +1106,7 @@ static HRESULT exec_hyperlink(HTMLDocument *This, DWORD cmdexecopt, VARIANT *in,
{ {
nsAString href_str, ns_url; nsAString href_str, ns_url;
nsIHTMLEditor *html_editor; nsIHTMLEditor *html_editor;
nsIDOMHTMLElement *anchor_elem; nsIDOMElement *anchor_elem;
cpp_bool insert_link_at_caret; cpp_bool insert_link_at_caret;
nsISelection *nsselection; nsISelection *nsselection;
BSTR url = NULL; BSTR url = NULL;
...@@ -1148,7 +1148,7 @@ static HRESULT exec_hyperlink(HTMLDocument *This, DWORD cmdexecopt, VARIANT *in, ...@@ -1148,7 +1148,7 @@ static HRESULT exec_hyperlink(HTMLDocument *This, DWORD cmdexecopt, VARIANT *in,
nsAString_InitDepend(&href_str, hrefW); nsAString_InitDepend(&href_str, hrefW);
nsAString_InitDepend(&ns_url, url); nsAString_InitDepend(&ns_url, url);
nsIDOMHTMLElement_SetAttribute(anchor_elem, &href_str, &ns_url); nsIDOMElement_SetAttribute(anchor_elem, &href_str, &ns_url);
nsAString_Finish(&href_str); nsAString_Finish(&href_str);
nsISelection_GetIsCollapsed(nsselection, &insert_link_at_caret); nsISelection_GetIsCollapsed(nsselection, &insert_link_at_caret);
...@@ -1161,7 +1161,7 @@ static HRESULT exec_hyperlink(HTMLDocument *This, DWORD cmdexecopt, VARIANT *in, ...@@ -1161,7 +1161,7 @@ static HRESULT exec_hyperlink(HTMLDocument *This, DWORD cmdexecopt, VARIANT *in,
nsIDOMHTMLDocument_CreateTextNode(This->doc_node->nsdoc, &ns_url, &text_node); nsIDOMHTMLDocument_CreateTextNode(This->doc_node->nsdoc, &ns_url, &text_node);
/* wrap the <a> tags around the text element */ /* wrap the <a> tags around the text element */
nsIDOMHTMLElement_AppendChild(anchor_elem, (nsIDOMNode*)text_node, &unused_node); nsIDOMElement_AppendChild(anchor_elem, (nsIDOMNode*)text_node, &unused_node);
nsIDOMText_Release(text_node); nsIDOMText_Release(text_node);
nsIDOMNode_Release(unused_node); nsIDOMNode_Release(unused_node);
} }
...@@ -1184,7 +1184,7 @@ static HRESULT exec_hyperlink(HTMLDocument *This, DWORD cmdexecopt, VARIANT *in, ...@@ -1184,7 +1184,7 @@ static HRESULT exec_hyperlink(HTMLDocument *This, DWORD cmdexecopt, VARIANT *in,
} }
nsISelection_Release(nsselection); nsISelection_Release(nsselection);
nsIDOMHTMLElement_Release(anchor_elem); nsIDOMElement_Release(anchor_elem);
if (cmdexecopt != OLECMDEXECOPT_DONTPROMPTUSER) if (cmdexecopt != OLECMDEXECOPT_DONTPROMPTUSER)
SysFreeString(url); SysFreeString(url);
......
...@@ -269,9 +269,8 @@ static inline HTMLElement *impl_from_IHTMLElement(IHTMLElement *iface) ...@@ -269,9 +269,8 @@ static inline HTMLElement *impl_from_IHTMLElement(IHTMLElement *iface)
return CONTAINING_RECORD(iface, HTMLElement, IHTMLElement_iface); return CONTAINING_RECORD(iface, HTMLElement, IHTMLElement_iface);
} }
HRESULT create_nselem(HTMLDocumentNode *doc, const WCHAR *tag, nsIDOMHTMLElement **ret) HRESULT create_nselem(HTMLDocumentNode *doc, const WCHAR *tag, nsIDOMElement **ret)
{ {
nsIDOMElement *nselem;
nsAString tag_str; nsAString tag_str;
nsresult nsres; nsresult nsres;
...@@ -281,26 +280,19 @@ HRESULT create_nselem(HTMLDocumentNode *doc, const WCHAR *tag, nsIDOMHTMLElement ...@@ -281,26 +280,19 @@ HRESULT create_nselem(HTMLDocumentNode *doc, const WCHAR *tag, nsIDOMHTMLElement
} }
nsAString_InitDepend(&tag_str, tag); nsAString_InitDepend(&tag_str, tag);
nsres = nsIDOMHTMLDocument_CreateElement(doc->nsdoc, &tag_str, &nselem); nsres = nsIDOMHTMLDocument_CreateElement(doc->nsdoc, &tag_str, ret);
nsAString_Finish(&tag_str); nsAString_Finish(&tag_str);
if(NS_FAILED(nsres)) { if(NS_FAILED(nsres)) {
ERR("CreateElement failed: %08x\n", nsres); ERR("CreateElement failed: %08x\n", nsres);
return E_FAIL; return E_FAIL;
} }
nsres = nsIDOMElement_QueryInterface(nselem, &IID_nsIDOMHTMLElement, (void**)ret);
nsIDOMElement_Release(nselem);
if(NS_FAILED(nsres)) {
ERR("Could not get nsIDOMHTMLElement iface: %08x\n", nsres);
return E_FAIL;
}
return S_OK; return S_OK;
} }
HRESULT create_element(HTMLDocumentNode *doc, const WCHAR *tag, HTMLElement **ret) HRESULT create_element(HTMLDocumentNode *doc, const WCHAR *tag, HTMLElement **ret)
{ {
nsIDOMHTMLElement *nselem; nsIDOMElement *nselem;
HRESULT hres; HRESULT hres;
/* Use owner doc if called on document fragment */ /* Use owner doc if called on document fragment */
...@@ -312,7 +304,7 @@ HRESULT create_element(HTMLDocumentNode *doc, const WCHAR *tag, HTMLElement **re ...@@ -312,7 +304,7 @@ HRESULT create_element(HTMLDocumentNode *doc, const WCHAR *tag, HTMLElement **re
return hres; return hres;
hres = HTMLElement_Create(doc, (nsIDOMNode*)nselem, TRUE, ret); hres = HTMLElement_Create(doc, (nsIDOMNode*)nselem, TRUE, ret);
nsIDOMHTMLElement_Release(nselem); nsIDOMElement_Release(nselem);
return hres; return hres;
} }
......
...@@ -874,7 +874,7 @@ static HRESULT WINAPI HTMLImageElementFactory_create(IHTMLImageElementFactory *i ...@@ -874,7 +874,7 @@ static HRESULT WINAPI HTMLImageElementFactory_create(IHTMLImageElementFactory *i
HTMLDocumentNode *doc; HTMLDocumentNode *doc;
IHTMLImgElement *img; IHTMLImgElement *img;
HTMLElement *elem; HTMLElement *elem;
nsIDOMHTMLElement *nselem; nsIDOMElement *nselem;
LONG l; LONG l;
HRESULT hres; HRESULT hres;
...@@ -897,7 +897,7 @@ static HRESULT WINAPI HTMLImageElementFactory_create(IHTMLImageElementFactory *i ...@@ -897,7 +897,7 @@ static HRESULT WINAPI HTMLImageElementFactory_create(IHTMLImageElementFactory *i
return hres; return hres;
hres = HTMLElement_Create(doc, (nsIDOMNode*)nselem, FALSE, &elem); hres = HTMLElement_Create(doc, (nsIDOMNode*)nselem, FALSE, &elem);
nsIDOMHTMLElement_Release(nselem); nsIDOMElement_Release(nselem);
if(FAILED(hres)) { if(FAILED(hres)) {
ERR("HTMLElement_Create failed\n"); ERR("HTMLElement_Create failed\n");
return hres; return hres;
......
...@@ -559,7 +559,7 @@ static HRESULT WINAPI HTMLOptionElementFactory_create(IHTMLOptionElementFactory ...@@ -559,7 +559,7 @@ static HRESULT WINAPI HTMLOptionElementFactory_create(IHTMLOptionElementFactory
IHTMLOptionElement **optelem) IHTMLOptionElement **optelem)
{ {
HTMLOptionElementFactory *This = impl_from_IHTMLOptionElementFactory(iface); HTMLOptionElementFactory *This = impl_from_IHTMLOptionElementFactory(iface);
nsIDOMHTMLElement *nselem; nsIDOMElement *nselem;
HTMLDOMNode *node; HTMLDOMNode *node;
HRESULT hres; HRESULT hres;
...@@ -580,7 +580,7 @@ static HRESULT WINAPI HTMLOptionElementFactory_create(IHTMLOptionElementFactory ...@@ -580,7 +580,7 @@ static HRESULT WINAPI HTMLOptionElementFactory_create(IHTMLOptionElementFactory
return hres; return hres;
hres = get_node(This->window->doc, (nsIDOMNode*)nselem, TRUE, &node); hres = get_node(This->window->doc, (nsIDOMNode*)nselem, TRUE, &node);
nsIDOMHTMLElement_Release(nselem); nsIDOMElement_Release(nselem);
if(FAILED(hres)) if(FAILED(hres))
return hres; return hres;
......
...@@ -979,7 +979,7 @@ void detach_ranges(HTMLDocumentNode*) DECLSPEC_HIDDEN; ...@@ -979,7 +979,7 @@ void detach_ranges(HTMLDocumentNode*) DECLSPEC_HIDDEN;
HRESULT get_node_text(HTMLDOMNode*,BSTR*) DECLSPEC_HIDDEN; HRESULT get_node_text(HTMLDOMNode*,BSTR*) DECLSPEC_HIDDEN;
HRESULT replace_node_by_html(nsIDOMHTMLDocument*,nsIDOMNode*,const WCHAR*) DECLSPEC_HIDDEN; HRESULT replace_node_by_html(nsIDOMHTMLDocument*,nsIDOMNode*,const WCHAR*) DECLSPEC_HIDDEN;
HRESULT create_nselem(HTMLDocumentNode*,const WCHAR*,nsIDOMHTMLElement**) DECLSPEC_HIDDEN; HRESULT create_nselem(HTMLDocumentNode*,const WCHAR*,nsIDOMElement**) DECLSPEC_HIDDEN;
HRESULT create_element(HTMLDocumentNode*,const WCHAR*,HTMLElement**) DECLSPEC_HIDDEN; HRESULT create_element(HTMLDocumentNode*,const WCHAR*,HTMLElement**) DECLSPEC_HIDDEN;
HRESULT HTMLDOMTextNode_Create(HTMLDocumentNode*,nsIDOMNode*,HTMLDOMNode**) DECLSPEC_HIDDEN; HRESULT HTMLDOMTextNode_Create(HTMLDocumentNode*,nsIDOMNode*,HTMLDOMNode**) DECLSPEC_HIDDEN;
......
...@@ -1661,7 +1661,7 @@ static HRESULT WINAPI RangeCommandTarget_QueryStatus(IOleCommandTarget *iface, c ...@@ -1661,7 +1661,7 @@ static HRESULT WINAPI RangeCommandTarget_QueryStatus(IOleCommandTarget *iface, c
static HRESULT exec_indent(HTMLTxtRange *This, VARIANT *in, VARIANT *out) static HRESULT exec_indent(HTMLTxtRange *This, VARIANT *in, VARIANT *out)
{ {
nsIDOMHTMLElement *blockquote_elem, *p_elem; nsIDOMElement *blockquote_elem, *p_elem;
nsIDOMDocumentFragment *fragment; nsIDOMDocumentFragment *fragment;
nsIDOMNode *tmp; nsIDOMNode *tmp;
...@@ -1679,16 +1679,16 @@ static HRESULT exec_indent(HTMLTxtRange *This, VARIANT *in, VARIANT *out) ...@@ -1679,16 +1679,16 @@ static HRESULT exec_indent(HTMLTxtRange *This, VARIANT *in, VARIANT *out)
create_nselem(This->doc, pW, &p_elem); create_nselem(This->doc, pW, &p_elem);
nsIDOMRange_ExtractContents(This->nsrange, &fragment); nsIDOMRange_ExtractContents(This->nsrange, &fragment);
nsIDOMHTMLElement_AppendChild(p_elem, (nsIDOMNode*)fragment, &tmp); nsIDOMElement_AppendChild(p_elem, (nsIDOMNode*)fragment, &tmp);
nsIDOMDocumentFragment_Release(fragment); nsIDOMDocumentFragment_Release(fragment);
nsIDOMNode_Release(tmp); nsIDOMNode_Release(tmp);
nsIDOMHTMLElement_AppendChild(blockquote_elem, (nsIDOMNode*)p_elem, &tmp); nsIDOMElement_AppendChild(blockquote_elem, (nsIDOMNode*)p_elem, &tmp);
nsIDOMHTMLElement_Release(p_elem); nsIDOMElement_Release(p_elem);
nsIDOMNode_Release(tmp); nsIDOMNode_Release(tmp);
nsIDOMRange_InsertNode(This->nsrange, (nsIDOMNode*)blockquote_elem); nsIDOMRange_InsertNode(This->nsrange, (nsIDOMNode*)blockquote_elem);
nsIDOMHTMLElement_Release(blockquote_elem); nsIDOMElement_Release(blockquote_elem);
return S_OK; return S_OK;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment