46static const xmlChar xmlns[] =
"xmlns";
48typedef struct _domattr
56static const tid_t domattr_se_tids[] = {
72 domattr *
This = impl_from_IXMLDOMAttribute( iface );
88 return node_create_supporterrorinfo(domattr_se_tids,
ppvObject);
97 IXMLDOMAttribute_AddRef(iface);
104 domattr *
This = impl_from_IXMLDOMAttribute( iface );
113 domattr *
This = impl_from_IXMLDOMAttribute( iface );
119 destroy_xmlnode(&
This->node);
120 if (
This->floating )
135 domattr *
This = impl_from_IXMLDOMAttribute( iface );
136 return IDispatchEx_GetTypeInfoCount(&
This->node.dispex.IDispatchEx_iface, pctinfo);
144 domattr *
This = impl_from_IXMLDOMAttribute( iface );
145 return IDispatchEx_GetTypeInfo(&
This->node.dispex.IDispatchEx_iface,
146 iTInfo, lcid, ppTInfo);
154 domattr *
This = impl_from_IXMLDOMAttribute( iface );
155 return IDispatchEx_GetIDsOfNames(&
This->node.dispex.IDispatchEx_iface,
156 riid, rgszNames, cNames, lcid, rgDispId);
163 EXCEPINFO* pExcepInfo,
UINT* puArgErr )
165 domattr *
This = impl_from_IXMLDOMAttribute( iface );
166 return IDispatchEx_Invoke(&
This->node.dispex.IDispatchEx_iface,
167 dispIdMember,
riid, lcid,
wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
174 domattr *
This = impl_from_IXMLDOMAttribute( iface );
178 return node_get_nodeName(&
This->node,
p);
185 domattr *
This = impl_from_IXMLDOMAttribute( iface );
189 return node_get_content(&
This->node,
value);
196 domattr *
This = impl_from_IXMLDOMAttribute( iface );
200 return node_put_value_escaped(&
This->node, &
value);
207 domattr *
This = impl_from_IXMLDOMAttribute( iface );
209 TRACE(
"(%p)->(%p)\n",
This, domNodeType);
219 domattr *
This = impl_from_IXMLDOMAttribute( iface );
230 domattr *
This = impl_from_IXMLDOMAttribute( iface );
234 return node_get_child_nodes(&
This->node, outList);
241 domattr *
This = impl_from_IXMLDOMAttribute( iface );
245 return node_get_first_child(&
This->node, domNode);
252 domattr *
This = impl_from_IXMLDOMAttribute( iface );
256 return node_get_last_child(&
This->node, domNode);
263 domattr *
This = impl_from_IXMLDOMAttribute( iface );
274 domattr *
This = impl_from_IXMLDOMAttribute( iface );
285 domattr *
This = impl_from_IXMLDOMAttribute( iface );
287 TRACE(
"(%p)->(%p)\n",
This, attributeMap);
297 domattr *
This = impl_from_IXMLDOMAttribute( iface );
305 hr = IXMLDOMNode_get_nodeType(newNode, &
type);
316 if (old_node) *old_node =
NULL;
319 return node_insert_before(&
This->node, newNode, &refChild, old_node);
329 domattr *
This = impl_from_IXMLDOMAttribute( iface );
331 FIXME(
"(%p)->(%p %p %p) needs tests\n",
This, newNode, oldNode, outOldNode);
333 return node_replace_child(&
This->node, newNode, oldNode, outOldNode);
340 domattr *
This = impl_from_IXMLDOMAttribute( iface );
342 return node_remove_child(&
This->node,
child, oldChild);
349 domattr *
This = impl_from_IXMLDOMAttribute( iface );
351 return node_append_child(&
This->node,
child, outChild);
358 domattr *
This = impl_from_IXMLDOMAttribute( iface );
360 return node_has_childnodes(&
This->node,
ret);
367 domattr *
This = impl_from_IXMLDOMAttribute( iface );
369 return node_get_owner_doc(&
This->node, doc);
376 domattr *
This = impl_from_IXMLDOMAttribute( iface );
377 TRACE(
"(%p)->(%d %p)\n",
This, deep, outNode);
378 return node_clone( &
This->node, deep, outNode );
385 domattr *
This = impl_from_IXMLDOMAttribute( iface );
386 static const WCHAR attributeW[] = {
'a',
't',
't',
'r',
'i',
'b',
'u',
't',
'e',0};
397 domattr *
This = impl_from_IXMLDOMAttribute( iface );
399 return node_get_text(&
This->node,
p);
406 domattr *
This = impl_from_IXMLDOMAttribute( iface );
408 return node_put_text( &
This->node,
p );
415 domattr *
This = impl_from_IXMLDOMAttribute( iface );
416 FIXME(
"(%p)->(%p) stub!\n",
This, isSpecified);
417 *isSpecified = VARIANT_TRUE;
425 domattr *
This = impl_from_IXMLDOMAttribute( iface );
426 FIXME(
"(%p)->(%p)\n",
This, definitionNode);
434 domattr *
This = impl_from_IXMLDOMAttribute( iface );
440 hr = IXMLDOMAttribute_get_ownerDocument(iface, &doc);
443 IXMLDOMDocument3 *doc3;
445 hr = IXMLDOMDocument_QueryInterface(doc, &IID_IXMLDOMDocument3, (
void**)&doc3);
446 IXMLDOMDocument_Release(doc);
452 hr = IXMLDOMDocument3_get_schemas(doc3, &schemas);
453 IXMLDOMDocument3_Release(doc3);
456 return IXMLDOMAttribute_get_value(iface,
value);
459 FIXME(
"need to query schema for attribute type\n");
472 domattr *
This = impl_from_IXMLDOMAttribute( iface );
481 domattr *
This = impl_from_IXMLDOMAttribute( iface );
490 domattr *
This = impl_from_IXMLDOMAttribute( iface );
504 domattr *
This = impl_from_IXMLDOMAttribute( iface );
515 domattr *
This = impl_from_IXMLDOMAttribute( iface );
517 return node_transform_node(&
This->node,
node,
p);
524 domattr *
This = impl_from_IXMLDOMAttribute( iface );
526 return node_select_nodes(&
This->node,
p, outList);
533 domattr *
This = impl_from_IXMLDOMAttribute( iface );
535 return node_select_singlenode(&
This->node,
p, outNode);
542 domattr *
This = impl_from_IXMLDOMAttribute( iface );
543 FIXME(
"(%p)->(%p) stub!\n",
This, isParsed);
544 *isParsed = VARIANT_TRUE;
552 static const WCHAR w3xmlns[] = {
'h',
't',
't',
'p',
':',
'/',
'/',
'w',
'w',
'w',
'.',
'w',
'3',
'.',
553 'o',
'r',
'g',
'/',
'2',
'0',
'0',
'0',
'/',
'x',
'm',
'l',
'n',
's',
'/',0 };
554 domattr *
This = impl_from_IXMLDOMAttribute( iface );
568 *
p = bstr_from_xmlChar(xmlns);
571 if (xmldoc_version(
This->node.node->doc) ==
MSXML6)
577 *
p = bstr_from_xmlChar(
ns->href);
589 domattr *
This = impl_from_IXMLDOMAttribute( iface );
602 *prefix = bstr_from_xmlChar(xmlns);
604 *prefix = bstr_from_xmlChar(
ns->
prefix);
616 domattr *
This = impl_from_IXMLDOMAttribute( iface );
618 return node_get_base_name( &
This->node,
name );
625 domattr *
This = impl_from_IXMLDOMAttribute( iface );
634 domattr *
This = impl_from_IXMLDOMAttribute( iface );
638 return node_get_nodeName(&
This->node,
p);
645 domattr *
This = impl_from_IXMLDOMAttribute( iface );
649 return node_get_content(&
This->node,
value);
656 domattr *
This = impl_from_IXMLDOMAttribute( iface );
660 return node_put_value_escaped(&
This->node, &
value);
663static const struct IXMLDOMAttributeVtbl domattr_vtbl =
665 domattr_QueryInterface,
668 domattr_GetTypeInfoCount,
670 domattr_GetIDsOfNames,
672 domattr_get_nodeName,
673 domattr_get_nodeValue,
674 domattr_put_nodeValue,
675 domattr_get_nodeType,
676 domattr_get_parentNode,
677 domattr_get_childNodes,
678 domattr_get_firstChild,
679 domattr_get_lastChild,
680 domattr_get_previousSibling,
681 domattr_get_nextSibling,
682 domattr_get_attributes,
683 domattr_insertBefore,
684 domattr_replaceChild,
687 domattr_hasChildNodes,
688 domattr_get_ownerDocument,
690 domattr_get_nodeTypeString,
693 domattr_get_specified,
694 domattr_get_definition,
695 domattr_get_nodeTypedValue,
696 domattr_put_nodeTypedValue,
697 domattr_get_dataType,
698 domattr_put_dataType,
700 domattr_transformNode,
702 domattr_selectSingleNode,
704 domattr_get_namespaceURI,
706 domattr_get_baseName,
707 domattr_transformNodeToObject,
713static const tid_t domattr_iface_tids[] = {
733 This->IXMLDOMAttribute_iface.lpVtbl = &domattr_vtbl;
735 This->floating = floating;
static void * heap_alloc(size_t len)
static BOOL heap_free(void *mem)
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
GLuint GLuint GLsizei GLenum type
static const char * debugstr_variant(const VARIANT *var)
static VARIANTARG static DISPID
static HRESULT return_null_var(VARIANT *p)
static HRESULT return_bstr(const WCHAR *value, BSTR *p)
static HRESULT return_null_ptr(void **p)
static HRESULT return_null_node(IXMLDOMNode **p)
BSTR WINAPI SysAllocString(LPCOLESTR str)
BSTR WINAPI SysAllocStringLen(const OLECHAR *str, unsigned int len)
#define IsEqualGUID(rguid1, rguid2)
XMLPUBFUN void XMLCALL xmlFreeNs(xmlNsPtr cur)
XMLPUBFUN void XMLCALL xmlFreeNode(xmlNodePtr cur)
#define CONTAINING_RECORD(address, type, field)
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
_In_ DWORD _Out_ _In_ WORD wFlags
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD _Outptr_opt_ void ** ppvObject
enum tagDOMNodeType DOMNodeType
@ NODE_PROCESSING_INSTRUCTION
XMLPUBFUN int XMLCALL xmlStrEqual(const xmlChar *str1, const xmlChar *str2)