ReactOS 0.4.16-dev-2208-g6350669
text.c
Go to the documentation of this file.
1/*
2 * DOM text node implementation
3 *
4 * Copyright 2006 Huw Davies
5 * Copyright 2007-2008 Alistair Leslie-Hughes
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
20 */
21
22#define COBJMACROS
23
24#include <stdarg.h>
25#include <libxml/parser.h>
27#include <libxml/xmlerror.h>
28
29#include "windef.h"
30#include "winbase.h"
31#include "winuser.h"
32#include "ole2.h"
33#include "msxml6.h"
34
35#include "msxml_private.h"
36
37#include "wine/debug.h"
38
40
41typedef struct _domtext
42{
47
49{
50 return CONTAINING_RECORD(iface, domtext, IXMLDOMText_iface);
51}
52
54{
55 This->node.node->name = NULL;
56}
57
59 IXMLDOMText *iface,
61 void** ppvObject )
62{
64 TRACE("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppvObject);
65
66 if ( IsEqualGUID( riid, &IID_IXMLDOMText ) ||
67 IsEqualGUID( riid, &IID_IXMLDOMCharacterData) ||
68 IsEqualGUID( riid, &IID_IXMLDOMNode ) ||
71 {
72 *ppvObject = iface;
73 }
74 else if(node_query_interface(&This->node, riid, ppvObject))
75 {
76 return *ppvObject ? S_OK : E_NOINTERFACE;
77 }
78 else
79 {
80 TRACE("Unsupported interface %s\n", debugstr_guid(riid));
81 *ppvObject = NULL;
82 return E_NOINTERFACE;
83 }
84
85 IXMLDOMText_AddRef(iface);
86 return S_OK;
87}
88
90 IXMLDOMText *iface )
91{
94 TRACE("%p, refcount %lu.\n", iface, ref);
95 return ref;
96}
97
99 IXMLDOMText *iface )
100{
103
104 TRACE("%p, refcount %lu.\n", iface, ref);
105 if ( ref == 0 )
106 {
107 destroy_xmlnode(&This->node);
108 free(This);
109 }
110
111 return ref;
112}
113
115 IXMLDOMText *iface,
116 UINT* pctinfo )
117{
119 return IDispatchEx_GetTypeInfoCount(&This->node.dispex.IDispatchEx_iface, pctinfo);
120}
121
123 IXMLDOMText *iface,
124 UINT iTInfo, LCID lcid,
125 ITypeInfo** ppTInfo )
126{
128 return IDispatchEx_GetTypeInfo(&This->node.dispex.IDispatchEx_iface,
129 iTInfo, lcid, ppTInfo);
130}
131
133 IXMLDOMText *iface,
134 REFIID riid, LPOLESTR* rgszNames,
135 UINT cNames, LCID lcid, DISPID* rgDispId )
136{
138 return IDispatchEx_GetIDsOfNames(&This->node.dispex.IDispatchEx_iface,
139 riid, rgszNames, cNames, lcid, rgDispId);
140}
141
143 IXMLDOMText *iface,
144 DISPID dispIdMember, REFIID riid, LCID lcid,
145 WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pVarResult,
146 EXCEPINFO* pExcepInfo, UINT* puArgErr )
147{
149 return IDispatchEx_Invoke(&This->node.dispex.IDispatchEx_iface,
150 dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
151}
152
154 IXMLDOMText *iface,
155 BSTR* p )
156{
158
159 static const WCHAR textW[] = {'#','t','e','x','t',0};
160
161 TRACE("(%p)->(%p)\n", This, p);
162
163 return return_bstr(textW, p);
164}
165
167 IXMLDOMText *iface,
168 VARIANT* value )
169{
171
172 TRACE("(%p)->(%p)\n", This, value);
173
174 return node_get_content(&This->node, value);
175}
176
178 IXMLDOMText *iface,
180{
182
183 TRACE("(%p)->(%s)\n", This, debugstr_variant(&value));
184
186 return node_put_value(&This->node, &value);
187}
188
190 IXMLDOMText *iface,
191 DOMNodeType* domNodeType )
192{
194
195 TRACE("(%p)->(%p)\n", This, domNodeType);
196
197 *domNodeType = NODE_TEXT;
198 return S_OK;
199}
200
202 IXMLDOMText *iface,
204{
206
207 TRACE("(%p)->(%p)\n", This, parent);
208
209 return node_get_parent(&This->node, parent);
210}
211
213 IXMLDOMText *iface,
214 IXMLDOMNodeList** outList)
215{
217
218 TRACE("(%p)->(%p)\n", This, outList);
219
220 return node_get_child_nodes(&This->node, outList);
221}
222
224 IXMLDOMText *iface,
225 IXMLDOMNode** domNode)
226{
228
229 TRACE("(%p)->(%p)\n", This, domNode);
230
231 return return_null_node(domNode);
232}
233
235 IXMLDOMText *iface,
236 IXMLDOMNode** domNode)
237{
239
240 TRACE("(%p)->(%p)\n", This, domNode);
241
242 return return_null_node(domNode);
243}
244
246 IXMLDOMText *iface,
247 IXMLDOMNode** domNode)
248{
250
251 TRACE("(%p)->(%p)\n", This, domNode);
252
253 return node_get_previous_sibling(&This->node, domNode);
254}
255
257 IXMLDOMText *iface,
258 IXMLDOMNode** domNode)
259{
261
262 TRACE("(%p)->(%p)\n", This, domNode);
263
264 return node_get_next_sibling(&This->node, domNode);
265}
266
268 IXMLDOMText *iface,
269 IXMLDOMNamedNodeMap** attributeMap)
270{
272
273 TRACE("(%p)->(%p)\n", This, attributeMap);
274
275 return return_null_ptr((void**)attributeMap);
276}
277
279 IXMLDOMText *iface,
280 IXMLDOMNode* newNode, VARIANT refChild,
281 IXMLDOMNode** outOldNode)
282{
284
285 FIXME("(%p)->(%p %s %p) needs test\n", This, newNode, debugstr_variant(&refChild), outOldNode);
286
287 return node_insert_before(&This->node, newNode, &refChild, outOldNode);
288}
289
291 IXMLDOMText *iface,
292 IXMLDOMNode* newNode,
293 IXMLDOMNode* oldNode,
294 IXMLDOMNode** outOldNode)
295{
297
298 FIXME("(%p)->(%p %p %p) needs test\n", This, newNode, oldNode, outOldNode);
299
300 return node_replace_child(&This->node, newNode, oldNode, outOldNode);
301}
302
304 IXMLDOMText *iface,
305 IXMLDOMNode *child, IXMLDOMNode **oldChild)
306{
308 TRACE("(%p)->(%p %p)\n", This, child, oldChild);
309 return node_remove_child(&This->node, child, oldChild);
310}
311
313 IXMLDOMText *iface,
314 IXMLDOMNode *child, IXMLDOMNode **outChild)
315{
317 TRACE("(%p)->(%p %p)\n", This, child, outChild);
318 return node_append_child(&This->node, child, outChild);
319}
320
322 IXMLDOMText *iface,
324{
326 TRACE("(%p)->(%p)\n", This, ret);
327 return return_var_false(ret);
328}
329
331 IXMLDOMText *iface,
332 IXMLDOMDocument **doc)
333{
335 TRACE("(%p)->(%p)\n", This, doc);
336 return node_get_owner_doc(&This->node, doc);
337}
338
340 IXMLDOMText *iface,
341 VARIANT_BOOL deep, IXMLDOMNode** outNode)
342{
344 TRACE("(%p)->(%d %p)\n", This, deep, outNode);
345 return node_clone( &This->node, deep, outNode );
346}
347
349 IXMLDOMText *iface,
350 BSTR* p)
351{
353 static const WCHAR textW[] = {'t','e','x','t',0};
354
355 TRACE("(%p)->(%p)\n", This, p);
356
357 return return_bstr(textW, p);
358}
359
361 IXMLDOMText *iface,
362 BSTR* p)
363{
365 TRACE("(%p)->(%p)\n", This, p);
366 return node_get_text(&This->node, p);
367}
368
370 IXMLDOMText *iface,
371 BSTR p)
372{
374 TRACE("(%p)->(%s)\n", This, debugstr_w(p));
376 return node_put_text( &This->node, p );
377}
378
380 IXMLDOMText *iface,
381 VARIANT_BOOL* isSpecified)
382{
384 FIXME("(%p)->(%p) stub!\n", This, isSpecified);
385 *isSpecified = VARIANT_TRUE;
386 return S_OK;
387}
388
390 IXMLDOMText *iface,
391 IXMLDOMNode** definitionNode)
392{
394 FIXME("(%p)->(%p)\n", This, definitionNode);
395 return E_NOTIMPL;
396}
397
399 IXMLDOMText *iface,
400 VARIANT* var1)
401{
404 HRESULT hr;
405
406 TRACE("(%p)->(%p)\n", This, var1);
407
408 if (!var1)
409 return E_INVALIDARG;
410
411 hr = IXMLDOMText_get_parentNode(iface, &parent);
412
413 if (hr == S_OK)
414 {
415 hr = IXMLDOMNode_get_nodeTypedValue(parent, var1);
416 IXMLDOMNode_Release(parent);
417 }
418 else
419 {
420 V_VT(var1) = VT_NULL;
421 V_BSTR(var1) = NULL;
422 hr = S_FALSE;
423 }
424
425 return hr;
426}
427
429 IXMLDOMText *iface,
431{
434 HRESULT hr;
435
436 TRACE("(%p)->(%s)\n", This, debugstr_variant(&value));
437
438 hr = IXMLDOMText_get_parentNode(iface, &parent);
439
440 if (hr == S_OK)
441 {
442 hr = IXMLDOMNode_put_nodeTypedValue(parent, value);
443 IXMLDOMNode_Release(parent);
444 }
445 else
446 {
447 hr = S_FALSE;
448 }
449
450 return hr;
451}
452
454 IXMLDOMText *iface,
455 VARIANT* dtName)
456{
459 HRESULT hr;
460
461 TRACE("(%p)->(%p)\n", This, dtName);
462
463 if (!dtName)
464 return E_INVALIDARG;
465
466 hr = IXMLDOMText_get_parentNode(iface, &parent);
467
468 if (hr == S_OK)
469 {
470 hr = IXMLDOMNode_get_dataType(parent, dtName);
471 IXMLDOMNode_Release(parent);
472 }
473 else
474 {
475 V_VT(dtName) = VT_NULL;
476 V_BSTR(dtName) = NULL;
477 hr = S_FALSE;
478 }
479
480 return hr;
481}
482
484 IXMLDOMText *iface,
485 BSTR dtName)
486{
489 HRESULT hr;
490
491 TRACE("(%p)->(%p)\n", This, dtName);
492
493 if (!dtName)
494 return E_INVALIDARG;
495
496 hr = IXMLDOMText_get_parentNode(iface, &parent);
497
498 if (hr == S_OK)
499 {
500 hr = IXMLDOMNode_put_dataType(parent, dtName);
501 IXMLDOMNode_Release(parent);
502 }
503 else
504 {
505 hr = S_FALSE;
506 }
507
508 return hr;
509}
510
512 IXMLDOMText *iface,
513 BSTR* p)
514{
516
517 TRACE("(%p)->(%p)\n", This, p);
518
519 return node_get_xml(&This->node, TRUE, p);
520}
521
523 IXMLDOMText *iface,
525{
527 TRACE("(%p)->(%p %p)\n", This, node, p);
528 return node_transform_node(&This->node, node, p);
529}
530
532 IXMLDOMText *iface,
533 BSTR p, IXMLDOMNodeList** outList)
534{
536 TRACE("(%p)->(%s %p)\n", This, debugstr_w(p), outList);
537 return node_select_nodes(&This->node, p, outList);
538}
539
541 IXMLDOMText *iface,
542 BSTR p, IXMLDOMNode** outNode)
543{
545 TRACE("(%p)->(%s %p)\n", This, debugstr_w(p), outNode);
546 return node_select_singlenode(&This->node, p, outNode);
547}
548
550 IXMLDOMText *iface,
551 VARIANT_BOOL* isParsed)
552{
554 FIXME("(%p)->(%p) stub!\n", This, isParsed);
555 *isParsed = VARIANT_TRUE;
556 return S_OK;
557}
558
560 IXMLDOMText *iface,
561 BSTR* p)
562{
564 TRACE("(%p)->(%p)\n", This, p);
565 return node_get_namespaceURI(&This->node, p);
566}
567
569 IXMLDOMText *iface,
570 BSTR* prefix)
571{
573 TRACE("(%p)->(%p)\n", This, prefix);
574 return return_null_bstr( prefix );
575}
576
578 IXMLDOMText *iface,
579 BSTR* name)
580{
582 TRACE("(%p)->(%p)\n", This, name);
583 return return_null_bstr( name );
584}
585
587 IXMLDOMText *iface,
588 IXMLDOMNode* domNode, VARIANT var1)
589{
591 FIXME("(%p)->(%p %s)\n", This, domNode, debugstr_variant(&var1));
592 return E_NOTIMPL;
593}
594
596 IXMLDOMText *iface,
597 BSTR *p)
598{
600
601 if(!p)
602 return E_INVALIDARG;
603
604 *p = bstr_from_xmlChar(This->node.node->content);
605 return S_OK;
606}
607
609 IXMLDOMText *iface,
610 BSTR data)
611{
613 BSTR normalized_data = NULL;
614 HRESULT hr;
615 size_t i, j;
616
617 TRACE("(%p)->(%s)\n", This, debugstr_w(data));
618
619 if (data)
620 {
621 /* normalize line endings */
622 normalized_data = SysAllocStringLen(NULL, SysStringLen(data));
623 if (!normalized_data) return E_OUTOFMEMORY;
624 for (i = 0, j = 0; data[i]; i++)
625 {
626 if (data[i] == '\r')
627 {
628 if (data[i + 1] == '\n') i++; /* change \r\n to just \n */
629 normalized_data[j++] = '\n'; /* change \r by itself to \n */
630 }
631 else
632 normalized_data[j++] = data[i];
633 }
634 normalized_data[j] = 0;
635 }
636
638 hr = node_set_content(&This->node, normalized_data);
639
640 SysFreeString(normalized_data);
641 return hr;
642}
643
645 IXMLDOMText *iface,
646 LONG *len)
647{
649 HRESULT hr;
650 BSTR data;
651
652 TRACE("(%p)->(%p)\n", This, len);
653
654 if(!len)
655 return E_INVALIDARG;
656
657 hr = IXMLDOMText_get_data(iface, &data);
658 if(hr == S_OK)
659 {
662 }
663
664 return hr;
665}
666
668 IXMLDOMText *iface,
670{
671 HRESULT hr;
672 BSTR data;
673
674 TRACE("%p, %ld, %ld, %p.\n", iface, offset, count, p);
675
676 if(!p)
677 return E_INVALIDARG;
678
679 *p = NULL;
680 if(offset < 0 || count < 0)
681 return E_INVALIDARG;
682
683 if(count == 0)
684 return S_FALSE;
685
686 hr = IXMLDOMText_get_data(iface, &data);
687 if(hr == S_OK)
688 {
690
691 if(offset < len)
692 {
693 if(offset + count > len)
695 else
697 }
698 else
699 hr = S_FALSE;
700
702 }
703
704 return hr;
705}
706
708 IXMLDOMText *iface,
709 BSTR p)
710{
712 HRESULT hr;
713 BSTR data;
714 LONG p_len;
715
716 TRACE("(%p)->(%s)\n", This, debugstr_w(p));
717
718 /* Nothing to do if NULL or an Empty string passed in. */
719 if((p_len = SysStringLen(p)) == 0) return S_OK;
720
721 hr = IXMLDOMText_get_data(iface, &data);
722 if(hr == S_OK)
723 {
725 BSTR str = SysAllocStringLen(NULL, p_len + len);
726
727 memcpy(str, data, len*sizeof(WCHAR));
728 memcpy(&str[len], p, p_len*sizeof(WCHAR));
729 str[len+p_len] = 0;
730
731 hr = IXMLDOMText_put_data(iface, str);
732
735 }
736
737 return hr;
738}
739
741 IXMLDOMText *iface,
742 LONG offset, BSTR p)
743{
744 HRESULT hr;
745 BSTR data;
746 LONG p_len;
747
748 TRACE("%p, %ld, %s.\n", iface, offset, debugstr_w(p));
749
750 /* If have a NULL or empty string, don't do anything. */
751 if((p_len = SysStringLen(p)) == 0)
752 return S_OK;
753
754 if(offset < 0)
755 {
756 return E_INVALIDARG;
757 }
758
759 hr = IXMLDOMText_get_data(iface, &data);
760 if(hr == S_OK)
761 {
763 BSTR str;
764
765 if(len < offset)
766 {
768 return E_INVALIDARG;
769 }
770
771 str = SysAllocStringLen(NULL, len + p_len);
772 /* start part, supplied string and end part */
773 memcpy(str, data, offset*sizeof(WCHAR));
774 memcpy(&str[offset], p, p_len*sizeof(WCHAR));
775 memcpy(&str[offset+p_len], &data[offset], (len-offset)*sizeof(WCHAR));
776 str[len+p_len] = 0;
777
778 hr = IXMLDOMText_put_data(iface, str);
779
782 }
783
784 return hr;
785}
786
788 IXMLDOMText *iface,
790{
791 HRESULT hr;
792 LONG len = -1;
793 BSTR str;
794
795 TRACE("%p, %ld, %ld.\n", iface, offset, count);
796
797 hr = IXMLDOMText_get_length(iface, &len);
798 if(hr != S_OK) return hr;
799
800 if((offset < 0) || (offset > len) || (count < 0))
801 return E_INVALIDARG;
802
803 if(len == 0) return S_OK;
804
805 /* cutting start or end */
806 if((offset == 0) || ((count + offset) >= len))
807 {
808 if(offset == 0)
809 IXMLDOMText_substringData(iface, count, len - count, &str);
810 else
811 IXMLDOMText_substringData(iface, 0, offset, &str);
812 hr = IXMLDOMText_put_data(iface, str);
813 }
814 else
815 /* cutting from the inside */
816 {
817 BSTR str_end;
818
819 IXMLDOMText_substringData(iface, 0, offset, &str);
820 IXMLDOMText_substringData(iface, offset + count, len - count, &str_end);
821
822 hr = IXMLDOMText_put_data(iface, str);
823 if(hr == S_OK)
824 hr = IXMLDOMText_appendData(iface, str_end);
825
826 SysFreeString(str_end);
827 }
828
830
831 return hr;
832}
833
835 IXMLDOMText *iface,
837{
838 HRESULT hr;
839
840 TRACE("%p, %ld, %ld, %s.\n", iface, offset, count, debugstr_w(p));
841
842 hr = IXMLDOMText_deleteData(iface, offset, count);
843
844 if (hr == S_OK)
845 hr = IXMLDOMText_insertData(iface, offset, p);
846
847 return hr;
848}
849
851 IXMLDOMText *iface,
852 LONG offset, IXMLDOMText **txtNode)
853{
854 LONG length = 0;
855
856 TRACE("%p, %ld, %p.\n", iface, offset, txtNode);
857
858 if (!txtNode || offset < 0) return E_INVALIDARG;
859
860 *txtNode = NULL;
861
862 IXMLDOMText_get_length(iface, &length);
863
864 if (offset > length) return E_INVALIDARG;
865 if (offset == length) return S_FALSE;
866
867 FIXME("adjacent text nodes are not supported\n");
868
869 return E_NOTIMPL;
870}
871
872static const struct IXMLDOMTextVtbl domtext_vtbl =
873{
926};
927
928static const tid_t domtext_iface_tids[] = {
930 0
931};
932
934 NULL,
936 NULL,
938};
939
941{
942 domtext *This;
943
944 This = malloc(sizeof(*This));
945 if ( !This )
946 return NULL;
947
948 This->IXMLDOMText_iface.lpVtbl = &domtext_vtbl;
949 This->ref = 1;
950
951 init_xmlnode(&This->node, text, (IXMLDOMNode*)&This->IXMLDOMText_iface, &domtext_dispex);
952
953 return (IUnknown*)&This->IXMLDOMText_iface;
954}
#define InterlockedIncrement
Definition: armddk.h:53
#define InterlockedDecrement
Definition: armddk.h:52
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
Definition: precomp.h:23
#define FIXME(fmt,...)
Definition: precomp.h:53
const GUID IID_IUnknown
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define E_INVALIDARG
Definition: ddrawi.h:101
#define E_NOTIMPL
Definition: ddrawi.h:99
#define free
Definition: debug_ros.c:5
#define malloc
Definition: debug_ros.c:4
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
OLECHAR * BSTR
Definition: compat.h:2293
short VARIANT_BOOL
Definition: compat.h:2290
@ VT_NULL
Definition: compat.h:2296
LCID lcid
Definition: locale.c:5656
const WCHAR * text
Definition: package.c:1794
static HRESULT WINAPI domtext_splitText(IXMLDOMText *iface, LONG offset, IXMLDOMText **txtNode)
Definition: text.c:850
static HRESULT WINAPI domtext_get_data(IXMLDOMText *iface, BSTR *p)
Definition: text.c:595
static const struct IXMLDOMTextVtbl domtext_vtbl
Definition: text.c:872
static HRESULT WINAPI domtext_QueryInterface(IXMLDOMText *iface, REFIID riid, void **ppvObject)
Definition: text.c:58
static HRESULT WINAPI domtext_get_firstChild(IXMLDOMText *iface, IXMLDOMNode **domNode)
Definition: text.c:223
static HRESULT WINAPI domtext_get_specified(IXMLDOMText *iface, VARIANT_BOOL *isSpecified)
Definition: text.c:379
static HRESULT WINAPI domtext_Invoke(IXMLDOMText *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
Definition: text.c:142
static HRESULT WINAPI domtext_put_nodeValue(IXMLDOMText *iface, VARIANT value)
Definition: text.c:177
static HRESULT WINAPI domtext_get_parsed(IXMLDOMText *iface, VARIANT_BOOL *isParsed)
Definition: text.c:549
static HRESULT WINAPI domtext_get_nextSibling(IXMLDOMText *iface, IXMLDOMNode **domNode)
Definition: text.c:256
static ULONG WINAPI domtext_AddRef(IXMLDOMText *iface)
Definition: text.c:89
static HRESULT WINAPI domtext_transformNodeToObject(IXMLDOMText *iface, IXMLDOMNode *domNode, VARIANT var1)
Definition: text.c:586
static HRESULT WINAPI domtext_get_lastChild(IXMLDOMText *iface, IXMLDOMNode **domNode)
Definition: text.c:234
static ULONG WINAPI domtext_Release(IXMLDOMText *iface)
Definition: text.c:98
static HRESULT WINAPI domtext_put_data(IXMLDOMText *iface, BSTR data)
Definition: text.c:608
static HRESULT WINAPI domtext_selectSingleNode(IXMLDOMText *iface, BSTR p, IXMLDOMNode **outNode)
Definition: text.c:540
static HRESULT WINAPI domtext_replaceChild(IXMLDOMText *iface, IXMLDOMNode *newNode, IXMLDOMNode *oldNode, IXMLDOMNode **outOldNode)
Definition: text.c:290
struct _domtext domtext
static HRESULT WINAPI domtext_get_namespaceURI(IXMLDOMText *iface, BSTR *p)
Definition: text.c:559
static HRESULT WINAPI domtext_GetIDsOfNames(IXMLDOMText *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
Definition: text.c:132
static HRESULT WINAPI domtext_get_length(IXMLDOMText *iface, LONG *len)
Definition: text.c:644
static HRESULT WINAPI domtext_insertBefore(IXMLDOMText *iface, IXMLDOMNode *newNode, VARIANT refChild, IXMLDOMNode **outOldNode)
Definition: text.c:278
static HRESULT WINAPI domtext_GetTypeInfoCount(IXMLDOMText *iface, UINT *pctinfo)
Definition: text.c:114
static HRESULT WINAPI domtext_removeChild(IXMLDOMText *iface, IXMLDOMNode *child, IXMLDOMNode **oldChild)
Definition: text.c:303
static HRESULT WINAPI domtext_put_text(IXMLDOMText *iface, BSTR p)
Definition: text.c:369
static HRESULT WINAPI domtext_hasChildNodes(IXMLDOMText *iface, VARIANT_BOOL *ret)
Definition: text.c:321
static HRESULT WINAPI domtext_appendChild(IXMLDOMText *iface, IXMLDOMNode *child, IXMLDOMNode **outChild)
Definition: text.c:312
static HRESULT WINAPI domtext_get_nodeTypeString(IXMLDOMText *iface, BSTR *p)
Definition: text.c:348
static HRESULT WINAPI domtext_substringData(IXMLDOMText *iface, LONG offset, LONG count, BSTR *p)
Definition: text.c:667
static HRESULT WINAPI domtext_get_xml(IXMLDOMText *iface, BSTR *p)
Definition: text.c:511
static HRESULT WINAPI domtext_GetTypeInfo(IXMLDOMText *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
Definition: text.c:122
static HRESULT WINAPI domtext_get_ownerDocument(IXMLDOMText *iface, IXMLDOMDocument **doc)
Definition: text.c:330
static HRESULT WINAPI domtext_replaceData(IXMLDOMText *iface, LONG offset, LONG count, BSTR p)
Definition: text.c:834
static HRESULT WINAPI domtext_get_previousSibling(IXMLDOMText *iface, IXMLDOMNode **domNode)
Definition: text.c:245
static HRESULT WINAPI domtext_get_prefix(IXMLDOMText *iface, BSTR *prefix)
Definition: text.c:568
static const tid_t domtext_iface_tids[]
Definition: text.c:928
static HRESULT WINAPI domtext_get_childNodes(IXMLDOMText *iface, IXMLDOMNodeList **outList)
Definition: text.c:212
static HRESULT WINAPI domtext_cloneNode(IXMLDOMText *iface, VARIANT_BOOL deep, IXMLDOMNode **outNode)
Definition: text.c:339
static HRESULT WINAPI domtext_put_nodeTypedValue(IXMLDOMText *iface, VARIANT value)
Definition: text.c:428
static HRESULT WINAPI domtext_get_nodeName(IXMLDOMText *iface, BSTR *p)
Definition: text.c:153
static HRESULT WINAPI domtext_appendData(IXMLDOMText *iface, BSTR p)
Definition: text.c:707
static HRESULT WINAPI domtext_deleteData(IXMLDOMText *iface, LONG offset, LONG count)
Definition: text.c:787
static HRESULT WINAPI domtext_get_nodeValue(IXMLDOMText *iface, VARIANT *value)
Definition: text.c:166
static HRESULT WINAPI domtext_insertData(IXMLDOMText *iface, LONG offset, BSTR p)
Definition: text.c:740
static HRESULT WINAPI domtext_transformNode(IXMLDOMText *iface, IXMLDOMNode *node, BSTR *p)
Definition: text.c:522
static domtext * impl_from_IXMLDOMText(IXMLDOMText *iface)
Definition: text.c:48
static HRESULT WINAPI domtext_selectNodes(IXMLDOMText *iface, BSTR p, IXMLDOMNodeList **outList)
Definition: text.c:531
static void domtext_reset_noenc(domtext *This)
Definition: text.c:53
static HRESULT WINAPI domtext_put_dataType(IXMLDOMText *iface, BSTR dtName)
Definition: text.c:483
static HRESULT WINAPI domtext_get_nodeTypedValue(IXMLDOMText *iface, VARIANT *var1)
Definition: text.c:398
static HRESULT WINAPI domtext_get_nodeType(IXMLDOMText *iface, DOMNodeType *domNodeType)
Definition: text.c:189
static HRESULT WINAPI domtext_get_attributes(IXMLDOMText *iface, IXMLDOMNamedNodeMap **attributeMap)
Definition: text.c:267
static HRESULT WINAPI domtext_get_baseName(IXMLDOMText *iface, BSTR *name)
Definition: text.c:577
static dispex_static_data_t domtext_dispex
Definition: text.c:933
static HRESULT WINAPI domtext_get_definition(IXMLDOMText *iface, IXMLDOMNode **definitionNode)
Definition: text.c:389
static HRESULT WINAPI domtext_get_text(IXMLDOMText *iface, BSTR *p)
Definition: text.c:360
static HRESULT WINAPI domtext_get_parentNode(IXMLDOMText *iface, IXMLDOMNode **parent)
Definition: text.c:201
static HRESULT WINAPI domtext_get_dataType(IXMLDOMText *iface, VARIANT *dtName)
Definition: text.c:453
return ret
Definition: mutex.c:146
r parent
Definition: btrfs.c:3010
unsigned short WORD
Definition: ntddk_ex.h:93
GLuint GLuint GLsizei count
Definition: gl.h:1545
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
GLintptr offset
Definition: glext.h:5920
GLuint GLsizei GLsizei * length
Definition: glext.h:6040
GLfloat GLfloat p
Definition: glext.h:8902
GLenum GLsizei len
Definition: glext.h:6722
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
Definition: glfuncs.h:250
tid_t
Definition: ieframe.h:311
REFIID riid
Definition: atlbase.h:39
#define S_OK
Definition: intsafe.h:52
#define debugstr_guid
Definition: kernel32.h:35
#define debugstr_w
Definition: kernel32.h:32
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
static const WCHAR textW[]
Definition: itemdlg.c:1559
static const char * debugstr_variant(const VARIANT *var)
Definition: container.c:46
static HGLOBAL create_text(void)
Definition: clipboard.c:1496
static LPOLESTR
Definition: stg_prop.c:27
static VARIANTARG static DISPID
Definition: ordinal.c:49
static HWND child
Definition: cursoricon.c:298
enum tagDOMNodeType DOMNodeType
@ NODE_TEXT
Definition: msxml6.idl:115
@ IXMLDOMText_tid
Definition: msxml_dispex.h:58
static HRESULT return_bstr(const WCHAR *value, BSTR *p)
Definition: msxml_dispex.h:115
HRESULT node_get_next_sibling(xmlnode *, IXMLDOMNode **)
Definition: node.c:380
HRESULT node_get_text(const xmlnode *, BSTR *)
Definition: node.c:842
HRESULT node_put_text(xmlnode *, BSTR)
Definition: node.c:867
static BSTR bstr_from_xmlChar(const xmlChar *str)
HRESULT node_remove_child(xmlnode *, IXMLDOMNode *, IXMLDOMNode **)
Definition: node.c:608
HRESULT node_get_parent(xmlnode *, IXMLDOMNode **)
Definition: node.c:348
HRESULT node_replace_child(xmlnode *, IXMLDOMNode *, IXMLDOMNode *, IXMLDOMNode **)
Definition: node.c:543
static HRESULT return_null_bstr(BSTR *p)
HRESULT node_put_value(xmlnode *, VARIANT *)
Definition: node.c:279
HRESULT node_clone(xmlnode *, VARIANT_BOOL, IXMLDOMNode **)
Definition: node.c:679
HRESULT node_append_child(xmlnode *, IXMLDOMNode *, IXMLDOMNode **)
Definition: node.c:639
HRESULT node_get_previous_sibling(xmlnode *, IXMLDOMNode **)
Definition: node.c:375
static HRESULT return_var_false(VARIANT_BOOL *p)
HRESULT node_get_content(xmlnode *, VARIANT *)
Definition: node.c:225
HRESULT node_transform_node(const xmlnode *, IXMLDOMNode *, BSTR *)
Definition: node.c:1553
HRESULT node_select_nodes(const xmlnode *, BSTR, IXMLDOMNodeList **)
Definition: node.c:1558
HRESULT node_set_content(xmlnode *, LPCWSTR)
Definition: node.c:241
void destroy_xmlnode(xmlnode *)
Definition: node.c:1638
static HRESULT return_null_ptr(void **p)
HRESULT node_insert_before(xmlnode *, IXMLDOMNode *, const VARIANT *, IXMLDOMNode **)
Definition: node.c:432
HRESULT node_select_singlenode(const xmlnode *, BSTR, IXMLDOMNode **)
Definition: node.c:1572
void init_xmlnode(xmlnode *, xmlNodePtr, IXMLDOMNode *, dispex_static_data_t *)
Definition: node.c:1647
HRESULT node_get_owner_doc(const xmlnode *, IXMLDOMDocument **)
Definition: node.c:672
HRESULT node_get_xml(xmlnode *, BOOL, BSTR *)
Definition: node.c:936
HRESULT node_get_namespaceURI(xmlnode *, BSTR *)
Definition: node.c:1589
HRESULT node_get_child_nodes(xmlnode *, IXMLDOMNodeList **)
Definition: node.c:353
BOOL node_query_interface(xmlnode *, REFIID, void **)
Definition: node.c:66
static HRESULT return_null_node(IXMLDOMNode **p)
unsigned int UINT
Definition: ndis.h:50
BSTR WINAPI SysAllocString(LPCOLESTR str)
Definition: oleaut.c:238
UINT WINAPI SysStringLen(BSTR str)
Definition: oleaut.c:196
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
Definition: oleaut.c:271
BSTR WINAPI SysAllocStringLen(const OLECHAR *str, unsigned int len)
Definition: oleaut.c:339
#define V_VT(A)
Definition: oleauto.h:211
#define V_BSTR(A)
Definition: oleauto.h:226
const GUID IID_IDispatch
long LONG
Definition: pedump.c:60
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147
#define REFIID
Definition: guiddef.h:118
const WCHAR * str
DWORD LCID
Definition: nls.h:13
HRESULT hr
Definition: shlfolder.c:183
#define TRACE(s)
Definition: solgame.cpp:4
Definition: text.c:42
LONG ref
Definition: text.c:45
IXMLDOMText IXMLDOMText_iface
Definition: text.c:44
xmlnode node
Definition: text.c:43
Definition: name.c:39
Definition: send.c:48
Character const *const prefix
Definition: tempnam.cpp:195
#define CONTAINING_RECORD(address, type, field)
Definition: typedefs.h:260
uint32_t ULONG
Definition: typedefs.h:59
Definition: dlist.c:348
Definition: pdh_main.c:96
WINBASEAPI _In_ DWORD _Out_ _In_ WORD wFlags
Definition: wincon_undoc.h:337
#define WINAPI
Definition: msvc.h:6
#define S_FALSE
Definition: winerror.h:3451
#define E_NOINTERFACE
Definition: winerror.h:3479
__wchar_t WCHAR
Definition: xmlstorage.h:180