ReactOS 0.4.16-dev-2207-geb15453
cdata.c
Go to the documentation of this file.
1/*
2 * DOM CDATA node implementation
3 *
4 * Copyright 2007 Alistair Leslie-Hughes
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 */
20
21#define COBJMACROS
22
23#include <stdarg.h>
24#include <libxml/parser.h>
25#include <libxml/xmlerror.h>
26
27#include "windef.h"
28#include "winbase.h"
29#include "winuser.h"
30#include "ole2.h"
31#include "msxml6.h"
32
33#include "msxml_private.h"
34
35#include "wine/debug.h"
36
38
39typedef struct
40{
44} domcdata;
45
46static const tid_t domcdata_se_tids[] = {
50};
51
53{
54 return CONTAINING_RECORD(iface, domcdata, IXMLDOMCDATASection_iface);
55}
56
60 void** ppvObject )
61{
63 TRACE("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppvObject);
64
65 if ( IsEqualGUID( riid, &IID_IXMLDOMCDATASection ) ||
66 IsEqualGUID( riid, &IID_IXMLDOMCharacterData) ||
67 IsEqualGUID( riid, &IID_IXMLDOMNode ) ||
70 {
71 *ppvObject = iface;
72 }
73 else if(node_query_interface(&This->node, riid, ppvObject))
74 {
75 return *ppvObject ? S_OK : E_NOINTERFACE;
76 }
77 else if(IsEqualGUID( riid, &IID_ISupportErrorInfo ))
78 {
80 }
81 else
82 {
83 TRACE("Unsupported interface %s\n", debugstr_guid(riid));
84 *ppvObject = NULL;
85 return E_NOINTERFACE;
86 }
87
88 IXMLDOMCDATASection_AddRef(iface);
89 return S_OK;
90}
91
93{
96 TRACE("%p, refcount %lu.\n", iface, ref);
97 return ref;
98}
99
101{
104
105 TRACE("%p, refcount %lu.\n", iface, ref);
106
107 if (!ref)
108 {
109 destroy_xmlnode(&cdata->node);
110 free(cdata);
111 }
112
113 return ref;
114}
115
117 IXMLDOMCDATASection *iface,
118 UINT* pctinfo )
119{
121 return IDispatchEx_GetTypeInfoCount(&This->node.dispex.IDispatchEx_iface, pctinfo);
122}
123
125 IXMLDOMCDATASection *iface,
126 UINT iTInfo, LCID lcid,
127 ITypeInfo** ppTInfo )
128{
130 return IDispatchEx_GetTypeInfo(&This->node.dispex.IDispatchEx_iface,
131 iTInfo, lcid, ppTInfo);
132}
133
135 IXMLDOMCDATASection *iface,
136 REFIID riid, LPOLESTR* rgszNames,
137 UINT cNames, LCID lcid, DISPID* rgDispId )
138{
140 return IDispatchEx_GetIDsOfNames(&This->node.dispex.IDispatchEx_iface,
141 riid, rgszNames, cNames, lcid, rgDispId);
142}
143
145 IXMLDOMCDATASection *iface,
146 DISPID dispIdMember, REFIID riid, LCID lcid,
147 WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pVarResult,
148 EXCEPINFO* pExcepInfo, UINT* puArgErr )
149{
151 return IDispatchEx_Invoke(&This->node.dispex.IDispatchEx_iface,
152 dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
153}
154
156 IXMLDOMCDATASection *iface,
157 BSTR* p )
158{
160
161 static const WCHAR cdata_sectionW[] =
162 {'#','c','d','a','t','a','-','s','e','c','t','i','o','n',0};
163
164 TRACE("(%p)->(%p)\n", This, p);
165
166 return return_bstr(cdata_sectionW, p);
167}
168
170 IXMLDOMCDATASection *iface,
171 VARIANT* value)
172{
174
175 TRACE("(%p)->(%p)\n", This, value);
176
177 return node_get_content(&This->node, value);
178}
179
181 IXMLDOMCDATASection *iface,
183{
185
186 TRACE("(%p)->(%s)\n", This, debugstr_variant(&value));
187
188 return node_put_value(&This->node, &value);
189}
190
192 IXMLDOMCDATASection *iface,
193 DOMNodeType* domNodeType )
194{
196
197 TRACE("(%p)->(%p)\n", This, domNodeType);
198
199 *domNodeType = NODE_CDATA_SECTION;
200 return S_OK;
201}
202
204 IXMLDOMCDATASection *iface,
206{
208
209 TRACE("(%p)->(%p)\n", This, parent);
210
211 return node_get_parent(&This->node, parent);
212}
213
215 IXMLDOMCDATASection *iface,
216 IXMLDOMNodeList** outList)
217{
219
220 TRACE("(%p)->(%p)\n", This, outList);
221
222 return node_get_child_nodes(&This->node, outList);
223}
224
226 IXMLDOMCDATASection *iface,
227 IXMLDOMNode** domNode)
228{
230
231 TRACE("(%p)->(%p)\n", This, domNode);
232
233 return return_null_node(domNode);
234}
235
237 IXMLDOMCDATASection *iface,
238 IXMLDOMNode** domNode)
239{
241
242 TRACE("(%p)->(%p)\n", This, domNode);
243
244 return return_null_node(domNode);
245}
246
248 IXMLDOMCDATASection *iface,
249 IXMLDOMNode** domNode)
250{
252
253 TRACE("(%p)->(%p)\n", This, domNode);
254
255 return node_get_previous_sibling(&This->node, domNode);
256}
257
259 IXMLDOMCDATASection *iface,
260 IXMLDOMNode** domNode)
261{
263
264 TRACE("(%p)->(%p)\n", This, domNode);
265
266 return node_get_next_sibling(&This->node, domNode);
267}
268
270 IXMLDOMCDATASection *iface,
271 IXMLDOMNamedNodeMap** attributeMap)
272{
274
275 TRACE("(%p)->(%p)\n", This, attributeMap);
276
277 return return_null_ptr((void**)attributeMap);
278}
279
281 IXMLDOMCDATASection *iface,
282 IXMLDOMNode* newNode, VARIANT refChild,
283 IXMLDOMNode** outOldNode)
284{
286 TRACE("(%p)->(%p %s %p)\n", This, newNode, debugstr_variant(&refChild), outOldNode);
287 if (outOldNode) *outOldNode = NULL;
288 return E_FAIL;
289}
290
292 IXMLDOMCDATASection *iface,
293 IXMLDOMNode* newNode,
294 IXMLDOMNode* oldNode,
295 IXMLDOMNode** outOldNode)
296{
298 TRACE("(%p)->(%p %p %p)\n", This, newNode, oldNode, outOldNode);
299 if (outOldNode) *outOldNode = NULL;
300 return E_FAIL;
301}
302
304 IXMLDOMCDATASection *iface,
305 IXMLDOMNode *child, IXMLDOMNode **oldChild)
306{
308 TRACE("(%p)->(%p %p)\n", This, child, oldChild);
309 if (oldChild) *oldChild = NULL;
310 return E_FAIL;
311}
312
314 IXMLDOMCDATASection *iface,
315 IXMLDOMNode *child, IXMLDOMNode **outChild)
316{
318 TRACE("(%p)->(%p %p)\n", This, child, outChild);
319 if (outChild) *outChild = NULL;
320 return E_FAIL;
321}
322
324 IXMLDOMCDATASection *iface,
326{
328 TRACE("(%p)->(%p)\n", This, ret);
329 return return_var_false(ret);
330}
331
333 IXMLDOMCDATASection *iface,
334 IXMLDOMDocument **doc)
335{
337 TRACE("(%p)->(%p)\n", This, doc);
338 return node_get_owner_doc(&This->node, doc);
339}
340
342 IXMLDOMCDATASection *iface,
343 VARIANT_BOOL deep, IXMLDOMNode** outNode)
344{
346 TRACE("(%p)->(%d %p)\n", This, deep, outNode);
347 return node_clone( &This->node, deep, outNode );
348}
349
351 IXMLDOMCDATASection *iface,
352 BSTR* p)
353{
355 static const WCHAR cdatasectionW[] = {'c','d','a','t','a','s','e','c','t','i','o','n',0};
356
357 TRACE("(%p)->(%p)\n", This, p);
358
359 return return_bstr(cdatasectionW, p);
360}
361
363 IXMLDOMCDATASection *iface,
364 BSTR* p)
365{
367 TRACE("(%p)->(%p)\n", This, p);
368 return node_get_text(&This->node, p);
369}
370
372 IXMLDOMCDATASection *iface,
373 BSTR p)
374{
376 TRACE("(%p)->(%s)\n", This, debugstr_w(p));
377 return node_put_text( &This->node, p );
378}
379
381 IXMLDOMCDATASection *iface,
382 VARIANT_BOOL* isSpecified)
383{
385 FIXME("(%p)->(%p) stub!\n", This, isSpecified);
386 *isSpecified = VARIANT_TRUE;
387 return S_OK;
388}
389
391 IXMLDOMCDATASection *iface,
392 IXMLDOMNode** definitionNode)
393{
395 FIXME("(%p)->(%p)\n", This, definitionNode);
396 return E_NOTIMPL;
397}
398
400 IXMLDOMCDATASection *iface,
401 VARIANT* v)
402{
404 TRACE("(%p)->(%p)\n", This, v);
405 return node_get_content(&This->node, v);
406}
407
409 IXMLDOMCDATASection *iface,
410 VARIANT typedValue)
411{
413 FIXME("(%p)->(%s)\n", This, debugstr_variant(&typedValue));
414 return E_NOTIMPL;
415}
416
418 IXMLDOMCDATASection *iface,
419 VARIANT* typename)
420{
422 TRACE("(%p)->(%p)\n", This, typename);
423 return return_null_var( typename );
424}
425
427 IXMLDOMCDATASection *iface,
428 BSTR p)
429{
431
432 TRACE("(%p)->(%s)\n", This, debugstr_w(p));
433
434 if(!p)
435 return E_INVALIDARG;
436
437 return E_FAIL;
438}
439
441 IXMLDOMCDATASection *iface,
442 BSTR* p)
443{
445
446 TRACE("(%p)->(%p)\n", This, p);
447
448 return node_get_xml(&This->node, FALSE, p);
449}
450
452 IXMLDOMCDATASection *iface,
454{
456 TRACE("(%p)->(%p %p)\n", This, node, p);
457 return node_transform_node(&This->node, node, p);
458}
459
461 IXMLDOMCDATASection *iface,
462 BSTR p, IXMLDOMNodeList** outList)
463{
465 TRACE("(%p)->(%s %p)\n", This, debugstr_w(p), outList);
466 return node_select_nodes(&This->node, p, outList);
467}
468
470 IXMLDOMCDATASection *iface,
471 BSTR p, IXMLDOMNode** outNode)
472{
474 TRACE("(%p)->(%s %p)\n", This, debugstr_w(p), outNode);
475 return node_select_singlenode(&This->node, p, outNode);
476}
477
479 IXMLDOMCDATASection *iface,
480 VARIANT_BOOL* isParsed)
481{
483 FIXME("(%p)->(%p) stub!\n", This, isParsed);
484 *isParsed = VARIANT_TRUE;
485 return S_OK;
486}
487
489 IXMLDOMCDATASection *iface,
490 BSTR* p)
491{
493 TRACE("(%p)->(%p)\n", This, p);
494 return node_get_namespaceURI(&This->node, p);
495}
496
498 IXMLDOMCDATASection *iface,
499 BSTR* prefix)
500{
502 TRACE("(%p)->(%p)\n", This, prefix);
503 return return_null_bstr( prefix );
504}
505
507 IXMLDOMCDATASection *iface,
508 BSTR* name)
509{
511 FIXME("(%p)->(%p): needs test\n", This, name);
512 return return_null_bstr( name );
513}
514
516 IXMLDOMCDATASection *iface,
517 IXMLDOMNode* domNode, VARIANT var1)
518{
520 FIXME("(%p)->(%p %s)\n", This, domNode, debugstr_variant(&var1));
521 return E_NOTIMPL;
522}
523
525 IXMLDOMCDATASection *iface,
526 BSTR *p)
527{
528 HRESULT hr;
529 VARIANT vRet;
530
531 if(!p)
532 return E_INVALIDARG;
533
534 hr = IXMLDOMCDATASection_get_nodeValue( iface, &vRet );
535 if(hr == S_OK)
536 {
537 *p = V_BSTR(&vRet);
538 }
539
540 return hr;
541}
542
544 IXMLDOMCDATASection *iface,
545 BSTR data)
546{
548 TRACE("(%p)->(%s)\n", This, debugstr_w(data));
549 return node_set_content(&This->node, data);
550}
551
553 IXMLDOMCDATASection *iface,
554 LONG *len)
555{
557 HRESULT hr;
558 BSTR data;
559
560 TRACE("(%p)->(%p)\n", This, len);
561
562 if(!len)
563 return E_INVALIDARG;
564
565 hr = IXMLDOMCDATASection_get_data(iface, &data);
566 if(hr == S_OK)
567 {
570 }
571
572 return S_OK;
573}
574
576 IXMLDOMCDATASection *iface,
578{
579 HRESULT hr;
580 BSTR data;
581
582 TRACE("%p, %ld, %ld, %p.\n", iface, offset, count, p);
583
584 if(!p)
585 return E_INVALIDARG;
586
587 *p = NULL;
588 if(offset < 0 || count < 0)
589 return E_INVALIDARG;
590
591 if(count == 0)
592 return S_FALSE;
593
594 hr = IXMLDOMCDATASection_get_data(iface, &data);
595 if(hr == S_OK)
596 {
598
599 if(offset < len)
600 {
601 if(offset + count > len)
603 else
605 }
606 else
607 hr = S_FALSE;
608
610 }
611
612 return hr;
613}
614
616 IXMLDOMCDATASection *iface,
617 BSTR p)
618{
620 HRESULT hr;
621 BSTR data;
622 LONG p_len;
623
624 TRACE("(%p)->(%s)\n", This, debugstr_w(p));
625
626 /* Nothing to do if NULL or an Empty string passed in. */
627 if((p_len = SysStringLen(p)) == 0) return S_OK;
628
629 hr = IXMLDOMCDATASection_get_data(iface, &data);
630 if(hr == S_OK)
631 {
633 BSTR str = SysAllocStringLen(NULL, p_len + len);
634
635 memcpy(str, data, len*sizeof(WCHAR));
636 memcpy(&str[len], p, p_len*sizeof(WCHAR));
637 str[len+p_len] = 0;
638
639 hr = IXMLDOMCDATASection_put_data(iface, str);
640
643 }
644
645 return hr;
646}
647
649 IXMLDOMCDATASection *iface,
650 LONG offset, BSTR p)
651{
652 HRESULT hr;
653 BSTR data;
654 LONG p_len;
655
656 TRACE("%p, %ld, %s.\n", iface, offset, debugstr_w(p));
657
658 /* If have a NULL or empty string, don't do anything. */
659 if((p_len = SysStringLen(p)) == 0)
660 return S_OK;
661
662 if(offset < 0)
663 {
664 return E_INVALIDARG;
665 }
666
667 hr = IXMLDOMCDATASection_get_data(iface, &data);
668 if(hr == S_OK)
669 {
671 BSTR str;
672
673 if(len < offset)
674 {
676 return E_INVALIDARG;
677 }
678
679 str = SysAllocStringLen(NULL, len + p_len);
680 /* start part, supplied string and end part */
681 memcpy(str, data, offset*sizeof(WCHAR));
682 memcpy(&str[offset], p, p_len*sizeof(WCHAR));
683 memcpy(&str[offset+p_len], &data[offset], (len-offset)*sizeof(WCHAR));
684 str[len+p_len] = 0;
685
686 hr = IXMLDOMCDATASection_put_data(iface, str);
687
690 }
691
692 return hr;
693}
694
696 IXMLDOMCDATASection *iface,
698{
699 HRESULT hr;
700 LONG len = -1;
701 BSTR str;
702
703 TRACE("%p, %ld, %ld.\n", iface, offset, count);
704
705 hr = IXMLDOMCDATASection_get_length(iface, &len);
706 if(hr != S_OK) return hr;
707
708 if((offset < 0) || (offset > len) || (count < 0))
709 return E_INVALIDARG;
710
711 if(len == 0) return S_OK;
712
713 /* cutting start or end */
714 if((offset == 0) || ((count + offset) >= len))
715 {
716 if(offset == 0)
717 IXMLDOMCDATASection_substringData(iface, count, len - count, &str);
718 else
719 IXMLDOMCDATASection_substringData(iface, 0, offset, &str);
720 hr = IXMLDOMCDATASection_put_data(iface, str);
721 }
722 else
723 /* cutting from the inside */
724 {
725 BSTR str_end;
726
727 IXMLDOMCDATASection_substringData(iface, 0, offset, &str);
728 IXMLDOMCDATASection_substringData(iface, offset + count, len - count, &str_end);
729
730 hr = IXMLDOMCDATASection_put_data(iface, str);
731 if(hr == S_OK)
732 hr = IXMLDOMCDATASection_appendData(iface, str_end);
733
734 SysFreeString(str_end);
735 }
736
738
739 return hr;
740}
741
743 IXMLDOMCDATASection *iface,
745{
746 HRESULT hr;
747
748 TRACE("%p, %ld, %ld, %s.\n", iface, offset, count, debugstr_w(p));
749
750 hr = IXMLDOMCDATASection_deleteData(iface, offset, count);
751
752 if (hr == S_OK)
753 hr = IXMLDOMCDATASection_insertData(iface, offset, p);
754
755 return hr;
756}
757
759 IXMLDOMCDATASection *iface,
760 LONG offset, IXMLDOMText **txtNode)
761{
762 IXMLDOMDocument *doc;
763 LONG length = 0;
764 HRESULT hr;
765
766 TRACE("%p, %ld, %p.\n", iface, offset, txtNode);
767
768 if (!txtNode || offset < 0) return E_INVALIDARG;
769
770 *txtNode = NULL;
771
772 IXMLDOMCDATASection_get_length(iface, &length);
773
774 if (offset > length) return E_INVALIDARG;
775 if (offset == length) return S_FALSE;
776
777 hr = IXMLDOMCDATASection_get_ownerDocument(iface, &doc);
778 if (hr == S_OK)
779 {
780 BSTR data;
781
782 hr = IXMLDOMCDATASection_substringData(iface, offset, length - offset, &data);
783 if (hr == S_OK)
784 {
785 hr = IXMLDOMDocument_createTextNode(doc, data, txtNode);
786 if (hr == S_OK)
787 {
789
790 hr = IXMLDOMCDATASection_get_parentNode(iface, &parent);
791 if (hr == S_OK)
792 {
793 IXMLDOMCDATASection_deleteData(iface, 0, offset);
794 hr = IXMLDOMNode_appendChild(parent, (IXMLDOMNode*)*txtNode, NULL);
795 IXMLDOMNode_Release(parent);
796 }
797 }
799 }
800 IXMLDOMDocument_Release(doc);
801 }
802
803 return hr;
804}
805
806static const struct IXMLDOMCDATASectionVtbl domcdata_vtbl =
807{
860};
861
862static const tid_t domcdata_iface_tids[] = {
864 0
865};
866
868 NULL,
870 NULL,
872};
873
875{
876 domcdata *This;
877
878 This = malloc(sizeof(*This));
879 if ( !This )
880 return NULL;
881
882 This->IXMLDOMCDATASection_iface.lpVtbl = &domcdata_vtbl;
883 This->ref = 1;
884
885 init_xmlnode(&This->node, text, (IXMLDOMNode*)&This->IXMLDOMCDATASection_iface, &domcdata_dispex);
886
887 return (IUnknown*)&This->IXMLDOMCDATASection_iface;
888}
#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
static HRESULT WINAPI domcdata_replaceData(IXMLDOMCDATASection *iface, LONG offset, LONG count, BSTR p)
Definition: cdata.c:742
static HRESULT WINAPI domcdata_appendData(IXMLDOMCDATASection *iface, BSTR p)
Definition: cdata.c:615
static HRESULT WINAPI domcdata_get_nodeValue(IXMLDOMCDATASection *iface, VARIANT *value)
Definition: cdata.c:169
static domcdata * impl_from_IXMLDOMCDATASection(IXMLDOMCDATASection *iface)
Definition: cdata.c:52
static HRESULT WINAPI domcdata_get_nodeType(IXMLDOMCDATASection *iface, DOMNodeType *domNodeType)
Definition: cdata.c:191
static ULONG WINAPI domcdata_AddRef(IXMLDOMCDATASection *iface)
Definition: cdata.c:92
static HRESULT WINAPI domcdata_get_text(IXMLDOMCDATASection *iface, BSTR *p)
Definition: cdata.c:362
static HRESULT WINAPI domcdata_replaceChild(IXMLDOMCDATASection *iface, IXMLDOMNode *newNode, IXMLDOMNode *oldNode, IXMLDOMNode **outOldNode)
Definition: cdata.c:291
static HRESULT WINAPI domcdata_put_dataType(IXMLDOMCDATASection *iface, BSTR p)
Definition: cdata.c:426
static HRESULT WINAPI domcdata_splitText(IXMLDOMCDATASection *iface, LONG offset, IXMLDOMText **txtNode)
Definition: cdata.c:758
static HRESULT WINAPI domcdata_substringData(IXMLDOMCDATASection *iface, LONG offset, LONG count, BSTR *p)
Definition: cdata.c:575
static HRESULT WINAPI domcdata_GetTypeInfoCount(IXMLDOMCDATASection *iface, UINT *pctinfo)
Definition: cdata.c:116
static HRESULT WINAPI domcdata_get_attributes(IXMLDOMCDATASection *iface, IXMLDOMNamedNodeMap **attributeMap)
Definition: cdata.c:269
static HRESULT WINAPI domcdata_transformNode(IXMLDOMCDATASection *iface, IXMLDOMNode *node, BSTR *p)
Definition: cdata.c:451
static HRESULT WINAPI domcdata_GetTypeInfo(IXMLDOMCDATASection *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
Definition: cdata.c:124
static HRESULT WINAPI domcdata_get_xml(IXMLDOMCDATASection *iface, BSTR *p)
Definition: cdata.c:440
static HRESULT WINAPI domcdata_get_firstChild(IXMLDOMCDATASection *iface, IXMLDOMNode **domNode)
Definition: cdata.c:225
static HRESULT WINAPI domcdata_selectNodes(IXMLDOMCDATASection *iface, BSTR p, IXMLDOMNodeList **outList)
Definition: cdata.c:460
static HRESULT WINAPI domcdata_QueryInterface(IXMLDOMCDATASection *iface, REFIID riid, void **ppvObject)
Definition: cdata.c:57
static HRESULT WINAPI domcdata_put_text(IXMLDOMCDATASection *iface, BSTR p)
Definition: cdata.c:371
static HRESULT WINAPI domcdata_selectSingleNode(IXMLDOMCDATASection *iface, BSTR p, IXMLDOMNode **outNode)
Definition: cdata.c:469
static HRESULT WINAPI domcdata_get_nextSibling(IXMLDOMCDATASection *iface, IXMLDOMNode **domNode)
Definition: cdata.c:258
static HRESULT WINAPI domcdata_get_parentNode(IXMLDOMCDATASection *iface, IXMLDOMNode **parent)
Definition: cdata.c:203
static HRESULT WINAPI domcdata_get_nodeName(IXMLDOMCDATASection *iface, BSTR *p)
Definition: cdata.c:155
static HRESULT WINAPI domcdata_GetIDsOfNames(IXMLDOMCDATASection *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
Definition: cdata.c:134
static HRESULT WINAPI domcdata_get_prefix(IXMLDOMCDATASection *iface, BSTR *prefix)
Definition: cdata.c:497
static const struct IXMLDOMCDATASectionVtbl domcdata_vtbl
Definition: cdata.c:806
static HRESULT WINAPI domcdata_insertBefore(IXMLDOMCDATASection *iface, IXMLDOMNode *newNode, VARIANT refChild, IXMLDOMNode **outOldNode)
Definition: cdata.c:280
static HRESULT WINAPI domcdata_put_nodeValue(IXMLDOMCDATASection *iface, VARIANT value)
Definition: cdata.c:180
static HRESULT WINAPI domcdata_get_data(IXMLDOMCDATASection *iface, BSTR *p)
Definition: cdata.c:524
static HRESULT WINAPI domcdata_transformNodeToObject(IXMLDOMCDATASection *iface, IXMLDOMNode *domNode, VARIANT var1)
Definition: cdata.c:515
static HRESULT WINAPI domcdata_get_definition(IXMLDOMCDATASection *iface, IXMLDOMNode **definitionNode)
Definition: cdata.c:390
static HRESULT WINAPI domcdata_get_childNodes(IXMLDOMCDATASection *iface, IXMLDOMNodeList **outList)
Definition: cdata.c:214
static HRESULT WINAPI domcdata_get_ownerDocument(IXMLDOMCDATASection *iface, IXMLDOMDocument **doc)
Definition: cdata.c:332
static HRESULT WINAPI domcdata_get_parsed(IXMLDOMCDATASection *iface, VARIANT_BOOL *isParsed)
Definition: cdata.c:478
static HRESULT WINAPI domcdata_insertData(IXMLDOMCDATASection *iface, LONG offset, BSTR p)
Definition: cdata.c:648
IUnknown * create_cdata(xmlNodePtr text)
Definition: cdata.c:874
static HRESULT WINAPI domcdata_hasChildNodes(IXMLDOMCDATASection *iface, VARIANT_BOOL *ret)
Definition: cdata.c:323
static HRESULT WINAPI domcdata_get_nodeTypeString(IXMLDOMCDATASection *iface, BSTR *p)
Definition: cdata.c:350
static HRESULT WINAPI domcdata_cloneNode(IXMLDOMCDATASection *iface, VARIANT_BOOL deep, IXMLDOMNode **outNode)
Definition: cdata.c:341
static HRESULT WINAPI domcdata_put_data(IXMLDOMCDATASection *iface, BSTR data)
Definition: cdata.c:543
static ULONG WINAPI domcdata_Release(IXMLDOMCDATASection *iface)
Definition: cdata.c:100
static HRESULT WINAPI domcdata_get_specified(IXMLDOMCDATASection *iface, VARIANT_BOOL *isSpecified)
Definition: cdata.c:380
static HRESULT WINAPI domcdata_get_lastChild(IXMLDOMCDATASection *iface, IXMLDOMNode **domNode)
Definition: cdata.c:236
static const tid_t domcdata_iface_tids[]
Definition: cdata.c:862
static HRESULT WINAPI domcdata_appendChild(IXMLDOMCDATASection *iface, IXMLDOMNode *child, IXMLDOMNode **outChild)
Definition: cdata.c:313
static HRESULT WINAPI domcdata_get_previousSibling(IXMLDOMCDATASection *iface, IXMLDOMNode **domNode)
Definition: cdata.c:247
static HRESULT WINAPI domcdata_removeChild(IXMLDOMCDATASection *iface, IXMLDOMNode *child, IXMLDOMNode **oldChild)
Definition: cdata.c:303
static HRESULT WINAPI domcdata_get_dataType(IXMLDOMCDATASection *iface, VARIANT *typename)
Definition: cdata.c:417
static HRESULT WINAPI domcdata_Invoke(IXMLDOMCDATASection *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
Definition: cdata.c:144
static HRESULT WINAPI domcdata_put_nodeTypedValue(IXMLDOMCDATASection *iface, VARIANT typedValue)
Definition: cdata.c:408
static HRESULT WINAPI domcdata_deleteData(IXMLDOMCDATASection *iface, LONG offset, LONG count)
Definition: cdata.c:695
static HRESULT WINAPI domcdata_get_length(IXMLDOMCDATASection *iface, LONG *len)
Definition: cdata.c:552
static const tid_t domcdata_se_tids[]
Definition: cdata.c:46
static HRESULT WINAPI domcdata_get_namespaceURI(IXMLDOMCDATASection *iface, BSTR *p)
Definition: cdata.c:488
static HRESULT WINAPI domcdata_get_baseName(IXMLDOMCDATASection *iface, BSTR *name)
Definition: cdata.c:506
static HRESULT WINAPI domcdata_get_nodeTypedValue(IXMLDOMCDATASection *iface, VARIANT *v)
Definition: cdata.c:399
static dispex_static_data_t domcdata_dispex
Definition: cdata.c:867
#define E_INVALIDARG
Definition: ddrawi.h:101
#define E_NOTIMPL
Definition: ddrawi.h:99
#define E_FAIL
Definition: ddrawi.h:102
#define free
Definition: debug_ros.c:5
#define malloc
Definition: debug_ros.c:4
#define NULL
Definition: types.h:112
#define FALSE
Definition: types.h:117
OLECHAR * BSTR
Definition: compat.h:2293
short VARIANT_BOOL
Definition: compat.h:2290
LCID lcid
Definition: locale.c:5656
const WCHAR * text
Definition: package.c:1794
return ret
Definition: mutex.c:146
r parent
Definition: btrfs.c:3010
unsigned short WORD
Definition: ntddk_ex.h:93
const GLdouble * v
Definition: gl.h:2040
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
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 char * debugstr_variant(const VARIANT *var)
Definition: container.c:46
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_CDATA_SECTION
Definition: msxml6.idl:116
@ IXMLDOMNode_tid
Definition: msxml_dispex.h:51
@ IXMLDOMCDATASection_tid
Definition: msxml_dispex.h:40
@ NULL_tid
Definition: msxml_dispex.h:38
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
HRESULT node_get_parent(xmlnode *, IXMLDOMNode **)
Definition: node.c:348
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_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
static HRESULT return_null_var(VARIANT *p)
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_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)
HRESULT node_create_supporterrorinfo(const tid_t *, void **)
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_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: cdata.c:40
LONG ref
Definition: cdata.c:43
IXMLDOMCDATASection IXMLDOMCDATASection_iface
Definition: cdata.c:42
xmlnode node
Definition: cdata.c:41
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