ReactOS 0.4.16-dev-2216-ga08d639
cdata.c File Reference
#include <stdarg.h>
#include <libxml/parser.h>
#include <libxml/xmlerror.h>
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
#include "ole2.h"
#include "msxml6.h"
#include "msxml_private.h"
#include "wine/debug.h"
Include dependency graph for cdata.c:

Go to the source code of this file.

Classes

struct  domcdata
 

Macros

#define COBJMACROS
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (msxml)
 
static domcdataimpl_from_IXMLDOMCDATASection (IXMLDOMCDATASection *iface)
 
static HRESULT WINAPI domcdata_QueryInterface (IXMLDOMCDATASection *iface, REFIID riid, void **ppvObject)
 
static ULONG WINAPI domcdata_AddRef (IXMLDOMCDATASection *iface)
 
static ULONG WINAPI domcdata_Release (IXMLDOMCDATASection *iface)
 
static HRESULT WINAPI domcdata_GetTypeInfoCount (IXMLDOMCDATASection *iface, UINT *pctinfo)
 
static HRESULT WINAPI domcdata_GetTypeInfo (IXMLDOMCDATASection *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
 
static HRESULT WINAPI domcdata_GetIDsOfNames (IXMLDOMCDATASection *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
 
static HRESULT WINAPI domcdata_Invoke (IXMLDOMCDATASection *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
 
static HRESULT WINAPI domcdata_get_nodeName (IXMLDOMCDATASection *iface, BSTR *p)
 
static HRESULT WINAPI domcdata_get_nodeValue (IXMLDOMCDATASection *iface, VARIANT *value)
 
static HRESULT WINAPI domcdata_put_nodeValue (IXMLDOMCDATASection *iface, VARIANT value)
 
static HRESULT WINAPI domcdata_get_nodeType (IXMLDOMCDATASection *iface, DOMNodeType *domNodeType)
 
static HRESULT WINAPI domcdata_get_parentNode (IXMLDOMCDATASection *iface, IXMLDOMNode **parent)
 
static HRESULT WINAPI domcdata_get_childNodes (IXMLDOMCDATASection *iface, IXMLDOMNodeList **outList)
 
static HRESULT WINAPI domcdata_get_firstChild (IXMLDOMCDATASection *iface, IXMLDOMNode **domNode)
 
static HRESULT WINAPI domcdata_get_lastChild (IXMLDOMCDATASection *iface, IXMLDOMNode **domNode)
 
static HRESULT WINAPI domcdata_get_previousSibling (IXMLDOMCDATASection *iface, IXMLDOMNode **domNode)
 
static HRESULT WINAPI domcdata_get_nextSibling (IXMLDOMCDATASection *iface, IXMLDOMNode **domNode)
 
static HRESULT WINAPI domcdata_get_attributes (IXMLDOMCDATASection *iface, IXMLDOMNamedNodeMap **attributeMap)
 
static HRESULT WINAPI domcdata_insertBefore (IXMLDOMCDATASection *iface, IXMLDOMNode *newNode, VARIANT refChild, IXMLDOMNode **outOldNode)
 
static HRESULT WINAPI domcdata_replaceChild (IXMLDOMCDATASection *iface, IXMLDOMNode *newNode, IXMLDOMNode *oldNode, IXMLDOMNode **outOldNode)
 
static HRESULT WINAPI domcdata_removeChild (IXMLDOMCDATASection *iface, IXMLDOMNode *child, IXMLDOMNode **oldChild)
 
static HRESULT WINAPI domcdata_appendChild (IXMLDOMCDATASection *iface, IXMLDOMNode *child, IXMLDOMNode **outChild)
 
static HRESULT WINAPI domcdata_hasChildNodes (IXMLDOMCDATASection *iface, VARIANT_BOOL *ret)
 
static HRESULT WINAPI domcdata_get_ownerDocument (IXMLDOMCDATASection *iface, IXMLDOMDocument **doc)
 
static HRESULT WINAPI domcdata_cloneNode (IXMLDOMCDATASection *iface, VARIANT_BOOL deep, IXMLDOMNode **outNode)
 
static HRESULT WINAPI domcdata_get_nodeTypeString (IXMLDOMCDATASection *iface, BSTR *p)
 
static HRESULT WINAPI domcdata_get_text (IXMLDOMCDATASection *iface, BSTR *p)
 
static HRESULT WINAPI domcdata_put_text (IXMLDOMCDATASection *iface, BSTR p)
 
static HRESULT WINAPI domcdata_get_specified (IXMLDOMCDATASection *iface, VARIANT_BOOL *isSpecified)
 
static HRESULT WINAPI domcdata_get_definition (IXMLDOMCDATASection *iface, IXMLDOMNode **definitionNode)
 
static HRESULT WINAPI domcdata_get_nodeTypedValue (IXMLDOMCDATASection *iface, VARIANT *v)
 
static HRESULT WINAPI domcdata_put_nodeTypedValue (IXMLDOMCDATASection *iface, VARIANT typedValue)
 
static HRESULT WINAPI domcdata_get_dataType (IXMLDOMCDATASection *iface, VARIANT *typename)
 
static HRESULT WINAPI domcdata_put_dataType (IXMLDOMCDATASection *iface, BSTR p)
 
static HRESULT WINAPI domcdata_get_xml (IXMLDOMCDATASection *iface, BSTR *p)
 
static HRESULT WINAPI domcdata_transformNode (IXMLDOMCDATASection *iface, IXMLDOMNode *node, BSTR *p)
 
static HRESULT WINAPI domcdata_selectNodes (IXMLDOMCDATASection *iface, BSTR p, IXMLDOMNodeList **outList)
 
static HRESULT WINAPI domcdata_selectSingleNode (IXMLDOMCDATASection *iface, BSTR p, IXMLDOMNode **outNode)
 
static HRESULT WINAPI domcdata_get_parsed (IXMLDOMCDATASection *iface, VARIANT_BOOL *isParsed)
 
static HRESULT WINAPI domcdata_get_namespaceURI (IXMLDOMCDATASection *iface, BSTR *p)
 
static HRESULT WINAPI domcdata_get_prefix (IXMLDOMCDATASection *iface, BSTR *prefix)
 
static HRESULT WINAPI domcdata_get_baseName (IXMLDOMCDATASection *iface, BSTR *name)
 
static HRESULT WINAPI domcdata_transformNodeToObject (IXMLDOMCDATASection *iface, IXMLDOMNode *domNode, VARIANT var1)
 
static HRESULT WINAPI domcdata_get_data (IXMLDOMCDATASection *iface, BSTR *p)
 
static HRESULT WINAPI domcdata_put_data (IXMLDOMCDATASection *iface, BSTR data)
 
static HRESULT WINAPI domcdata_get_length (IXMLDOMCDATASection *iface, LONG *len)
 
static HRESULT WINAPI domcdata_substringData (IXMLDOMCDATASection *iface, LONG offset, LONG count, BSTR *p)
 
static HRESULT WINAPI domcdata_appendData (IXMLDOMCDATASection *iface, BSTR p)
 
static HRESULT WINAPI domcdata_insertData (IXMLDOMCDATASection *iface, LONG offset, BSTR p)
 
static HRESULT WINAPI domcdata_deleteData (IXMLDOMCDATASection *iface, LONG offset, LONG count)
 
static HRESULT WINAPI domcdata_replaceData (IXMLDOMCDATASection *iface, LONG offset, LONG count, BSTR p)
 
static HRESULT WINAPI domcdata_splitText (IXMLDOMCDATASection *iface, LONG offset, IXMLDOMText **txtNode)
 
IUnknowncreate_cdata (xmlNodePtr text)
 

Variables

static const tid_t domcdata_se_tids []
 
static const struct IXMLDOMCDATASectionVtbl domcdata_vtbl
 
static const tid_t domcdata_iface_tids []
 
static dispex_static_data_t domcdata_dispex
 

Macro Definition Documentation

◆ COBJMACROS

#define COBJMACROS

Definition at line 21 of file cdata.c.

Function Documentation

◆ create_cdata()

IUnknown * create_cdata ( xmlNodePtr  text)

Definition at line 874 of file cdata.c.

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}
static const struct IXMLDOMCDATASectionVtbl domcdata_vtbl
Definition: cdata.c:806
static dispex_static_data_t domcdata_dispex
Definition: cdata.c:867
#define malloc
Definition: debug_ros.c:4
#define NULL
Definition: types.h:112
const WCHAR * text
Definition: package.c:1794
void init_xmlnode(xmlnode *, xmlNodePtr, IXMLDOMNode *, dispex_static_data_t *)
Definition: node.c:1647
Definition: cdata.c:40

Referenced by create_node().

◆ domcdata_AddRef()

static ULONG WINAPI domcdata_AddRef ( IXMLDOMCDATASection iface)
static

Definition at line 92 of file cdata.c.

93{
96 TRACE("%p, refcount %lu.\n", iface, ref);
97 return ref;
98}
#define InterlockedIncrement
Definition: armddk.h:53
static domcdata * impl_from_IXMLDOMCDATASection(IXMLDOMCDATASection *iface)
Definition: cdata.c:52
#define TRACE(s)
Definition: solgame.cpp:4
LONG ref
Definition: cdata.c:43
Definition: send.c:48
uint32_t ULONG
Definition: typedefs.h:59

◆ domcdata_appendChild()

static HRESULT WINAPI domcdata_appendChild ( IXMLDOMCDATASection iface,
IXMLDOMNode child,
IXMLDOMNode **  outChild 
)
static

Definition at line 313 of file cdata.c.

316{
318 TRACE("(%p)->(%p %p)\n", This, child, outChild);
319 if (outChild) *outChild = NULL;
320 return E_FAIL;
321}
#define E_FAIL
Definition: ddrawi.h:102
static HWND child
Definition: cursoricon.c:298

◆ domcdata_appendData()

static HRESULT WINAPI domcdata_appendData ( IXMLDOMCDATASection iface,
BSTR  p 
)
static

Definition at line 615 of file cdata.c.

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}
OLECHAR * BSTR
Definition: compat.h:2293
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
GLfloat GLfloat p
Definition: glext.h:8902
GLenum GLsizei len
Definition: glext.h:6722
#define S_OK
Definition: intsafe.h:52
#define debugstr_w
Definition: kernel32.h:32
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
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
long LONG
Definition: pedump.c:60
const WCHAR * str
HRESULT hr
Definition: shlfolder.c:183
__wchar_t WCHAR
Definition: xmlstorage.h:180

◆ domcdata_cloneNode()

static HRESULT WINAPI domcdata_cloneNode ( IXMLDOMCDATASection iface,
VARIANT_BOOL  deep,
IXMLDOMNode **  outNode 
)
static

Definition at line 341 of file cdata.c.

344{
346 TRACE("(%p)->(%d %p)\n", This, deep, outNode);
347 return node_clone( &This->node, deep, outNode );
348}
HRESULT node_clone(xmlnode *, VARIANT_BOOL, IXMLDOMNode **)
Definition: node.c:679

◆ domcdata_deleteData()

static HRESULT WINAPI domcdata_deleteData ( IXMLDOMCDATASection iface,
LONG  offset,
LONG  count 
)
static

Definition at line 695 of file cdata.c.

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}
#define E_INVALIDARG
Definition: ddrawi.h:101
GLuint GLuint GLsizei count
Definition: gl.h:1545
GLintptr offset
Definition: glext.h:5920

◆ domcdata_get_attributes()

static HRESULT WINAPI domcdata_get_attributes ( IXMLDOMCDATASection iface,
IXMLDOMNamedNodeMap **  attributeMap 
)
static

Definition at line 269 of file cdata.c.

272{
274
275 TRACE("(%p)->(%p)\n", This, attributeMap);
276
277 return return_null_ptr((void**)attributeMap);
278}
static HRESULT return_null_ptr(void **p)

◆ domcdata_get_baseName()

static HRESULT WINAPI domcdata_get_baseName ( IXMLDOMCDATASection iface,
BSTR name 
)
static

Definition at line 506 of file cdata.c.

509{
511 FIXME("(%p)->(%p): needs test\n", This, name);
512 return return_null_bstr( name );
513}
#define FIXME(fmt,...)
Definition: precomp.h:53
static HRESULT return_null_bstr(BSTR *p)
Definition: name.c:39

◆ domcdata_get_childNodes()

static HRESULT WINAPI domcdata_get_childNodes ( IXMLDOMCDATASection iface,
IXMLDOMNodeList **  outList 
)
static

Definition at line 214 of file cdata.c.

217{
219
220 TRACE("(%p)->(%p)\n", This, outList);
221
222 return node_get_child_nodes(&This->node, outList);
223}
HRESULT node_get_child_nodes(xmlnode *, IXMLDOMNodeList **)
Definition: node.c:353

◆ domcdata_get_data()

static HRESULT WINAPI domcdata_get_data ( IXMLDOMCDATASection iface,
BSTR p 
)
static

Definition at line 524 of file cdata.c.

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}
#define V_BSTR(A)
Definition: oleauto.h:226

◆ domcdata_get_dataType()

static HRESULT WINAPI domcdata_get_dataType ( IXMLDOMCDATASection iface,
VARIANT typename 
)
static

Definition at line 417 of file cdata.c.

420{
422 TRACE("(%p)->(%p)\n", This, typename);
423 return return_null_var( typename );
424}
static HRESULT return_null_var(VARIANT *p)

◆ domcdata_get_definition()

static HRESULT WINAPI domcdata_get_definition ( IXMLDOMCDATASection iface,
IXMLDOMNode **  definitionNode 
)
static

Definition at line 390 of file cdata.c.

393{
395 FIXME("(%p)->(%p)\n", This, definitionNode);
396 return E_NOTIMPL;
397}
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ domcdata_get_firstChild()

static HRESULT WINAPI domcdata_get_firstChild ( IXMLDOMCDATASection iface,
IXMLDOMNode **  domNode 
)
static

Definition at line 225 of file cdata.c.

228{
230
231 TRACE("(%p)->(%p)\n", This, domNode);
232
233 return return_null_node(domNode);
234}
static HRESULT return_null_node(IXMLDOMNode **p)

◆ domcdata_get_lastChild()

static HRESULT WINAPI domcdata_get_lastChild ( IXMLDOMCDATASection iface,
IXMLDOMNode **  domNode 
)
static

Definition at line 236 of file cdata.c.

239{
241
242 TRACE("(%p)->(%p)\n", This, domNode);
243
244 return return_null_node(domNode);
245}

◆ domcdata_get_length()

static HRESULT WINAPI domcdata_get_length ( IXMLDOMCDATASection iface,
LONG len 
)
static

Definition at line 552 of file cdata.c.

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}

◆ domcdata_get_namespaceURI()

static HRESULT WINAPI domcdata_get_namespaceURI ( IXMLDOMCDATASection iface,
BSTR p 
)
static

Definition at line 488 of file cdata.c.

491{
493 TRACE("(%p)->(%p)\n", This, p);
494 return node_get_namespaceURI(&This->node, p);
495}
HRESULT node_get_namespaceURI(xmlnode *, BSTR *)
Definition: node.c:1589

◆ domcdata_get_nextSibling()

static HRESULT WINAPI domcdata_get_nextSibling ( IXMLDOMCDATASection iface,
IXMLDOMNode **  domNode 
)
static

Definition at line 258 of file cdata.c.

261{
263
264 TRACE("(%p)->(%p)\n", This, domNode);
265
266 return node_get_next_sibling(&This->node, domNode);
267}
HRESULT node_get_next_sibling(xmlnode *, IXMLDOMNode **)
Definition: node.c:380

◆ domcdata_get_nodeName()

static HRESULT WINAPI domcdata_get_nodeName ( IXMLDOMCDATASection iface,
BSTR p 
)
static

Definition at line 155 of file cdata.c.

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}
static HRESULT return_bstr(const WCHAR *value, BSTR *p)
Definition: msxml_dispex.h:115

◆ domcdata_get_nodeType()

static HRESULT WINAPI domcdata_get_nodeType ( IXMLDOMCDATASection iface,
DOMNodeType domNodeType 
)
static

Definition at line 191 of file cdata.c.

194{
196
197 TRACE("(%p)->(%p)\n", This, domNodeType);
198
199 *domNodeType = NODE_CDATA_SECTION;
200 return S_OK;
201}
@ NODE_CDATA_SECTION
Definition: msxml6.idl:116

◆ domcdata_get_nodeTypedValue()

static HRESULT WINAPI domcdata_get_nodeTypedValue ( IXMLDOMCDATASection iface,
VARIANT v 
)
static

Definition at line 399 of file cdata.c.

402{
404 TRACE("(%p)->(%p)\n", This, v);
405 return node_get_content(&This->node, v);
406}
const GLdouble * v
Definition: gl.h:2040
HRESULT node_get_content(xmlnode *, VARIANT *)
Definition: node.c:225

◆ domcdata_get_nodeTypeString()

static HRESULT WINAPI domcdata_get_nodeTypeString ( IXMLDOMCDATASection iface,
BSTR p 
)
static

Definition at line 350 of file cdata.c.

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}

◆ domcdata_get_nodeValue()

static HRESULT WINAPI domcdata_get_nodeValue ( IXMLDOMCDATASection iface,
VARIANT value 
)
static

Definition at line 169 of file cdata.c.

172{
174
175 TRACE("(%p)->(%p)\n", This, value);
176
177 return node_get_content(&This->node, value);
178}
Definition: pdh_main.c:96

◆ domcdata_get_ownerDocument()

static HRESULT WINAPI domcdata_get_ownerDocument ( IXMLDOMCDATASection iface,
IXMLDOMDocument **  doc 
)
static

Definition at line 332 of file cdata.c.

335{
337 TRACE("(%p)->(%p)\n", This, doc);
338 return node_get_owner_doc(&This->node, doc);
339}
HRESULT node_get_owner_doc(const xmlnode *, IXMLDOMDocument **)
Definition: node.c:672

◆ domcdata_get_parentNode()

static HRESULT WINAPI domcdata_get_parentNode ( IXMLDOMCDATASection iface,
IXMLDOMNode **  parent 
)
static

Definition at line 203 of file cdata.c.

206{
208
209 TRACE("(%p)->(%p)\n", This, parent);
210
211 return node_get_parent(&This->node, parent);
212}
r parent
Definition: btrfs.c:3010
HRESULT node_get_parent(xmlnode *, IXMLDOMNode **)
Definition: node.c:348

◆ domcdata_get_parsed()

static HRESULT WINAPI domcdata_get_parsed ( IXMLDOMCDATASection iface,
VARIANT_BOOL isParsed 
)
static

Definition at line 478 of file cdata.c.

481{
483 FIXME("(%p)->(%p) stub!\n", This, isParsed);
484 *isParsed = VARIANT_TRUE;
485 return S_OK;
486}

◆ domcdata_get_prefix()

static HRESULT WINAPI domcdata_get_prefix ( IXMLDOMCDATASection iface,
BSTR prefix 
)
static

Definition at line 497 of file cdata.c.

500{
502 TRACE("(%p)->(%p)\n", This, prefix);
503 return return_null_bstr( prefix );
504}
Character const *const prefix
Definition: tempnam.cpp:195

◆ domcdata_get_previousSibling()

static HRESULT WINAPI domcdata_get_previousSibling ( IXMLDOMCDATASection iface,
IXMLDOMNode **  domNode 
)
static

Definition at line 247 of file cdata.c.

250{
252
253 TRACE("(%p)->(%p)\n", This, domNode);
254
255 return node_get_previous_sibling(&This->node, domNode);
256}
HRESULT node_get_previous_sibling(xmlnode *, IXMLDOMNode **)
Definition: node.c:375

◆ domcdata_get_specified()

static HRESULT WINAPI domcdata_get_specified ( IXMLDOMCDATASection iface,
VARIANT_BOOL isSpecified 
)
static

Definition at line 380 of file cdata.c.

383{
385 FIXME("(%p)->(%p) stub!\n", This, isSpecified);
386 *isSpecified = VARIANT_TRUE;
387 return S_OK;
388}

◆ domcdata_get_text()

static HRESULT WINAPI domcdata_get_text ( IXMLDOMCDATASection iface,
BSTR p 
)
static

Definition at line 362 of file cdata.c.

365{
367 TRACE("(%p)->(%p)\n", This, p);
368 return node_get_text(&This->node, p);
369}
HRESULT node_get_text(const xmlnode *, BSTR *)
Definition: node.c:842

◆ domcdata_get_xml()

static HRESULT WINAPI domcdata_get_xml ( IXMLDOMCDATASection iface,
BSTR p 
)
static

Definition at line 440 of file cdata.c.

443{
445
446 TRACE("(%p)->(%p)\n", This, p);
447
448 return node_get_xml(&This->node, FALSE, p);
449}
#define FALSE
Definition: types.h:117
HRESULT node_get_xml(xmlnode *, BOOL, BSTR *)
Definition: node.c:936

◆ domcdata_GetIDsOfNames()

static HRESULT WINAPI domcdata_GetIDsOfNames ( IXMLDOMCDATASection iface,
REFIID  riid,
LPOLESTR rgszNames,
UINT  cNames,
LCID  lcid,
DISPID rgDispId 
)
static

Definition at line 134 of file cdata.c.

138{
140 return IDispatchEx_GetIDsOfNames(&This->node.dispex.IDispatchEx_iface,
141 riid, rgszNames, cNames, lcid, rgDispId);
142}
LCID lcid
Definition: locale.c:5656
REFIID riid
Definition: atlbase.h:39

◆ domcdata_GetTypeInfo()

static HRESULT WINAPI domcdata_GetTypeInfo ( IXMLDOMCDATASection iface,
UINT  iTInfo,
LCID  lcid,
ITypeInfo **  ppTInfo 
)
static

Definition at line 124 of file cdata.c.

128{
130 return IDispatchEx_GetTypeInfo(&This->node.dispex.IDispatchEx_iface,
131 iTInfo, lcid, ppTInfo);
132}

◆ domcdata_GetTypeInfoCount()

static HRESULT WINAPI domcdata_GetTypeInfoCount ( IXMLDOMCDATASection iface,
UINT pctinfo 
)
static

Definition at line 116 of file cdata.c.

119{
121 return IDispatchEx_GetTypeInfoCount(&This->node.dispex.IDispatchEx_iface, pctinfo);
122}

◆ domcdata_hasChildNodes()

static HRESULT WINAPI domcdata_hasChildNodes ( IXMLDOMCDATASection iface,
VARIANT_BOOL ret 
)
static

Definition at line 323 of file cdata.c.

326{
328 TRACE("(%p)->(%p)\n", This, ret);
329 return return_var_false(ret);
330}
return ret
Definition: mutex.c:146
static HRESULT return_var_false(VARIANT_BOOL *p)

◆ domcdata_insertBefore()

static HRESULT WINAPI domcdata_insertBefore ( IXMLDOMCDATASection iface,
IXMLDOMNode newNode,
VARIANT  refChild,
IXMLDOMNode **  outOldNode 
)
static

Definition at line 280 of file cdata.c.

284{
286 TRACE("(%p)->(%p %s %p)\n", This, newNode, debugstr_variant(&refChild), outOldNode);
287 if (outOldNode) *outOldNode = NULL;
288 return E_FAIL;
289}
static const char * debugstr_variant(const VARIANT *var)
Definition: container.c:46

◆ domcdata_insertData()

static HRESULT WINAPI domcdata_insertData ( IXMLDOMCDATASection iface,
LONG  offset,
BSTR  p 
)
static

Definition at line 648 of file cdata.c.

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}

◆ domcdata_Invoke()

static HRESULT WINAPI domcdata_Invoke ( IXMLDOMCDATASection iface,
DISPID  dispIdMember,
REFIID  riid,
LCID  lcid,
WORD  wFlags,
DISPPARAMS *  pDispParams,
VARIANT pVarResult,
EXCEPINFO *  pExcepInfo,
UINT puArgErr 
)
static

Definition at line 144 of file cdata.c.

149{
151 return IDispatchEx_Invoke(&This->node.dispex.IDispatchEx_iface,
152 dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
153}
WINBASEAPI _In_ DWORD _Out_ _In_ WORD wFlags
Definition: wincon_undoc.h:337

◆ domcdata_put_data()

static HRESULT WINAPI domcdata_put_data ( IXMLDOMCDATASection iface,
BSTR  data 
)
static

Definition at line 543 of file cdata.c.

546{
548 TRACE("(%p)->(%s)\n", This, debugstr_w(data));
549 return node_set_content(&This->node, data);
550}
HRESULT node_set_content(xmlnode *, LPCWSTR)
Definition: node.c:241

◆ domcdata_put_dataType()

static HRESULT WINAPI domcdata_put_dataType ( IXMLDOMCDATASection iface,
BSTR  p 
)
static

Definition at line 426 of file cdata.c.

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}

◆ domcdata_put_nodeTypedValue()

static HRESULT WINAPI domcdata_put_nodeTypedValue ( IXMLDOMCDATASection iface,
VARIANT  typedValue 
)
static

Definition at line 408 of file cdata.c.

411{
413 FIXME("(%p)->(%s)\n", This, debugstr_variant(&typedValue));
414 return E_NOTIMPL;
415}

◆ domcdata_put_nodeValue()

static HRESULT WINAPI domcdata_put_nodeValue ( IXMLDOMCDATASection iface,
VARIANT  value 
)
static

Definition at line 180 of file cdata.c.

183{
185
186 TRACE("(%p)->(%s)\n", This, debugstr_variant(&value));
187
188 return node_put_value(&This->node, &value);
189}
HRESULT node_put_value(xmlnode *, VARIANT *)
Definition: node.c:279

◆ domcdata_put_text()

static HRESULT WINAPI domcdata_put_text ( IXMLDOMCDATASection iface,
BSTR  p 
)
static

Definition at line 371 of file cdata.c.

374{
376 TRACE("(%p)->(%s)\n", This, debugstr_w(p));
377 return node_put_text( &This->node, p );
378}
HRESULT node_put_text(xmlnode *, BSTR)
Definition: node.c:867

◆ domcdata_QueryInterface()

static HRESULT WINAPI domcdata_QueryInterface ( IXMLDOMCDATASection iface,
REFIID  riid,
void **  ppvObject 
)
static

Definition at line 57 of file cdata.c.

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}
const GUID IID_IUnknown
static const tid_t domcdata_se_tids[]
Definition: cdata.c:46
#define debugstr_guid
Definition: kernel32.h:35
BOOL node_query_interface(xmlnode *, REFIID, void **)
Definition: node.c:66
HRESULT node_create_supporterrorinfo(const tid_t *, void **)
const GUID IID_IDispatch
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147
#define E_NOINTERFACE
Definition: winerror.h:3479

◆ domcdata_Release()

static ULONG WINAPI domcdata_Release ( IXMLDOMCDATASection iface)
static

Definition at line 100 of file cdata.c.

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}
#define InterlockedDecrement
Definition: armddk.h:52
#define free
Definition: debug_ros.c:5
void destroy_xmlnode(xmlnode *)
Definition: node.c:1638
xmlnode node
Definition: cdata.c:41

◆ domcdata_removeChild()

static HRESULT WINAPI domcdata_removeChild ( IXMLDOMCDATASection iface,
IXMLDOMNode child,
IXMLDOMNode **  oldChild 
)
static

Definition at line 303 of file cdata.c.

306{
308 TRACE("(%p)->(%p %p)\n", This, child, oldChild);
309 if (oldChild) *oldChild = NULL;
310 return E_FAIL;
311}

◆ domcdata_replaceChild()

static HRESULT WINAPI domcdata_replaceChild ( IXMLDOMCDATASection iface,
IXMLDOMNode newNode,
IXMLDOMNode oldNode,
IXMLDOMNode **  outOldNode 
)
static

Definition at line 291 of file cdata.c.

296{
298 TRACE("(%p)->(%p %p %p)\n", This, newNode, oldNode, outOldNode);
299 if (outOldNode) *outOldNode = NULL;
300 return E_FAIL;
301}

◆ domcdata_replaceData()

static HRESULT WINAPI domcdata_replaceData ( IXMLDOMCDATASection iface,
LONG  offset,
LONG  count,
BSTR  p 
)
static

Definition at line 742 of file cdata.c.

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}

◆ domcdata_selectNodes()

static HRESULT WINAPI domcdata_selectNodes ( IXMLDOMCDATASection iface,
BSTR  p,
IXMLDOMNodeList **  outList 
)
static

Definition at line 460 of file cdata.c.

463{
465 TRACE("(%p)->(%s %p)\n", This, debugstr_w(p), outList);
466 return node_select_nodes(&This->node, p, outList);
467}
HRESULT node_select_nodes(const xmlnode *, BSTR, IXMLDOMNodeList **)
Definition: node.c:1558

◆ domcdata_selectSingleNode()

static HRESULT WINAPI domcdata_selectSingleNode ( IXMLDOMCDATASection iface,
BSTR  p,
IXMLDOMNode **  outNode 
)
static

Definition at line 469 of file cdata.c.

472{
474 TRACE("(%p)->(%s %p)\n", This, debugstr_w(p), outNode);
475 return node_select_singlenode(&This->node, p, outNode);
476}
HRESULT node_select_singlenode(const xmlnode *, BSTR, IXMLDOMNode **)
Definition: node.c:1572

◆ domcdata_splitText()

static HRESULT WINAPI domcdata_splitText ( IXMLDOMCDATASection iface,
LONG  offset,
IXMLDOMText **  txtNode 
)
static

Definition at line 758 of file cdata.c.

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}
GLuint GLsizei GLsizei * length
Definition: glext.h:6040
#define S_FALSE
Definition: winerror.h:3451

◆ domcdata_substringData()

static HRESULT WINAPI domcdata_substringData ( IXMLDOMCDATASection iface,
LONG  offset,
LONG  count,
BSTR p 
)
static

Definition at line 575 of file cdata.c.

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}
BSTR WINAPI SysAllocString(LPCOLESTR str)
Definition: oleaut.c:238

◆ domcdata_transformNode()

static HRESULT WINAPI domcdata_transformNode ( IXMLDOMCDATASection iface,
IXMLDOMNode node,
BSTR p 
)
static

Definition at line 451 of file cdata.c.

454{
456 TRACE("(%p)->(%p %p)\n", This, node, p);
457 return node_transform_node(&This->node, node, p);
458}
HRESULT node_transform_node(const xmlnode *, IXMLDOMNode *, BSTR *)
Definition: node.c:1553
Definition: dlist.c:348

◆ domcdata_transformNodeToObject()

static HRESULT WINAPI domcdata_transformNodeToObject ( IXMLDOMCDATASection iface,
IXMLDOMNode domNode,
VARIANT  var1 
)
static

Definition at line 515 of file cdata.c.

518{
520 FIXME("(%p)->(%p %s)\n", This, domNode, debugstr_variant(&var1));
521 return E_NOTIMPL;
522}

◆ impl_from_IXMLDOMCDATASection()

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( msxml  )

Variable Documentation

◆ domcdata_dispex

dispex_static_data_t domcdata_dispex
static
Initial value:
= {
}
static const tid_t domcdata_iface_tids[]
Definition: cdata.c:862
@ IXMLDOMCDATASection_tid
Definition: msxml_dispex.h:40

Definition at line 867 of file cdata.c.

Referenced by create_cdata().

◆ domcdata_iface_tids

const tid_t domcdata_iface_tids[]
static
Initial value:

Definition at line 862 of file cdata.c.

◆ domcdata_se_tids

const tid_t domcdata_se_tids[]
static
Initial value:

Definition at line 46 of file cdata.c.

Referenced by domcdata_QueryInterface().

◆ domcdata_vtbl

const struct IXMLDOMCDATASectionVtbl domcdata_vtbl
static

Definition at line 806 of file cdata.c.

Referenced by create_cdata().