~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Wine Cross Reference
wine/dlls/mshtml/htmltablerow.c

Version: ~ [ wine-1.5.30 ] ~ [ wine-1.5.29 ] ~ [ wine-1.5.28 ] ~ [ wine-1.5.27 ] ~ [ wine-1.5.26 ] ~ [ wine-1.5.25 ] ~ [ wine-1.5.24 ] ~ [ wine-1.5.23 ] ~ [ wine-1.5.22 ] ~ [ wine-1.5.21 ] ~ [ wine-1.5.20 ] ~ [ wine-1.5.19 ] ~ [ wine-1.5.18 ] ~ [ wine-1.5.17 ] ~ [ wine-1.5.16 ] ~ [ wine-1.5.15 ] ~ [ wine-1.5.14 ] ~ [ wine-1.5.13 ] ~ [ wine-1.5.12 ] ~ [ wine-1.5.11 ] ~ [ wine-1.5.10 ] ~ [ wine-1.5.9 ] ~ [ wine-1.5.8 ] ~ [ wine-1.5.7 ] ~ [ wine-1.4.1 ] ~ [ wine-1.5.6 ] ~ [ wine-1.5.5 ] ~ [ wine-1.5.4 ] ~ [ wine-1.5.3 ] ~ [ wine-1.5.2 ] ~ [ wine-1.5.1 ] ~ [ wine-1.5.0 ] ~ [ wine-1.4 ] ~ [ wine-1.4-rc6 ] ~ [ wine-1.4-rc5 ] ~ [ wine-1.4-rc4 ] ~ [ wine-1.4-rc3 ] ~ [ wine-1.4-rc2 ] ~ [ wine-1.4-rc1 ] ~ [ wine-1.3.37 ] ~ [ wine-1.3.36 ] ~ [ wine-1.3.35 ] ~ [ wine-1.3.34 ] ~ [ wine-1.3.33 ] ~ [ wine-1.3.32 ] ~ [ wine-1.3.31 ] ~ [ wine-1.3.30 ] ~ [ wine-1.3.29 ] ~ [ wine-1.3.28 ] ~ [ wine-1.3.27 ] ~ [ wine-1.3.26 ] ~ [ wine-1.3.25 ] ~ [ wine-1.3.24 ] ~ [ wine-1.3.23 ] ~ [ wine-1.3.22 ] ~ [ wine-1.3.21 ] ~ [ wine-1.3.20 ] ~ [ wine-1.3.19 ] ~ [ wine-1.3.18 ] ~ [ wine-1.2.3 ] ~ [ wine-1.3.17 ] ~ [ wine-1.3.16 ] ~ [ wine-1.3.15 ] ~ [ wine-1.3.14 ] ~ [ wine-1.3.13 ] ~ [ wine-1.3.12 ] ~ [ wine-1.3.11 ] ~ [ wine-1.3.10 ] ~ [ wine-1.3.9 ] ~ [ wine-1.2.2 ] ~ [ wine-1.3.8 ] ~ [ wine-1.3.7 ] ~ [ wine-1.3.6 ] ~ [ wine-1.3.5 ] ~ [ wine-1.2.1 ] ~ [ wine-1.3.4 ] ~ [ wine-1.3.3 ] ~ [ wine-1.3.2 ] ~ [ wine-1.3.1 ] ~ [ wine-1.3.0 ] ~ [ wine-1.2 ] ~ [ wine-1.2-rc7 ] ~ [ wine-1.2-rc6 ] ~ [ wine-1.2-rc5 ] ~ [ wine-1.2-rc4 ] ~ [ wine-1.2-rc3 ] ~ [ wine-1.2-rc2 ] ~ [ wine-1.2-rc1 ] ~ [ wine-1.1.44 ] ~ [ wine-1.1.43 ] ~ [ wine-1.1.42 ] ~ [ wine-1.1.41 ] ~ [ wine-1.1.40 ] ~ [ wine-1.1.39 ] ~ [ wine-1.1.38 ] ~ [ wine-1.1.37 ] ~ [ wine-1.1.36 ] ~ [ wine-1.1.35 ] ~ [ wine-1.1.34 ] ~ [ wine-1.1.33 ] ~ [ wine-1.1.32 ] ~ [ wine-1.1.31 ] ~ [ wine-1.1.30 ] ~ [ wine-1.1.29 ] ~ [ wine-1.1.28 ] ~ [ wine-1.1.27 ] ~ [ wine-1.1.26 ] ~ [ wine-1.1.25 ] ~ [ wine-1.1.24 ] ~ [ wine-1.1.23 ] ~ [ wine-1.1.22 ] ~ [ wine-1.1.21 ] ~ [ wine-1.1.20 ] ~ [ wine-1.1.19 ] ~ [ wine-1.1.18 ] ~ [ wine-1.1.17 ] ~ [ wine-1.1.16 ] ~ [ wine-1.1.15 ] ~ [ wine-1.1.14 ] ~ [ wine-1.1.13 ] ~ [ wine-1.1.12 ] ~ [ wine-1.1.11 ] ~ [ wine-1.1.10 ] ~ [ wine-1.1.9 ] ~ [ wine-1.1.8 ] ~ [ wine-1.1.7 ] ~ [ wine-1.0.1 ] ~ [ wine-1.1.6 ] ~ [ wine-1.1.5 ] ~ [ wine-1.1.4 ] ~ [ wine-1.1.3 ] ~ [ wine-1.1.2 ] ~ [ wine-1.1.1 ] ~ [ wine-1.1.0 ] ~ [ wine-1.0 ] ~

  1 /*
  2  * Copyright 2008 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 <stdarg.h>
 20 
 21 #define COBJMACROS
 22 
 23 #include "windef.h"
 24 #include "winbase.h"
 25 #include "winuser.h"
 26 #include "ole2.h"
 27 
 28 #include "wine/debug.h"
 29 
 30 #include "mshtml_private.h"
 31 
 32 WINE_DEFAULT_DEBUG_CHANNEL(mshtml);
 33 
 34 typedef struct {
 35     HTMLElement element;
 36 
 37     const IHTMLTableRowVtbl *lpHTMLTableRowVtbl;
 38 
 39     nsIDOMHTMLTableRowElement *nsrow;
 40 } HTMLTableRow;
 41 
 42 #define HTMLTABLEROW(x)  (&(x)->lpHTMLTableRowVtbl)
 43 
 44 #define HTMLTABLEROW_THIS(iface) DEFINE_THIS(HTMLTableRow, HTMLTableRow, iface)
 45 
 46 static HRESULT WINAPI HTMLTableRow_QueryInterface(IHTMLTableRow *iface,
 47         REFIID riid, void **ppv)
 48 {
 49     HTMLTableRow *This = HTMLTABLEROW_THIS(iface);
 50 
 51     return IHTMLDOMNode_QueryInterface(HTMLDOMNODE(&This->element.node), riid, ppv);
 52 }
 53 
 54 static ULONG WINAPI HTMLTableRow_AddRef(IHTMLTableRow *iface)
 55 {
 56     HTMLTableRow *This = HTMLTABLEROW_THIS(iface);
 57 
 58     return IHTMLDOMNode_AddRef(HTMLDOMNODE(&This->element.node));
 59 }
 60 
 61 static ULONG WINAPI HTMLTableRow_Release(IHTMLTableRow *iface)
 62 {
 63     HTMLTableRow *This = HTMLTABLEROW_THIS(iface);
 64 
 65     return IHTMLDOMNode_Release(HTMLDOMNODE(&This->element.node));
 66 }
 67 
 68 static HRESULT WINAPI HTMLTableRow_GetTypeInfoCount(IHTMLTableRow *iface, UINT *pctinfo)
 69 {
 70     HTMLTableRow *This = HTMLTABLEROW_THIS(iface);
 71     return IDispatchEx_GetTypeInfoCount(DISPATCHEX(&This->element.node.dispex), pctinfo);
 72 }
 73 
 74 static HRESULT WINAPI HTMLTableRow_GetTypeInfo(IHTMLTableRow *iface, UINT iTInfo,
 75                                               LCID lcid, ITypeInfo **ppTInfo)
 76 {
 77     HTMLTableRow *This = HTMLTABLEROW_THIS(iface);
 78     return IDispatchEx_GetTypeInfo(DISPATCHEX(&This->element.node.dispex), iTInfo, lcid, ppTInfo);
 79 }
 80 
 81 static HRESULT WINAPI HTMLTableRow_GetIDsOfNames(IHTMLTableRow *iface, REFIID riid,
 82                                                 LPOLESTR *rgszNames, UINT cNames,
 83                                                 LCID lcid, DISPID *rgDispId)
 84 {
 85     HTMLTableRow *This = HTMLTABLEROW_THIS(iface);
 86     return IDispatchEx_GetIDsOfNames(DISPATCHEX(&This->element.node.dispex), riid, rgszNames, cNames, lcid, rgDispId);
 87 }
 88 
 89 static HRESULT WINAPI HTMLTableRow_Invoke(IHTMLTableRow *iface, DISPID dispIdMember,
 90                             REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams,
 91                             VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
 92 {
 93     HTMLTableRow *This = HTMLTABLEROW_THIS(iface);
 94     return IDispatchEx_Invoke(DISPATCHEX(&This->element.node.dispex), dispIdMember, riid, lcid, wFlags, pDispParams,
 95             pVarResult, pExcepInfo, puArgErr);
 96 }
 97 
 98 static HRESULT WINAPI HTMLTableRow_put_align(IHTMLTableRow *iface, BSTR v)
 99 {
100     HTMLTableRow *This = HTMLTABLEROW_THIS(iface);
101     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
102     return E_NOTIMPL;
103 }
104 
105 static HRESULT WINAPI HTMLTableRow_get_align(IHTMLTableRow *iface, BSTR *p)
106 {
107     HTMLTableRow *This = HTMLTABLEROW_THIS(iface);
108     FIXME("(%p)->(%p)\n", This, p);
109     return E_NOTIMPL;
110 }
111 
112 static HRESULT WINAPI HTMLTableRow_put_vAlign(IHTMLTableRow *iface, BSTR v)
113 {
114     HTMLTableRow *This = HTMLTABLEROW_THIS(iface);
115     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
116     return E_NOTIMPL;
117 }
118 
119 static HRESULT WINAPI HTMLTableRow_get_vAlign(IHTMLTableRow *iface, BSTR *p)
120 {
121     HTMLTableRow *This = HTMLTABLEROW_THIS(iface);
122     FIXME("(%p)->(%p)\n", This, p);
123     return E_NOTIMPL;
124 }
125 
126 static HRESULT WINAPI HTMLTableRow_put_bgColor(IHTMLTableRow *iface, VARIANT v)
127 {
128     HTMLTableRow *This = HTMLTABLEROW_THIS(iface);
129     FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
130     return E_NOTIMPL;
131 }
132 
133 static HRESULT WINAPI HTMLTableRow_get_bgColor(IHTMLTableRow *iface, VARIANT *p)
134 {
135     HTMLTableRow *This = HTMLTABLEROW_THIS(iface);
136     FIXME("(%p)->(%p)\n", This, p);
137     return E_NOTIMPL;
138 }
139 
140 static HRESULT WINAPI HTMLTableRow_put_borderColor(IHTMLTableRow *iface, VARIANT v)
141 {
142     HTMLTableRow *This = HTMLTABLEROW_THIS(iface);
143     FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
144     return E_NOTIMPL;
145 }
146 
147 static HRESULT WINAPI HTMLTableRow_get_borderColor(IHTMLTableRow *iface, VARIANT *p)
148 {
149     HTMLTableRow *This = HTMLTABLEROW_THIS(iface);
150     FIXME("(%p)->(%p)\n", This, p);
151     return E_NOTIMPL;
152 }
153 
154 static HRESULT WINAPI HTMLTableRow_put_borderColorLight(IHTMLTableRow *iface, VARIANT v)
155 {
156     HTMLTableRow *This = HTMLTABLEROW_THIS(iface);
157     FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
158     return E_NOTIMPL;
159 }
160 
161 static HRESULT WINAPI HTMLTableRow_get_borderColorLight(IHTMLTableRow *iface, VARIANT *p)
162 {
163     HTMLTableRow *This = HTMLTABLEROW_THIS(iface);
164     FIXME("(%p)->(%p)\n", This, p);
165     return E_NOTIMPL;
166 }
167 
168 static HRESULT WINAPI HTMLTableRow_put_borderColorDark(IHTMLTableRow *iface, VARIANT v)
169 {
170     HTMLTableRow *This = HTMLTABLEROW_THIS(iface);
171     FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
172     return E_NOTIMPL;
173 }
174 
175 static HRESULT WINAPI HTMLTableRow_get_borderColorDark(IHTMLTableRow *iface, VARIANT *p)
176 {
177     HTMLTableRow *This = HTMLTABLEROW_THIS(iface);
178     FIXME("(%p)->(%p)\n", This, p);
179     return E_NOTIMPL;
180 }
181 
182 static HRESULT WINAPI HTMLTableRow_get_rowIndex(IHTMLTableRow *iface, LONG *p)
183 {
184     HTMLTableRow *This = HTMLTABLEROW_THIS(iface);
185     FIXME("(%p)->(%p)\n", This, p);
186     return E_NOTIMPL;
187 }
188 
189 static HRESULT WINAPI HTMLTableRow_get_selectionRowIndex(IHTMLTableRow *iface, LONG *p)
190 {
191     HTMLTableRow *This = HTMLTABLEROW_THIS(iface);
192     FIXME("(%p)->(%p)\n", This, p);
193     return E_NOTIMPL;
194 }
195 
196 static HRESULT WINAPI HTMLTableRow_get_cells(IHTMLTableRow *iface, IHTMLElementCollection **p)
197 {
198     HTMLTableRow *This = HTMLTABLEROW_THIS(iface);
199     nsIDOMHTMLCollection *nscol;
200     nsresult nsres;
201 
202     TRACE("(%p)->(%p)\n", This, p);
203 
204     nsres = nsIDOMHTMLTableRowElement_GetCells(This->nsrow, &nscol);
205     if(NS_FAILED(nsres)) {
206         ERR("GetCells failed: %08x\n", nsres);
207         return E_FAIL;
208     }
209 
210     *p = create_collection_from_htmlcol(This->element.node.doc, (IUnknown*)HTMLTABLEROW(This), nscol);
211 
212     nsIDOMHTMLCollection_Release(nscol);
213     return S_OK;
214 }
215 
216 static HRESULT WINAPI HTMLTableRow_insertCell(IHTMLTableRow *iface, LONG index, IDispatch **row)
217 {
218     HTMLTableRow *This = HTMLTABLEROW_THIS(iface);
219     FIXME("(%p)->(%d %p)\n", This, index, row);
220     return E_NOTIMPL;
221 }
222 
223 static HRESULT WINAPI HTMLTableRow_deleteCell(IHTMLTableRow *iface, LONG index)
224 {
225     HTMLTableRow *This = HTMLTABLEROW_THIS(iface);
226     FIXME("(%p)->(%d)\n", This, index);
227     return E_NOTIMPL;
228 }
229 
230 #undef HTMLTABLEROW_THIS
231 
232 static const IHTMLTableRowVtbl HTMLTableRowVtbl = {
233     HTMLTableRow_QueryInterface,
234     HTMLTableRow_AddRef,
235     HTMLTableRow_Release,
236     HTMLTableRow_GetTypeInfoCount,
237     HTMLTableRow_GetTypeInfo,
238     HTMLTableRow_GetIDsOfNames,
239     HTMLTableRow_Invoke,
240     HTMLTableRow_put_align,
241     HTMLTableRow_get_align,
242     HTMLTableRow_put_vAlign,
243     HTMLTableRow_get_vAlign,
244     HTMLTableRow_put_bgColor,
245     HTMLTableRow_get_bgColor,
246     HTMLTableRow_put_borderColor,
247     HTMLTableRow_get_borderColor,
248     HTMLTableRow_put_borderColorLight,
249     HTMLTableRow_get_borderColorLight,
250     HTMLTableRow_put_borderColorDark,
251     HTMLTableRow_get_borderColorDark,
252     HTMLTableRow_get_rowIndex,
253     HTMLTableRow_get_selectionRowIndex,
254     HTMLTableRow_get_cells,
255     HTMLTableRow_insertCell,
256     HTMLTableRow_deleteCell
257 };
258 
259 #define HTMLTABLEROW_NODE_THIS(iface) DEFINE_THIS2(HTMLTableRow, element.node, iface)
260 
261 static HRESULT HTMLTableRow_QI(HTMLDOMNode *iface, REFIID riid, void **ppv)
262 {
263     HTMLTableRow *This = HTMLTABLEROW_NODE_THIS(iface);
264 
265     *ppv = NULL;
266 
267     if(IsEqualGUID(&IID_IUnknown, riid)) {
268         TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
269         *ppv = HTMLTABLEROW(This);
270     }else if(IsEqualGUID(&IID_IDispatch, riid)) {
271         TRACE("(%p)->(IID_IDispatch %p)\n", This, ppv);
272         *ppv = HTMLTABLEROW(This);
273     }else if(IsEqualGUID(&IID_IHTMLTableRow, riid)) {
274         TRACE("(%p)->(IID_IHTMLTableRow %p)\n", This, ppv);
275         *ppv = HTMLTABLEROW(This);
276     }
277 
278     if(*ppv) {
279         IUnknown_AddRef((IUnknown*)*ppv);
280         return S_OK;
281     }
282 
283     return HTMLElement_QI(&This->element.node, riid, ppv);
284 }
285 
286 static void HTMLTableRow_destructor(HTMLDOMNode *iface)
287 {
288     HTMLTableRow *This = HTMLTABLEROW_NODE_THIS(iface);
289 
290     if(This->nsrow)
291         nsIDOMHTMLTableRowElement_Release(This->nsrow);
292 
293     HTMLElement_destructor(&This->element.node);
294 }
295 
296 #undef HTMLTABLEROW_NODE_THIS
297 
298 static const NodeImplVtbl HTMLTableRowImplVtbl = {
299     HTMLTableRow_QI,
300     HTMLTableRow_destructor
301 };
302 
303 static const tid_t HTMLTableRow_iface_tids[] = {
304     IHTMLDOMNode_tid,
305     IHTMLDOMNode2_tid,
306     IHTMLElement_tid,
307     IHTMLElement2_tid,
308     IHTMLElement3_tid,
309     IHTMLTableRow_tid,
310     0
311 };
312 
313 static dispex_static_data_t HTMLTableRow_dispex = {
314     NULL,
315     DispHTMLTableRow_tid,
316     NULL,
317     HTMLTableRow_iface_tids
318 };
319 
320 HTMLElement *HTMLTableRow_Create(HTMLDocumentNode *doc, nsIDOMHTMLElement *nselem)
321 {
322     HTMLTableRow *ret = heap_alloc_zero(sizeof(HTMLTableRow));
323     nsresult nsres;
324 
325     ret->lpHTMLTableRowVtbl = &HTMLTableRowVtbl;
326     ret->element.node.vtbl = &HTMLTableRowImplVtbl;
327 
328     HTMLElement_Init(&ret->element, doc, nselem, &HTMLTableRow_dispex);
329 
330     nsres = nsIDOMHTMLElement_QueryInterface(nselem, &IID_nsIDOMHTMLTableRowElement, (void**)&ret->nsrow);
331     if(NS_FAILED(nsres))
332         ERR("Could not get nsIDOMHTMLTableRowElement iface: %08x\n", nsres);
333 
334     return &ret->element;
335 }
336 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.