ReactOS  0.4.14-dev-77-gd9e7c48
htmltable.c
Go to the documentation of this file.
1 /*
2  * Copyright 2007 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 struct HTMLTable {
23 
24  IHTMLTable IHTMLTable_iface;
25  IHTMLTable2 IHTMLTable2_iface;
26  IHTMLTable3 IHTMLTable3_iface;
27 
29 };
30 
31 static inline HTMLTable *impl_from_IHTMLTable(IHTMLTable *iface)
32 {
33  return CONTAINING_RECORD(iface, HTMLTable, IHTMLTable_iface);
34 }
35 
36 static inline HTMLTable *impl_from_IHTMLTable2(IHTMLTable2 *iface)
37 {
38  return CONTAINING_RECORD(iface, HTMLTable, IHTMLTable2_iface);
39 }
40 
41 static inline HTMLTable *impl_from_IHTMLTable3(IHTMLTable3 *iface)
42 {
43  return CONTAINING_RECORD(iface, HTMLTable, IHTMLTable3_iface);
44 }
45 
46 static HRESULT var2str(const VARIANT *p, nsAString *nsstr)
47 {
48  BSTR str;
49  BOOL ret;
50  HRESULT hres;
51 
52  switch(V_VT(p)) {
53  case VT_BSTR:
54  return nsAString_Init(nsstr, V_BSTR(p))?
56  case VT_R8:
57  hres = VarBstrFromR8(V_R8(p), 0, 0, &str);
58  break;
59  case VT_R4:
60  hres = VarBstrFromR4(V_R4(p), 0, 0, &str);
61  break;
62  case VT_I4:
63  hres = VarBstrFromI4(V_I4(p), 0, 0, &str);
64  break;
65  default:
66  FIXME("unsupported arg %s\n", debugstr_variant(p));
67  return E_NOTIMPL;
68  }
69  if (FAILED(hres))
70  return hres;
71 
72  ret = nsAString_Init(nsstr, str);
74  return ret ? S_OK : E_OUTOFMEMORY;
75 }
76 
77 static HRESULT nsstr_to_truncated_bstr(const nsAString *nsstr, BSTR *ret_ptr)
78 {
79  const PRUnichar *str, *ptr, *end = NULL;
80  BSTR ret;
81 
82  nsAString_GetData(nsstr, &str);
83 
84  for(ptr = str; isdigitW(*ptr); ptr++);
85  if(*ptr == '.') {
86  for(end = ptr++; isdigitW(*ptr); ptr++);
87  if(*ptr)
88  end = NULL;
89  }
90 
92 
93  *ret_ptr = ret;
94  return ret ? S_OK : E_OUTOFMEMORY;
95 }
96 
97 static HRESULT WINAPI HTMLTable_QueryInterface(IHTMLTable *iface,
98  REFIID riid, void **ppv)
99 {
101 
102  return IHTMLDOMNode_QueryInterface(&This->element.node.IHTMLDOMNode_iface, riid, ppv);
103 }
104 
105 static ULONG WINAPI HTMLTable_AddRef(IHTMLTable *iface)
106 {
108 
109  return IHTMLDOMNode_AddRef(&This->element.node.IHTMLDOMNode_iface);
110 }
111 
112 static ULONG WINAPI HTMLTable_Release(IHTMLTable *iface)
113 {
115 
116  return IHTMLDOMNode_Release(&This->element.node.IHTMLDOMNode_iface);
117 }
118 
119 static HRESULT WINAPI HTMLTable_GetTypeInfoCount(IHTMLTable *iface, UINT *pctinfo)
120 {
122  return IDispatchEx_GetTypeInfoCount(&This->element.node.event_target.dispex.IDispatchEx_iface, pctinfo);
123 }
124 
125 static HRESULT WINAPI HTMLTable_GetTypeInfo(IHTMLTable *iface, UINT iTInfo,
126  LCID lcid, ITypeInfo **ppTInfo)
127 {
129  return IDispatchEx_GetTypeInfo(&This->element.node.event_target.dispex.IDispatchEx_iface, iTInfo, lcid,
130  ppTInfo);
131 }
132 
134  LPOLESTR *rgszNames, UINT cNames,
135  LCID lcid, DISPID *rgDispId)
136 {
138  return IDispatchEx_GetIDsOfNames(&This->element.node.event_target.dispex.IDispatchEx_iface, riid, rgszNames,
139  cNames, lcid, rgDispId);
140 }
141 
142 static HRESULT WINAPI HTMLTable_Invoke(IHTMLTable *iface, DISPID dispIdMember,
143  REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams,
144  VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
145 {
147  return IDispatchEx_Invoke(&This->element.node.event_target.dispex.IDispatchEx_iface, dispIdMember, riid,
148  lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
149 }
150 
151 static HRESULT WINAPI HTMLTable_put_cols(IHTMLTable *iface, LONG v)
152 {
154  FIXME("(%p)->(%d)\n", This, v);
155  return E_NOTIMPL;
156 }
157 
158 static HRESULT WINAPI HTMLTable_get_cols(IHTMLTable *iface, LONG *p)
159 {
161  FIXME("(%p)->(%p)\n", This, p);
162  return E_NOTIMPL;
163 }
164 
165 static HRESULT WINAPI HTMLTable_put_border(IHTMLTable *iface, VARIANT v)
166 {
168  FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
169  return E_NOTIMPL;
170 }
171 
172 static HRESULT WINAPI HTMLTable_get_border(IHTMLTable *iface, VARIANT *p)
173 {
175  FIXME("(%p)->(%p)\n", This, p);
176  return E_NOTIMPL;
177 }
178 
179 static HRESULT WINAPI HTMLTable_put_frame(IHTMLTable *iface, BSTR v)
180 {
182  nsAString str;
183  nsresult nsres;
184 
185  TRACE("(%p)->(%s)\n", This, debugstr_w(v));
186 
188  nsres = nsIDOMHTMLTableElement_SetFrame(This->nstable, &str);
190 
191  if (NS_FAILED(nsres)) {
192  ERR("SetFrame(%s) failed: %08x\n", debugstr_w(v), nsres);
193  return E_FAIL;
194  }
195  return S_OK;
196 }
197 
198 static HRESULT WINAPI HTMLTable_get_frame(IHTMLTable *iface, BSTR *p)
199 {
201  nsAString str;
202  nsresult nsres;
203 
204  TRACE("(%p)->(%p)\n", This, p);
205 
207  nsres = nsIDOMHTMLTableElement_GetFrame(This->nstable, &str);
208 
209  return return_nsstr(nsres, &str, p);
210 }
211 
212 static HRESULT WINAPI HTMLTable_put_rules(IHTMLTable *iface, BSTR v)
213 {
215  FIXME("(%p)->(%s)\n", This, debugstr_w(v));
216  return E_NOTIMPL;
217 }
218 
219 static HRESULT WINAPI HTMLTable_get_rules(IHTMLTable *iface, BSTR *p)
220 {
222  FIXME("(%p)->(%p)\n", This, p);
223  return E_NOTIMPL;
224 }
225 
227 {
229  nsAString nsstr;
230  WCHAR buf[64];
231  nsresult nsres;
232 
233  TRACE("(%p)->(%s)\n", This, debugstr_variant(&v));
234 
235  switch(V_VT(&v)) {
236  case VT_BSTR:
237  nsAString_InitDepend(&nsstr, V_BSTR(&v));
238  break;
239  case VT_I4: {
240  static const WCHAR formatW[] = {'%','d',0};
241  sprintfW(buf, formatW, V_I4(&v));
242  nsAString_InitDepend(&nsstr, buf);
243  break;
244  }
245  default:
246  FIXME("unsupported arg %s\n", debugstr_variant(&v));
247  return E_NOTIMPL;
248  }
249 
250  nsres = nsIDOMHTMLTableElement_SetCellSpacing(This->nstable, &nsstr);
251  nsAString_Finish(&nsstr);
252  if(NS_FAILED(nsres)) {
253  ERR("SetCellSpacing failed: %08x\n", nsres);
254  return E_FAIL;
255  }
256 
257  return S_OK;
258 }
259 
260 static HRESULT WINAPI HTMLTable_get_cellSpacing(IHTMLTable *iface, VARIANT *p)
261 {
263  nsAString nsstr;
264  nsresult nsres;
265 
266  TRACE("(%p)->(%p)\n", This, p);
267 
268  nsAString_Init(&nsstr, NULL);
269  nsres = nsIDOMHTMLTableElement_GetCellSpacing(This->nstable, &nsstr);
270  V_VT(p) = VT_BSTR;
271  return return_nsstr(nsres, &nsstr, &V_BSTR(p));
272 }
273 
275 {
277  nsAString val;
278  HRESULT hres;
279  nsresult nsres;
280 
281  TRACE("(%p)->(%s)\n", This, debugstr_variant(&v));
282 
283  hres = var2str(&v, &val);
284  if(FAILED(hres))
285  return hres;
286 
287  nsres = nsIDOMHTMLTableElement_SetCellPadding(This->nstable, &val);
289  if(NS_FAILED(nsres)) {
290  ERR("Set Width(%s) failed, err = %08x\n", debugstr_variant(&v), nsres);
291  return E_FAIL;
292  }
293 
294  return S_OK;
295 }
296 
297 static HRESULT WINAPI HTMLTable_get_cellPadding(IHTMLTable *iface, VARIANT *p)
298 {
300  nsAString val;
301  nsresult nsres;
302 
303  TRACE("(%p)->(%p)\n", This, p);
304 
306  nsres = nsIDOMHTMLTableElement_GetCellPadding(This->nstable, &val);
307  return return_nsstr_variant(nsres, &val, p);
308 }
309 
310 static HRESULT WINAPI HTMLTable_put_background(IHTMLTable *iface, BSTR v)
311 {
313  FIXME("(%p)->(%s)\n", This, debugstr_w(v));
314  return E_NOTIMPL;
315 }
316 
317 static HRESULT WINAPI HTMLTable_get_background(IHTMLTable *iface, BSTR *p)
318 {
320  FIXME("(%p)->(%p)\n", This, p);
321  return E_NOTIMPL;
322 }
323 
324 static HRESULT WINAPI HTMLTable_put_bgColor(IHTMLTable *iface, VARIANT v)
325 {
327  nsAString val;
328  nsresult nsres;
329 
330  TRACE("(%p)->(%s)\n", This, debugstr_variant(&v));
331 
332  if(!variant_to_nscolor(&v, &val))
333  return S_OK;
334 
335  nsres = nsIDOMHTMLTableElement_SetBgColor(This->nstable, &val);
337  if (NS_FAILED(nsres)){
338  ERR("Set BgColor(%s) failed!\n", debugstr_variant(&v));
339  return E_FAIL;
340  }
341 
342  return S_OK;
343 }
344 
345 static HRESULT WINAPI HTMLTable_get_bgColor(IHTMLTable *iface, VARIANT *p)
346 {
348  nsAString strColor;
349  nsresult nsres;
350  HRESULT hres;
351  const PRUnichar *color;
352 
353  TRACE("(%p)->(%p)\n", This, p);
354 
355  nsAString_Init(&strColor, NULL);
356  nsres = nsIDOMHTMLTableElement_GetBgColor(This->nstable, &strColor);
357 
358  if(NS_SUCCEEDED(nsres)) {
359  nsAString_GetData(&strColor, &color);
360  V_VT(p) = VT_BSTR;
362  }else {
363  ERR("SetBgColor failed: %08x\n", nsres);
364  hres = E_FAIL;
365  }
366 
367  nsAString_Finish(&strColor);
368  return hres;
369 }
370 
372 {
374  FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
375  return E_NOTIMPL;
376 }
377 
378 static HRESULT WINAPI HTMLTable_get_borderColor(IHTMLTable *iface, VARIANT *p)
379 {
381  FIXME("(%p)->(%p)\n", This, p);
382  return E_NOTIMPL;
383 }
384 
386 {
388  FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
389  return E_NOTIMPL;
390 }
391 
393 {
395  FIXME("(%p)->(%p)\n", This, p);
396  return E_NOTIMPL;
397 }
398 
400 {
402  FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
403  return E_NOTIMPL;
404 }
405 
407 {
409  FIXME("(%p)->(%p)\n", This, p);
410  return E_NOTIMPL;
411 }
412 
413 static HRESULT WINAPI HTMLTable_put_align(IHTMLTable *iface, BSTR v)
414 {
416  nsAString val;
417  nsresult nsres;
418 
419  TRACE("(%p)->(%s)\n", This, debugstr_w(v));
420 
422 
423  nsres = nsIDOMHTMLTableElement_SetAlign(This->nstable, &val);
425  if (NS_FAILED(nsres)){
426  ERR("Set Align(%s) failed!\n", debugstr_w(v));
427  return E_FAIL;
428  }
429  return S_OK;
430 }
431 
432 static HRESULT WINAPI HTMLTable_get_align(IHTMLTable *iface, BSTR *p)
433 {
435  nsAString val;
436  nsresult nsres;
437 
438  TRACE("(%p)->(%p)\n", This, p);
439 
441  nsres = nsIDOMHTMLTableElement_GetAlign(This->nstable, &val);
442 
443  return return_nsstr(nsres, &val, p);
444 }
445 
446 static HRESULT WINAPI HTMLTable_refresh(IHTMLTable *iface)
447 {
449  FIXME("(%p)\n", This);
450  return E_NOTIMPL;
451 }
452 
453 static HRESULT WINAPI HTMLTable_get_rows(IHTMLTable *iface, IHTMLElementCollection **p)
454 {
456  nsIDOMHTMLCollection *nscol;
457  nsresult nsres;
458 
459  TRACE("(%p)->(%p)\n", This, p);
460 
461  nsres = nsIDOMHTMLTableElement_GetRows(This->nstable, &nscol);
462  if(NS_FAILED(nsres)) {
463  ERR("GetRows failed: %08x\n", nsres);
464  return E_FAIL;
465  }
466 
467  *p = create_collection_from_htmlcol(This->element.node.doc, nscol);
468 
469  nsIDOMHTMLCollection_Release(nscol);
470  return S_OK;
471 }
472 
473 static HRESULT WINAPI HTMLTable_put_width(IHTMLTable *iface, VARIANT v)
474 {
476  nsAString val;
477  HRESULT hres;
478  nsresult nsres;
479 
480  TRACE("(%p)->(%s)\n", This, debugstr_variant(&v));
481  hres = var2str(&v, &val);
482 
483  if (FAILED(hres)){
484  ERR("Set Width(%s) failed when initializing a nsAString, err = %08x\n",
485  debugstr_variant(&v), hres);
486  return hres;
487  }
488 
489  nsres = nsIDOMHTMLTableElement_SetWidth(This->nstable, &val);
491 
492  if (NS_FAILED(nsres)){
493  ERR("Set Width(%s) failed, err = %08x\n", debugstr_variant(&v), nsres);
494  return E_FAIL;
495  }
496  return S_OK;
497 }
498 
499 static HRESULT WINAPI HTMLTable_get_width(IHTMLTable *iface, VARIANT *p)
500 {
502  nsAString val;
503  BSTR bstr;
504  nsresult nsres;
505  HRESULT hres;
506 
507  TRACE("(%p)->(%p)\n", This, p);
509  nsres = nsIDOMHTMLTableElement_GetWidth(This->nstable, &val);
510  if (NS_FAILED(nsres)){
511  ERR("Get Width failed!\n");
513  return E_FAIL;
514  }
515 
516  hres = nsstr_to_truncated_bstr(&val, &bstr);
518 
519  V_VT(p) = VT_BSTR;
520  V_BSTR(p) = bstr;
521  return hres;
522 }
523 
524 static HRESULT WINAPI HTMLTable_put_height(IHTMLTable *iface, VARIANT v)
525 {
527  FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
528  return E_NOTIMPL;
529 }
530 
531 static HRESULT WINAPI HTMLTable_get_height(IHTMLTable *iface, VARIANT *p)
532 {
534  FIXME("(%p)->(%p)\n", This, p);
535  return E_NOTIMPL;
536 }
537 
538 static HRESULT WINAPI HTMLTable_put_dataPageSize(IHTMLTable *iface, LONG v)
539 {
541  FIXME("(%p)->(%d)\n", This, v);
542  return E_NOTIMPL;
543 }
544 
545 static HRESULT WINAPI HTMLTable_get_dataPageSize(IHTMLTable *iface, LONG *p)
546 {
548  FIXME("(%p)->(%p)\n", This, p);
549  return E_NOTIMPL;
550 }
551 
552 static HRESULT WINAPI HTMLTable_nextPage(IHTMLTable *iface)
553 {
555  FIXME("(%p)\n", This);
556  return E_NOTIMPL;
557 }
558 
559 static HRESULT WINAPI HTMLTable_previousPage(IHTMLTable *iface)
560 {
562  FIXME("(%p)\n", This);
563  return E_NOTIMPL;
564 }
565 
566 static HRESULT WINAPI HTMLTable_get_tHead(IHTMLTable *iface, IHTMLTableSection **p)
567 {
569  FIXME("(%p)->(%p)\n", This, p);
570  return E_NOTIMPL;
571 }
572 
573 static HRESULT WINAPI HTMLTable_get_tFoot(IHTMLTable *iface, IHTMLTableSection **p)
574 {
576  FIXME("(%p)->(%p)\n", This, p);
577  return E_NOTIMPL;
578 }
579 
580 static HRESULT WINAPI HTMLTable_get_tBodies(IHTMLTable *iface, IHTMLElementCollection **p)
581 {
583  nsIDOMHTMLCollection *nscol = NULL;
584  nsresult nsres;
585 
586  TRACE("(%p)->(%p)\n", This, p);
587 
588  nsres = nsIDOMHTMLTableElement_GetTBodies(This->nstable, &nscol);
589  if(NS_FAILED(nsres)) {
590  ERR("GetTBodies failed: %08x\n", nsres);
591  return E_FAIL;
592  }
593 
594  *p = create_collection_from_htmlcol(This->element.node.doc, nscol);
595 
596  nsIDOMHTMLCollection_Release(nscol);
597  return S_OK;
598 }
599 
600 static HRESULT WINAPI HTMLTable_get_caption(IHTMLTable *iface, IHTMLTableCaption **p)
601 {
603  FIXME("(%p)->(%p)\n", This, p);
604  return E_NOTIMPL;
605 }
606 
607 static HRESULT WINAPI HTMLTable_createTHead(IHTMLTable *iface, IDispatch **head)
608 {
610  FIXME("(%p)->(%p)\n", This, head);
611  return E_NOTIMPL;
612 }
613 
614 static HRESULT WINAPI HTMLTable_deleteTHead(IHTMLTable *iface)
615 {
617  FIXME("(%p)\n", This);
618  return E_NOTIMPL;
619 }
620 
621 static HRESULT WINAPI HTMLTable_createTFoot(IHTMLTable *iface, IDispatch **foot)
622 {
624  FIXME("(%p)->(%p)\n", This, foot);
625  return E_NOTIMPL;
626 }
627 
628 static HRESULT WINAPI HTMLTable_deleteTFoot(IHTMLTable *iface)
629 {
631  FIXME("(%p)\n", This);
632  return E_NOTIMPL;
633 }
634 
635 static HRESULT WINAPI HTMLTable_createCaption(IHTMLTable *iface, IHTMLTableCaption **caption)
636 {
638  FIXME("(%p)->(%p)\n", This, caption);
639  return E_NOTIMPL;
640 }
641 
642 static HRESULT WINAPI HTMLTable_deleteCaption(IHTMLTable *iface)
643 {
645  FIXME("(%p)\n", This);
646  return E_NOTIMPL;
647 }
648 
649 static HRESULT WINAPI HTMLTable_insertRow(IHTMLTable *iface, LONG index, IDispatch **row)
650 {
652  nsIDOMHTMLElement *nselem;
653  HTMLElement *elem;
654  nsresult nsres;
655  HRESULT hres;
656 
657  TRACE("(%p)->(%d %p)\n", This, index, row);
658  nsres = nsIDOMHTMLTableElement_InsertRow(This->nstable, index, &nselem);
659  if(NS_FAILED(nsres)) {
660  ERR("Insert Row at %d failed: %08x\n", index, nsres);
661  return E_FAIL;
662  }
663 
664  hres = HTMLTableRow_Create(This->element.node.doc, nselem, &elem);
665  nsIDOMHTMLElement_Release(nselem);
666  if (FAILED(hres)) {
667  ERR("Create TableRow failed: %08x\n", hres);
668  return hres;
669  }
670 
671  *row = (IDispatch *)&elem->IHTMLElement_iface;
672  return S_OK;
673 }
674 
675 static HRESULT WINAPI HTMLTable_deleteRow(IHTMLTable *iface, LONG index)
676 {
678  nsresult nsres;
679 
680  TRACE("(%p)->(%d)\n", This, index);
681  nsres = nsIDOMHTMLTableElement_DeleteRow(This->nstable, index);
682  if(NS_FAILED(nsres)) {
683  ERR("Delete Row failed: %08x\n", nsres);
684  return E_FAIL;
685  }
686  return S_OK;
687 }
688 
689 static HRESULT WINAPI HTMLTable_get_readyState(IHTMLTable *iface, BSTR *p)
690 {
692  FIXME("(%p)->(%p)\n", This, p);
693  return E_NOTIMPL;
694 }
695 
697 {
699  FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
700  return E_NOTIMPL;
701 }
702 
704 {
706  FIXME("(%p)->(%p)\n", This, p);
707  return E_NOTIMPL;
708 }
709 
710 static const IHTMLTableVtbl HTMLTableVtbl = {
767 };
768 
769 /* IHTMLTable2 */
770 static HRESULT WINAPI HTMLTable2_QueryInterface(IHTMLTable2 *iface,
771  REFIID riid, void **ppv)
772 {
774 
775  return IHTMLDOMNode_QueryInterface(&This->element.node.IHTMLDOMNode_iface, riid, ppv);
776 }
777 
778 static ULONG WINAPI HTMLTable2_AddRef(IHTMLTable2 *iface)
779 {
781 
782  return IHTMLDOMNode_AddRef(&This->element.node.IHTMLDOMNode_iface);
783 }
784 
785 static ULONG WINAPI HTMLTable2_Release(IHTMLTable2 *iface)
786 {
788 
789  return IHTMLDOMNode_Release(&This->element.node.IHTMLDOMNode_iface);
790 }
791 
792 static HRESULT WINAPI HTMLTable2_GetTypeInfoCount(IHTMLTable2 *iface, UINT *pctinfo)
793 {
795  return IDispatchEx_GetTypeInfoCount(&This->element.node.event_target.dispex.IDispatchEx_iface, pctinfo);
796 }
797 
798 static HRESULT WINAPI HTMLTable2_GetTypeInfo(IHTMLTable2 *iface, UINT iTInfo,
799  LCID lcid, ITypeInfo **ppTInfo)
800 {
802  return IDispatchEx_GetTypeInfo(&This->element.node.event_target.dispex.IDispatchEx_iface, iTInfo, lcid,
803  ppTInfo);
804 }
805 
806 static HRESULT WINAPI HTMLTable2_GetIDsOfNames(IHTMLTable2 *iface, REFIID riid,
807  LPOLESTR *rgszNames, UINT cNames,
808  LCID lcid, DISPID *rgDispId)
809 {
811  return IDispatchEx_GetIDsOfNames(&This->element.node.event_target.dispex.IDispatchEx_iface, riid, rgszNames,
812  cNames, lcid, rgDispId);
813 }
814 
815 static HRESULT WINAPI HTMLTable2_Invoke(IHTMLTable2 *iface, DISPID dispIdMember,
816  REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams,
817  VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
818 {
820  return IDispatchEx_Invoke(&This->element.node.event_target.dispex.IDispatchEx_iface, dispIdMember, riid,
821  lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
822 }
823 
824 static HRESULT WINAPI HTMLTable2_firstPage(IHTMLTable2 *iface)
825 {
827  FIXME("(%p)->()\n", This);
828  return E_NOTIMPL;
829 }
830 
831 static HRESULT WINAPI HTMLTable2_lastPage(IHTMLTable2 *iface)
832 {
834  FIXME("(%p)->()\n", This);
835  return E_NOTIMPL;
836 }
837 
838 static HRESULT WINAPI HTMLTable2_cells(IHTMLTable2 *iface, IHTMLElementCollection **p)
839 {
841  FIXME("(%p)->(%p)\n", This, p);
842  return E_NOTIMPL;
843 }
844 
845 static HRESULT WINAPI HTMLTable2_moveRow(IHTMLTable2 *iface, LONG indexFrom, LONG indexTo, IDispatch **row)
846 {
848  FIXME("(%p)->(%d %d %p)\n", This, indexFrom, indexTo, row);
849  return E_NOTIMPL;
850 }
851 
852 
853 static const IHTMLTable2Vtbl HTMLTable2Vtbl = {
865 };
866 
867 /* IHTMLTable3 */
868 static HRESULT WINAPI HTMLTable3_QueryInterface(IHTMLTable3 *iface,
869  REFIID riid, void **ppv)
870 {
872 
873  return IHTMLDOMNode_QueryInterface(&This->element.node.IHTMLDOMNode_iface, riid, ppv);
874 }
875 
876 static ULONG WINAPI HTMLTable3_AddRef(IHTMLTable3 *iface)
877 {
879 
880  return IHTMLDOMNode_AddRef(&This->element.node.IHTMLDOMNode_iface);
881 }
882 
883 static ULONG WINAPI HTMLTable3_Release(IHTMLTable3 *iface)
884 {
886 
887  return IHTMLDOMNode_Release(&This->element.node.IHTMLDOMNode_iface);
888 }
889 
890 static HRESULT WINAPI HTMLTable3_GetTypeInfoCount(IHTMLTable3 *iface, UINT *pctinfo)
891 {
893  return IDispatchEx_GetTypeInfoCount(&This->element.node.event_target.dispex.IDispatchEx_iface, pctinfo);
894 }
895 
896 static HRESULT WINAPI HTMLTable3_GetTypeInfo(IHTMLTable3 *iface, UINT iTInfo,
897  LCID lcid, ITypeInfo **ppTInfo)
898 {
900  return IDispatchEx_GetTypeInfo(&This->element.node.event_target.dispex.IDispatchEx_iface, iTInfo, lcid,
901  ppTInfo);
902 }
903 
904 static HRESULT WINAPI HTMLTable3_GetIDsOfNames(IHTMLTable3 *iface, REFIID riid,
905  LPOLESTR *rgszNames, UINT cNames,
906  LCID lcid, DISPID *rgDispId)
907 {
909  return IDispatchEx_GetIDsOfNames(&This->element.node.event_target.dispex.IDispatchEx_iface, riid, rgszNames,
910  cNames, lcid, rgDispId);
911 }
912 
913 static HRESULT WINAPI HTMLTable3_Invoke(IHTMLTable3 *iface, DISPID dispIdMember,
914  REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams,
915  VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
916 {
918  return IDispatchEx_Invoke(&This->element.node.event_target.dispex.IDispatchEx_iface, dispIdMember, riid,
919  lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
920 }
921 
922 static HRESULT WINAPI HTMLTable3_put_summary(IHTMLTable3 *iface, BSTR v)
923 {
925  nsAString str;
926  nsresult nsres;
927 
928  TRACE("(%p)->(%s)\n", This, debugstr_w(v));
929 
931 
932  nsres = nsIDOMHTMLTableElement_SetSummary(This->nstable, &str);
933 
935  if (NS_FAILED(nsres)) {
936  ERR("Set summary(%s) failed: %08x\n", debugstr_w(v), nsres);
937  return E_FAIL;
938  }
939  return S_OK;
940 }
941 
942 static HRESULT WINAPI HTMLTable3_get_summary(IHTMLTable3 *iface, BSTR * p)
943 {
945  nsAString str;
946  nsresult nsres;
947 
948  TRACE("(%p)->(%p)\n", This, p);
949 
951  nsres = nsIDOMHTMLTableElement_GetSummary(This->nstable, &str);
952 
953  return return_nsstr(nsres, &str, p);
954 }
955 
956 static const IHTMLTable3Vtbl HTMLTable3Vtbl = {
966 };
967 
969 {
970  return CONTAINING_RECORD(iface, HTMLTable, element.node);
971 }
972 
974 {
976 
977  *ppv = NULL;
978 
979  if(IsEqualGUID(&IID_IUnknown, riid)) {
980  TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
981  *ppv = &This->IHTMLTable_iface;
982  }else if(IsEqualGUID(&IID_IDispatch, riid)) {
983  TRACE("(%p)->(IID_IDispatch %p)\n", This, ppv);
984  *ppv = &This->IHTMLTable_iface;
985  }else if(IsEqualGUID(&IID_IHTMLTable, riid)) {
986  TRACE("(%p)->(IID_IHTMLTable %p)\n", This, ppv);
987  *ppv = &This->IHTMLTable_iface;
988  }else if(IsEqualGUID(&IID_IHTMLTable2, riid)) {
989  TRACE("(%p)->(IID_IHTMLTable2 %p)\n", This, ppv);
990  *ppv = &This->IHTMLTable2_iface;
991  }else if(IsEqualGUID(&IID_IHTMLTable3, riid)) {
992  TRACE("(%p)->(IID_IHTMLTable3 %p)\n", This, ppv);
993  *ppv = &This->IHTMLTable3_iface;
994  }
995 
996  if(*ppv) {
997  IUnknown_AddRef((IUnknown*)*ppv);
998  return S_OK;
999  }
1000 
1001  return HTMLElement_QI(&This->element.node, riid, ppv);
1002 }
1003 
1005 {
1007 
1008  if(This->nstable)
1009  note_cc_edge((nsISupports*)This->nstable, "This->nstable", cb);
1010 }
1011 
1012 static void HTMLTable_unlink(HTMLDOMNode *iface)
1013 {
1015 
1016  if(This->nstable) {
1017  nsIDOMHTMLTableElement *nstable = This->nstable;
1018 
1019  This->nstable = NULL;
1020  nsIDOMHTMLTableElement_Release(nstable);
1021  }
1022 }
1023 
1024 static const cpc_entry_t HTMLTable_cpc[] = {
1025  {&DIID_HTMLTableEvents},
1027  {NULL}
1028 };
1029 
1031  HTMLTable_QI,
1033  HTMLTable_cpc,
1037  NULL,
1038  NULL,
1039  NULL,
1040  NULL,
1041  NULL,
1042  NULL,
1043  NULL,
1044  NULL,
1045  NULL,
1048 };
1049 
1050 static const tid_t HTMLTable_iface_tids[] = {
1052  IHTMLTable_tid,
1053  IHTMLTable2_tid,
1054  IHTMLTable3_tid,
1055  0
1056 };
1057 
1059  NULL,
1060  DispHTMLTable_tid,
1061  NULL,
1063 };
1064 
1066 {
1067  HTMLTable *ret;
1068  nsresult nsres;
1069 
1070  ret = heap_alloc_zero(sizeof(HTMLTable));
1071  if(!ret)
1072  return E_OUTOFMEMORY;
1073 
1074  ret->element.node.vtbl = &HTMLTableImplVtbl;
1075  ret->IHTMLTable_iface.lpVtbl = &HTMLTableVtbl;
1076  ret->IHTMLTable2_iface.lpVtbl = &HTMLTable2Vtbl;
1077  ret->IHTMLTable3_iface.lpVtbl = &HTMLTable3Vtbl;
1078 
1079  HTMLElement_Init(&ret->element, doc, nselem, &HTMLTable_dispex);
1080 
1081  nsres = nsIDOMHTMLElement_QueryInterface(nselem, &IID_nsIDOMHTMLTableElement, (void**)&ret->nstable);
1082  assert(nsres == NS_OK);
1083 
1084  *elem = &ret->element;
1085  return S_OK;
1086 }
static const IHTMLTableVtbl HTMLTableVtbl
Definition: htmltable.c:710
static HRESULT WINAPI HTMLTable_put_frame(IHTMLTable *iface, BSTR v)
Definition: htmltable.c:179
static ULONG WINAPI HTMLTable2_Release(IHTMLTable2 *iface)
Definition: htmltable.c:785
static HRESULT WINAPI HTMLTable_get_tHead(IHTMLTable *iface, IHTMLTableSection **p)
Definition: htmltable.c:566
static HRESULT WINAPI HTMLTable_get_bgColor(IHTMLTable *iface, VARIANT *p)
Definition: htmltable.c:345
static HRESULT WINAPI HTMLTable_get_borderColor(IHTMLTable *iface, VARIANT *p)
Definition: htmltable.c:378
static void HTMLTable_traverse(HTMLDOMNode *iface, nsCycleCollectionTraversalCallback *cb)
Definition: htmltable.c:1004
static HRESULT WINAPI HTMLTable_get_onreadystatechange(IHTMLTable *iface, VARIANT *p)
Definition: htmltable.c:703
#define REFIID
Definition: guiddef.h:118
static HRESULT WINAPI HTMLTable_put_cellPadding(IHTMLTable *iface, VARIANT v)
Definition: htmltable.c:274
Definition: compat.h:1939
static const NodeImplVtbl HTMLTableImplVtbl
Definition: htmltable.c:1030
IHTMLTable2 IHTMLTable2_iface
Definition: htmltable.c:25
BSTR WINAPI SysAllocStringLen(const OLECHAR *str, unsigned int len)
Definition: oleaut.c:342
static HRESULT WINAPI HTMLTable3_GetTypeInfoCount(IHTMLTable3 *iface, UINT *pctinfo)
Definition: htmltable.c:890
HRESULT HTMLElement_handle_event(HTMLDOMNode *iface, DWORD eid, nsIDOMEvent *event, BOOL *prevent_default)
Definition: htmlelem.c:3815
struct outqueuenode * head
Definition: adnsresfilter.c:66
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
IHTMLTable IHTMLTable_iface
Definition: htmltable.c:24
HRESULT HTMLTableRow_Create(HTMLDocumentNode *doc, nsIDOMHTMLElement *nselem, HTMLElement **elem)
Definition: htmltablerow.c:444
static HRESULT WINAPI HTMLTable_put_height(IHTMLTable *iface, VARIANT v)
Definition: htmltable.c:524
static HRESULT WINAPI HTMLTable2_moveRow(IHTMLTable2 *iface, LONG indexFrom, LONG indexTo, IDispatch **row)
Definition: htmltable.c:845
REFIID riid
Definition: precomp.h:44
HTMLElement element
Definition: htmltable.c:22
static HRESULT WINAPI HTMLTable3_get_summary(IHTMLTable3 *iface, BSTR *p)
Definition: htmltable.c:942
static HRESULT WINAPI HTMLTable_get_rows(IHTMLTable *iface, IHTMLElementCollection **p)
Definition: htmltable.c:453
tid_t
Definition: ieframe.h:311
static HRESULT WINAPI HTMLTable2_firstPage(IHTMLTable2 *iface)
Definition: htmltable.c:824
#define V_R8(A)
Definition: oleauto.h:262
static HRESULT WINAPI HTMLTable_Invoke(IHTMLTable *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
Definition: htmltable.c:142
HRESULT HTMLElement_get_attr_col(HTMLDOMNode *iface, HTMLAttributeCollection **ac)
Definition: htmlelem.c:4827
HRESULT HTMLTable_Create(HTMLDocumentNode *doc, nsIDOMHTMLElement *nselem, HTMLElement **elem)
Definition: htmltable.c:1065
static HRESULT WINAPI HTMLTable_get_cellSpacing(IHTMLTable *iface, VARIANT *p)
Definition: htmltable.c:260
REFIID LPVOID * ppv
Definition: atlbase.h:39
static HRESULT WINAPI HTMLTable_previousPage(IHTMLTable *iface)
Definition: htmltable.c:559
HRESULT HTMLElement_QI(HTMLDOMNode *iface, REFIID riid, void **ppv)
Definition: htmlelem.c:3738
static HRESULT WINAPI HTMLTable_createCaption(IHTMLTable *iface, IHTMLTableCaption **caption)
Definition: htmltable.c:635
#define assert(x)
Definition: debug.h:53
DWORD LCID
Definition: nls.h:13
GLuint GLuint end
Definition: gl.h:1545
OLECHAR * BSTR
Definition: compat.h:1934
static HRESULT WINAPI HTMLTable_get_tBodies(IHTMLTable *iface, IHTMLElementCollection **p)
Definition: htmltable.c:580
static HRESULT WINAPI HTMLTable_put_border(IHTMLTable *iface, VARIANT v)
Definition: htmltable.c:165
static LPOLESTR
Definition: stg_prop.c:27
#define E_FAIL
Definition: ddrawi.h:102
static HRESULT WINAPI HTMLTable3_Invoke(IHTMLTable3 *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
Definition: htmltable.c:913
static HRESULT WINAPI HTMLTable_GetTypeInfoCount(IHTMLTable *iface, UINT *pctinfo)
Definition: htmltable.c:119
static HRESULT WINAPI HTMLTable_put_dataPageSize(IHTMLTable *iface, LONG v)
Definition: htmltable.c:538
#define V_I4(A)
Definition: oleauto.h:247
#define NS_OK
static HTMLTable * impl_from_IHTMLTable3(IHTMLTable3 *iface)
Definition: htmltable.c:41
IHTMLElementCollection * create_collection_from_htmlcol(HTMLDocumentNode *doc, nsIDOMHTMLCollection *nscol)
Definition: htmlelemcol.c:705
#define HTMLELEMENT_TIDS
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
unsigned int BOOL
Definition: ntddk_ex.h:94
long LONG
Definition: pedump.c:60
GLuint color
Definition: glext.h:6243
static HRESULT WINAPI HTMLTable_get_dataPageSize(IHTMLTable *iface, LONG *p)
Definition: htmltable.c:545
#define debugstr_w
Definition: kernel32.h:32
static size_t elem
Definition: string.c:68
#define FIXME(fmt,...)
Definition: debug.h:110
static PVOID ptr
Definition: dispmode.c:27
static HRESULT WINAPI HTMLTable_get_frame(IHTMLTable *iface, BSTR *p)
Definition: htmltable.c:198
const WCHAR * str
smooth NULL
Definition: ftsmooth.c:416
static HRESULT WINAPI HTMLTable_get_borderColorLight(IHTMLTable *iface, VARIANT *p)
Definition: htmltable.c:392
static ULONG WINAPI HTMLTable3_Release(IHTMLTable3 *iface)
Definition: htmltable.c:883
BSTR WINAPI SysAllocString(LPCOLESTR str)
Definition: oleaut.c:241
static HRESULT nsstr_to_truncated_bstr(const nsAString *nsstr, BSTR *ret_ptr)
Definition: htmltable.c:77
static HRESULT return_nsstr_variant(nsresult nsres, nsAString *nsstr, VARIANT *p)
static HRESULT HTMLTable_QI(HTMLDOMNode *iface, REFIID riid, void **ppv)
Definition: htmltable.c:973
GLuint index
Definition: glext.h:6031
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 HTMLTable_deleteTFoot(IHTMLTable *iface)
Definition: htmltable.c:628
static HRESULT WINAPI HTMLTable_createTHead(IHTMLTable *iface, IDispatch **head)
Definition: htmltable.c:607
GLuint GLfloat * val
Definition: glext.h:7180
#define NS_FAILED(res)
static HRESULT WINAPI HTMLTable_get_background(IHTMLTable *iface, BSTR *p)
Definition: htmltable.c:317
HRESULT return_nsstr(nsresult, nsAString *, BSTR *) DECLSPEC_HIDDEN
Definition: nsembed.c:841
HRESULT WINAPI VarBstrFromI4(LONG lIn, LCID lcid, ULONG dwFlags, BSTR *pbstrOut)
Definition: vartype.c:6444
static HRESULT var2str(const VARIANT *p, nsAString *nsstr)
Definition: htmltable.c:46
#define V_R4(A)
Definition: oleauto.h:260
#define TRACE(s)
Definition: solgame.cpp:4
static HRESULT WINAPI HTMLTable_insertRow(IHTMLTable *iface, LONG index, IDispatch **row)
Definition: htmltable.c:649
HRESULT hres
Definition: protocol.c:465
static HRESULT WINAPI HTMLTable3_GetTypeInfo(IHTMLTable3 *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
Definition: htmltable.c:896
__wchar_t WCHAR
Definition: xmlstorage.h:180
static HRESULT WINAPI HTMLTable2_GetTypeInfo(IHTMLTable2 *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
Definition: htmltable.c:798
LONG HRESULT
Definition: typedefs.h:77
const GUID IID_IUnknown
static HRESULT WINAPI HTMLTable_deleteCaption(IHTMLTable *iface)
Definition: htmltable.c:642
#define WINAPI
Definition: msvc.h:8
unsigned short WORD
Definition: ntddk_ex.h:93
void HTMLElement_destructor(HTMLDOMNode *iface)
Definition: htmlelem.c:3764
static HRESULT WINAPI HTMLTable_refresh(IHTMLTable *iface)
Definition: htmltable.c:446
#define HTMLELEMENT_CPC
#define NS_SUCCEEDED(res)
static DWORD cb
Definition: integrity.c:41
static HRESULT WINAPI HTMLTable_GetTypeInfo(IHTMLTable *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
Definition: htmltable.c:125
static HRESULT WINAPI HTMLTable_QueryInterface(IHTMLTable *iface, REFIID riid, void **ppv)
Definition: htmltable.c:97
static HRESULT WINAPI HTMLTable2_lastPage(IHTMLTable2 *iface)
Definition: htmltable.c:831
const GUID IID_IDispatch
static HRESULT WINAPI HTMLTable3_QueryInterface(IHTMLTable3 *iface, REFIID riid, void **ppv)
Definition: htmltable.c:868
HRESULT WINAPI VarBstrFromR8(double dblIn, LCID lcid, ULONG dwFlags, BSTR *pbstrOut)
Definition: vartype.c:6586
int ret
static HRESULT WINAPI HTMLTable_put_align(IHTMLTable *iface, BSTR v)
Definition: htmltable.c:413
BOOL variant_to_nscolor(const VARIANT *v, nsAString *nsstr)
Definition: htmlbody.c:142
static HRESULT WINAPI HTMLTable_put_borderColor(IHTMLTable *iface, VARIANT v)
Definition: htmltable.c:371
Definition: compat.h:1940
HRESULT nscolor_to_str(LPCWSTR color, BSTR *ret)
Definition: htmlbody.c:111
static HRESULT WINAPI HTMLTable_GetIDsOfNames(IHTMLTable *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
Definition: htmltable.c:133
static dispex_static_data_t HTMLTable_dispex
Definition: htmltable.c:1058
static HRESULT WINAPI HTMLTable_put_width(IHTMLTable *iface, VARIANT v)
Definition: htmltable.c:473
static HRESULT WINAPI HTMLTable_put_borderColorDark(IHTMLTable *iface, VARIANT v)
Definition: htmltable.c:399
static HRESULT WINAPI HTMLTable3_put_summary(IHTMLTable3 *iface, BSTR v)
Definition: htmltable.c:922
#define V_VT(A)
Definition: oleauto.h:211
static const IHTMLTable3Vtbl HTMLTable3Vtbl
Definition: htmltable.c:956
void HTMLElement_Init(HTMLElement *This, HTMLDocumentNode *doc, nsIDOMHTMLElement *nselem, dispex_static_data_t *dispex_data)
Definition: htmlelem.c:4008
UINT32 nsAString_GetData(const nsAString *, const PRUnichar **) DECLSPEC_HIDDEN
Definition: nsembed.c:831
#define V_BSTR(A)
Definition: oleauto.h:226
static HRESULT WINAPI HTMLTable_nextPage(IHTMLTable *iface)
Definition: htmltable.c:552
static HRESULT WINAPI HTMLTable_put_onreadystatechange(IHTMLTable *iface, VARIANT v)
Definition: htmltable.c:696
static ULONG WINAPI HTMLTable2_AddRef(IHTMLTable2 *iface)
Definition: htmltable.c:778
static HTMLTable * impl_from_IHTMLTable2(IHTMLTable2 *iface)
Definition: htmltable.c:36
static const cpc_entry_t HTMLTable_cpc[]
Definition: htmltable.c:1024
static ULONG WINAPI HTMLTable_AddRef(IHTMLTable *iface)
Definition: htmltable.c:105
nsIDOMHTMLTableElement * nstable
Definition: htmltable.c:28
_In_ DWORD _Out_ _In_ WORD wFlags
Definition: wincon.h:519
#define ERR(fmt,...)
Definition: debug.h:109
HRESULT HTMLElement_clone(HTMLDOMNode *iface, nsIDOMNode *nsnode, HTMLDOMNode **ret)
Definition: htmlelem.c:3793
static HRESULT WINAPI HTMLTable_get_borderColorDark(IHTMLTable *iface, VARIANT *p)
Definition: htmltable.c:406
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
static HRESULT WINAPI HTMLTable_get_align(IHTMLTable *iface, BSTR *p)
Definition: htmltable.c:432
const GLdouble * v
Definition: gl.h:2040
IHTMLTable3 IHTMLTable3_iface
Definition: htmltable.c:26
static const IHTMLTable2Vtbl HTMLTable2Vtbl
Definition: htmltable.c:853
static HRESULT WINAPI HTMLTable_put_background(IHTMLTable *iface, BSTR v)
Definition: htmltable.c:310
struct nsCycleCollectionTraversalCallback nsCycleCollectionTraversalCallback
static HRESULT WINAPI HTMLTable_put_cols(IHTMLTable *iface, LONG v)
Definition: htmltable.c:151
static HRESULT WINAPI HTMLTable_get_height(IHTMLTable *iface, VARIANT *p)
Definition: htmltable.c:531
static ULONG WINAPI HTMLTable3_AddRef(IHTMLTable3 *iface)
Definition: htmltable.c:876
static HTMLTable * impl_from_HTMLDOMNode(HTMLDOMNode *iface)
Definition: htmltable.c:968
static HRESULT WINAPI HTMLTable2_GetTypeInfoCount(IHTMLTable2 *iface, UINT *pctinfo)
Definition: htmltable.c:792
#define E_NOTIMPL
Definition: ddrawi.h:99
#define sprintfW
Definition: unicode.h:58
WINE_UNICODE_INLINE int isdigitW(WCHAR wc)
Definition: unicode.h:170
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
static HRESULT WINAPI HTMLTable_get_tFoot(IHTMLTable *iface, IHTMLTableSection **p)
Definition: htmltable.c:573
BOOL nsAString_Init(nsAString *, const PRUnichar *) DECLSPEC_HIDDEN
Definition: nsembed.c:817
static HRESULT WINAPI HTMLTable_get_rules(IHTMLTable *iface, BSTR *p)
Definition: htmltable.c:219
void nsAString_Finish(nsAString *) DECLSPEC_HIDDEN
Definition: nsembed.c:836
static HRESULT WINAPI HTMLTable_get_cellPadding(IHTMLTable *iface, VARIANT *p)
Definition: htmltable.c:297
static ULONG WINAPI HTMLTable_Release(IHTMLTable *iface)
Definition: htmltable.c:112
static HRESULT WINAPI HTMLTable_deleteRow(IHTMLTable *iface, LONG index)
Definition: htmltable.c:675
static HRESULT WINAPI HTMLTable_put_cellSpacing(IHTMLTable *iface, VARIANT v)
Definition: htmltable.c:226
static HRESULT WINAPI HTMLTable_deleteTHead(IHTMLTable *iface)
Definition: htmltable.c:614
static HRESULT WINAPI HTMLTable_put_borderColorLight(IHTMLTable *iface, VARIANT v)
Definition: htmltable.c:385
struct stdole::DISPPARAMS DISPPARAMS
static HRESULT WINAPI HTMLTable_put_rules(IHTMLTable *iface, BSTR v)
Definition: htmltable.c:212
HRESULT nsresult
Definition: nsiface.idl:39
WCHAR PRUnichar
Definition: nsiface.idl:48
unsigned int ULONG
Definition: retypes.h:1
static HRESULT WINAPI HTMLTable_get_cols(IHTMLTable *iface, LONG *p)
Definition: htmltable.c:158
static HRESULT WINAPI HTMLTable_get_border(IHTMLTable *iface, VARIANT *p)
Definition: htmltable.c:172
static const tid_t HTMLTable_iface_tids[]
Definition: htmltable.c:1050
static HRESULT WINAPI HTMLTable_get_readyState(IHTMLTable *iface, BSTR *p)
Definition: htmltable.c:689
static HRESULT WINAPI HTMLTable_put_bgColor(IHTMLTable *iface, VARIANT v)
Definition: htmltable.c:324
GLfloat GLfloat p
Definition: glext.h:8902
static HRESULT WINAPI HTMLTable3_GetIDsOfNames(IHTMLTable3 *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
Definition: htmltable.c:904
static HRESULT WINAPI HTMLTable2_QueryInterface(IHTMLTable2 *iface, REFIID riid, void **ppv)
Definition: htmltable.c:770
static HRESULT WINAPI HTMLTable_createTFoot(IHTMLTable *iface, IDispatch **foot)
Definition: htmltable.c:621
static HRESULT WINAPI HTMLTable2_Invoke(IHTMLTable2 *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
Definition: htmltable.c:815
HRESULT WINAPI VarBstrFromR4(FLOAT fltIn, LCID lcid, ULONG dwFlags, BSTR *pbstrOut)
Definition: vartype.c:6565
static void HTMLTable_unlink(HTMLDOMNode *iface)
Definition: htmltable.c:1012
static HRESULT WINAPI HTMLTable2_cells(IHTMLTable2 *iface, IHTMLElementCollection **p)
Definition: htmltable.c:838
static HRESULT WINAPI HTMLTable_get_caption(IHTMLTable *iface, IHTMLTableCaption **p)
Definition: htmltable.c:600
Definition: compat.h:1941
struct png_info_def *typedef unsigned char **typedef struct png_info_def *typedef struct png_info_def *typedef struct png_info_def *typedef unsigned char ** row
Definition: typeof.h:78
static HRESULT WINAPI HTMLTable2_GetIDsOfNames(IHTMLTable2 *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
Definition: htmltable.c:806
static HTMLTable * impl_from_IHTMLTable(IHTMLTable *iface)
Definition: htmltable.c:31
static HRESULT WINAPI HTMLTable_get_width(IHTMLTable *iface, VARIANT *p)
Definition: htmltable.c:499