Jacek Caban : mshtml: Added IHTMLTxtRange::get_htmlText
implementation.
Alexandre Julliard
julliard at wine.codeweavers.com
Thu May 10 07:49:52 CDT 2007
Module: wine
Branch: master
Commit: f0649f3731bfd02c348d46876543425b67283cbb
URL: http://source.winehq.org/git/wine.git/?a=commit;h=f0649f3731bfd02c348d46876543425b67283cbb
Author: Jacek Caban <jacek at codeweavers.com>
Date: Thu May 10 00:34:05 2007 +0200
mshtml: Added IHTMLTxtRange::get_htmlText implementation.
---
dlls/mshtml/nsiface.idl | 10 +++++++++-
dlls/mshtml/txtrange.c | 34 ++++++++++++++++++++++++++++++++--
2 files changed, 41 insertions(+), 3 deletions(-)
diff --git a/dlls/mshtml/nsiface.idl b/dlls/mshtml/nsiface.idl
index 2d662d1..a4c3fcc 100644
--- a/dlls/mshtml/nsiface.idl
+++ b/dlls/mshtml/nsiface.idl
@@ -97,7 +97,6 @@ typedef nsISupports nsIDOMNamedNodeMap;
typedef nsISupports nsIDOMAttr;
typedef nsISupports nsIDOMDocumentType;
typedef nsISupports nsIDOMDOMImplementation;
-typedef nsISupports nsIDOMDocumentFragment;
typedef nsISupports nsIDOMComment;
typedef nsISupports nsIDOMCDATASection;
typedef nsISupports nsIDOMProcessingInstruction;
@@ -588,6 +587,15 @@ interface nsIDOMText : nsIDOMCharacterData
[
object,
+ uuid(a6cf9076-15b3-11d2-932e-00805f8add32)
+ /* NOT_FROZEN */
+]
+interface nsIDOMDocumentFragment : nsIDOMNode
+{
+}
+
+[
+ object,
uuid(a6cf9075-15b3-11d2-932e-00805f8add32)
/* FROZEN */
]
diff --git a/dlls/mshtml/txtrange.c b/dlls/mshtml/txtrange.c
index 70fb1f9..5b54451 100644
--- a/dlls/mshtml/txtrange.c
+++ b/dlls/mshtml/txtrange.c
@@ -138,8 +138,38 @@ static HRESULT WINAPI HTMLTxtRange_Invoke(IHTMLTxtRange *iface, DISPID dispIdMem
static HRESULT WINAPI HTMLTxtRange_get_htmlText(IHTMLTxtRange *iface, BSTR *p)
{
HTMLTxtRange *This = HTMLTXTRANGE_THIS(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ *p = NULL;
+
+ if(This->nsrange) {
+ nsIDOMDocumentFragment *fragment;
+ nsresult nsres;
+
+ nsres = nsIDOMRange_CloneContents(This->nsrange, &fragment);
+ if(NS_SUCCEEDED(nsres)) {
+ const PRUnichar *nstext;
+ nsAString nsstr;
+
+ nsAString_Init(&nsstr, NULL);
+ nsnode_to_nsstring((nsIDOMNode*)fragment, &nsstr);
+ nsIDOMDocumentFragment_Release(fragment);
+
+ nsAString_GetData(&nsstr, &nstext, NULL);
+ *p = SysAllocString(nstext);
+
+ nsAString_Finish(&nsstr);
+ }
+ }
+
+ if(!*p) {
+ const WCHAR emptyW[] = {0};
+ *p = SysAllocString(emptyW);
+ }
+
+ TRACE("return %s\n", debugstr_w(*p));
+ return S_OK;
}
static HRESULT WINAPI HTMLTxtRange_put_text(IHTMLTxtRange *iface, BSTR v)
More information about the wine-cvs
mailing list