2 * Copyright 2008 Jacek Caban for CodeWeavers
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.
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.
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
29 #include "mshtml_private.h"
30 #include "htmlstyle.h"
32 #include "wine/debug.h"
34 WINE_DEFAULT_DEBUG_CHANNEL(mshtml
);
36 struct HTMLCurrentStyle
{
38 IHTMLCurrentStyle IHTMLCurrentStyle_iface
;
39 IHTMLCurrentStyle2 IHTMLCurrentStyle2_iface
;
40 IHTMLCurrentStyle3 IHTMLCurrentStyle3_iface
;
41 IHTMLCurrentStyle4 IHTMLCurrentStyle4_iface
;
45 nsIDOMCSSStyleDeclaration
*nsstyle
;
49 static inline HTMLCurrentStyle
*impl_from_IHTMLCurrentStyle(IHTMLCurrentStyle
*iface
)
51 return CONTAINING_RECORD(iface
, HTMLCurrentStyle
, IHTMLCurrentStyle_iface
);
54 static inline HTMLCurrentStyle
*impl_from_IHTMLCurrentStyle2(IHTMLCurrentStyle2
*iface
)
56 return CONTAINING_RECORD(iface
, HTMLCurrentStyle
, IHTMLCurrentStyle2_iface
);
59 static inline HTMLCurrentStyle
*impl_from_IHTMLCurrentStyle3(IHTMLCurrentStyle3
*iface
)
61 return CONTAINING_RECORD(iface
, HTMLCurrentStyle
, IHTMLCurrentStyle3_iface
);
64 static inline HTMLCurrentStyle
*impl_from_IHTMLCurrentStyle4(IHTMLCurrentStyle4
*iface
)
66 return CONTAINING_RECORD(iface
, HTMLCurrentStyle
, IHTMLCurrentStyle4_iface
);
69 static HRESULT WINAPI
HTMLCurrentStyle_QueryInterface(IHTMLCurrentStyle
*iface
, REFIID riid
, void **ppv
)
71 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
73 TRACE("(%p)->(%s %p)\n", This
, debugstr_mshtml_guid(riid
), ppv
);
75 if(IsEqualGUID(&IID_IUnknown
, riid
)) {
76 *ppv
= &This
->IHTMLCurrentStyle_iface
;
77 }else if(IsEqualGUID(&IID_IHTMLCurrentStyle
, riid
)) {
78 *ppv
= &This
->IHTMLCurrentStyle_iface
;
79 }else if(IsEqualGUID(&IID_IHTMLCurrentStyle2
, riid
)) {
80 *ppv
= &This
->IHTMLCurrentStyle2_iface
;
81 }else if(IsEqualGUID(&IID_IHTMLCurrentStyle3
, riid
)) {
82 *ppv
= &This
->IHTMLCurrentStyle3_iface
;
83 }else if(IsEqualGUID(&IID_IHTMLCurrentStyle4
, riid
)) {
84 *ppv
= &This
->IHTMLCurrentStyle4_iface
;
85 }else if(dispex_query_interface(&This
->dispex
, riid
, ppv
)) {
86 return *ppv
? S_OK
: E_NOINTERFACE
;
89 WARN("unsupported %s\n", debugstr_mshtml_guid(riid
));
93 IUnknown_AddRef((IUnknown
*)*ppv
);
97 static ULONG WINAPI
HTMLCurrentStyle_AddRef(IHTMLCurrentStyle
*iface
)
99 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
100 LONG ref
= InterlockedIncrement(&This
->ref
);
102 TRACE("(%p) ref=%d\n", This
, ref
);
107 static ULONG WINAPI
HTMLCurrentStyle_Release(IHTMLCurrentStyle
*iface
)
109 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
110 LONG ref
= InterlockedDecrement(&This
->ref
);
112 TRACE("(%p) ref=%d\n", This
, ref
);
116 nsIDOMCSSStyleDeclaration_Release(This
->nsstyle
);
117 IHTMLElement_Release(&This
->elem
->IHTMLElement_iface
);
118 release_dispex(&This
->dispex
);
125 static HRESULT WINAPI
HTMLCurrentStyle_GetTypeInfoCount(IHTMLCurrentStyle
*iface
, UINT
*pctinfo
)
127 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
128 return IDispatchEx_GetTypeInfoCount(&This
->dispex
.IDispatchEx_iface
, pctinfo
);
131 static HRESULT WINAPI
HTMLCurrentStyle_GetTypeInfo(IHTMLCurrentStyle
*iface
, UINT iTInfo
,
132 LCID lcid
, ITypeInfo
**ppTInfo
)
134 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
135 return IDispatchEx_GetTypeInfo(&This
->dispex
.IDispatchEx_iface
, iTInfo
, lcid
, ppTInfo
);
138 static HRESULT WINAPI
HTMLCurrentStyle_GetIDsOfNames(IHTMLCurrentStyle
*iface
, REFIID riid
,
139 LPOLESTR
*rgszNames
, UINT cNames
, LCID lcid
, DISPID
*rgDispId
)
141 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
142 return IDispatchEx_GetIDsOfNames(&This
->dispex
.IDispatchEx_iface
, riid
, rgszNames
, cNames
,
146 static HRESULT WINAPI
HTMLCurrentStyle_Invoke(IHTMLCurrentStyle
*iface
, DISPID dispIdMember
,
147 REFIID riid
, LCID lcid
, WORD wFlags
, DISPPARAMS
*pDispParams
,
148 VARIANT
*pVarResult
, EXCEPINFO
*pExcepInfo
, UINT
*puArgErr
)
150 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
151 return IDispatchEx_Invoke(&This
->dispex
.IDispatchEx_iface
, dispIdMember
, riid
, lcid
,
152 wFlags
, pDispParams
, pVarResult
, pExcepInfo
, puArgErr
);
155 static HRESULT WINAPI
HTMLCurrentStyle_get_position(IHTMLCurrentStyle
*iface
, BSTR
*p
)
157 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
159 TRACE("(%p)->(%p)\n", This
, p
);
161 return get_nsstyle_attr(This
->nsstyle
, STYLEID_POSITION
, p
, 0);
164 static HRESULT WINAPI
HTMLCurrentStyle_get_styleFloat(IHTMLCurrentStyle
*iface
, BSTR
*p
)
166 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
168 TRACE("(%p)->(%p)\n", This
, p
);
170 return get_nsstyle_attr(This
->nsstyle
, STYLEID_FLOAT
, p
, 0);
173 static HRESULT WINAPI
HTMLCurrentStyle_get_color(IHTMLCurrentStyle
*iface
, VARIANT
*p
)
175 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
176 TRACE("(%p)->(%p)\n", This
, p
);
177 return get_nsstyle_attr_var(This
->nsstyle
, STYLEID_COLOR
, p
, 0);
180 static HRESULT WINAPI
HTMLCurrentStyle_get_backgroundColor(IHTMLCurrentStyle
*iface
, VARIANT
*p
)
182 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
183 TRACE("(%p)->(%p)\n", This
, p
);
184 return get_nsstyle_attr_var(This
->nsstyle
, STYLEID_BACKGROUND_COLOR
, p
, 0);
187 static HRESULT WINAPI
HTMLCurrentStyle_get_fontFamily(IHTMLCurrentStyle
*iface
, BSTR
*p
)
189 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
191 TRACE("(%p)->(%p)\n", This
, p
);
193 return get_nsstyle_attr(This
->nsstyle
, STYLEID_FONT_FAMILY
, p
, 0);
196 static HRESULT WINAPI
HTMLCurrentStyle_get_fontStyle(IHTMLCurrentStyle
*iface
, BSTR
*p
)
198 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
199 TRACE("(%p)->(%p)\n", This
, p
);
200 return get_nsstyle_attr(This
->nsstyle
, STYLEID_FONT_STYLE
, p
, 0);
203 static HRESULT WINAPI
HTMLCurrentStyle_get_fontVariant(IHTMLCurrentStyle
*iface
, BSTR
*p
)
205 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
206 TRACE("(%p)->(%p)\n", This
, p
);
207 return get_nsstyle_attr(This
->nsstyle
, STYLEID_FONT_VARIANT
, p
, 0);
210 static HRESULT WINAPI
HTMLCurrentStyle_get_fontWeight(IHTMLCurrentStyle
*iface
, VARIANT
*p
)
212 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
213 TRACE("(%p)->(%p)\n", This
, p
);
214 return get_nsstyle_attr_var(This
->nsstyle
, STYLEID_FONT_WEIGHT
, p
, ATTR_STR_TO_INT
);
217 static HRESULT WINAPI
HTMLCurrentStyle_get_fontSize(IHTMLCurrentStyle
*iface
, VARIANT
*p
)
219 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
220 TRACE("(%p)->(%p)\n", This
, p
);
221 return get_nsstyle_attr_var(This
->nsstyle
, STYLEID_FONT_SIZE
, p
, 0);
224 static HRESULT WINAPI
HTMLCurrentStyle_get_backgroundImage(IHTMLCurrentStyle
*iface
, BSTR
*p
)
226 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
227 TRACE("(%p)->(%p)\n", This
, p
);
228 return get_nsstyle_attr(This
->nsstyle
, STYLEID_BACKGROUND_IMAGE
, p
, 0);
231 static HRESULT WINAPI
HTMLCurrentStyle_get_backgroundPositionX(IHTMLCurrentStyle
*iface
, VARIANT
*p
)
233 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
234 FIXME("(%p)->(%p)\n", This
, p
);
238 static HRESULT WINAPI
HTMLCurrentStyle_get_backgroundPositionY(IHTMLCurrentStyle
*iface
, VARIANT
*p
)
240 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
241 FIXME("(%p)->(%p)\n", This
, p
);
245 static HRESULT WINAPI
HTMLCurrentStyle_get_backgroundRepeat(IHTMLCurrentStyle
*iface
, BSTR
*p
)
247 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
248 TRACE("(%p)->(%p)\n", This
, p
);
249 return get_nsstyle_attr(This
->nsstyle
, STYLEID_BACKGROUND_REPEAT
, p
, 0);
252 static HRESULT WINAPI
HTMLCurrentStyle_get_borderLeftColor(IHTMLCurrentStyle
*iface
, VARIANT
*p
)
254 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
255 TRACE("(%p)->(%p)\n", This
, p
);
256 return get_nsstyle_attr_var(This
->nsstyle
, STYLEID_BORDER_LEFT_COLOR
, p
, 0);
259 static HRESULT WINAPI
HTMLCurrentStyle_get_borderTopColor(IHTMLCurrentStyle
*iface
, VARIANT
*p
)
261 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
262 TRACE("(%p)->(%p)\n", This
, p
);
263 return get_nsstyle_attr_var(This
->nsstyle
, STYLEID_BORDER_TOP_COLOR
, p
, 0);
266 static HRESULT WINAPI
HTMLCurrentStyle_get_borderRightColor(IHTMLCurrentStyle
*iface
, VARIANT
*p
)
268 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
269 TRACE("(%p)->(%p)\n", This
, p
);
270 return get_nsstyle_attr_var(This
->nsstyle
, STYLEID_BORDER_RIGHT_COLOR
, p
, 0);
273 static HRESULT WINAPI
HTMLCurrentStyle_get_borderBottomColor(IHTMLCurrentStyle
*iface
, VARIANT
*p
)
275 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
276 TRACE("(%p)->(%p)\n", This
, p
);
277 return get_nsstyle_attr_var(This
->nsstyle
, STYLEID_BORDER_BOTTOM_COLOR
, p
, 0);
280 static HRESULT WINAPI
HTMLCurrentStyle_get_borderTopStyle(IHTMLCurrentStyle
*iface
, BSTR
*p
)
282 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
283 TRACE("(%p)->(%p)\n", This
, p
);
284 return get_nsstyle_attr(This
->nsstyle
, STYLEID_BORDER_TOP_STYLE
, p
, 0);
287 static HRESULT WINAPI
HTMLCurrentStyle_get_borderRightStyle(IHTMLCurrentStyle
*iface
, BSTR
*p
)
289 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
290 TRACE("(%p)->(%p)\n", This
, p
);
291 return get_nsstyle_attr(This
->nsstyle
, STYLEID_BORDER_RIGHT_STYLE
, p
, 0);
294 static HRESULT WINAPI
HTMLCurrentStyle_get_borderBottomStyle(IHTMLCurrentStyle
*iface
, BSTR
*p
)
296 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
297 TRACE("(%p)->(%p)\n", This
, p
);
298 return get_nsstyle_attr(This
->nsstyle
, STYLEID_BORDER_BOTTOM_STYLE
, p
, 0);
301 static HRESULT WINAPI
HTMLCurrentStyle_get_borderLeftStyle(IHTMLCurrentStyle
*iface
, BSTR
*p
)
303 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
304 TRACE("(%p)->(%p)\n", This
, p
);
305 return get_nsstyle_attr(This
->nsstyle
, STYLEID_BORDER_LEFT_STYLE
, p
, 0);
308 static HRESULT WINAPI
HTMLCurrentStyle_get_borderTopWidth(IHTMLCurrentStyle
*iface
, VARIANT
*p
)
310 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
311 TRACE("(%p)->(%p)\n", This
, p
);
312 return get_nsstyle_attr_var(This
->nsstyle
, STYLEID_BORDER_TOP_WIDTH
, p
, 0);
315 static HRESULT WINAPI
HTMLCurrentStyle_get_borderRightWidth(IHTMLCurrentStyle
*iface
, VARIANT
*p
)
317 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
318 TRACE("(%p)->(%p)\n", This
, p
);
319 return get_nsstyle_attr_var(This
->nsstyle
, STYLEID_BORDER_RIGHT_WIDTH
, p
, 0);
322 static HRESULT WINAPI
HTMLCurrentStyle_get_borderBottomWidth(IHTMLCurrentStyle
*iface
, VARIANT
*p
)
324 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
325 TRACE("(%p)->(%p)\n", This
, p
);
326 return get_nsstyle_attr_var(This
->nsstyle
, STYLEID_BORDER_BOTTOM_WIDTH
, p
, 0);
329 static HRESULT WINAPI
HTMLCurrentStyle_get_borderLeftWidth(IHTMLCurrentStyle
*iface
, VARIANT
*p
)
331 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
332 TRACE("(%p)->(%p)\n", This
, p
);
333 return get_nsstyle_attr_var(This
->nsstyle
, STYLEID_BORDER_LEFT_WIDTH
, p
, 0);
336 static HRESULT WINAPI
HTMLCurrentStyle_get_left(IHTMLCurrentStyle
*iface
, VARIANT
*p
)
338 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
339 TRACE("(%p)->(%p)\n", This
, p
);
340 return get_nsstyle_attr_var(This
->nsstyle
, STYLEID_LEFT
, p
, 0);
343 static HRESULT WINAPI
HTMLCurrentStyle_get_top(IHTMLCurrentStyle
*iface
, VARIANT
*p
)
345 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
346 TRACE("(%p)->(%p)\n", This
, p
);
347 return get_nsstyle_attr_var(This
->nsstyle
, STYLEID_TOP
, p
, 0);
350 static HRESULT WINAPI
HTMLCurrentStyle_get_width(IHTMLCurrentStyle
*iface
, VARIANT
*p
)
352 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
353 TRACE("(%p)->(%p)\n", This
, p
);
354 return get_nsstyle_attr_var(This
->nsstyle
, STYLEID_WIDTH
, p
, 0);
357 static HRESULT WINAPI
HTMLCurrentStyle_get_height(IHTMLCurrentStyle
*iface
, VARIANT
*p
)
359 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
360 TRACE("(%p)->(%p)\n", This
, p
);
361 return get_nsstyle_attr_var(This
->nsstyle
, STYLEID_HEIGHT
, p
, 0);
364 static HRESULT WINAPI
HTMLCurrentStyle_get_paddingLeft(IHTMLCurrentStyle
*iface
, VARIANT
*p
)
366 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
367 TRACE("(%p)->(%p)\n", This
, p
);
368 return get_nsstyle_attr_var(This
->nsstyle
, STYLEID_PADDING_LEFT
, p
, 0);
371 static HRESULT WINAPI
HTMLCurrentStyle_get_paddingTop(IHTMLCurrentStyle
*iface
, VARIANT
*p
)
373 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
374 TRACE("(%p)->(%p)\n", This
, p
);
375 return get_nsstyle_attr_var(This
->nsstyle
, STYLEID_PADDING_TOP
, p
, 0);
378 static HRESULT WINAPI
HTMLCurrentStyle_get_paddingRight(IHTMLCurrentStyle
*iface
, VARIANT
*p
)
380 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
381 TRACE("(%p)->(%p)\n", This
, p
);
382 return get_nsstyle_attr_var(This
->nsstyle
, STYLEID_PADDING_RIGHT
, p
, 0);
385 static HRESULT WINAPI
HTMLCurrentStyle_get_paddingBottom(IHTMLCurrentStyle
*iface
, VARIANT
*p
)
387 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
388 TRACE("(%p)->(%p)\n", This
, p
);
389 return get_nsstyle_attr_var(This
->nsstyle
, STYLEID_PADDING_BOTTOM
, p
, 0);
392 static HRESULT WINAPI
HTMLCurrentStyle_get_textAlign(IHTMLCurrentStyle
*iface
, BSTR
*p
)
394 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
395 TRACE("(%p)->(%p)\n", This
, p
);
396 return get_nsstyle_attr(This
->nsstyle
, STYLEID_TEXT_ALIGN
, p
, 0);
399 static HRESULT WINAPI
HTMLCurrentStyle_get_textDecoration(IHTMLCurrentStyle
*iface
, BSTR
*p
)
401 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
402 TRACE("(%p)->(%p)\n", This
, p
);
403 return get_nsstyle_attr(This
->nsstyle
, STYLEID_TEXT_DECORATION
, p
, 0);
406 static HRESULT WINAPI
HTMLCurrentStyle_get_display(IHTMLCurrentStyle
*iface
, BSTR
*p
)
408 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
410 TRACE("(%p)->(%p)\n", This
, p
);
412 return get_nsstyle_attr(This
->nsstyle
, STYLEID_DISPLAY
, p
, 0);
415 static HRESULT WINAPI
HTMLCurrentStyle_get_visibility(IHTMLCurrentStyle
*iface
, BSTR
*p
)
417 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
419 TRACE("(%p)->(%p)\n", This
, p
);
421 return get_nsstyle_attr(This
->nsstyle
, STYLEID_VISIBILITY
, p
, 0);
424 static HRESULT WINAPI
HTMLCurrentStyle_get_zIndex(IHTMLCurrentStyle
*iface
, VARIANT
*p
)
426 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
427 TRACE("(%p)->(%p)\n", This
, p
);
428 return get_nsstyle_attr_var(This
->nsstyle
, STYLEID_Z_INDEX
, p
, ATTR_STR_TO_INT
);
431 static HRESULT WINAPI
HTMLCurrentStyle_get_letterSpacing(IHTMLCurrentStyle
*iface
, VARIANT
*p
)
433 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
434 TRACE("(%p)->(%p)\n", This
, p
);
435 return get_nsstyle_attr_var(This
->nsstyle
, STYLEID_LETTER_SPACING
, p
, 0);
438 static HRESULT WINAPI
HTMLCurrentStyle_get_lineHeight(IHTMLCurrentStyle
*iface
, VARIANT
*p
)
440 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
441 TRACE("(%p)->(%p)\n", This
, p
);
442 return get_nsstyle_attr_var(This
->nsstyle
, STYLEID_LINE_HEIGHT
, p
, 0);
445 static HRESULT WINAPI
HTMLCurrentStyle_get_textIndent(IHTMLCurrentStyle
*iface
, VARIANT
*p
)
447 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
448 TRACE("(%p)->(%p)\n", This
, p
);
449 return get_nsstyle_attr_var(This
->nsstyle
, STYLEID_TEXT_INDENT
, p
, 0);
452 static HRESULT WINAPI
HTMLCurrentStyle_get_verticalAlign(IHTMLCurrentStyle
*iface
, VARIANT
*p
)
454 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
455 TRACE("(%p)->(%p)\n", This
, p
);
456 return get_nsstyle_attr_var(This
->nsstyle
, STYLEID_VERTICAL_ALIGN
, p
, 0);
459 static HRESULT WINAPI
HTMLCurrentStyle_get_backgroundAttachment(IHTMLCurrentStyle
*iface
, BSTR
*p
)
461 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
462 FIXME("(%p)->(%p)\n", This
, p
);
466 static HRESULT WINAPI
HTMLCurrentStyle_get_marginTop(IHTMLCurrentStyle
*iface
, VARIANT
*p
)
468 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
469 TRACE("(%p)->(%p)\n", This
, p
);
470 return get_nsstyle_attr_var(This
->nsstyle
, STYLEID_MARGIN_TOP
, p
, 0);
473 static HRESULT WINAPI
HTMLCurrentStyle_get_marginRight(IHTMLCurrentStyle
*iface
, VARIANT
*p
)
475 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
476 TRACE("(%p)->(%p)\n", This
, p
);
477 return get_nsstyle_attr_var(This
->nsstyle
, STYLEID_MARGIN_RIGHT
, p
, 0);
480 static HRESULT WINAPI
HTMLCurrentStyle_get_marginBottom(IHTMLCurrentStyle
*iface
, VARIANT
*p
)
482 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
483 TRACE("(%p)->(%p)\n", This
, p
);
484 return get_nsstyle_attr_var(This
->nsstyle
, STYLEID_MARGIN_BOTTOM
, p
, 0);
487 static HRESULT WINAPI
HTMLCurrentStyle_get_marginLeft(IHTMLCurrentStyle
*iface
, VARIANT
*p
)
489 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
490 TRACE("(%p)->(%p)\n", This
, p
);
491 return get_nsstyle_attr_var(This
->nsstyle
, STYLEID_MARGIN_LEFT
, p
, 0);
494 static HRESULT WINAPI
HTMLCurrentStyle_get_clear(IHTMLCurrentStyle
*iface
, BSTR
*p
)
496 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
497 FIXME("(%p)->(%p)\n", This
, p
);
501 static HRESULT WINAPI
HTMLCurrentStyle_get_listStyleType(IHTMLCurrentStyle
*iface
, BSTR
*p
)
503 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
504 FIXME("(%p)->(%p)\n", This
, p
);
508 static HRESULT WINAPI
HTMLCurrentStyle_get_listStylePosition(IHTMLCurrentStyle
*iface
, BSTR
*p
)
510 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
511 FIXME("(%p)->(%p)\n", This
, p
);
515 static HRESULT WINAPI
HTMLCurrentStyle_get_listStyleImage(IHTMLCurrentStyle
*iface
, BSTR
*p
)
517 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
518 FIXME("(%p)->(%p)\n", This
, p
);
522 static HRESULT WINAPI
HTMLCurrentStyle_get_clipTop(IHTMLCurrentStyle
*iface
, VARIANT
*p
)
524 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
525 FIXME("(%p)->(%p)\n", This
, p
);
529 static HRESULT WINAPI
HTMLCurrentStyle_get_clipRight(IHTMLCurrentStyle
*iface
, VARIANT
*p
)
531 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
532 FIXME("(%p)->(%p)\n", This
, p
);
536 static HRESULT WINAPI
HTMLCurrentStyle_get_clipBottom(IHTMLCurrentStyle
*iface
, VARIANT
*p
)
538 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
539 FIXME("(%p)->(%p)\n", This
, p
);
543 static HRESULT WINAPI
HTMLCurrentStyle_get_clipLeft(IHTMLCurrentStyle
*iface
, VARIANT
*p
)
545 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
546 FIXME("(%p)->(%p)\n", This
, p
);
550 static HRESULT WINAPI
HTMLCurrentStyle_get_overflow(IHTMLCurrentStyle
*iface
, BSTR
*p
)
552 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
553 TRACE("(%p)->(%p)\n", This
, p
);
554 return get_nsstyle_attr(This
->nsstyle
, STYLEID_OVERFLOW
, p
, 0);
557 static HRESULT WINAPI
HTMLCurrentStyle_get_pageBreakBefore(IHTMLCurrentStyle
*iface
, BSTR
*p
)
559 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
560 FIXME("(%p)->(%p)\n", This
, p
);
564 static HRESULT WINAPI
HTMLCurrentStyle_get_pageBreakAfter(IHTMLCurrentStyle
*iface
, BSTR
*p
)
566 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
567 FIXME("(%p)->(%p)\n", This
, p
);
571 static HRESULT WINAPI
HTMLCurrentStyle_get_cursor(IHTMLCurrentStyle
*iface
, BSTR
*p
)
573 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
574 TRACE("(%p)->(%p)\n", This
, p
);
575 return get_nsstyle_attr(This
->nsstyle
, STYLEID_CURSOR
, p
, 0);
578 static HRESULT WINAPI
HTMLCurrentStyle_get_tableLayout(IHTMLCurrentStyle
*iface
, BSTR
*p
)
580 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
581 FIXME("(%p)->(%p)\n", This
, p
);
585 static HRESULT WINAPI
HTMLCurrentStyle_get_borderCollapse(IHTMLCurrentStyle
*iface
, BSTR
*p
)
587 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
588 FIXME("(%p)->(%p)\n", This
, p
);
592 static HRESULT WINAPI
HTMLCurrentStyle_get_direction(IHTMLCurrentStyle
*iface
, BSTR
*p
)
594 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
595 TRACE("(%p)->(%p)\n", This
, p
);
596 return get_nsstyle_attr(This
->nsstyle
, STYLEID_DIRECTION
, p
, 0);
599 static HRESULT WINAPI
HTMLCurrentStyle_get_behavior(IHTMLCurrentStyle
*iface
, BSTR
*p
)
601 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
602 FIXME("(%p)->(%p)\n", This
, p
);
606 static HRESULT WINAPI
HTMLCurrentStyle_getAttribute(IHTMLCurrentStyle
*iface
, BSTR strAttributeName
,
607 LONG lFlags
, VARIANT
*AttributeValue
)
609 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
610 FIXME("(%p)->(%s %x %p)\n", This
, debugstr_w(strAttributeName
), lFlags
, AttributeValue
);
614 static HRESULT WINAPI
HTMLCurrentStyle_get_unicodeBidi(IHTMLCurrentStyle
*iface
, BSTR
*p
)
616 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
617 FIXME("(%p)->(%p)\n", This
, p
);
621 static HRESULT WINAPI
HTMLCurrentStyle_get_right(IHTMLCurrentStyle
*iface
, VARIANT
*p
)
623 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
624 TRACE("(%p)->(%p)\n", This
, p
);
625 return get_nsstyle_attr_var(This
->nsstyle
, STYLEID_RIGHT
, p
, 0);
628 static HRESULT WINAPI
HTMLCurrentStyle_get_bottom(IHTMLCurrentStyle
*iface
, VARIANT
*p
)
630 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
631 TRACE("(%p)->(%p)\n", This
, p
);
632 return get_nsstyle_attr_var(This
->nsstyle
, STYLEID_BOTTOM
, p
, 0);
635 static HRESULT WINAPI
HTMLCurrentStyle_get_imeMode(IHTMLCurrentStyle
*iface
, BSTR
*p
)
637 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
638 FIXME("(%p)->(%p)\n", This
, p
);
642 static HRESULT WINAPI
HTMLCurrentStyle_get_rubyAlign(IHTMLCurrentStyle
*iface
, BSTR
*p
)
644 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
645 FIXME("(%p)->(%p)\n", This
, p
);
649 static HRESULT WINAPI
HTMLCurrentStyle_get_rubyPosition(IHTMLCurrentStyle
*iface
, BSTR
*p
)
651 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
652 FIXME("(%p)->(%p)\n", This
, p
);
656 static HRESULT WINAPI
HTMLCurrentStyle_get_rubyOverhang(IHTMLCurrentStyle
*iface
, BSTR
*p
)
658 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
659 FIXME("(%p)->(%p)\n", This
, p
);
663 static HRESULT WINAPI
HTMLCurrentStyle_get_textAutospace(IHTMLCurrentStyle
*iface
, BSTR
*p
)
665 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
666 FIXME("(%p)->(%p)\n", This
, p
);
670 static HRESULT WINAPI
HTMLCurrentStyle_get_lineBreak(IHTMLCurrentStyle
*iface
, BSTR
*p
)
672 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
673 FIXME("(%p)->(%p)\n", This
, p
);
677 static HRESULT WINAPI
HTMLCurrentStyle_get_wordBreak(IHTMLCurrentStyle
*iface
, BSTR
*p
)
679 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
680 FIXME("(%p)->(%p)\n", This
, p
);
684 static HRESULT WINAPI
HTMLCurrentStyle_get_textJustify(IHTMLCurrentStyle
*iface
, BSTR
*p
)
686 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
687 FIXME("(%p)->(%p)\n", This
, p
);
691 static HRESULT WINAPI
HTMLCurrentStyle_get_textJustifyTrim(IHTMLCurrentStyle
*iface
, BSTR
*p
)
693 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
694 FIXME("(%p)->(%p)\n", This
, p
);
698 static HRESULT WINAPI
HTMLCurrentStyle_get_textKashida(IHTMLCurrentStyle
*iface
, VARIANT
*p
)
700 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
701 FIXME("(%p)->(%p)\n", This
, p
);
705 static HRESULT WINAPI
HTMLCurrentStyle_get_blockDirection(IHTMLCurrentStyle
*iface
, BSTR
*p
)
707 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
708 FIXME("(%p)->(%p)\n", This
, p
);
712 static HRESULT WINAPI
HTMLCurrentStyle_get_layoutGridChar(IHTMLCurrentStyle
*iface
, VARIANT
*p
)
714 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
715 FIXME("(%p)->(%p)\n", This
, p
);
719 static HRESULT WINAPI
HTMLCurrentStyle_get_layoutGridLine(IHTMLCurrentStyle
*iface
, VARIANT
*p
)
721 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
722 FIXME("(%p)->(%p)\n", This
, p
);
726 static HRESULT WINAPI
HTMLCurrentStyle_get_layoutGridMode(IHTMLCurrentStyle
*iface
, BSTR
*p
)
728 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
729 FIXME("(%p)->(%p)\n", This
, p
);
733 static HRESULT WINAPI
HTMLCurrentStyle_get_layoutGridType(IHTMLCurrentStyle
*iface
, BSTR
*p
)
735 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
736 FIXME("(%p)->(%p)\n", This
, p
);
740 static HRESULT WINAPI
HTMLCurrentStyle_get_borderStyle(IHTMLCurrentStyle
*iface
, BSTR
*p
)
742 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
743 TRACE("(%p)->(%p)\n", This
, p
);
744 return get_nsstyle_attr(This
->nsstyle
, STYLEID_BORDER_STYLE
, p
, 0);
747 static HRESULT WINAPI
HTMLCurrentStyle_get_borderColor(IHTMLCurrentStyle
*iface
, BSTR
*p
)
749 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
750 TRACE("(%p)->(%p)\n", This
, p
);
751 return get_nsstyle_attr(This
->nsstyle
, STYLEID_BORDER_COLOR
, p
, 0);
754 static HRESULT WINAPI
HTMLCurrentStyle_get_borderWidth(IHTMLCurrentStyle
*iface
, BSTR
*p
)
756 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
757 TRACE("(%p)->(%p)\n", This
, p
);
758 return get_nsstyle_attr(This
->nsstyle
, STYLEID_BORDER_WIDTH
, p
, 0);
761 static HRESULT WINAPI
HTMLCurrentStyle_get_padding(IHTMLCurrentStyle
*iface
, BSTR
*p
)
763 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
764 TRACE("(%p)->(%p)\n", This
, p
);
765 return get_nsstyle_attr(This
->nsstyle
, STYLEID_PADDING
, p
, 0);
768 static HRESULT WINAPI
HTMLCurrentStyle_get_margin(IHTMLCurrentStyle
*iface
, BSTR
*p
)
770 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
771 TRACE("(%p)->(%p)\n", This
, p
);
772 return get_nsstyle_attr(This
->nsstyle
, STYLEID_MARGIN
, p
, 0);
775 static HRESULT WINAPI
HTMLCurrentStyle_get_accelerator(IHTMLCurrentStyle
*iface
, BSTR
*p
)
777 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
778 FIXME("(%p)->(%p)\n", This
, p
);
782 static HRESULT WINAPI
HTMLCurrentStyle_get_overflowX(IHTMLCurrentStyle
*iface
, BSTR
*p
)
784 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
785 TRACE("(%p)->(%p)\n", This
, p
);
786 return get_nsstyle_attr(This
->nsstyle
, STYLEID_OVERFLOW_X
, p
, 0);
789 static HRESULT WINAPI
HTMLCurrentStyle_get_overflowY(IHTMLCurrentStyle
*iface
, BSTR
*p
)
791 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
792 TRACE("(%p)->(%p)\n", This
, p
);
793 return get_nsstyle_attr(This
->nsstyle
, STYLEID_OVERFLOW_Y
, p
, 0);
796 static HRESULT WINAPI
HTMLCurrentStyle_get_textTransform(IHTMLCurrentStyle
*iface
, BSTR
*p
)
798 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle(iface
);
799 TRACE("(%p)->(%p)\n", This
, p
);
800 return get_nsstyle_attr(This
->nsstyle
, STYLEID_TEXT_TRANSFORM
, p
, 0);
803 static const IHTMLCurrentStyleVtbl HTMLCurrentStyleVtbl
= {
804 HTMLCurrentStyle_QueryInterface
,
805 HTMLCurrentStyle_AddRef
,
806 HTMLCurrentStyle_Release
,
807 HTMLCurrentStyle_GetTypeInfoCount
,
808 HTMLCurrentStyle_GetTypeInfo
,
809 HTMLCurrentStyle_GetIDsOfNames
,
810 HTMLCurrentStyle_Invoke
,
811 HTMLCurrentStyle_get_position
,
812 HTMLCurrentStyle_get_styleFloat
,
813 HTMLCurrentStyle_get_color
,
814 HTMLCurrentStyle_get_backgroundColor
,
815 HTMLCurrentStyle_get_fontFamily
,
816 HTMLCurrentStyle_get_fontStyle
,
817 HTMLCurrentStyle_get_fontVariant
,
818 HTMLCurrentStyle_get_fontWeight
,
819 HTMLCurrentStyle_get_fontSize
,
820 HTMLCurrentStyle_get_backgroundImage
,
821 HTMLCurrentStyle_get_backgroundPositionX
,
822 HTMLCurrentStyle_get_backgroundPositionY
,
823 HTMLCurrentStyle_get_backgroundRepeat
,
824 HTMLCurrentStyle_get_borderLeftColor
,
825 HTMLCurrentStyle_get_borderTopColor
,
826 HTMLCurrentStyle_get_borderRightColor
,
827 HTMLCurrentStyle_get_borderBottomColor
,
828 HTMLCurrentStyle_get_borderTopStyle
,
829 HTMLCurrentStyle_get_borderRightStyle
,
830 HTMLCurrentStyle_get_borderBottomStyle
,
831 HTMLCurrentStyle_get_borderLeftStyle
,
832 HTMLCurrentStyle_get_borderTopWidth
,
833 HTMLCurrentStyle_get_borderRightWidth
,
834 HTMLCurrentStyle_get_borderBottomWidth
,
835 HTMLCurrentStyle_get_borderLeftWidth
,
836 HTMLCurrentStyle_get_left
,
837 HTMLCurrentStyle_get_top
,
838 HTMLCurrentStyle_get_width
,
839 HTMLCurrentStyle_get_height
,
840 HTMLCurrentStyle_get_paddingLeft
,
841 HTMLCurrentStyle_get_paddingTop
,
842 HTMLCurrentStyle_get_paddingRight
,
843 HTMLCurrentStyle_get_paddingBottom
,
844 HTMLCurrentStyle_get_textAlign
,
845 HTMLCurrentStyle_get_textDecoration
,
846 HTMLCurrentStyle_get_display
,
847 HTMLCurrentStyle_get_visibility
,
848 HTMLCurrentStyle_get_zIndex
,
849 HTMLCurrentStyle_get_letterSpacing
,
850 HTMLCurrentStyle_get_lineHeight
,
851 HTMLCurrentStyle_get_textIndent
,
852 HTMLCurrentStyle_get_verticalAlign
,
853 HTMLCurrentStyle_get_backgroundAttachment
,
854 HTMLCurrentStyle_get_marginTop
,
855 HTMLCurrentStyle_get_marginRight
,
856 HTMLCurrentStyle_get_marginBottom
,
857 HTMLCurrentStyle_get_marginLeft
,
858 HTMLCurrentStyle_get_clear
,
859 HTMLCurrentStyle_get_listStyleType
,
860 HTMLCurrentStyle_get_listStylePosition
,
861 HTMLCurrentStyle_get_listStyleImage
,
862 HTMLCurrentStyle_get_clipTop
,
863 HTMLCurrentStyle_get_clipRight
,
864 HTMLCurrentStyle_get_clipBottom
,
865 HTMLCurrentStyle_get_clipLeft
,
866 HTMLCurrentStyle_get_overflow
,
867 HTMLCurrentStyle_get_pageBreakBefore
,
868 HTMLCurrentStyle_get_pageBreakAfter
,
869 HTMLCurrentStyle_get_cursor
,
870 HTMLCurrentStyle_get_tableLayout
,
871 HTMLCurrentStyle_get_borderCollapse
,
872 HTMLCurrentStyle_get_direction
,
873 HTMLCurrentStyle_get_behavior
,
874 HTMLCurrentStyle_getAttribute
,
875 HTMLCurrentStyle_get_unicodeBidi
,
876 HTMLCurrentStyle_get_right
,
877 HTMLCurrentStyle_get_bottom
,
878 HTMLCurrentStyle_get_imeMode
,
879 HTMLCurrentStyle_get_rubyAlign
,
880 HTMLCurrentStyle_get_rubyPosition
,
881 HTMLCurrentStyle_get_rubyOverhang
,
882 HTMLCurrentStyle_get_textAutospace
,
883 HTMLCurrentStyle_get_lineBreak
,
884 HTMLCurrentStyle_get_wordBreak
,
885 HTMLCurrentStyle_get_textJustify
,
886 HTMLCurrentStyle_get_textJustifyTrim
,
887 HTMLCurrentStyle_get_textKashida
,
888 HTMLCurrentStyle_get_blockDirection
,
889 HTMLCurrentStyle_get_layoutGridChar
,
890 HTMLCurrentStyle_get_layoutGridLine
,
891 HTMLCurrentStyle_get_layoutGridMode
,
892 HTMLCurrentStyle_get_layoutGridType
,
893 HTMLCurrentStyle_get_borderStyle
,
894 HTMLCurrentStyle_get_borderColor
,
895 HTMLCurrentStyle_get_borderWidth
,
896 HTMLCurrentStyle_get_padding
,
897 HTMLCurrentStyle_get_margin
,
898 HTMLCurrentStyle_get_accelerator
,
899 HTMLCurrentStyle_get_overflowX
,
900 HTMLCurrentStyle_get_overflowY
,
901 HTMLCurrentStyle_get_textTransform
904 /* IHTMLCurrentStyle2 */
905 static HRESULT WINAPI
HTMLCurrentStyle2_QueryInterface(IHTMLCurrentStyle2
*iface
, REFIID riid
, void **ppv
)
907 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle2(iface
);
909 return IHTMLCurrentStyle_QueryInterface(&This
->IHTMLCurrentStyle_iface
, riid
, ppv
);
912 static ULONG WINAPI
HTMLCurrentStyle2_AddRef(IHTMLCurrentStyle2
*iface
)
914 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle2(iface
);
916 return IHTMLCurrentStyle_AddRef(&This
->IHTMLCurrentStyle_iface
);
919 static ULONG WINAPI
HTMLCurrentStyle2_Release(IHTMLCurrentStyle2
*iface
)
921 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle2(iface
);
922 return IHTMLCurrentStyle_Release(&This
->IHTMLCurrentStyle_iface
);
925 static HRESULT WINAPI
HTMLCurrentStyle2_GetTypeInfoCount(IHTMLCurrentStyle2
*iface
, UINT
*pctinfo
)
927 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle2(iface
);
928 return IDispatchEx_GetTypeInfoCount(&This
->dispex
.IDispatchEx_iface
, pctinfo
);
931 static HRESULT WINAPI
HTMLCurrentStyle2_GetTypeInfo(IHTMLCurrentStyle2
*iface
, UINT iTInfo
,
932 LCID lcid
, ITypeInfo
**ppTInfo
)
934 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle2(iface
);
935 return IDispatchEx_GetTypeInfo(&This
->dispex
.IDispatchEx_iface
, iTInfo
, lcid
, ppTInfo
);
938 static HRESULT WINAPI
HTMLCurrentStyle2_GetIDsOfNames(IHTMLCurrentStyle2
*iface
, REFIID riid
,
939 LPOLESTR
*rgszNames
, UINT cNames
, LCID lcid
, DISPID
*rgDispId
)
941 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle2(iface
);
942 return IDispatchEx_GetIDsOfNames(&This
->dispex
.IDispatchEx_iface
, riid
, rgszNames
, cNames
,
946 static HRESULT WINAPI
HTMLCurrentStyle2_Invoke(IHTMLCurrentStyle2
*iface
, DISPID dispIdMember
,
947 REFIID riid
, LCID lcid
, WORD wFlags
, DISPPARAMS
*pDispParams
,
948 VARIANT
*pVarResult
, EXCEPINFO
*pExcepInfo
, UINT
*puArgErr
)
950 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle2(iface
);
951 return IDispatchEx_Invoke(&This
->dispex
.IDispatchEx_iface
, dispIdMember
, riid
, lcid
,
952 wFlags
, pDispParams
, pVarResult
, pExcepInfo
, puArgErr
);
955 static HRESULT WINAPI
HTMLCurrentStyle2_get_layoutFlow(IHTMLCurrentStyle2
*iface
, BSTR
*p
)
957 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle2(iface
);
958 FIXME("(%p)->(%p)\n", This
, p
);
962 static HRESULT WINAPI
HTMLCurrentStyle2_get_wordWrap(IHTMLCurrentStyle2
*iface
, BSTR
*p
)
964 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle2(iface
);
965 FIXME("(%p)->(%p)\n", This
, p
);
969 static HRESULT WINAPI
HTMLCurrentStyle2_get_textUnderlinePosition(IHTMLCurrentStyle2
*iface
, BSTR
*p
)
971 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle2(iface
);
972 FIXME("(%p)->(%p)\n", This
, p
);
976 static HRESULT WINAPI
HTMLCurrentStyle2_get_hasLayout(IHTMLCurrentStyle2
*iface
, VARIANT_BOOL
*p
)
978 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle2(iface
);
980 FIXME("(%p)->(%p) returning true\n", This
, p
);
986 static HRESULT WINAPI
HTMLCurrentStyle2_get_scrollbarBaseColor(IHTMLCurrentStyle2
*iface
, VARIANT
*p
)
988 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle2(iface
);
989 FIXME("(%p)->(%p)\n", This
, p
);
993 static HRESULT WINAPI
HTMLCurrentStyle2_get_scrollbarFaceColor(IHTMLCurrentStyle2
*iface
, VARIANT
*p
)
995 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle2(iface
);
996 FIXME("(%p)->(%p)\n", This
, p
);
1000 static HRESULT WINAPI
HTMLCurrentStyle2_get_scrollbar3dLightColor(IHTMLCurrentStyle2
*iface
, VARIANT
*p
)
1002 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle2(iface
);
1003 FIXME("(%p)->(%p)\n", This
, p
);
1007 static HRESULT WINAPI
HTMLCurrentStyle2_get_scrollbarShadowColor(IHTMLCurrentStyle2
*iface
, VARIANT
*p
)
1009 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle2(iface
);
1010 FIXME("(%p)->(%p)\n", This
, p
);
1014 static HRESULT WINAPI
HTMLCurrentStyle2_get_scrollbarHighlightColor(IHTMLCurrentStyle2
*iface
, VARIANT
*p
)
1016 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle2(iface
);
1017 FIXME("(%p)->(%p)\n", This
, p
);
1021 static HRESULT WINAPI
HTMLCurrentStyle2_get_scrollbarDarkShadowColor(IHTMLCurrentStyle2
*iface
, VARIANT
*p
)
1023 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle2(iface
);
1024 FIXME("(%p)->(%p)\n", This
, p
);
1028 static HRESULT WINAPI
HTMLCurrentStyle2_get_scrollbarArrowColor(IHTMLCurrentStyle2
*iface
, VARIANT
*p
)
1030 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle2(iface
);
1031 FIXME("(%p)->(%p)\n", This
, p
);
1035 static HRESULT WINAPI
HTMLCurrentStyle2_get_scrollbarTrackColor(IHTMLCurrentStyle2
*iface
, VARIANT
*p
)
1037 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle2(iface
);
1038 FIXME("(%p)->(%p)\n", This
, p
);
1042 static HRESULT WINAPI
HTMLCurrentStyle2_get_writingMode(IHTMLCurrentStyle2
*iface
, BSTR
*p
)
1044 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle2(iface
);
1045 FIXME("(%p)->(%p)\n", This
, p
);
1049 static HRESULT WINAPI
HTMLCurrentStyle2_get_zoom(IHTMLCurrentStyle2
*iface
, VARIANT
*p
)
1051 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle2(iface
);
1052 FIXME("(%p)->(%p)\n", This
, p
);
1056 static HRESULT WINAPI
HTMLCurrentStyle2_get_filter(IHTMLCurrentStyle2
*iface
, BSTR
*p
)
1058 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle2(iface
);
1060 TRACE("(%p)->(%p)\n", This
, p
);
1062 if(This
->elem
->filter
) {
1063 *p
= SysAllocString(This
->elem
->filter
);
1065 return E_OUTOFMEMORY
;
1073 static HRESULT WINAPI
HTMLCurrentStyle2_get_textAlignLast(IHTMLCurrentStyle2
*iface
, BSTR
*p
)
1075 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle2(iface
);
1076 FIXME("(%p)->(%p)\n", This
, p
);
1080 static HRESULT WINAPI
HTMLCurrentStyle2_get_textKashidaSpace(IHTMLCurrentStyle2
*iface
, VARIANT
*p
)
1082 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle2(iface
);
1083 FIXME("(%p)->(%p)\n", This
, p
);
1087 static HRESULT WINAPI
HTMLCurrentStyle2_get_isBlock(IHTMLCurrentStyle2
*iface
, VARIANT_BOOL
*p
)
1089 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle2(iface
);
1090 FIXME("(%p)->(%p)\n", This
, p
);
1094 static const IHTMLCurrentStyle2Vtbl HTMLCurrentStyle2Vtbl
= {
1095 HTMLCurrentStyle2_QueryInterface
,
1096 HTMLCurrentStyle2_AddRef
,
1097 HTMLCurrentStyle2_Release
,
1098 HTMLCurrentStyle2_GetTypeInfoCount
,
1099 HTMLCurrentStyle2_GetTypeInfo
,
1100 HTMLCurrentStyle2_GetIDsOfNames
,
1101 HTMLCurrentStyle2_Invoke
,
1102 HTMLCurrentStyle2_get_layoutFlow
,
1103 HTMLCurrentStyle2_get_wordWrap
,
1104 HTMLCurrentStyle2_get_textUnderlinePosition
,
1105 HTMLCurrentStyle2_get_hasLayout
,
1106 HTMLCurrentStyle2_get_scrollbarBaseColor
,
1107 HTMLCurrentStyle2_get_scrollbarFaceColor
,
1108 HTMLCurrentStyle2_get_scrollbar3dLightColor
,
1109 HTMLCurrentStyle2_get_scrollbarShadowColor
,
1110 HTMLCurrentStyle2_get_scrollbarHighlightColor
,
1111 HTMLCurrentStyle2_get_scrollbarDarkShadowColor
,
1112 HTMLCurrentStyle2_get_scrollbarArrowColor
,
1113 HTMLCurrentStyle2_get_scrollbarTrackColor
,
1114 HTMLCurrentStyle2_get_writingMode
,
1115 HTMLCurrentStyle2_get_zoom
,
1116 HTMLCurrentStyle2_get_filter
,
1117 HTMLCurrentStyle2_get_textAlignLast
,
1118 HTMLCurrentStyle2_get_textKashidaSpace
,
1119 HTMLCurrentStyle2_get_isBlock
1122 /* IHTMLCurrentStyle3 */
1123 static HRESULT WINAPI
HTMLCurrentStyle3_QueryInterface(IHTMLCurrentStyle3
*iface
, REFIID riid
, void **ppv
)
1125 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle3(iface
);
1127 return IHTMLCurrentStyle_QueryInterface(&This
->IHTMLCurrentStyle_iface
, riid
, ppv
);
1130 static ULONG WINAPI
HTMLCurrentStyle3_AddRef(IHTMLCurrentStyle3
*iface
)
1132 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle3(iface
);
1134 return IHTMLCurrentStyle_AddRef(&This
->IHTMLCurrentStyle_iface
);
1137 static ULONG WINAPI
HTMLCurrentStyle3_Release(IHTMLCurrentStyle3
*iface
)
1139 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle3(iface
);
1140 return IHTMLCurrentStyle_Release(&This
->IHTMLCurrentStyle_iface
);
1143 static HRESULT WINAPI
HTMLCurrentStyle3_GetTypeInfoCount(IHTMLCurrentStyle3
*iface
, UINT
*pctinfo
)
1145 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle3(iface
);
1146 return IDispatchEx_GetTypeInfoCount(&This
->dispex
.IDispatchEx_iface
, pctinfo
);
1149 static HRESULT WINAPI
HTMLCurrentStyle3_GetTypeInfo(IHTMLCurrentStyle3
*iface
, UINT iTInfo
,
1150 LCID lcid
, ITypeInfo
**ppTInfo
)
1152 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle3(iface
);
1153 return IDispatchEx_GetTypeInfo(&This
->dispex
.IDispatchEx_iface
, iTInfo
, lcid
, ppTInfo
);
1156 static HRESULT WINAPI
HTMLCurrentStyle3_GetIDsOfNames(IHTMLCurrentStyle3
*iface
, REFIID riid
,
1157 LPOLESTR
*rgszNames
, UINT cNames
, LCID lcid
, DISPID
*rgDispId
)
1159 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle3(iface
);
1160 return IDispatchEx_GetIDsOfNames(&This
->dispex
.IDispatchEx_iface
, riid
, rgszNames
, cNames
,
1164 static HRESULT WINAPI
HTMLCurrentStyle3_Invoke(IHTMLCurrentStyle3
*iface
, DISPID dispIdMember
,
1165 REFIID riid
, LCID lcid
, WORD wFlags
, DISPPARAMS
*pDispParams
,
1166 VARIANT
*pVarResult
, EXCEPINFO
*pExcepInfo
, UINT
*puArgErr
)
1168 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle3(iface
);
1169 return IDispatchEx_Invoke(&This
->dispex
.IDispatchEx_iface
, dispIdMember
, riid
, lcid
,
1170 wFlags
, pDispParams
, pVarResult
, pExcepInfo
, puArgErr
);
1173 static HRESULT WINAPI
HTMLCurrentStyle3_get_textOverflow(IHTMLCurrentStyle3
*iface
, BSTR
*p
)
1175 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle3(iface
);
1176 FIXME("(%p)->(%p)\n", This
, p
);
1180 static HRESULT WINAPI
HTMLCurrentStyle3_get_minHeight(IHTMLCurrentStyle3
*iface
, VARIANT
*p
)
1182 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle3(iface
);
1183 FIXME("(%p)->(%p)\n", This
, p
);
1187 static HRESULT WINAPI
HTMLCurrentStyle3_get_wordSpacing(IHTMLCurrentStyle3
*iface
, VARIANT
*p
)
1189 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle3(iface
);
1190 FIXME("(%p)->(%p)\n", This
, p
);
1194 static HRESULT WINAPI
HTMLCurrentStyle3_get_whiteSpace(IHTMLCurrentStyle3
*iface
, BSTR
*p
)
1196 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle3(iface
);
1198 TRACE("(%p)->(%p)\n", This
, p
);
1200 return get_nsstyle_attr(This
->nsstyle
, STYLEID_WHITE_SPACE
, p
, 0);
1203 static const IHTMLCurrentStyle3Vtbl HTMLCurrentStyle3Vtbl
= {
1204 HTMLCurrentStyle3_QueryInterface
,
1205 HTMLCurrentStyle3_AddRef
,
1206 HTMLCurrentStyle3_Release
,
1207 HTMLCurrentStyle3_GetTypeInfoCount
,
1208 HTMLCurrentStyle3_GetTypeInfo
,
1209 HTMLCurrentStyle3_GetIDsOfNames
,
1210 HTMLCurrentStyle3_Invoke
,
1211 HTMLCurrentStyle3_get_textOverflow
,
1212 HTMLCurrentStyle3_get_minHeight
,
1213 HTMLCurrentStyle3_get_wordSpacing
,
1214 HTMLCurrentStyle3_get_whiteSpace
1217 /* IHTMLCurrentStyle4 */
1218 static HRESULT WINAPI
HTMLCurrentStyle4_QueryInterface(IHTMLCurrentStyle4
*iface
, REFIID riid
, void **ppv
)
1220 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle4(iface
);
1222 return IHTMLCurrentStyle_QueryInterface(&This
->IHTMLCurrentStyle_iface
, riid
, ppv
);
1225 static ULONG WINAPI
HTMLCurrentStyle4_AddRef(IHTMLCurrentStyle4
*iface
)
1227 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle4(iface
);
1229 return IHTMLCurrentStyle_AddRef(&This
->IHTMLCurrentStyle_iface
);
1232 static ULONG WINAPI
HTMLCurrentStyle4_Release(IHTMLCurrentStyle4
*iface
)
1234 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle4(iface
);
1235 return IHTMLCurrentStyle_Release(&This
->IHTMLCurrentStyle_iface
);
1238 static HRESULT WINAPI
HTMLCurrentStyle4_GetTypeInfoCount(IHTMLCurrentStyle4
*iface
, UINT
*pctinfo
)
1240 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle4(iface
);
1241 return IDispatchEx_GetTypeInfoCount(&This
->dispex
.IDispatchEx_iface
, pctinfo
);
1244 static HRESULT WINAPI
HTMLCurrentStyle4_GetTypeInfo(IHTMLCurrentStyle4
*iface
, UINT iTInfo
,
1245 LCID lcid
, ITypeInfo
**ppTInfo
)
1247 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle4(iface
);
1248 return IDispatchEx_GetTypeInfo(&This
->dispex
.IDispatchEx_iface
, iTInfo
, lcid
, ppTInfo
);
1251 static HRESULT WINAPI
HTMLCurrentStyle4_GetIDsOfNames(IHTMLCurrentStyle4
*iface
, REFIID riid
,
1252 LPOLESTR
*rgszNames
, UINT cNames
, LCID lcid
, DISPID
*rgDispId
)
1254 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle4(iface
);
1255 return IDispatchEx_GetIDsOfNames(&This
->dispex
.IDispatchEx_iface
, riid
, rgszNames
, cNames
,
1259 static HRESULT WINAPI
HTMLCurrentStyle4_Invoke(IHTMLCurrentStyle4
*iface
, DISPID dispIdMember
,
1260 REFIID riid
, LCID lcid
, WORD wFlags
, DISPPARAMS
*pDispParams
,
1261 VARIANT
*pVarResult
, EXCEPINFO
*pExcepInfo
, UINT
*puArgErr
)
1263 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle4(iface
);
1264 return IDispatchEx_Invoke(&This
->dispex
.IDispatchEx_iface
, dispIdMember
, riid
, lcid
,
1265 wFlags
, pDispParams
, pVarResult
, pExcepInfo
, puArgErr
);
1268 static HRESULT WINAPI
HTMLCurrentStyle4_msInterpolationMode(IHTMLCurrentStyle4
*iface
, BSTR
*p
)
1270 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle4(iface
);
1271 FIXME("(%p)->(%p)\n", This
, p
);
1275 static HRESULT WINAPI
HTMLCurrentStyle4_get_maxHeight(IHTMLCurrentStyle4
*iface
, VARIANT
*p
)
1277 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle4(iface
);
1278 FIXME("(%p)->(%p)\n", This
, p
);
1282 static HRESULT WINAPI
HTMLCurrentStyle4_get_minWidth(IHTMLCurrentStyle4
*iface
, VARIANT
*p
)
1284 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle4(iface
);
1285 TRACE("(%p)->(%p)\n", This
, p
);
1286 return get_nsstyle_attr_var(This
->nsstyle
, STYLEID_MIN_WIDTH
, p
, 0);
1289 static HRESULT WINAPI
HTMLCurrentStyle4_get_maxWidth(IHTMLCurrentStyle4
*iface
, VARIANT
*p
)
1291 HTMLCurrentStyle
*This
= impl_from_IHTMLCurrentStyle4(iface
);
1292 FIXME("(%p)->(%p)\n", This
, p
);
1296 static const IHTMLCurrentStyle4Vtbl HTMLCurrentStyle4Vtbl
= {
1297 HTMLCurrentStyle4_QueryInterface
,
1298 HTMLCurrentStyle4_AddRef
,
1299 HTMLCurrentStyle4_Release
,
1300 HTMLCurrentStyle4_GetTypeInfoCount
,
1301 HTMLCurrentStyle4_GetTypeInfo
,
1302 HTMLCurrentStyle4_GetIDsOfNames
,
1303 HTMLCurrentStyle4_Invoke
,
1304 HTMLCurrentStyle4_msInterpolationMode
,
1305 HTMLCurrentStyle4_get_maxHeight
,
1306 HTMLCurrentStyle4_get_minWidth
,
1307 HTMLCurrentStyle4_get_maxWidth
1310 static const tid_t HTMLCurrentStyle_iface_tids
[] = {
1311 IHTMLCurrentStyle_tid
,
1312 IHTMLCurrentStyle2_tid
,
1313 IHTMLCurrentStyle3_tid
,
1314 IHTMLCurrentStyle4_tid
,
1317 static dispex_static_data_t HTMLCurrentStyle_dispex
= {
1319 DispHTMLCurrentStyle_tid
,
1320 HTMLCurrentStyle_iface_tids
1323 HRESULT
HTMLCurrentStyle_Create(HTMLElement
*elem
, IHTMLCurrentStyle
**p
)
1325 nsIDOMCSSStyleDeclaration
*nsstyle
;
1326 mozIDOMWindowProxy
*nsview
;
1327 nsIDOMWindow
*nswindow
;
1328 nsAString nsempty_str
;
1329 HTMLCurrentStyle
*ret
;
1332 if(!elem
->node
.doc
->nsdoc
) {
1333 WARN("NULL nsdoc\n");
1334 return E_UNEXPECTED
;
1337 nsres
= nsIDOMHTMLDocument_GetDefaultView(elem
->node
.doc
->nsdoc
, &nsview
);
1338 if(NS_FAILED(nsres
)) {
1339 ERR("GetDefaultView failed: %08x\n", nsres
);
1343 nsres
= mozIDOMWindowProxy_QueryInterface(nsview
, &IID_nsIDOMWindow
, (void**)&nswindow
);
1344 mozIDOMWindowProxy_Release(nsview
);
1345 assert(nsres
== NS_OK
);
1347 nsAString_Init(&nsempty_str
, NULL
);
1348 nsres
= nsIDOMWindow_GetComputedStyle(nswindow
, (nsIDOMElement
*)elem
->nselem
, &nsempty_str
, &nsstyle
);
1349 nsAString_Finish(&nsempty_str
);
1350 nsIDOMWindow_Release(nswindow
);
1351 if(NS_FAILED(nsres
)) {
1352 ERR("GetComputedStyle failed: %08x\n", nsres
);
1357 ERR("GetComputedStyle returned NULL nsstyle\n");
1361 ret
= heap_alloc_zero(sizeof(HTMLCurrentStyle
));
1363 nsIDOMCSSStyleDeclaration_Release(nsstyle
);
1364 return E_OUTOFMEMORY
;
1367 ret
->IHTMLCurrentStyle_iface
.lpVtbl
= &HTMLCurrentStyleVtbl
;
1368 ret
->IHTMLCurrentStyle2_iface
.lpVtbl
= &HTMLCurrentStyle2Vtbl
;
1369 ret
->IHTMLCurrentStyle3_iface
.lpVtbl
= &HTMLCurrentStyle3Vtbl
;
1370 ret
->IHTMLCurrentStyle4_iface
.lpVtbl
= &HTMLCurrentStyle4Vtbl
;
1372 ret
->nsstyle
= nsstyle
;
1374 init_dispex(&ret
->dispex
, (IUnknown
*)&ret
->IHTMLCurrentStyle_iface
, &HTMLCurrentStyle_dispex
);
1376 IHTMLElement_AddRef(&elem
->IHTMLElement_iface
);
1379 *p
= &ret
->IHTMLCurrentStyle_iface
;