Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenhtmltable.c
Go to the documentation of this file.
00001 /* 00002 * Copyright 2007 Jacek Caban for CodeWeavers 00003 * 00004 * This library is free software; you can redistribute it and/or 00005 * modify it under the terms of the GNU Lesser General Public 00006 * License as published by the Free Software Foundation; either 00007 * version 2.1 of the License, or (at your option) any later version. 00008 * 00009 * This library is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 * Lesser General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU Lesser General Public 00015 * License along with this library; if not, write to the Free Software 00016 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 00017 */ 00018 00019 #include <stdarg.h> 00020 00021 #define COBJMACROS 00022 00023 #include "windef.h" 00024 #include "winbase.h" 00025 #include "winuser.h" 00026 #include "ole2.h" 00027 00028 #include "wine/debug.h" 00029 00030 #include "mshtml_private.h" 00031 00032 WINE_DEFAULT_DEBUG_CHANNEL(mshtml); 00033 00034 struct HTMLTable { 00035 HTMLElement element; 00036 00037 const IHTMLTableVtbl *lpHTMLTableVtbl; 00038 00039 ConnectionPoint cp; 00040 nsIDOMHTMLTableElement *nstable; 00041 }; 00042 00043 #define HTMLTABLE(x) (&(x)->lpHTMLTableVtbl) 00044 00045 #define HTMLTABLE_THIS(iface) DEFINE_THIS(HTMLTable, HTMLTable, iface) 00046 00047 static HRESULT WINAPI HTMLTable_QueryInterface(IHTMLTable *iface, 00048 REFIID riid, void **ppv) 00049 { 00050 HTMLTable *This = HTMLTABLE_THIS(iface); 00051 00052 return IHTMLDOMNode_QueryInterface(HTMLDOMNODE(&This->element.node), riid, ppv); 00053 } 00054 00055 static ULONG WINAPI HTMLTable_AddRef(IHTMLTable *iface) 00056 { 00057 HTMLTable *This = HTMLTABLE_THIS(iface); 00058 00059 return IHTMLDOMNode_AddRef(HTMLDOMNODE(&This->element.node)); 00060 } 00061 00062 static ULONG WINAPI HTMLTable_Release(IHTMLTable *iface) 00063 { 00064 HTMLTable *This = HTMLTABLE_THIS(iface); 00065 00066 return IHTMLDOMNode_Release(HTMLDOMNODE(&This->element.node)); 00067 } 00068 00069 static HRESULT WINAPI HTMLTable_GetTypeInfoCount(IHTMLTable *iface, UINT *pctinfo) 00070 { 00071 HTMLTable *This = HTMLTABLE_THIS(iface); 00072 return IDispatchEx_GetTypeInfoCount(DISPATCHEX(&This->element.node.dispex), pctinfo); 00073 } 00074 00075 static HRESULT WINAPI HTMLTable_GetTypeInfo(IHTMLTable *iface, UINT iTInfo, 00076 LCID lcid, ITypeInfo **ppTInfo) 00077 { 00078 HTMLTable *This = HTMLTABLE_THIS(iface); 00079 return IDispatchEx_GetTypeInfo(DISPATCHEX(&This->element.node.dispex), iTInfo, lcid, ppTInfo); 00080 } 00081 00082 static HRESULT WINAPI HTMLTable_GetIDsOfNames(IHTMLTable *iface, REFIID riid, 00083 LPOLESTR *rgszNames, UINT cNames, 00084 LCID lcid, DISPID *rgDispId) 00085 { 00086 HTMLTable *This = HTMLTABLE_THIS(iface); 00087 return IDispatchEx_GetIDsOfNames(DISPATCHEX(&This->element.node.dispex), riid, rgszNames, cNames, lcid, rgDispId); 00088 } 00089 00090 static HRESULT WINAPI HTMLTable_Invoke(IHTMLTable *iface, DISPID dispIdMember, 00091 REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, 00092 VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) 00093 { 00094 HTMLTable *This = HTMLTABLE_THIS(iface); 00095 return IDispatchEx_Invoke(DISPATCHEX(&This->element.node.dispex), dispIdMember, riid, lcid, wFlags, pDispParams, 00096 pVarResult, pExcepInfo, puArgErr); 00097 } 00098 00099 static HRESULT WINAPI HTMLTable_put_cols(IHTMLTable *iface, LONG v) 00100 { 00101 HTMLTable *This = HTMLTABLE_THIS(iface); 00102 FIXME("(%p)->(%d)\n", This, v); 00103 return E_NOTIMPL; 00104 } 00105 00106 static HRESULT WINAPI HTMLTable_get_cols(IHTMLTable *iface, LONG *p) 00107 { 00108 HTMLTable *This = HTMLTABLE_THIS(iface); 00109 FIXME("(%p)->(%p)\n", This, p); 00110 return E_NOTIMPL; 00111 } 00112 00113 static HRESULT WINAPI HTMLTable_put_border(IHTMLTable *iface, VARIANT v) 00114 { 00115 HTMLTable *This = HTMLTABLE_THIS(iface); 00116 FIXME("(%p)->(v)\n", This); 00117 return E_NOTIMPL; 00118 } 00119 00120 static HRESULT WINAPI HTMLTable_get_border(IHTMLTable *iface, VARIANT *p) 00121 { 00122 HTMLTable *This = HTMLTABLE_THIS(iface); 00123 FIXME("(%p)->(%p)\n", This, p); 00124 return E_NOTIMPL; 00125 } 00126 00127 static HRESULT WINAPI HTMLTable_put_frame(IHTMLTable *iface, BSTR v) 00128 { 00129 HTMLTable *This = HTMLTABLE_THIS(iface); 00130 FIXME("(%p)->(%s)\n", This, debugstr_w(v)); 00131 return E_NOTIMPL; 00132 } 00133 00134 static HRESULT WINAPI HTMLTable_get_frame(IHTMLTable *iface, BSTR *p) 00135 { 00136 HTMLTable *This = HTMLTABLE_THIS(iface); 00137 FIXME("(%p)->(%p)\n", This, p); 00138 return E_NOTIMPL; 00139 } 00140 00141 static HRESULT WINAPI HTMLTable_put_rules(IHTMLTable *iface, BSTR v) 00142 { 00143 HTMLTable *This = HTMLTABLE_THIS(iface); 00144 FIXME("(%p)->(%s)\n", This, debugstr_w(v)); 00145 return E_NOTIMPL; 00146 } 00147 00148 static HRESULT WINAPI HTMLTable_get_rules(IHTMLTable *iface, BSTR *p) 00149 { 00150 HTMLTable *This = HTMLTABLE_THIS(iface); 00151 FIXME("(%p)->(%p)\n", This, p); 00152 return E_NOTIMPL; 00153 } 00154 00155 static HRESULT WINAPI HTMLTable_put_cellSpacing(IHTMLTable *iface, VARIANT v) 00156 { 00157 HTMLTable *This = HTMLTABLE_THIS(iface); 00158 FIXME("(%p)->(v)\n", This); 00159 return E_NOTIMPL; 00160 } 00161 00162 static HRESULT WINAPI HTMLTable_get_cellSpacing(IHTMLTable *iface, VARIANT *p) 00163 { 00164 HTMLTable *This = HTMLTABLE_THIS(iface); 00165 FIXME("(%p)->(%p)\n", This, p); 00166 return E_NOTIMPL; 00167 } 00168 00169 static HRESULT WINAPI HTMLTable_put_cellPadding(IHTMLTable *iface, VARIANT v) 00170 { 00171 HTMLTable *This = HTMLTABLE_THIS(iface); 00172 FIXME("(%p)->(v)\n", This); 00173 return E_NOTIMPL; 00174 } 00175 00176 static HRESULT WINAPI HTMLTable_get_cellPadding(IHTMLTable *iface, VARIANT *p) 00177 { 00178 HTMLTable *This = HTMLTABLE_THIS(iface); 00179 FIXME("(%p)->(%p)\n", This, p); 00180 return E_NOTIMPL; 00181 } 00182 00183 static HRESULT WINAPI HTMLTable_put_background(IHTMLTable *iface, BSTR v) 00184 { 00185 HTMLTable *This = HTMLTABLE_THIS(iface); 00186 FIXME("(%p)->(%s)\n", This, debugstr_w(v)); 00187 return E_NOTIMPL; 00188 } 00189 00190 static HRESULT WINAPI HTMLTable_get_background(IHTMLTable *iface, BSTR *p) 00191 { 00192 HTMLTable *This = HTMLTABLE_THIS(iface); 00193 FIXME("(%p)->(%p)\n", This, p); 00194 return E_NOTIMPL; 00195 } 00196 00197 static HRESULT WINAPI HTMLTable_put_bgColor(IHTMLTable *iface, VARIANT v) 00198 { 00199 HTMLTable *This = HTMLTABLE_THIS(iface); 00200 FIXME("(%p)->(v)\n", This); 00201 return E_NOTIMPL; 00202 } 00203 00204 static HRESULT WINAPI HTMLTable_get_bgColor(IHTMLTable *iface, VARIANT *p) 00205 { 00206 HTMLTable *This = HTMLTABLE_THIS(iface); 00207 FIXME("(%p)->(%p)\n", This, p); 00208 return E_NOTIMPL; 00209 } 00210 00211 static HRESULT WINAPI HTMLTable_put_borderColor(IHTMLTable *iface, VARIANT v) 00212 { 00213 HTMLTable *This = HTMLTABLE_THIS(iface); 00214 FIXME("(%p)->(v)\n", This); 00215 return E_NOTIMPL; 00216 } 00217 00218 static HRESULT WINAPI HTMLTable_get_borderColor(IHTMLTable *iface, VARIANT *p) 00219 { 00220 HTMLTable *This = HTMLTABLE_THIS(iface); 00221 FIXME("(%p)->(%p)\n", This, p); 00222 return E_NOTIMPL; 00223 } 00224 00225 static HRESULT WINAPI HTMLTable_put_borderColorLight(IHTMLTable *iface, VARIANT v) 00226 { 00227 HTMLTable *This = HTMLTABLE_THIS(iface); 00228 FIXME("(%p)->(v)\n", This); 00229 return E_NOTIMPL; 00230 } 00231 00232 static HRESULT WINAPI HTMLTable_get_borderColorLight(IHTMLTable *iface, VARIANT *p) 00233 { 00234 HTMLTable *This = HTMLTABLE_THIS(iface); 00235 FIXME("(%p)->(%p)\n", This, p); 00236 return E_NOTIMPL; 00237 } 00238 00239 static HRESULT WINAPI HTMLTable_put_borderColorDark(IHTMLTable *iface, VARIANT v) 00240 { 00241 HTMLTable *This = HTMLTABLE_THIS(iface); 00242 FIXME("(%p)->(v)\n", This); 00243 return E_NOTIMPL; 00244 } 00245 00246 static HRESULT WINAPI HTMLTable_get_borderColorDark(IHTMLTable *iface, VARIANT *p) 00247 { 00248 HTMLTable *This = HTMLTABLE_THIS(iface); 00249 FIXME("(%p)->(%p)\n", This, p); 00250 return E_NOTIMPL; 00251 } 00252 00253 static HRESULT WINAPI HTMLTable_put_align(IHTMLTable *iface, BSTR v) 00254 { 00255 HTMLTable *This = HTMLTABLE_THIS(iface); 00256 FIXME("(%p)->(%s)\n", This, debugstr_w(v)); 00257 return E_NOTIMPL; 00258 } 00259 00260 static HRESULT WINAPI HTMLTable_get_align(IHTMLTable *iface, BSTR *p) 00261 { 00262 HTMLTable *This = HTMLTABLE_THIS(iface); 00263 FIXME("(%p)->(%p)\n", This, p); 00264 return E_NOTIMPL; 00265 } 00266 00267 static HRESULT WINAPI HTMLTable_refresh(IHTMLTable *iface) 00268 { 00269 HTMLTable *This = HTMLTABLE_THIS(iface); 00270 FIXME("(%p)\n", This); 00271 return E_NOTIMPL; 00272 } 00273 00274 static HRESULT WINAPI HTMLTable_get_rows(IHTMLTable *iface, IHTMLElementCollection **p) 00275 { 00276 HTMLTable *This = HTMLTABLE_THIS(iface); 00277 nsIDOMHTMLCollection *nscol; 00278 nsresult nsres; 00279 00280 TRACE("(%p)->(%p)\n", This, p); 00281 00282 nsres = nsIDOMHTMLTableElement_GetRows(This->nstable, &nscol); 00283 if(NS_FAILED(nsres)) { 00284 ERR("GetRows failed: %08x\n", nsres); 00285 return E_FAIL; 00286 } 00287 00288 *p = create_collection_from_htmlcol(This->element.node.doc, (IUnknown*)HTMLTABLE(This), nscol); 00289 00290 nsIDOMHTMLCollection_Release(nscol); 00291 return S_OK; 00292 } 00293 00294 static HRESULT WINAPI HTMLTable_put_width(IHTMLTable *iface, VARIANT v) 00295 { 00296 HTMLTable *This = HTMLTABLE_THIS(iface); 00297 FIXME("(%p)->(v)\n", This); 00298 return E_NOTIMPL; 00299 } 00300 00301 static HRESULT WINAPI HTMLTable_get_width(IHTMLTable *iface, VARIANT *p) 00302 { 00303 HTMLTable *This = HTMLTABLE_THIS(iface); 00304 FIXME("(%p)->(%p)\n", This, p); 00305 return E_NOTIMPL; 00306 } 00307 00308 static HRESULT WINAPI HTMLTable_put_height(IHTMLTable *iface, VARIANT v) 00309 { 00310 HTMLTable *This = HTMLTABLE_THIS(iface); 00311 FIXME("(%p)->(v)\n", This); 00312 return E_NOTIMPL; 00313 } 00314 00315 static HRESULT WINAPI HTMLTable_get_height(IHTMLTable *iface, VARIANT *p) 00316 { 00317 HTMLTable *This = HTMLTABLE_THIS(iface); 00318 FIXME("(%p)->(%p)\n", This, p); 00319 return E_NOTIMPL; 00320 } 00321 00322 static HRESULT WINAPI HTMLTable_put_dataPageSize(IHTMLTable *iface, LONG v) 00323 { 00324 HTMLTable *This = HTMLTABLE_THIS(iface); 00325 FIXME("(%p)->(%d)\n", This, v); 00326 return E_NOTIMPL; 00327 } 00328 00329 static HRESULT WINAPI HTMLTable_get_dataPageSize(IHTMLTable *iface, LONG *p) 00330 { 00331 HTMLTable *This = HTMLTABLE_THIS(iface); 00332 FIXME("(%p)->(%p)\n", This, p); 00333 return E_NOTIMPL; 00334 } 00335 00336 static HRESULT WINAPI HTMLTable_nextPage(IHTMLTable *iface) 00337 { 00338 HTMLTable *This = HTMLTABLE_THIS(iface); 00339 FIXME("(%p)\n", This); 00340 return E_NOTIMPL; 00341 } 00342 00343 static HRESULT WINAPI HTMLTable_previousPage(IHTMLTable *iface) 00344 { 00345 HTMLTable *This = HTMLTABLE_THIS(iface); 00346 FIXME("(%p)\n", This); 00347 return E_NOTIMPL; 00348 } 00349 00350 static HRESULT WINAPI HTMLTable_get_tHead(IHTMLTable *iface, IHTMLTableSection **p) 00351 { 00352 HTMLTable *This = HTMLTABLE_THIS(iface); 00353 FIXME("(%p)->(%p)\n", This, p); 00354 return E_NOTIMPL; 00355 } 00356 00357 static HRESULT WINAPI HTMLTable_get_tFoot(IHTMLTable *iface, IHTMLTableSection **p) 00358 { 00359 HTMLTable *This = HTMLTABLE_THIS(iface); 00360 FIXME("(%p)->(%p)\n", This, p); 00361 return E_NOTIMPL; 00362 } 00363 00364 static HRESULT WINAPI HTMLTable_get_tBodies(IHTMLTable *iface, IHTMLElementCollection **p) 00365 { 00366 HTMLTable *This = HTMLTABLE_THIS(iface); 00367 FIXME("(%p)->(%p)\n", This, p); 00368 return E_NOTIMPL; 00369 } 00370 00371 static HRESULT WINAPI HTMLTable_get_caption(IHTMLTable *iface, IHTMLTableCaption **p) 00372 { 00373 HTMLTable *This = HTMLTABLE_THIS(iface); 00374 FIXME("(%p)->(%p)\n", This, p); 00375 return E_NOTIMPL; 00376 } 00377 00378 static HRESULT WINAPI HTMLTable_createTHead(IHTMLTable *iface, IDispatch **head) 00379 { 00380 HTMLTable *This = HTMLTABLE_THIS(iface); 00381 FIXME("(%p)->(%p)\n", This, head); 00382 return E_NOTIMPL; 00383 } 00384 00385 static HRESULT WINAPI HTMLTable_deleteTHead(IHTMLTable *iface) 00386 { 00387 HTMLTable *This = HTMLTABLE_THIS(iface); 00388 FIXME("(%p)\n", This); 00389 return E_NOTIMPL; 00390 } 00391 00392 static HRESULT WINAPI HTMLTable_createTFoot(IHTMLTable *iface, IDispatch **foot) 00393 { 00394 HTMLTable *This = HTMLTABLE_THIS(iface); 00395 FIXME("(%p)->(%p)\n", This, foot); 00396 return E_NOTIMPL; 00397 } 00398 00399 static HRESULT WINAPI HTMLTable_deleteTFoot(IHTMLTable *iface) 00400 { 00401 HTMLTable *This = HTMLTABLE_THIS(iface); 00402 FIXME("(%p)\n", This); 00403 return E_NOTIMPL; 00404 } 00405 00406 static HRESULT WINAPI HTMLTable_createCaption(IHTMLTable *iface, IHTMLTableCaption **caption) 00407 { 00408 HTMLTable *This = HTMLTABLE_THIS(iface); 00409 FIXME("(%p)->(%p)\n", This, caption); 00410 return E_NOTIMPL; 00411 } 00412 00413 static HRESULT WINAPI HTMLTable_deleteCaption(IHTMLTable *iface) 00414 { 00415 HTMLTable *This = HTMLTABLE_THIS(iface); 00416 FIXME("(%p)\n", This); 00417 return E_NOTIMPL; 00418 } 00419 00420 static HRESULT WINAPI HTMLTable_insertRow(IHTMLTable *iface, LONG index, IDispatch **row) 00421 { 00422 HTMLTable *This = HTMLTABLE_THIS(iface); 00423 FIXME("(%p)->(%d %p)\n", This, index, row); 00424 return E_NOTIMPL; 00425 } 00426 00427 static HRESULT WINAPI HTMLTable_deleteRow(IHTMLTable *iface, LONG index) 00428 { 00429 HTMLTable *This = HTMLTABLE_THIS(iface); 00430 FIXME("(%p)->(%d)\n", This, index); 00431 return E_NOTIMPL; 00432 } 00433 00434 static HRESULT WINAPI HTMLTable_get_readyState(IHTMLTable *iface, BSTR *p) 00435 { 00436 HTMLTable *This = HTMLTABLE_THIS(iface); 00437 FIXME("(%p)->(%p)\n", This, p); 00438 return E_NOTIMPL; 00439 } 00440 00441 static HRESULT WINAPI HTMLTable_put_onreadystatechange(IHTMLTable *iface, VARIANT v) 00442 { 00443 HTMLTable *This = HTMLTABLE_THIS(iface); 00444 FIXME("(%p)->(v)\n", This); 00445 return E_NOTIMPL; 00446 } 00447 00448 static HRESULT WINAPI HTMLTable_get_onreadystatechange(IHTMLTable *iface, VARIANT *p) 00449 { 00450 HTMLTable *This = HTMLTABLE_THIS(iface); 00451 FIXME("(%p)->(%p)\n", This, p); 00452 return E_NOTIMPL; 00453 } 00454 00455 #undef HTMLTABLE_THIS 00456 00457 static const IHTMLTableVtbl HTMLTableVtbl = { 00458 HTMLTable_QueryInterface, 00459 HTMLTable_AddRef, 00460 HTMLTable_Release, 00461 HTMLTable_GetTypeInfoCount, 00462 HTMLTable_GetTypeInfo, 00463 HTMLTable_GetIDsOfNames, 00464 HTMLTable_Invoke, 00465 HTMLTable_put_cols, 00466 HTMLTable_get_cols, 00467 HTMLTable_put_border, 00468 HTMLTable_get_border, 00469 HTMLTable_put_frame, 00470 HTMLTable_get_frame, 00471 HTMLTable_put_rules, 00472 HTMLTable_get_rules, 00473 HTMLTable_put_cellSpacing, 00474 HTMLTable_get_cellSpacing, 00475 HTMLTable_put_cellPadding, 00476 HTMLTable_get_cellPadding, 00477 HTMLTable_put_background, 00478 HTMLTable_get_background, 00479 HTMLTable_put_bgColor, 00480 HTMLTable_get_bgColor, 00481 HTMLTable_put_borderColor, 00482 HTMLTable_get_borderColor, 00483 HTMLTable_put_borderColorLight, 00484 HTMLTable_get_borderColorLight, 00485 HTMLTable_put_borderColorDark, 00486 HTMLTable_get_borderColorDark, 00487 HTMLTable_put_align, 00488 HTMLTable_get_align, 00489 HTMLTable_refresh, 00490 HTMLTable_get_rows, 00491 HTMLTable_put_width, 00492 HTMLTable_get_width, 00493 HTMLTable_put_height, 00494 HTMLTable_get_height, 00495 HTMLTable_put_dataPageSize, 00496 HTMLTable_get_dataPageSize, 00497 HTMLTable_nextPage, 00498 HTMLTable_previousPage, 00499 HTMLTable_get_tHead, 00500 HTMLTable_get_tFoot, 00501 HTMLTable_get_tBodies, 00502 HTMLTable_get_caption, 00503 HTMLTable_createTHead, 00504 HTMLTable_deleteTHead, 00505 HTMLTable_createTFoot, 00506 HTMLTable_deleteTFoot, 00507 HTMLTable_createCaption, 00508 HTMLTable_deleteCaption, 00509 HTMLTable_insertRow, 00510 HTMLTable_deleteRow, 00511 HTMLTable_get_readyState, 00512 HTMLTable_put_onreadystatechange, 00513 HTMLTable_get_onreadystatechange 00514 }; 00515 00516 #define HTMLTABLE_NODE_THIS(iface) DEFINE_THIS2(HTMLTable, element.node, iface) 00517 00518 static HRESULT HTMLTable_QI(HTMLDOMNode *iface, REFIID riid, void **ppv) 00519 { 00520 HTMLTable *This = HTMLTABLE_NODE_THIS(iface); 00521 00522 *ppv = NULL; 00523 00524 if(IsEqualGUID(&IID_IUnknown, riid)) { 00525 TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); 00526 *ppv = HTMLTABLE(This); 00527 }else if(IsEqualGUID(&IID_IDispatch, riid)) { 00528 TRACE("(%p)->(IID_IDispatch %p)\n", This, ppv); 00529 *ppv = HTMLTABLE(This); 00530 }else if(IsEqualGUID(&IID_IHTMLTable, riid)) { 00531 TRACE("(%p)->(IID_IHTMLTable %p)\n", This, ppv); 00532 *ppv = HTMLTABLE(This); 00533 } 00534 00535 if(*ppv) { 00536 IUnknown_AddRef((IUnknown*)*ppv); 00537 return S_OK; 00538 } 00539 00540 return HTMLElement_QI(&This->element.node, riid, ppv); 00541 } 00542 00543 static void HTMLTable_destructor(HTMLDOMNode *iface) 00544 { 00545 HTMLTable *This = HTMLTABLE_NODE_THIS(iface); 00546 00547 if(This->nstable) 00548 nsIDOMHTMLTableElement_Release(This->nstable); 00549 00550 HTMLElement_destructor(&This->element.node); 00551 } 00552 00553 #undef HTMLTABLE_NODE_THIS 00554 00555 static const NodeImplVtbl HTMLTableImplVtbl = { 00556 HTMLTable_QI, 00557 HTMLTable_destructor 00558 }; 00559 00560 static const tid_t HTMLTable_iface_tids[] = { 00561 HTMLELEMENT_TIDS, 00562 IHTMLTable_tid, 00563 0 00564 }; 00565 00566 static dispex_static_data_t HTMLTable_dispex = { 00567 NULL, 00568 DispHTMLTable_tid, 00569 NULL, 00570 HTMLTable_iface_tids 00571 }; 00572 00573 HTMLElement *HTMLTable_Create(HTMLDocumentNode *doc, nsIDOMHTMLElement *nselem) 00574 { 00575 HTMLTable *ret = heap_alloc_zero(sizeof(HTMLTable)); 00576 nsresult nsres; 00577 00578 ret->element.node.vtbl = &HTMLTableImplVtbl; 00579 ret->lpHTMLTableVtbl = &HTMLTableVtbl; 00580 00581 HTMLElement_Init(&ret->element, doc, nselem, &HTMLTable_dispex); 00582 00583 ConnectionPoint_Init(&ret->cp, &ret->element.cp_container, &DIID_HTMLTableEvents, NULL); 00584 00585 nsres = nsIDOMHTMLElement_QueryInterface(nselem, &IID_nsIDOMHTMLTableElement, (void**)&ret->nstable); 00586 if(NS_FAILED(nsres)) 00587 ERR("Could not get nsIDOMHTMLTableElement iface: %08x\n", nsres); 00588 00589 return &ret->element; 00590 } Generated on Sat May 26 2012 04:23:36 for ReactOS by
1.7.6.1
|