ReactOS  0.4.14-dev-49-gfb4591c
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 
21 static inline HTMLDOMAttribute *impl_from_IHTMLDOMAttribute(IHTMLDOMAttribute *iface)
22 {
23  return CONTAINING_RECORD(iface, HTMLDOMAttribute, IHTMLDOMAttribute_iface);
24 }
25 
26 static 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 
51 static ULONG WINAPI HTMLDOMAttribute_AddRef(IHTMLDOMAttribute *iface)
52 {
55 
56  TRACE("(%p) ref=%d\n", This, ref);
57 
58  return ref;
59 }
60 
61 static 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);
72  heap_free(This);
73  }
74 
75  return ref;
76 }
77 
78 static HRESULT WINAPI HTMLDOMAttribute_GetTypeInfoCount(IHTMLDOMAttribute *iface, UINT *pctinfo)
79 {
81  return IDispatchEx_GetTypeInfoCount(&This->dispex.IDispatchEx_iface, pctinfo);
82 }
83 
84 static 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 
91 static 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 
100 static 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 
109 static 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 
128 static 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 
149 static 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 
163 static HRESULT WINAPI HTMLDOMAttribute_get_specified(IHTMLDOMAttribute *iface, VARIANT_BOOL *p)
164 {
166  nsIDOMAttr *nsattr;
167  nsAString nsname;
168  BSTR name;
169  nsresult nsres;
170  HRESULT hres;
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 
207 static const IHTMLDOMAttributeVtbl HTMLDOMAttributeVtbl = {
219 };
220 
221 static inline HTMLDOMAttribute *impl_from_IHTMLDOMAttribute2(IHTMLDOMAttribute2 *iface)
222 {
223  return CONTAINING_RECORD(iface, HTMLDOMAttribute, IHTMLDOMAttribute2_iface);
224 }
225 
226 static HRESULT WINAPI HTMLDOMAttribute2_QueryInterface(IHTMLDOMAttribute2 *iface, REFIID riid, void **ppv)
227 {
229  return IHTMLDOMAttribute_QueryInterface(&This->IHTMLDOMAttribute_iface, riid, ppv);
230 }
231 
232 static ULONG WINAPI HTMLDOMAttribute2_AddRef(IHTMLDOMAttribute2 *iface)
233 {
235  return IHTMLDOMAttribute_AddRef(&This->IHTMLDOMAttribute_iface);
236 }
237 
238 static ULONG WINAPI HTMLDOMAttribute2_Release(IHTMLDOMAttribute2 *iface)
239 {
241  return IHTMLDOMAttribute_Release(&This->IHTMLDOMAttribute_iface);
242 }
243 
244 static HRESULT WINAPI HTMLDOMAttribute2_GetTypeInfoCount(IHTMLDOMAttribute2 *iface, UINT *pctinfo)
245 {
247  return IDispatchEx_GetTypeInfoCount(&This->dispex.IDispatchEx_iface, pctinfo);
248 }
249 
250 static 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 
257 static 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 
265 static 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 
274 static HRESULT WINAPI HTMLDOMAttribute2_get_name(IHTMLDOMAttribute2 *iface, BSTR *p)
275 {
277  FIXME("(%p)->(%p)\n", This, p);
278  return E_NOTIMPL;
279 }
280 
281 static 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 
288 static HRESULT WINAPI HTMLDOMAttribute2_get_value(IHTMLDOMAttribute2 *iface, BSTR *p)
289 {
291  VARIANT val;
292  HRESULT hres;
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 
312 static 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 
322 static HRESULT WINAPI HTMLDOMAttribute2_get_nodeType(IHTMLDOMAttribute2 *iface, LONG *p)
323 {
325  FIXME("(%p)->(%p)\n", This, p);
326  return E_NOTIMPL;
327 }
328 
329 static HRESULT WINAPI HTMLDOMAttribute2_get_parentNode(IHTMLDOMAttribute2 *iface, IHTMLDOMNode **p)
330 {
332  FIXME("(%p)->(%p)\n", This, p);
333  return E_NOTIMPL;
334 }
335 
336 static HRESULT WINAPI HTMLDOMAttribute2_get_childNodes(IHTMLDOMAttribute2 *iface, IDispatch **p)
337 {
339  FIXME("(%p)->(%p)\n", This, p);
340  return E_NOTIMPL;
341 }
342 
343 static HRESULT WINAPI HTMLDOMAttribute2_get_firstChild(IHTMLDOMAttribute2 *iface, IHTMLDOMNode **p)
344 {
346  FIXME("(%p)->(%p)\n", This, p);
347  return E_NOTIMPL;
348 }
349 
350 static HRESULT WINAPI HTMLDOMAttribute2_get_lastChild(IHTMLDOMAttribute2 *iface, IHTMLDOMNode **p)
351 {
353  FIXME("(%p)->(%p)\n", This, p);
354  return E_NOTIMPL;
355 }
356 
357 static HRESULT WINAPI HTMLDOMAttribute2_get_previousSibling(IHTMLDOMAttribute2 *iface, IHTMLDOMNode **p)
358 {
360  FIXME("(%p)->(%p)\n", This, p);
361  return E_NOTIMPL;
362 }
363 
364 static HRESULT WINAPI HTMLDOMAttribute2_get_nextSibling(IHTMLDOMAttribute2 *iface, IHTMLDOMNode **p)
365 {
367  FIXME("(%p)->(%p)\n", This, p);
368  return E_NOTIMPL;
369 }
370 
371 static HRESULT WINAPI HTMLDOMAttribute2_get_attributes(IHTMLDOMAttribute2 *iface, IDispatch **p)
372 {
374  FIXME("(%p)->(%p)\n", This, p);
375  return E_NOTIMPL;
376 }
377 
378 static HRESULT WINAPI HTMLDOMAttribute2_get_ownerDocument(IHTMLDOMAttribute2 *iface, IDispatch **p)
379 {
381  FIXME("(%p)->(%p)\n", This, p);
382  return E_NOTIMPL;
383 }
384 
385 static 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 
393 static 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 
401 static 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 
409 static 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 
417 static HRESULT WINAPI HTMLDOMAttribute2_hasChildNodes(IHTMLDOMAttribute2 *iface, VARIANT_BOOL *fChildren)
418 {
420  FIXME("(%p)->(%p)\n", This, fChildren);
421  return E_NOTIMPL;
422 }
423 
424 static 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 
432 static const IHTMLDOMAttribute2Vtbl HTMLDOMAttribute2Vtbl = {
459 };
460 
462  IHTMLDOMAttribute_tid,
463  IHTMLDOMAttribute2_tid,
464  0
465 };
467  NULL,
468  DispHTMLDOMAttribute_tid,
469  0,
471 };
472 
474 {
477  HRESULT hres;
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 HRESULT WINAPI HTMLDOMAttribute2_insertBefore(IHTMLDOMAttribute2 *iface, IHTMLDOMNode *newChild, VARIANT refChild, IHTMLDOMNode **node)
Definition: htmlattr.c:385
static HRESULT WINAPI HTMLDOMAttribute_GetIDsOfNames(IHTMLDOMAttribute *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
Definition: htmlattr.c:91
HRESULT get_elem_attr_value_by_dispid(HTMLElement *elem, DISPID dispid, DWORD flags, VARIANT *ret)
Definition: htmlelem.c:621
static HRESULT WINAPI HTMLDOMAttribute_put_nodeValue(IHTMLDOMAttribute *iface, VARIANT v)
Definition: htmlattr.c:128
#define REFIID
Definition: guiddef.h:118
#define E_NOINTERFACE
Definition: winerror.h:2364
static HRESULT WINAPI HTMLDOMAttribute2_get_expando(IHTMLDOMAttribute2 *iface, VARIANT_BOOL *p)
Definition: htmlattr.c:312
BSTR WINAPI SysAllocStringLen(const OLECHAR *str, unsigned int len)
Definition: oleaut.c:342
REFIID riid
Definition: precomp.h:44
static const tid_t HTMLDOMAttribute_iface_tids[]
Definition: htmlattr.c:461
static HRESULT WINAPI HTMLDOMAttribute2_put_value(IHTMLDOMAttribute2 *iface, BSTR v)
Definition: htmlattr.c:281
tid_t
Definition: ieframe.h:311
#define WARN(fmt,...)
Definition: debug.h:111
HRESULT HTMLElement_get_attr_col(HTMLDOMNode *iface, HTMLAttributeCollection **ac)
Definition: htmlelem.c:4827
REFIID LPVOID * ppv
Definition: atlbase.h:39
static ULONG WINAPI HTMLDOMAttribute_Release(IHTMLDOMAttribute *iface)
Definition: htmlattr.c:61
static ULONG WINAPI HTMLDOMAttribute_AddRef(IHTMLDOMAttribute *iface)
Definition: htmlattr.c:51
static HRESULT WINAPI HTMLDOMAttribute2_get_previousSibling(IHTMLDOMAttribute2 *iface, IHTMLDOMNode **p)
Definition: htmlattr.c:357
#define assert(x)
Definition: debug.h:53
DWORD LCID
Definition: nls.h:13
OLECHAR * BSTR
Definition: compat.h:1934
static HRESULT WINAPI HTMLDOMAttribute2_get_lastChild(IHTMLDOMAttribute2 *iface, IHTMLDOMNode **p)
Definition: htmlattr.c:350
static LPOLESTR
Definition: stg_prop.c:27
#define E_FAIL
Definition: ddrawi.h:102
short VARIANT_BOOL
Definition: compat.h:1931
Definition: send.c:47
static HRESULT WINAPI HTMLDOMAttribute2_removeChild(IHTMLDOMAttribute2 *iface, IHTMLDOMNode *oldChild, IHTMLDOMNode **node)
Definition: htmlattr.c:401
static HTMLDOMAttribute * impl_from_IHTMLDOMAttribute(IHTMLDOMAttribute *iface)
Definition: htmlattr.c:21
#define ATTRFLAG_ASSTRING
const char * debugstr_mshtml_guid(const GUID *iid)
Definition: main.c:535
static HRESULT WINAPI HTMLDOMAttribute_get_nodeValue(IHTMLDOMAttribute *iface, VARIANT *p)
Definition: htmlattr.c:149
__WINE_SERVER_LIST_INLINE void list_add_tail(struct list *list, struct list *elem)
Definition: list.h:102
HRESULT HTMLDOMAttribute_Create(const WCHAR *name, HTMLElement *elem, DISPID dispid, HTMLDOMAttribute **attr)
Definition: htmlattr.c:473
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
long LONG
Definition: pedump.c:60
static WCHAR * heap_strdupW(const WCHAR *str)
Definition: propsheet.c:178
#define debugstr_w
Definition: kernel32.h:32
static size_t elem
Definition: string.c:68
GLenum GLint ref
Definition: glext.h:6028
#define FIXME(fmt,...)
Definition: debug.h:110
static ULONG WINAPI HTMLDOMAttribute2_AddRef(IHTMLDOMAttribute2 *iface)
Definition: htmlattr.c:232
smooth NULL
Definition: ftsmooth.c:416
BSTR WINAPI SysAllocString(LPCOLESTR str)
Definition: oleaut.c:241
static HRESULT WINAPI HTMLDOMAttribute2_get_childNodes(IHTMLDOMAttribute2 *iface, IDispatch **p)
Definition: htmlattr.c:336
#define DISPATCH_PROPERTYPUT
Definition: oleauto.h:1008
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
Definition: Messaging.c:560
static HRESULT WINAPI HTMLDOMAttribute_get_nodeName(IHTMLDOMAttribute *iface, BSTR *p)
Definition: htmlattr.c:109
GLuint GLfloat * val
Definition: glext.h:7180
#define NS_FAILED(res)
static const IHTMLDOMAttribute2Vtbl HTMLDOMAttribute2Vtbl
Definition: htmlattr.c:432
#define TRACE(s)
Definition: solgame.cpp:4
static ULONG WINAPI HTMLDOMAttribute2_Release(IHTMLDOMAttribute2 *iface)
Definition: htmlattr.c:238
HRESULT hres
Definition: protocol.c:465
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
__wchar_t WCHAR
Definition: xmlstorage.h:180
LONG HRESULT
Definition: typedefs.h:77
const GUID IID_IUnknown
#define WINAPI
Definition: msvc.h:8
#define LOCALE_SYSTEM_DEFAULT
static HRESULT WINAPI HTMLDOMAttribute2_get_nextSibling(IHTMLDOMAttribute2 *iface, IHTMLDOMNode **p)
Definition: htmlattr.c:364
unsigned short WORD
Definition: ntddk_ex.h:93
static HRESULT WINAPI HTMLDOMAttribute_GetTypeInfoCount(IHTMLDOMAttribute *iface, UINT *pctinfo)
Definition: htmlattr.c:78
Definition: cookie.c:170
static HRESULT WINAPI HTMLDOMAttribute2_QueryInterface(IHTMLDOMAttribute2 *iface, REFIID riid, void **ppv)
Definition: htmlattr.c:226
int ret
static const IHTMLDOMAttributeVtbl HTMLDOMAttributeVtbl
Definition: htmlattr.c:207
static HRESULT WINAPI HTMLDOMAttribute_get_specified(IHTMLDOMAttribute *iface, VARIANT_BOOL *p)
Definition: htmlattr.c:163
#define InterlockedDecrement
Definition: armddk.h:52
static HRESULT WINAPI HTMLDOMAttribute2_replaceChild(IHTMLDOMAttribute2 *iface, IHTMLDOMNode *newChild, IHTMLDOMNode *oldChild, IHTMLDOMNode **node)
Definition: htmlattr.c:393
#define V_VT(A)
Definition: oleauto.h:211
static HRESULT WINAPI HTMLDOMAttribute2_GetTypeInfoCount(IHTMLDOMAttribute2 *iface, UINT *pctinfo)
Definition: htmlattr.c:244
static HRESULT WINAPI HTMLDOMAttribute2_get_nodeType(IHTMLDOMAttribute2 *iface, LONG *p)
Definition: htmlattr.c:322
static HRESULT WINAPI HTMLDOMAttribute2_get_attributes(IHTMLDOMAttribute2 *iface, IDispatch **p)
Definition: htmlattr.c:371
static HRESULT WINAPI HTMLDOMAttribute2_get_value(IHTMLDOMAttribute2 *iface, BSTR *p)
Definition: htmlattr.c:288
#define V_BSTR(A)
Definition: oleauto.h:226
static HRESULT WINAPI HTMLDOMAttribute_QueryInterface(IHTMLDOMAttribute *iface, REFIID riid, void **ppv)
Definition: htmlattr.c:26
static HRESULT WINAPI HTMLDOMAttribute2_get_firstChild(IHTMLDOMAttribute2 *iface, IHTMLDOMNode **p)
Definition: htmlattr.c:343
static HRESULT WINAPI HTMLDOMAttribute2_GetIDsOfNames(IHTMLDOMAttribute2 *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
Definition: htmlattr.c:257
_In_ DWORD _Out_ _In_ WORD wFlags
Definition: wincon.h:519
dispex_prop_type_t get_dispid_type(DISPID id)
Definition: dispex.c:464
struct stdole::EXCEPINFO EXCEPINFO
static const char * debugstr_variant(const VARIANT *var)
Definition: container.c:46
static VARIANTARG static DISPID
Definition: ordinal.c:49
#define S_OK
Definition: intsafe.h:59
#define InterlockedIncrement
Definition: armddk.h:53
const GLdouble * v
Definition: gl.h:2040
BOOL dispex_query_interface(DispatchEx *This, REFIID riid, void **ppv)
Definition: dispex.c:1656
static HRESULT WINAPI HTMLDOMAttribute2_cloneNode(IHTMLDOMAttribute2 *iface, VARIANT_BOOL fDeep, IHTMLDOMAttribute **clonedNode)
Definition: htmlattr.c:424
static HRESULT WINAPI HTMLDOMAttribute2_appendChild(IHTMLDOMAttribute2 *iface, IHTMLDOMNode *newChild, IHTMLDOMNode **node)
Definition: htmlattr.c:409
#define E_NOTIMPL
Definition: ddrawi.h:99
void nsAString_InitDepend(nsAString *, const PRUnichar *) DECLSPEC_HIDDEN
Definition: nsembed.c:826
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
Definition: oleaut.c:274
unsigned int UINT
Definition: ndis.h:50
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
Definition: compobj.c:4021
HRESULT init_dispex(jsdisp_t *dispex, script_ctx_t *ctx, const builtin_info_t *builtin_info, jsdisp_t *prototype)
Definition: dispex.c:940
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
#define E_UNEXPECTED
Definition: winerror.h:2456
static HRESULT WINAPI HTMLDOMAttribute2_get_name(IHTMLDOMAttribute2 *iface, BSTR *p)
Definition: htmlattr.c:274
void nsAString_Finish(nsAString *) DECLSPEC_HIDDEN
Definition: nsembed.c:836
static HRESULT WINAPI HTMLDOMAttribute2_get_ownerDocument(IHTMLDOMAttribute2 *iface, IDispatch **p)
Definition: htmlattr.c:378
IHTMLAttributeCollection IHTMLAttributeCollection_iface
Definition: name.c:36
static HRESULT WINAPI HTMLDOMAttribute2_GetTypeInfo(IHTMLDOMAttribute2 *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
Definition: htmlattr.c:250
struct stdole::DISPPARAMS DISPPARAMS
HRESULT nsresult
Definition: nsiface.idl:39
static HRESULT WINAPI HTMLDOMAttribute_GetTypeInfo(IHTMLDOMAttribute *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
Definition: htmlattr.c:84
unsigned int ULONG
Definition: retypes.h:1
static HRESULT WINAPI HTMLDOMAttribute2_hasChildNodes(IHTMLDOMAttribute2 *iface, VARIANT_BOOL *fChildren)
Definition: htmlattr.c:417
GLfloat GLfloat p
Definition: glext.h:8902
#define memset(x, y, z)
Definition: compat.h:39
void release_dispex(DispatchEx *This)
Definition: dispex.c:1706
static HRESULT WINAPI HTMLDOMAttribute2_get_parentNode(IHTMLDOMAttribute2 *iface, IHTMLDOMNode **p)
Definition: htmlattr.c:329
static dispex_static_data_t HTMLDOMAttribute_dispex
Definition: htmlattr.c:466
static BOOL heap_free(void *mem)
Definition: appwiz.h:75
Definition: dlist.c:348
static HTMLDOMAttribute * impl_from_IHTMLDOMAttribute2(IHTMLDOMAttribute2 *iface)
Definition: htmlattr.c:221
GLuint const GLchar * name
Definition: glext.h:6031