ReactOS 0.4.15-dev-7958-gcd0bb1a
htmlattr.c
Go to the documentation of this file.
1/*
2 * Copyright 2011 Jacek Caban for CodeWeavers
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19#include "mshtml_private.h"
20
21static inline HTMLDOMAttribute *impl_from_IHTMLDOMAttribute(IHTMLDOMAttribute *iface)
22{
23 return CONTAINING_RECORD(iface, HTMLDOMAttribute, IHTMLDOMAttribute_iface);
24}
25
26static HRESULT WINAPI HTMLDOMAttribute_QueryInterface(IHTMLDOMAttribute *iface,
27 REFIID riid, void **ppv)
28{
30
31 TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
32
34 *ppv = &This->IHTMLDOMAttribute_iface;
35 }else if(IsEqualGUID(&IID_IHTMLDOMAttribute, riid)) {
36 *ppv = &This->IHTMLDOMAttribute_iface;
37 }else if(IsEqualGUID(&IID_IHTMLDOMAttribute2, riid)) {
38 *ppv = &This->IHTMLDOMAttribute2_iface;
39 }else if(dispex_query_interface(&This->dispex, riid, ppv)) {
40 return *ppv ? S_OK : E_NOINTERFACE;
41 }else {
42 WARN("%s not supported\n", debugstr_mshtml_guid(riid));
43 *ppv = NULL;
44 return E_NOINTERFACE;
45 }
46
47 IUnknown_AddRef((IUnknown*)*ppv);
48 return S_OK;
49}
50
51static ULONG WINAPI HTMLDOMAttribute_AddRef(IHTMLDOMAttribute *iface)
52{
55
56 TRACE("(%p) ref=%d\n", This, ref);
57
58 return ref;
59}
60
61static ULONG WINAPI HTMLDOMAttribute_Release(IHTMLDOMAttribute *iface)
62{
65
66 TRACE("(%p) ref=%d\n", This, ref);
67
68 if(!ref) {
69 assert(!This->elem);
70 release_dispex(&This->dispex);
71 heap_free(This->name);
73 }
74
75 return ref;
76}
77
78static HRESULT WINAPI HTMLDOMAttribute_GetTypeInfoCount(IHTMLDOMAttribute *iface, UINT *pctinfo)
79{
81 return IDispatchEx_GetTypeInfoCount(&This->dispex.IDispatchEx_iface, pctinfo);
82}
83
84static HRESULT WINAPI HTMLDOMAttribute_GetTypeInfo(IHTMLDOMAttribute *iface, UINT iTInfo,
85 LCID lcid, ITypeInfo **ppTInfo)
86{
88 return IDispatchEx_GetTypeInfo(&This->dispex.IDispatchEx_iface, iTInfo, lcid, ppTInfo);
89}
90
91static HRESULT WINAPI HTMLDOMAttribute_GetIDsOfNames(IHTMLDOMAttribute *iface, REFIID riid,
92 LPOLESTR *rgszNames, UINT cNames,
93 LCID lcid, DISPID *rgDispId)
94{
96 return IDispatchEx_GetIDsOfNames(&This->dispex.IDispatchEx_iface, riid, rgszNames, cNames,
97 lcid, rgDispId);
98}
99
100static HRESULT WINAPI HTMLDOMAttribute_Invoke(IHTMLDOMAttribute *iface, DISPID dispIdMember,
101 REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams,
102 VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
103{
105 return IDispatchEx_Invoke(&This->dispex.IDispatchEx_iface, dispIdMember, riid, lcid,
106 wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
107}
108
109static HRESULT WINAPI HTMLDOMAttribute_get_nodeName(IHTMLDOMAttribute *iface, BSTR *p)
110{
112
113 TRACE("(%p)->(%p)\n", This, p);
114
115 if(!This->elem) {
116 if(!This->name) {
117 FIXME("No name available\n");
118 return E_FAIL;
119 }
120
121 *p = SysAllocString(This->name);
122 return *p ? S_OK : E_OUTOFMEMORY;
123 }
124
125 return IDispatchEx_GetMemberName(&This->elem->node.event_target.dispex.IDispatchEx_iface, This->dispid, p);
126}
127
128static HRESULT WINAPI HTMLDOMAttribute_put_nodeValue(IHTMLDOMAttribute *iface, VARIANT v)
129{
131 DISPID dispidNamed = DISPID_PROPERTYPUT;
132 DISPPARAMS dp = {&v, &dispidNamed, 1, 1};
133 EXCEPINFO ei;
134 VARIANT ret;
135
136 TRACE("(%p)->(%s)\n", This, debugstr_variant(&v));
137
138 if(!This->elem) {
139 FIXME("NULL This->elem\n");
140 return E_UNEXPECTED;
141 }
142
143 memset(&ei, 0, sizeof(ei));
144
145 return IDispatchEx_InvokeEx(&This->elem->node.event_target.dispex.IDispatchEx_iface, This->dispid, LOCALE_SYSTEM_DEFAULT,
146 DISPATCH_PROPERTYPUT, &dp, &ret, &ei, NULL);
147}
148
149static HRESULT WINAPI HTMLDOMAttribute_get_nodeValue(IHTMLDOMAttribute *iface, VARIANT *p)
150{
152
153 TRACE("(%p)->(%p)\n", This, p);
154
155 if(!This->elem) {
156 FIXME("NULL This->elem\n");
157 return E_UNEXPECTED;
158 }
159
160 return get_elem_attr_value_by_dispid(This->elem, This->dispid, 0, p);
161}
162
164{
166 nsIDOMAttr *nsattr;
167 nsAString nsname;
168 BSTR name;
169 nsresult nsres;
171
172 TRACE("(%p)->(%p)\n", This, p);
173
174 if(!This->elem || !This->elem->nselem) {
175 FIXME("NULL This->elem\n");
176 return E_UNEXPECTED;
177 }
178
179 if(get_dispid_type(This->dispid) != DISPEXPROP_BUILTIN) {
180 *p = VARIANT_TRUE;
181 return S_OK;
182 }
183
184 hres = IDispatchEx_GetMemberName(&This->elem->node.event_target.dispex.IDispatchEx_iface, This->dispid, &name);
185 if(FAILED(hres))
186 return hres;
187
188 /* FIXME: This is not exactly right, we have some attributes that don't map directly to Gecko attributes. */
189 nsAString_InitDepend(&nsname, name);
190 nsres = nsIDOMHTMLElement_GetAttributeNode(This->elem->nselem, &nsname, &nsattr);
191 nsAString_Finish(&nsname);
193 if(NS_FAILED(nsres))
194 return E_FAIL;
195
196 /* If the Gecko attribute node can be found, we know that the attribute is specified.
197 There is no point in calling GetSpecified */
198 if(nsattr) {
199 nsIDOMAttr_Release(nsattr);
200 *p = VARIANT_TRUE;
201 }else {
202 *p = VARIANT_FALSE;
203 }
204 return S_OK;
205}
206
207static const IHTMLDOMAttributeVtbl HTMLDOMAttributeVtbl = {
219};
220
221static inline HTMLDOMAttribute *impl_from_IHTMLDOMAttribute2(IHTMLDOMAttribute2 *iface)
222{
223 return CONTAINING_RECORD(iface, HTMLDOMAttribute, IHTMLDOMAttribute2_iface);
224}
225
226static HRESULT WINAPI HTMLDOMAttribute2_QueryInterface(IHTMLDOMAttribute2 *iface, REFIID riid, void **ppv)
227{
229 return IHTMLDOMAttribute_QueryInterface(&This->IHTMLDOMAttribute_iface, riid, ppv);
230}
231
232static ULONG WINAPI HTMLDOMAttribute2_AddRef(IHTMLDOMAttribute2 *iface)
233{
235 return IHTMLDOMAttribute_AddRef(&This->IHTMLDOMAttribute_iface);
236}
237
238static ULONG WINAPI HTMLDOMAttribute2_Release(IHTMLDOMAttribute2 *iface)
239{
241 return IHTMLDOMAttribute_Release(&This->IHTMLDOMAttribute_iface);
242}
243
244static HRESULT WINAPI HTMLDOMAttribute2_GetTypeInfoCount(IHTMLDOMAttribute2 *iface, UINT *pctinfo)
245{
247 return IDispatchEx_GetTypeInfoCount(&This->dispex.IDispatchEx_iface, pctinfo);
248}
249
250static HRESULT WINAPI HTMLDOMAttribute2_GetTypeInfo(IHTMLDOMAttribute2 *iface, UINT iTInfo,
251 LCID lcid, ITypeInfo **ppTInfo)
252{
254 return IDispatchEx_GetTypeInfo(&This->dispex.IDispatchEx_iface, iTInfo, lcid, ppTInfo);
255}
256
257static HRESULT WINAPI HTMLDOMAttribute2_GetIDsOfNames(IHTMLDOMAttribute2 *iface, REFIID riid,
258 LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
259{
261 return IDispatchEx_GetIDsOfNames(&This->dispex.IDispatchEx_iface, riid, rgszNames, cNames,
262 lcid, rgDispId);
263}
264
265static HRESULT WINAPI HTMLDOMAttribute2_Invoke(IHTMLDOMAttribute2 *iface, DISPID dispIdMember,
266 REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams,
267 VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
268{
270 return IDispatchEx_Invoke(&This->dispex.IDispatchEx_iface, dispIdMember, riid, lcid,
271 wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
272}
273
274static HRESULT WINAPI HTMLDOMAttribute2_get_name(IHTMLDOMAttribute2 *iface, BSTR *p)
275{
277 FIXME("(%p)->(%p)\n", This, p);
278 return E_NOTIMPL;
279}
280
281static HRESULT WINAPI HTMLDOMAttribute2_put_value(IHTMLDOMAttribute2 *iface, BSTR v)
282{
284 FIXME("(%p)->(%s)\n", This, debugstr_w(v));
285 return E_NOTIMPL;
286}
287
288static HRESULT WINAPI HTMLDOMAttribute2_get_value(IHTMLDOMAttribute2 *iface, BSTR *p)
289{
291 VARIANT val;
293
294 TRACE("(%p)->(%p)\n", This, p);
295
296 if(!This->elem) {
297 FIXME("NULL This->elem\n");
298 return E_UNEXPECTED;
299 }
300
302 if(FAILED(hres))
303 return hres;
304
305 assert(V_VT(&val) == VT_BSTR);
306 *p = V_BSTR(&val);
307 if(!*p && !(*p = SysAllocStringLen(NULL, 0)))
308 return E_OUTOFMEMORY;
309 return S_OK;
310}
311
312static HRESULT WINAPI HTMLDOMAttribute2_get_expando(IHTMLDOMAttribute2 *iface, VARIANT_BOOL *p)
313{
315
316 TRACE("(%p)->(%p)\n", This, p);
317
318 *p = get_dispid_type(This->dispid) == DISPEXPROP_BUILTIN ? VARIANT_FALSE : VARIANT_TRUE;
319 return S_OK;
320}
321
322static HRESULT WINAPI HTMLDOMAttribute2_get_nodeType(IHTMLDOMAttribute2 *iface, LONG *p)
323{
325 FIXME("(%p)->(%p)\n", This, p);
326 return E_NOTIMPL;
327}
328
329static HRESULT WINAPI HTMLDOMAttribute2_get_parentNode(IHTMLDOMAttribute2 *iface, IHTMLDOMNode **p)
330{
332 FIXME("(%p)->(%p)\n", This, p);
333 return E_NOTIMPL;
334}
335
336static HRESULT WINAPI HTMLDOMAttribute2_get_childNodes(IHTMLDOMAttribute2 *iface, IDispatch **p)
337{
339 FIXME("(%p)->(%p)\n", This, p);
340 return E_NOTIMPL;
341}
342
343static HRESULT WINAPI HTMLDOMAttribute2_get_firstChild(IHTMLDOMAttribute2 *iface, IHTMLDOMNode **p)
344{
346 FIXME("(%p)->(%p)\n", This, p);
347 return E_NOTIMPL;
348}
349
350static HRESULT WINAPI HTMLDOMAttribute2_get_lastChild(IHTMLDOMAttribute2 *iface, IHTMLDOMNode **p)
351{
353 FIXME("(%p)->(%p)\n", This, p);
354 return E_NOTIMPL;
355}
356
357static HRESULT WINAPI HTMLDOMAttribute2_get_previousSibling(IHTMLDOMAttribute2 *iface, IHTMLDOMNode **p)
358{
360 FIXME("(%p)->(%p)\n", This, p);
361 return E_NOTIMPL;
362}
363
364static HRESULT WINAPI HTMLDOMAttribute2_get_nextSibling(IHTMLDOMAttribute2 *iface, IHTMLDOMNode **p)
365{
367 FIXME("(%p)->(%p)\n", This, p);
368 return E_NOTIMPL;
369}
370
371static HRESULT WINAPI HTMLDOMAttribute2_get_attributes(IHTMLDOMAttribute2 *iface, IDispatch **p)
372{
374 FIXME("(%p)->(%p)\n", This, p);
375 return E_NOTIMPL;
376}
377
379{
381 FIXME("(%p)->(%p)\n", This, p);
382 return E_NOTIMPL;
383}
384
385static HRESULT WINAPI HTMLDOMAttribute2_insertBefore(IHTMLDOMAttribute2 *iface, IHTMLDOMNode *newChild,
386 VARIANT refChild, IHTMLDOMNode **node)
387{
389 FIXME("(%p)->(%p %s %p)\n", This, newChild, debugstr_variant(&refChild), node);
390 return E_NOTIMPL;
391}
392
393static HRESULT WINAPI HTMLDOMAttribute2_replaceChild(IHTMLDOMAttribute2 *iface, IHTMLDOMNode *newChild,
394 IHTMLDOMNode *oldChild, IHTMLDOMNode **node)
395{
397 FIXME("(%p)->(%p %p %p)\n", This, newChild, oldChild, node);
398 return E_NOTIMPL;
399}
400
401static HRESULT WINAPI HTMLDOMAttribute2_removeChild(IHTMLDOMAttribute2 *iface, IHTMLDOMNode *oldChild,
402 IHTMLDOMNode **node)
403{
405 FIXME("(%p)->(%p %p)\n", This, oldChild, node);
406 return E_NOTIMPL;
407}
408
409static HRESULT WINAPI HTMLDOMAttribute2_appendChild(IHTMLDOMAttribute2 *iface, IHTMLDOMNode *newChild,
410 IHTMLDOMNode **node)
411{
413 FIXME("(%p)->(%p %p)\n", This, newChild, node);
414 return E_NOTIMPL;
415}
416
417static HRESULT WINAPI HTMLDOMAttribute2_hasChildNodes(IHTMLDOMAttribute2 *iface, VARIANT_BOOL *fChildren)
418{
420 FIXME("(%p)->(%p)\n", This, fChildren);
421 return E_NOTIMPL;
422}
423
424static HRESULT WINAPI HTMLDOMAttribute2_cloneNode(IHTMLDOMAttribute2 *iface, VARIANT_BOOL fDeep,
425 IHTMLDOMAttribute **clonedNode)
426{
428 FIXME("(%p)->(%x %p)\n", This, fDeep, clonedNode);
429 return E_NOTIMPL;
430}
431
432static const IHTMLDOMAttribute2Vtbl HTMLDOMAttribute2Vtbl = {
459};
460
462 IHTMLDOMAttribute_tid,
463 IHTMLDOMAttribute2_tid,
464 0
465};
467 NULL,
468 DispHTMLDOMAttribute_tid,
469 0,
471};
472
474{
478
479 ret = heap_alloc_zero(sizeof(*ret));
480 if(!ret)
481 return E_OUTOFMEMORY;
482
483 ret->IHTMLDOMAttribute_iface.lpVtbl = &HTMLDOMAttributeVtbl;
484 ret->IHTMLDOMAttribute2_iface.lpVtbl = &HTMLDOMAttribute2Vtbl;
485 ret->ref = 1;
486 ret->dispid = dispid;
487 ret->elem = elem;
488
489 init_dispex(&ret->dispex, (IUnknown*)&ret->IHTMLDOMAttribute_iface,
491
492 /* For attributes attached to an element, (elem,dispid) pair should be valid used for its operation. */
493 if(elem) {
494 hres = HTMLElement_get_attr_col(&elem->node, &col);
495 if(FAILED(hres)) {
496 IHTMLDOMAttribute_Release(&ret->IHTMLDOMAttribute_iface);
497 return hres;
498 }
499 IHTMLAttributeCollection_Release(&col->IHTMLAttributeCollection_iface);
500
501 list_add_tail(&elem->attrs->attrs, &ret->entry);
502 }
503
504 /* For detached attributes we may still do most operations if we have its name available. */
505 if(name) {
506 ret->name = heap_strdupW(name);
507 if(!ret->name) {
508 IHTMLDOMAttribute_Release(&ret->IHTMLDOMAttribute_iface);
509 return E_OUTOFMEMORY;
510 }
511 }
512
513 *attr = ret;
514 return S_OK;
515}
static BOOL heap_free(void *mem)
Definition: appwiz.h:76
#define InterlockedIncrement
Definition: armddk.h:53
#define InterlockedDecrement
Definition: armddk.h:52
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
Definition: list.h:83
const GUID IID_IUnknown
#define FIXME(fmt,...)
Definition: debug.h:111
#define WARN(fmt,...)
Definition: debug.h:112
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define E_NOTIMPL
Definition: ddrawi.h:99
#define E_FAIL
Definition: ddrawi.h:102
#define NULL
Definition: types.h:112
static WCHAR * heap_strdupW(const WCHAR *str)
Definition: propsheet.c:178
OLECHAR * BSTR
Definition: compat.h:2293
short VARIANT_BOOL
Definition: compat.h:2290
@ VT_BSTR
Definition: compat.h:2303
const char * debugstr_mshtml_guid(const GUID *iid)
Definition: main.c:542
#define assert(x)
Definition: debug.h:53
unsigned short WORD
Definition: ntddk_ex.h:93
const GLdouble * v
Definition: gl.h:2040
GLuint GLfloat * val
Definition: glext.h:7180
GLfloat GLfloat p
Definition: glext.h:8902
static HRESULT WINAPI HTMLDOMAttribute_GetTypeInfo(IHTMLDOMAttribute *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
Definition: htmlattr.c:84
static HTMLDOMAttribute * impl_from_IHTMLDOMAttribute2(IHTMLDOMAttribute2 *iface)
Definition: htmlattr.c:221
static HRESULT WINAPI HTMLDOMAttribute2_GetTypeInfo(IHTMLDOMAttribute2 *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
Definition: htmlattr.c:250
static HRESULT WINAPI HTMLDOMAttribute_get_nodeName(IHTMLDOMAttribute *iface, BSTR *p)
Definition: htmlattr.c:109
static HRESULT WINAPI HTMLDOMAttribute2_GetIDsOfNames(IHTMLDOMAttribute2 *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
Definition: htmlattr.c:257
HRESULT HTMLDOMAttribute_Create(const WCHAR *name, HTMLElement *elem, DISPID dispid, HTMLDOMAttribute **attr)
Definition: htmlattr.c:473
static dispex_static_data_t HTMLDOMAttribute_dispex
Definition: htmlattr.c:466
static HRESULT WINAPI HTMLDOMAttribute_get_nodeValue(IHTMLDOMAttribute *iface, VARIANT *p)
Definition: htmlattr.c:149
static HRESULT WINAPI HTMLDOMAttribute2_get_childNodes(IHTMLDOMAttribute2 *iface, IDispatch **p)
Definition: htmlattr.c:336
static HRESULT WINAPI HTMLDOMAttribute2_get_firstChild(IHTMLDOMAttribute2 *iface, IHTMLDOMNode **p)
Definition: htmlattr.c:343
static HRESULT WINAPI HTMLDOMAttribute_GetIDsOfNames(IHTMLDOMAttribute *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
Definition: htmlattr.c:91
static HRESULT WINAPI HTMLDOMAttribute_get_specified(IHTMLDOMAttribute *iface, VARIANT_BOOL *p)
Definition: htmlattr.c:163
static HRESULT WINAPI HTMLDOMAttribute_put_nodeValue(IHTMLDOMAttribute *iface, VARIANT v)
Definition: htmlattr.c:128
static HRESULT WINAPI HTMLDOMAttribute_GetTypeInfoCount(IHTMLDOMAttribute *iface, UINT *pctinfo)
Definition: htmlattr.c:78
static HRESULT WINAPI HTMLDOMAttribute2_get_nextSibling(IHTMLDOMAttribute2 *iface, IHTMLDOMNode **p)
Definition: htmlattr.c:364
static HRESULT WINAPI HTMLDOMAttribute2_insertBefore(IHTMLDOMAttribute2 *iface, IHTMLDOMNode *newChild, VARIANT refChild, IHTMLDOMNode **node)
Definition: htmlattr.c:385
static HRESULT WINAPI HTMLDOMAttribute2_get_ownerDocument(IHTMLDOMAttribute2 *iface, IDispatch **p)
Definition: htmlattr.c:378
static HRESULT WINAPI HTMLDOMAttribute2_get_previousSibling(IHTMLDOMAttribute2 *iface, IHTMLDOMNode **p)
Definition: htmlattr.c:357
static HRESULT WINAPI HTMLDOMAttribute2_get_value(IHTMLDOMAttribute2 *iface, BSTR *p)
Definition: htmlattr.c:288
static ULONG WINAPI HTMLDOMAttribute_AddRef(IHTMLDOMAttribute *iface)
Definition: htmlattr.c:51
static ULONG WINAPI HTMLDOMAttribute2_Release(IHTMLDOMAttribute2 *iface)
Definition: htmlattr.c:238
static HRESULT WINAPI HTMLDOMAttribute2_replaceChild(IHTMLDOMAttribute2 *iface, IHTMLDOMNode *newChild, IHTMLDOMNode *oldChild, IHTMLDOMNode **node)
Definition: htmlattr.c:393
static HTMLDOMAttribute * impl_from_IHTMLDOMAttribute(IHTMLDOMAttribute *iface)
Definition: htmlattr.c:21
static ULONG WINAPI HTMLDOMAttribute_Release(IHTMLDOMAttribute *iface)
Definition: htmlattr.c:61
static HRESULT WINAPI HTMLDOMAttribute2_hasChildNodes(IHTMLDOMAttribute2 *iface, VARIANT_BOOL *fChildren)
Definition: htmlattr.c:417
static const IHTMLDOMAttribute2Vtbl HTMLDOMAttribute2Vtbl
Definition: htmlattr.c:432
static HRESULT WINAPI HTMLDOMAttribute_QueryInterface(IHTMLDOMAttribute *iface, REFIID riid, void **ppv)
Definition: htmlattr.c:26
static HRESULT WINAPI HTMLDOMAttribute2_put_value(IHTMLDOMAttribute2 *iface, BSTR v)
Definition: htmlattr.c:281
static HRESULT WINAPI HTMLDOMAttribute2_get_name(IHTMLDOMAttribute2 *iface, BSTR *p)
Definition: htmlattr.c:274
static HRESULT WINAPI HTMLDOMAttribute2_get_attributes(IHTMLDOMAttribute2 *iface, IDispatch **p)
Definition: htmlattr.c:371
static HRESULT WINAPI HTMLDOMAttribute2_Invoke(IHTMLDOMAttribute2 *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
Definition: htmlattr.c:265
static HRESULT WINAPI HTMLDOMAttribute_Invoke(IHTMLDOMAttribute *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
Definition: htmlattr.c:100
static HRESULT WINAPI HTMLDOMAttribute2_QueryInterface(IHTMLDOMAttribute2 *iface, REFIID riid, void **ppv)
Definition: htmlattr.c:226
static HRESULT WINAPI HTMLDOMAttribute2_cloneNode(IHTMLDOMAttribute2 *iface, VARIANT_BOOL fDeep, IHTMLDOMAttribute **clonedNode)
Definition: htmlattr.c:424
static HRESULT WINAPI HTMLDOMAttribute2_removeChild(IHTMLDOMAttribute2 *iface, IHTMLDOMNode *oldChild, IHTMLDOMNode **node)
Definition: htmlattr.c:401
static const IHTMLDOMAttributeVtbl HTMLDOMAttributeVtbl
Definition: htmlattr.c:207
static HRESULT WINAPI HTMLDOMAttribute2_get_lastChild(IHTMLDOMAttribute2 *iface, IHTMLDOMNode **p)
Definition: htmlattr.c:350
static HRESULT WINAPI HTMLDOMAttribute2_appendChild(IHTMLDOMAttribute2 *iface, IHTMLDOMNode *newChild, IHTMLDOMNode **node)
Definition: htmlattr.c:409
static HRESULT WINAPI HTMLDOMAttribute2_get_expando(IHTMLDOMAttribute2 *iface, VARIANT_BOOL *p)
Definition: htmlattr.c:312
static HRESULT WINAPI HTMLDOMAttribute2_get_nodeType(IHTMLDOMAttribute2 *iface, LONG *p)
Definition: htmlattr.c:322
static const tid_t HTMLDOMAttribute_iface_tids[]
Definition: htmlattr.c:461
static ULONG WINAPI HTMLDOMAttribute2_AddRef(IHTMLDOMAttribute2 *iface)
Definition: htmlattr.c:232
static HRESULT WINAPI HTMLDOMAttribute2_get_parentNode(IHTMLDOMAttribute2 *iface, IHTMLDOMNode **p)
Definition: htmlattr.c:329
static HRESULT WINAPI HTMLDOMAttribute2_GetTypeInfoCount(IHTMLDOMAttribute2 *iface, UINT *pctinfo)
Definition: htmlattr.c:244
HRESULT get_elem_attr_value_by_dispid(HTMLElement *elem, DISPID dispid, DWORD flags, VARIANT *ret)
Definition: htmlelem.c:621
HRESULT HTMLElement_get_attr_col(HTMLDOMNode *iface, HTMLAttributeCollection **ac)
Definition: htmlelem.c:4827
tid_t
Definition: ieframe.h:311
REFIID riid
Definition: atlbase.h:39
REFIID LPVOID * ppv
Definition: atlbase.h:39
#define S_OK
Definition: intsafe.h:52
#define FAILED(hr)
Definition: intsafe.h:51
HRESULT init_dispex(jsdisp_t *dispex, script_ctx_t *ctx, const builtin_info_t *builtin_info, jsdisp_t *prototype)
Definition: dispex.c:919
#define debugstr_w
Definition: kernel32.h:32
static const char * debugstr_variant(const VARIANT *var)
Definition: container.c:46
HRESULT hres
Definition: protocol.c:465
static size_t elem
Definition: string.c:68
static LPOLESTR
Definition: stg_prop.c:27
static VARIANTARG static DISPID
Definition: ordinal.c:52
void release_dispex(DispatchEx *This)
Definition: dispex.c:1706
BOOL dispex_query_interface(DispatchEx *This, REFIID riid, void **ppv)
Definition: dispex.c:1656
dispex_prop_type_t get_dispid_type(DISPID id)
Definition: dispex.c:464
void nsAString_Finish(nsAString *) DECLSPEC_HIDDEN
Definition: nsembed.c:836
#define ATTRFLAG_ASSTRING
void nsAString_InitDepend(nsAString *, const PRUnichar *) DECLSPEC_HIDDEN
Definition: nsembed.c:826
@ DISPEXPROP_BUILTIN
#define NS_FAILED(res)
unsigned int UINT
Definition: ndis.h:50
#define LOCALE_SYSTEM_DEFAULT
BSTR WINAPI SysAllocString(LPCOLESTR str)
Definition: oleaut.c:238
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 DISPATCH_PROPERTYPUT
Definition: oleauto.h:1008
#define V_VT(A)
Definition: oleauto.h:211
#define V_BSTR(A)
Definition: oleauto.h:226
long LONG
Definition: pedump.c:60
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147
#define REFIID
Definition: guiddef.h:118
DWORD LCID
Definition: nls.h:13
#define memset(x, y, z)
Definition: compat.h:39
#define TRACE(s)
Definition: solgame.cpp:4
IHTMLAttributeCollection IHTMLAttributeCollection_iface
Definition: cookie.c:202
Definition: name.c:39
Definition: send.c:48
#define CONTAINING_RECORD(address, type, field)
Definition: typedefs.h:260
uint32_t ULONG
Definition: typedefs.h:59
Definition: dlist.c:348
int ret
_In_ DWORD _Out_ _In_ WORD wFlags
Definition: wincon.h:531
#define WINAPI
Definition: msvc.h:6
#define E_NOINTERFACE
Definition: winerror.h:2364
#define E_UNEXPECTED
Definition: winerror.h:2456
__wchar_t WCHAR
Definition: xmlstorage.h:180