ReactOS 0.4.16-dev-2216-ga08d639
comment.c
Go to the documentation of this file.
1/*
2 * DOM comment node implementation
3 *
4 * Copyright 2006 Huw Davies
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 _domcomment
40{
45
46static const tid_t domcomment_se_tids[] = {
50};
51
53{
54 return CONTAINING_RECORD(iface, domcomment, IXMLDOMComment_iface);
55}
56
58 IXMLDOMComment *iface,
60 void** ppvObject )
61{
63 TRACE("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppvObject);
64
65 if ( IsEqualGUID( riid, &IID_IXMLDOMComment ) ||
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 IXMLDOMComment_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(&comment->node);
110 free(comment);
111 }
112
113 return ref;
114}
115
117 IXMLDOMComment *iface,
118 UINT* pctinfo )
119{
121 return IDispatchEx_GetTypeInfoCount(&This->node.dispex.IDispatchEx_iface, pctinfo);
122}
123
125 IXMLDOMComment *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 IXMLDOMComment *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 IXMLDOMComment *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 IXMLDOMComment *iface,
157 BSTR* p )
158{
160
161 static const WCHAR commentW[] = {'#','c','o','m','m','e','n','t',0};
162
163 TRACE("(%p)->(%p)\n", This, p);
164
165 return return_bstr(commentW, p);
166}
167
169 IXMLDOMComment *iface,
170 VARIANT* value)
171{
173
174 TRACE("(%p)->(%p)\n", This, value);
175
176 return node_get_content(&This->node, value);
177}
178
180 IXMLDOMComment *iface,
182{
184
185 TRACE("(%p)->(%s)\n", This, debugstr_variant(&value));
186
187 return node_put_value(&This->node, &value);
188}
189
191 IXMLDOMComment *iface,
192 DOMNodeType* domNodeType )
193{
195
196 TRACE("(%p)->(%p)\n", This, domNodeType);
197
198 *domNodeType = NODE_COMMENT;
199 return S_OK;
200}
201
203 IXMLDOMComment *iface,
205{
207
208 TRACE("(%p)->(%p)\n", This, parent);
209
210 return node_get_parent(&This->node, parent);
211}
212
214 IXMLDOMComment *iface,
215 IXMLDOMNodeList** outList)
216{
218
219 TRACE("(%p)->(%p)\n", This, outList);
220
221 return node_get_child_nodes(&This->node, outList);
222}
223
225 IXMLDOMComment *iface,
226 IXMLDOMNode** domNode)
227{
229
230 TRACE("(%p)->(%p)\n", This, domNode);
231
232 return return_null_node(domNode);
233}
234
236 IXMLDOMComment *iface,
237 IXMLDOMNode** domNode)
238{
240
241 TRACE("(%p)->(%p)\n", This, domNode);
242
243 return return_null_node(domNode);
244}
245
247 IXMLDOMComment *iface,
248 IXMLDOMNode** domNode)
249{
251
252 TRACE("(%p)->(%p)\n", This, domNode);
253
254 return node_get_previous_sibling(&This->node, domNode);
255}
256
258 IXMLDOMComment *iface,
259 IXMLDOMNode** domNode)
260{
262
263 TRACE("(%p)->(%p)\n", This, domNode);
264
265 return node_get_next_sibling(&This->node, domNode);
266}
267
269 IXMLDOMComment *iface,
270 IXMLDOMNamedNodeMap** attributeMap)
271{
273
274 TRACE("(%p)->(%p)\n", This, attributeMap);
275
276 return return_null_ptr((void**)attributeMap);
277}
278
280 IXMLDOMComment *iface,
281 IXMLDOMNode* newNode, VARIANT refChild,
282 IXMLDOMNode** outOldNode)
283{
285
286 FIXME("(%p)->(%p %s %p) needs test\n", This, newNode, debugstr_variant(&refChild), outOldNode);
287
288 return node_insert_before(&This->node, newNode, &refChild, outOldNode);
289}
290
292 IXMLDOMComment *iface,
293 IXMLDOMNode* newNode,
294 IXMLDOMNode* oldNode,
295 IXMLDOMNode** outOldNode)
296{
298
299 FIXME("(%p)->(%p %p %p) needs tests\n", This, newNode, oldNode, outOldNode);
300
301 return node_replace_child(&This->node, newNode, oldNode, outOldNode);
302}
303
305 IXMLDOMComment *iface,
306 IXMLDOMNode *child, IXMLDOMNode **oldChild)
307{
309 TRACE("(%p)->(%p %p)\n", This, child, oldChild);
310 return node_remove_child(&This->node, child, oldChild);
311}
312
314 IXMLDOMComment *iface,
315 IXMLDOMNode *child, IXMLDOMNode **outChild)
316{
318 TRACE("(%p)->(%p %p)\n", This, child, outChild);
319 return node_append_child(&This->node, child, outChild);
320}
321
323 IXMLDOMComment *iface,
325{
327 TRACE("(%p)->(%p)\n", This, ret);
328 return return_var_false(ret);
329}
330
332 IXMLDOMComment *iface,
333 IXMLDOMDocument **doc)
334{
336 TRACE("(%p)->(%p)\n", This, doc);
337 return node_get_owner_doc(&This->node, doc);
338}
339
341 IXMLDOMComment *iface,
342 VARIANT_BOOL deep, IXMLDOMNode** outNode)
343{
345 TRACE("(%p)->(%d %p)\n", This, deep, outNode);
346 return node_clone( &This->node, deep, outNode );
347}
348
350 IXMLDOMComment *iface,
351 BSTR* p)
352{
354 static const WCHAR commentW[] = {'c','o','m','m','e','n','t',0};
355
356 TRACE("(%p)->(%p)\n", This, p);
357
358 return return_bstr(commentW, p);
359}
360
362 IXMLDOMComment *iface,
363 BSTR* p)
364{
366 TRACE("(%p)->(%p)\n", This, p);
367 return node_get_text(&This->node, p);
368}
369
371 IXMLDOMComment *iface,
372 BSTR p)
373{
375 TRACE("(%p)->(%s)\n", This, debugstr_w(p));
376 return node_put_text( &This->node, p );
377}
378
380 IXMLDOMComment *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 IXMLDOMComment *iface,
391 IXMLDOMNode** definitionNode)
392{
394 FIXME("(%p)->(%p)\n", This, definitionNode);
395 return E_NOTIMPL;
396}
397
399 IXMLDOMComment *iface,
400 VARIANT* v)
401{
403 TRACE("(%p)->(%p)\n", This, v);
404 return node_get_content(&This->node, v);
405}
406
408 IXMLDOMComment *iface,
409 VARIANT typedValue)
410{
412 FIXME("(%p)->(%s)\n", This, debugstr_variant(&typedValue));
413 return E_NOTIMPL;
414}
415
417 IXMLDOMComment *iface,
418 VARIANT* typename)
419{
421 TRACE("(%p)->(%p)\n", This, typename);
422 return return_null_var( typename );
423}
424
426 IXMLDOMComment *iface,
427 BSTR p)
428{
430
431 TRACE("(%p)->(%s)\n", This, debugstr_w(p));
432
433 if(!p)
434 return E_INVALIDARG;
435
436 return E_FAIL;
437}
438
440 IXMLDOMComment *iface,
441 BSTR* p)
442{
444
445 TRACE("(%p)->(%p)\n", This, p);
446
447 return node_get_xml(&This->node, FALSE, p);
448}
449
451 IXMLDOMComment *iface,
453{
455 TRACE("(%p)->(%p %p)\n", This, node, p);
456 return node_transform_node(&This->node, node, p);
457}
458
460 IXMLDOMComment *iface,
461 BSTR p, IXMLDOMNodeList** outList)
462{
464 TRACE("(%p)->(%s %p)\n", This, debugstr_w(p), outList);
465 return node_select_nodes(&This->node, p, outList);
466}
467
469 IXMLDOMComment *iface,
470 BSTR p, IXMLDOMNode** outNode)
471{
473 TRACE("(%p)->(%s %p)\n", This, debugstr_w(p), outNode);
474 return node_select_singlenode(&This->node, p, outNode);
475}
476
478 IXMLDOMComment *iface,
479 VARIANT_BOOL* isParsed)
480{
482 FIXME("(%p)->(%p) stub!\n", This, isParsed);
483 *isParsed = VARIANT_TRUE;
484 return S_OK;
485}
486
488 IXMLDOMComment *iface,
489 BSTR* p)
490{
492 TRACE("(%p)->(%p)\n", This, p);
493 return node_get_namespaceURI(&This->node, p);
494}
495
497 IXMLDOMComment *iface,
498 BSTR* prefix)
499{
501 TRACE("(%p)->(%p)\n", This, prefix);
502 return return_null_bstr( prefix );
503}
504
506 IXMLDOMComment *iface,
507 BSTR* name)
508{
510 TRACE("(%p)->(%p)\n", This, name);
511 return return_null_bstr( name );
512}
513
515 IXMLDOMComment *iface,
516 IXMLDOMNode* domNode, VARIANT var1)
517{
519 FIXME("(%p)->(%p %s)\n", This, domNode, debugstr_variant(&var1));
520 return E_NOTIMPL;
521}
522
524 IXMLDOMComment *iface,
525 BSTR *p)
526{
528 HRESULT hr;
529 VARIANT vRet;
530
531 TRACE("(%p)->(%p)\n", This, p);
532
533 if(!p)
534 return E_INVALIDARG;
535
536 hr = IXMLDOMComment_get_nodeValue( iface, &vRet );
537 if(hr == S_OK)
538 {
539 *p = V_BSTR(&vRet);
540 }
541
542 return hr;
543}
544
546 IXMLDOMComment *iface,
547 BSTR data)
548{
550 TRACE("(%p)->(%s)\n", This, debugstr_w(data));
551 return node_set_content(&This->node, data);
552}
553
555 IXMLDOMComment *iface,
556 LONG *len)
557{
559 HRESULT hr;
560 BSTR data;
561
562 TRACE("(%p)->(%p)\n", This, len);
563
564 if(!len)
565 return E_INVALIDARG;
566
567 hr = IXMLDOMComment_get_data(iface, &data);
568 if(hr == S_OK)
569 {
572 }
573
574 return hr;
575}
576
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 = IXMLDOMComment_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 IXMLDOMComment *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 = IXMLDOMComment_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 = IXMLDOMComment_put_data(iface, str);
640
643 }
644
645 return hr;
646}
647
649 IXMLDOMComment *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 = IXMLDOMComment_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 = IXMLDOMComment_put_data(iface, str);
687
690 }
691
692 return hr;
693}
694
696 IXMLDOMComment *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 = IXMLDOMComment_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 IXMLDOMComment_substringData(iface, count, len - count, &str);
718 else
719 IXMLDOMComment_substringData(iface, 0, offset, &str);
720 hr = IXMLDOMComment_put_data(iface, str);
721 }
722 else
723 /* cutting from the inside */
724 {
725 BSTR str_end;
726
727 IXMLDOMComment_substringData(iface, 0, offset, &str);
728 IXMLDOMComment_substringData(iface, offset + count, len - count, &str_end);
729
730 hr = IXMLDOMComment_put_data(iface, str);
731 if(hr == S_OK)
732 hr = IXMLDOMComment_appendData(iface, str_end);
733
734 SysFreeString(str_end);
735 }
736
738
739 return hr;
740}
741
743 IXMLDOMComment *iface,
745{
746 HRESULT hr;
747
748 TRACE("%p, %ld, %ld, %s.\n", iface, offset, count, debugstr_w(p));
749
750 hr = IXMLDOMComment_deleteData(iface, offset, count);
751
752 if (hr == S_OK)
753 hr = IXMLDOMComment_insertData(iface, offset, p);
754
755 return hr;
756}
757
758static const struct IXMLDOMCommentVtbl domcomment_vtbl =
759{
811};
812
813static const tid_t domcomment_iface_tids[] = {
815 0
816};
817
819 NULL,
821 NULL,
823};
824
826{
828
829 This = malloc(sizeof(*This));
830 if ( !This )
831 return NULL;
832
833 This->IXMLDOMComment_iface.lpVtbl = &domcomment_vtbl;
834 This->ref = 1;
835
836 init_xmlnode(&This->node, comment, (IXMLDOMNode*)&This->IXMLDOMComment_iface, &domcomment_dispex);
837
838 return (IUnknown*)&This->IXMLDOMComment_iface;
839}
#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 ULONG WINAPI domcomment_Release(IXMLDOMComment *iface)
Definition: comment.c:100
static const struct IXMLDOMCommentVtbl domcomment_vtbl
Definition: comment.c:758
static HRESULT WINAPI domcomment_GetTypeInfo(IXMLDOMComment *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
Definition: comment.c:124
static HRESULT WINAPI domcomment_get_definition(IXMLDOMComment *iface, IXMLDOMNode **definitionNode)
Definition: comment.c:389
static HRESULT WINAPI domcomment_get_attributes(IXMLDOMComment *iface, IXMLDOMNamedNodeMap **attributeMap)
Definition: comment.c:268
static HRESULT WINAPI domcomment_get_nodeType(IXMLDOMComment *iface, DOMNodeType *domNodeType)
Definition: comment.c:190
static HRESULT WINAPI domcomment_GetTypeInfoCount(IXMLDOMComment *iface, UINT *pctinfo)
Definition: comment.c:116
static HRESULT WINAPI domcomment_get_baseName(IXMLDOMComment *iface, BSTR *name)
Definition: comment.c:505
static HRESULT WINAPI domcomment_selectSingleNode(IXMLDOMComment *iface, BSTR p, IXMLDOMNode **outNode)
Definition: comment.c:468
static HRESULT WINAPI domcomment_insertBefore(IXMLDOMComment *iface, IXMLDOMNode *newNode, VARIANT refChild, IXMLDOMNode **outOldNode)
Definition: comment.c:279
static HRESULT WINAPI domcomment_get_parsed(IXMLDOMComment *iface, VARIANT_BOOL *isParsed)
Definition: comment.c:477
static HRESULT WINAPI domcomment_get_xml(IXMLDOMComment *iface, BSTR *p)
Definition: comment.c:439
static HRESULT WINAPI domcomment_get_parentNode(IXMLDOMComment *iface, IXMLDOMNode **parent)
Definition: comment.c:202
static HRESULT WINAPI domcomment_appendData(IXMLDOMComment *iface, BSTR p)
Definition: comment.c:615
static HRESULT WINAPI domcomment_get_nodeValue(IXMLDOMComment *iface, VARIANT *value)
Definition: comment.c:168
static HRESULT WINAPI domcomment_removeChild(IXMLDOMComment *iface, IXMLDOMNode *child, IXMLDOMNode **oldChild)
Definition: comment.c:304
static HRESULT WINAPI domcomment_transformNodeToObject(IXMLDOMComment *iface, IXMLDOMNode *domNode, VARIANT var1)
Definition: comment.c:514
static HRESULT WINAPI domcomment_get_namespaceURI(IXMLDOMComment *iface, BSTR *p)
Definition: comment.c:487
struct _domcomment domcomment
static HRESULT WINAPI domcomment_put_text(IXMLDOMComment *iface, BSTR p)
Definition: comment.c:370
static HRESULT WINAPI domcomment_insertData(IXMLDOMComment *iface, LONG offset, BSTR p)
Definition: comment.c:648
static HRESULT WINAPI domcomment_transformNode(IXMLDOMComment *iface, IXMLDOMNode *node, BSTR *p)
Definition: comment.c:450
static HRESULT WINAPI domcomment_GetIDsOfNames(IXMLDOMComment *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
Definition: comment.c:134
static HRESULT WINAPI domcomment_cloneNode(IXMLDOMComment *iface, VARIANT_BOOL deep, IXMLDOMNode **outNode)
Definition: comment.c:340
static HRESULT WINAPI domcomment_replaceData(IXMLDOMComment *iface, LONG offset, LONG count, BSTR p)
Definition: comment.c:742
static HRESULT WINAPI domcomment_hasChildNodes(IXMLDOMComment *iface, VARIANT_BOOL *ret)
Definition: comment.c:322
static domcomment * impl_from_IXMLDOMComment(IXMLDOMComment *iface)
Definition: comment.c:52
static HRESULT WINAPI domcomment_get_nodeTypedValue(IXMLDOMComment *iface, VARIANT *v)
Definition: comment.c:398
static const tid_t domcomment_iface_tids[]
Definition: comment.c:813
static HRESULT WINAPI domcomment_put_dataType(IXMLDOMComment *iface, BSTR p)
Definition: comment.c:425
static HRESULT WINAPI domcomment_Invoke(IXMLDOMComment *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
Definition: comment.c:144
static HRESULT WINAPI domcomment_get_ownerDocument(IXMLDOMComment *iface, IXMLDOMDocument **doc)
Definition: comment.c:331
static HRESULT WINAPI domcomment_substringData(IXMLDOMComment *iface, LONG offset, LONG count, BSTR *p)
Definition: comment.c:577
static HRESULT WINAPI domcomment_get_previousSibling(IXMLDOMComment *iface, IXMLDOMNode **domNode)
Definition: comment.c:246
static HRESULT WINAPI domcomment_get_text(IXMLDOMComment *iface, BSTR *p)
Definition: comment.c:361
static dispex_static_data_t domcomment_dispex
Definition: comment.c:818
static HRESULT WINAPI domcomment_get_lastChild(IXMLDOMComment *iface, IXMLDOMNode **domNode)
Definition: comment.c:235
static HRESULT WINAPI domcomment_replaceChild(IXMLDOMComment *iface, IXMLDOMNode *newNode, IXMLDOMNode *oldNode, IXMLDOMNode **outOldNode)
Definition: comment.c:291
static HRESULT WINAPI domcomment_get_nodeName(IXMLDOMComment *iface, BSTR *p)
Definition: comment.c:155
static HRESULT WINAPI domcomment_QueryInterface(IXMLDOMComment *iface, REFIID riid, void **ppvObject)
Definition: comment.c:57
static HRESULT WINAPI domcomment_put_nodeValue(IXMLDOMComment *iface, VARIANT value)
Definition: comment.c:179
static HRESULT WINAPI domcomment_get_data(IXMLDOMComment *iface, BSTR *p)
Definition: comment.c:523
IUnknown * create_comment(xmlNodePtr comment)
Definition: comment.c:825
static HRESULT WINAPI domcomment_get_childNodes(IXMLDOMComment *iface, IXMLDOMNodeList **outList)
Definition: comment.c:213
static HRESULT WINAPI domcomment_get_nextSibling(IXMLDOMComment *iface, IXMLDOMNode **domNode)
Definition: comment.c:257
static ULONG WINAPI domcomment_AddRef(IXMLDOMComment *iface)
Definition: comment.c:92
static HRESULT WINAPI domcomment_put_data(IXMLDOMComment *iface, BSTR data)
Definition: comment.c:545
static const tid_t domcomment_se_tids[]
Definition: comment.c:46
static HRESULT WINAPI domcomment_selectNodes(IXMLDOMComment *iface, BSTR p, IXMLDOMNodeList **outList)
Definition: comment.c:459
static HRESULT WINAPI domcomment_put_nodeTypedValue(IXMLDOMComment *iface, VARIANT typedValue)
Definition: comment.c:407
static HRESULT WINAPI domcomment_deleteData(IXMLDOMComment *iface, LONG offset, LONG count)
Definition: comment.c:695
static HRESULT WINAPI domcomment_get_dataType(IXMLDOMComment *iface, VARIANT *typename)
Definition: comment.c:416
static HRESULT WINAPI domcomment_get_prefix(IXMLDOMComment *iface, BSTR *prefix)
Definition: comment.c:496
static HRESULT WINAPI domcomment_appendChild(IXMLDOMComment *iface, IXMLDOMNode *child, IXMLDOMNode **outChild)
Definition: comment.c:313
static HRESULT WINAPI domcomment_get_length(IXMLDOMComment *iface, LONG *len)
Definition: comment.c:554
static HRESULT WINAPI domcomment_get_nodeTypeString(IXMLDOMComment *iface, BSTR *p)
Definition: comment.c:349
static HRESULT WINAPI domcomment_get_firstChild(IXMLDOMComment *iface, IXMLDOMNode **domNode)
Definition: comment.c:224
static HRESULT WINAPI domcomment_get_specified(IXMLDOMComment *iface, VARIANT_BOOL *isSpecified)
Definition: comment.c:379
#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
static const WCHAR commentW[]
Definition: reader.c:97
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
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
#define comment(fmt, arg1)
Definition: rebar.c:847
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_COMMENT
Definition: msxml6.idl:120
@ IXMLDOMNode_tid
Definition: msxml_dispex.h:51
@ NULL_tid
Definition: msxml_dispex.h:38
@ IXMLDOMComment_tid
Definition: msxml_dispex.h:41
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_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
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_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)
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
IXMLDOMComment IXMLDOMComment_iface
Definition: comment.c:42
xmlnode node
Definition: comment.c:41
LONG ref
Definition: comment.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