Reactos
1/*
2 * Copyright 2009 Alistair Leslie-Hughes
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
21static inline HTMLStyle *impl_from_IHTMLStyle3(IHTMLStyle3 *iface)
22{
23 return CONTAINING_RECORD(iface, HTMLStyle, IHTMLStyle3_iface);
24}
25
26static HRESULT WINAPI HTMLStyle3_QueryInterface(IHTMLStyle3 *iface, REFIID riid, void **ppv)
27{
28 HTMLStyle *This = impl_from_IHTMLStyle3(iface);
29
30 return IHTMLStyle_QueryInterface(&This->IHTMLStyle_iface, riid, ppv);
31}
32
33static ULONG WINAPI HTMLStyle3_AddRef(IHTMLStyle3 *iface)
34{
35 HTMLStyle *This = impl_from_IHTMLStyle3(iface);
36
37 return IHTMLStyle_AddRef(&This->IHTMLStyle_iface);
38}
39
40static ULONG WINAPI HTMLStyle3_Release(IHTMLStyle3 *iface)
41{
42 HTMLStyle *This = impl_from_IHTMLStyle3(iface);
43
44 return IHTMLStyle_Release(&This->IHTMLStyle_iface);
45}
46
47static HRESULT WINAPI HTMLStyle3_GetTypeInfoCount(IHTMLStyle3 *iface, UINT *pctinfo)
48{
49 HTMLStyle *This = impl_from_IHTMLStyle3(iface);
50 return IDispatchEx_GetTypeInfoCount(&This->dispex.IDispatchEx_iface, pctinfo);
51}
52
53static HRESULT WINAPI HTMLStyle3_GetTypeInfo(IHTMLStyle3 *iface, UINT iTInfo,
54 LCID lcid, ITypeInfo **ppTInfo)
55{
56 HTMLStyle *This = impl_from_IHTMLStyle3(iface);
57 return IDispatchEx_GetTypeInfo(&This->dispex.IDispatchEx_iface, iTInfo, lcid, ppTInfo);
58}
59
60static HRESULT WINAPI HTMLStyle3_GetIDsOfNames(IHTMLStyle3 *iface, REFIID riid,
61 LPOLESTR *rgszNames, UINT cNames,
62 LCID lcid, DISPID *rgDispId)
63{
64 HTMLStyle *This = impl_from_IHTMLStyle3(iface);
65 return IDispatchEx_GetIDsOfNames(&This->dispex.IDispatchEx_iface, riid, rgszNames, cNames,
66 lcid, rgDispId);
67}
68
69static HRESULT WINAPI HTMLStyle3_Invoke(IHTMLStyle3 *iface, DISPID dispIdMember,
70 REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams,
71 VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
72{
73 HTMLStyle *This = impl_from_IHTMLStyle3(iface);
74 return IDispatchEx_Invoke(&This->dispex.IDispatchEx_iface, dispIdMember, riid, lcid,
75 wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
76}
77
78static HRESULT WINAPI HTMLStyle3_put_layoutFlow(IHTMLStyle3 *iface, BSTR v)
79{
80 HTMLStyle *This = impl_from_IHTMLStyle3(iface);
81 FIXME("(%p)->(%s)\n", This, debugstr_w(v));
82 return E_NOTIMPL;
83}
84
85static HRESULT WINAPI HTMLStyle3_get_layoutFlow(IHTMLStyle3 *iface, BSTR *p)
86{
87 HTMLStyle *This = impl_from_IHTMLStyle3(iface);
88 FIXME("(%p)->(%p)\n", This, p);
89 return E_NOTIMPL;
90}
91
92static const WCHAR zoomW[] = {'z','o','o','m',0};
93
94static HRESULT WINAPI HTMLStyle3_put_zoom(IHTMLStyle3 *iface, VARIANT v)
95{
96 HTMLStyle *This = impl_from_IHTMLStyle3(iface);
97 VARIANT *var;
98 HRESULT hres;
99
100 TRACE("(%p)->(%s)\n", This, debugstr_variant(&v));
101
102 /* zoom property is IE CSS extension that is mostly used as a hack to workaround IE bugs.
103 * The value is set to 1 then. We can safely ignore setting zoom to 1. */
104 if(V_VT(&v) != VT_I4 || V_I4(&v) != 1)
105 WARN("stub for %s\n", debugstr_variant(&v));
106
107 hres = dispex_get_dprop_ref(&This->dispex, zoomW, TRUE, &var);
108 if(FAILED(hres))
109 return hres;
110
111 return VariantChangeType(var, &v, 0, VT_BSTR);
112}
113
114static HRESULT WINAPI HTMLStyle3_get_zoom(IHTMLStyle3 *iface, VARIANT *p)
115{
116 HTMLStyle *This = impl_from_IHTMLStyle3(iface);
117 VARIANT *var;
118 HRESULT hres;
119
120 TRACE("(%p)->(%p)\n", This, p);
121
122 hres = dispex_get_dprop_ref(&This->dispex, zoomW, FALSE, &var);
123 if(hres == DISP_E_UNKNOWNNAME) {
124 V_VT(p) = VT_BSTR;
125 V_BSTR(p) = NULL;
126 return S_OK;
127 }
128 if(FAILED(hres))
129 return hres;
130
131 return VariantCopy(p, var);
132}
133
134static HRESULT WINAPI HTMLStyle3_put_wordWrap(IHTMLStyle3 *iface, BSTR v)
135{
136 HTMLStyle *This = impl_from_IHTMLStyle3(iface);
137
138 TRACE("(%p)->(%s)\n", This, debugstr_w(v));
139
140 return set_nsstyle_attr(This->nsstyle, STYLEID_WORD_WRAP, v, 0);
141}
142
143static HRESULT WINAPI HTMLStyle3_get_wordWrap(IHTMLStyle3 *iface, BSTR *p)
144{
145 HTMLStyle *This = impl_from_IHTMLStyle3(iface);
146
147 TRACE("(%p)->(%p)\n", This, p);
148
149 return get_nsstyle_attr(This->nsstyle, STYLEID_WORD_WRAP, p, 0);
150}
151
152static HRESULT WINAPI HTMLStyle3_put_textUnderlinePosition(IHTMLStyle3 *iface, BSTR v)
153{
154 HTMLStyle *This = impl_from_IHTMLStyle3(iface);
155 FIXME("(%p)->(%s)\n", This, debugstr_w(v));
156 return E_NOTIMPL;
157}
158
159static HRESULT WINAPI HTMLStyle3_get_textUnderlinePosition(IHTMLStyle3 *iface, BSTR *p)
160{
161 HTMLStyle *This = impl_from_IHTMLStyle3(iface);
162 FIXME("(%p)->(%p)\n", This, p);
163 return E_NOTIMPL;
164}
165
166static HRESULT WINAPI HTMLStyle3_put_scrollbarBaseColor(IHTMLStyle3 *iface, VARIANT v)
167{
168 HTMLStyle *This = impl_from_IHTMLStyle3(iface);
169 FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
170 return E_NOTIMPL;
171}
172
173static HRESULT WINAPI HTMLStyle3_get_scrollbarBaseColor(IHTMLStyle3 *iface, VARIANT *p)
174{
175 HTMLStyle *This = impl_from_IHTMLStyle3(iface);
176 FIXME("(%p)->(%p)\n", This, p);
177 return E_NOTIMPL;
178}
179
180static HRESULT WINAPI HTMLStyle3_put_scrollbarFaceColor(IHTMLStyle3 *iface, VARIANT v)
181{
182 HTMLStyle *This = impl_from_IHTMLStyle3(iface);
183 FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
184 return E_NOTIMPL;
185}
186
187static HRESULT WINAPI HTMLStyle3_get_scrollbarFaceColor(IHTMLStyle3 *iface, VARIANT *p)
188{
189 HTMLStyle *This = impl_from_IHTMLStyle3(iface);
190 FIXME("(%p)->(%p)\n", This, p);
191 return E_NOTIMPL;
192}
193
194static HRESULT WINAPI HTMLStyle3_put_scrollbar3dLightColor(IHTMLStyle3 *iface, VARIANT v)
195{
196 HTMLStyle *This = impl_from_IHTMLStyle3(iface);
197 FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
198 return E_NOTIMPL;
199}
200
201static HRESULT WINAPI HTMLStyle3_get_scrollbar3dLightColor(IHTMLStyle3 *iface, VARIANT *p)
202{
203 HTMLStyle *This = impl_from_IHTMLStyle3(iface);
204 FIXME("(%p)->(%p)\n", This, p);
205 return E_NOTIMPL;
206}
207
208static HRESULT WINAPI HTMLStyle3_put_scrollbarShadowColor(IHTMLStyle3 *iface, VARIANT v)
209{
210 HTMLStyle *This = impl_from_IHTMLStyle3(iface);
211 FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
212 return E_NOTIMPL;
213}
214
215static HRESULT WINAPI HTMLStyle3_get_scrollbarShadowColor(IHTMLStyle3 *iface, VARIANT *p)
216{
217 HTMLStyle *This = impl_from_IHTMLStyle3(iface);
218 FIXME("(%p)->(%p)\n", This, p);
219 return E_NOTIMPL;
220}
221
222static HRESULT WINAPI HTMLStyle3_put_scrollbarHighlightColor(IHTMLStyle3 *iface, VARIANT v)
223{
224 HTMLStyle *This = impl_from_IHTMLStyle3(iface);
225 FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
226 return E_NOTIMPL;
227}
228
229static HRESULT WINAPI HTMLStyle3_get_scrollbarHighlightColor(IHTMLStyle3 *iface, VARIANT *p)
230{
231 HTMLStyle *This = impl_from_IHTMLStyle3(iface);
232 FIXME("(%p)->(%p)\n", This, p);
233 return E_NOTIMPL;
234}
235
236static HRESULT WINAPI HTMLStyle3_put_scrollbarDarkShadowColor(IHTMLStyle3 *iface, VARIANT v)
237{
238 HTMLStyle *This = impl_from_IHTMLStyle3(iface);
239 FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
240 return E_NOTIMPL;
241}
242
243static HRESULT WINAPI HTMLStyle3_get_scrollbarDarkShadowColor(IHTMLStyle3 *iface, VARIANT *p)
244{
245 HTMLStyle *This = impl_from_IHTMLStyle3(iface);
246 FIXME("(%p)->(%p)\n", This, p);
247 return E_NOTIMPL;
248}
249
250static HRESULT WINAPI HTMLStyle3_put_scrollbarArrowColor(IHTMLStyle3 *iface, VARIANT v)
251{
252 HTMLStyle *This = impl_from_IHTMLStyle3(iface);
253 FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
254 return E_NOTIMPL;
255}
256
257static HRESULT WINAPI HTMLStyle3_get_scrollbarArrowColor(IHTMLStyle3 *iface, VARIANT *p)
258{
259 HTMLStyle *This = impl_from_IHTMLStyle3(iface);
260 FIXME("(%p)->(%p)\n", This, p);
261 return E_NOTIMPL;
262}
263
264static HRESULT WINAPI HTMLStyle3_put_scrollbarTrackColor(IHTMLStyle3 *iface, VARIANT v)
265{
266 HTMLStyle *This = impl_from_IHTMLStyle3(iface);
267 FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
268 return E_NOTIMPL;
269}
270
271static HRESULT WINAPI HTMLStyle3_get_scrollbarTrackColor(IHTMLStyle3 *iface, VARIANT *p)
272{
273 HTMLStyle *This = impl_from_IHTMLStyle3(iface);
274 FIXME("(%p)->(%p)\n", This, p);
275 return E_NOTIMPL;
276}
277
278static HRESULT WINAPI HTMLStyle3_put_writingMode(IHTMLStyle3 *iface, BSTR v)
279{
280 HTMLStyle *This = impl_from_IHTMLStyle3(iface);
281 FIXME("(%p)->(%s)\n", This, debugstr_w(v));
282 return E_NOTIMPL;
283}
284
285static HRESULT WINAPI HTMLStyle3_get_writingMode(IHTMLStyle3 *iface, BSTR *p)
286{
287 HTMLStyle *This = impl_from_IHTMLStyle3(iface);
288 FIXME("(%p)->(%p)\n", This, p);
289 return E_NOTIMPL;
290}
291
292static HRESULT WINAPI HTMLStyle3_put_textAlignLast(IHTMLStyle3 *iface, BSTR v)
293{
294 HTMLStyle *This = impl_from_IHTMLStyle3(iface);
295 FIXME("(%p)->(%s)\n", This, debugstr_w(v));
296 return E_NOTIMPL;
297}
298
299static HRESULT WINAPI HTMLStyle3_get_textAlignLast(IHTMLStyle3 *iface, BSTR *p)
300{
301 HTMLStyle *This = impl_from_IHTMLStyle3(iface);
302 FIXME("(%p)->(%p)\n", This, p);
303 return E_NOTIMPL;
304}
305
306static HRESULT WINAPI HTMLStyle3_put_textKashidaSpace(IHTMLStyle3 *iface, VARIANT v)
307{
308 HTMLStyle *This = impl_from_IHTMLStyle3(iface);
309 FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
310 return E_NOTIMPL;
311}
312
313static HRESULT WINAPI HTMLStyle3_get_textKashidaSpace(IHTMLStyle3 *iface, VARIANT *p)
314{
315 HTMLStyle *This = impl_from_IHTMLStyle3(iface);
316 FIXME("(%p)->(%p)\n", This, p);
317 return E_NOTIMPL;
318}
319
320static const IHTMLStyle3Vtbl HTMLStyle3Vtbl = {
321 HTMLStyle3_QueryInterface,
322 HTMLStyle3_AddRef,
323 HTMLStyle3_Release,
324 HTMLStyle3_GetTypeInfoCount,
325 HTMLStyle3_GetTypeInfo,
326 HTMLStyle3_GetIDsOfNames,
327 HTMLStyle3_Invoke,
328 HTMLStyle3_put_layoutFlow,
329 HTMLStyle3_get_layoutFlow,
330 HTMLStyle3_put_zoom,
331 HTMLStyle3_get_zoom,
332 HTMLStyle3_put_wordWrap,
333 HTMLStyle3_get_wordWrap,
334 HTMLStyle3_put_textUnderlinePosition,
335 HTMLStyle3_get_textUnderlinePosition,
336 HTMLStyle3_put_scrollbarBaseColor,
337 HTMLStyle3_get_scrollbarBaseColor,
338 HTMLStyle3_put_scrollbarFaceColor,
339 HTMLStyle3_get_scrollbarFaceColor,
340 HTMLStyle3_put_scrollbar3dLightColor,
341 HTMLStyle3_get_scrollbar3dLightColor,
342 HTMLStyle3_put_scrollbarShadowColor,
343 HTMLStyle3_get_scrollbarShadowColor,
344 HTMLStyle3_put_scrollbarHighlightColor,
345 HTMLStyle3_get_scrollbarHighlightColor,
346 HTMLStyle3_put_scrollbarDarkShadowColor,
347 HTMLStyle3_get_scrollbarDarkShadowColor,
348 HTMLStyle3_put_scrollbarArrowColor,
349 HTMLStyle3_get_scrollbarArrowColor,
350 HTMLStyle3_put_scrollbarTrackColor,
351 HTMLStyle3_get_scrollbarTrackColor,
352 HTMLStyle3_put_writingMode,
353 HTMLStyle3_get_writingMode,
354 HTMLStyle3_put_textAlignLast,
355 HTMLStyle3_get_textAlignLast,
356 HTMLStyle3_put_textKashidaSpace,
357 HTMLStyle3_get_textKashidaSpace
358};
359
360/*
361 * IHTMLStyle4 Interface
362 */
363static inline HTMLStyle *impl_from_IHTMLStyle4(IHTMLStyle4 *iface)
364{
365 return CONTAINING_RECORD(iface, HTMLStyle, IHTMLStyle4_iface);
366}
367
368static HRESULT WINAPI HTMLStyle4_QueryInterface(IHTMLStyle4 *iface, REFIID riid, void **ppv)
369{
370 HTMLStyle *This = impl_from_IHTMLStyle4(iface);
371
372 return IHTMLStyle_QueryInterface(&This->IHTMLStyle_iface, riid, ppv);
373}
374
375static ULONG WINAPI HTMLStyle4_AddRef(IHTMLStyle4 *iface)
376{
377 HTMLStyle *This = impl_from_IHTMLStyle4(iface);
378
379 return IHTMLStyle_AddRef(&This->IHTMLStyle_iface);
380}
381
382static ULONG WINAPI HTMLStyle4_Release(IHTMLStyle4 *iface)
383{
384 HTMLStyle *This = impl_from_IHTMLStyle4(iface);
385
386 return IHTMLStyle_Release(&This->IHTMLStyle_iface);
387}
388
389static HRESULT WINAPI HTMLStyle4_GetTypeInfoCount(IHTMLStyle4 *iface, UINT *pctinfo)
390{
391 HTMLStyle *This = impl_from_IHTMLStyle4(iface);
392 return IDispatchEx_GetTypeInfoCount(&This->dispex.IDispatchEx_iface, pctinfo);
393}
394
395static HRESULT WINAPI HTMLStyle4_GetTypeInfo(IHTMLStyle4 *iface, UINT iTInfo,
396 LCID lcid, ITypeInfo **ppTInfo)
397{
398 HTMLStyle *This = impl_from_IHTMLStyle4(iface);
399 return IDispatchEx_GetTypeInfo(&This->dispex.IDispatchEx_iface, iTInfo, lcid, ppTInfo);
400}
401
402static HRESULT WINAPI HTMLStyle4_GetIDsOfNames(IHTMLStyle4 *iface, REFIID riid,
403 LPOLESTR *rgszNames, UINT cNames,
404 LCID lcid, DISPID *rgDispId)
405{
406 HTMLStyle *This = impl_from_IHTMLStyle4(iface);
407 return IDispatchEx_GetIDsOfNames(&This->dispex.IDispatchEx_iface, riid, rgszNames, cNames,
408 lcid, rgDispId);
409}
410
411static HRESULT WINAPI HTMLStyle4_Invoke(IHTMLStyle4 *iface, DISPID dispIdMember,
412 REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams,
413 VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
414{
415 HTMLStyle *This = impl_from_IHTMLStyle4(iface);
416 return IDispatchEx_Invoke(&This->dispex.IDispatchEx_iface, dispIdMember, riid, lcid,
417 wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
418}
419
420static HRESULT WINAPI HTMLStyle4_put_textOverflow(IHTMLStyle4 *iface, BSTR v)
421{
422 HTMLStyle *This = impl_from_IHTMLStyle4(iface);
423 FIXME("(%p)->(%s)\n", This, debugstr_w(v));
424 return E_NOTIMPL;
425}
426
427static HRESULT WINAPI HTMLStyle4_get_textOverflow(IHTMLStyle4 *iface, BSTR *p)
428{
429 HTMLStyle *This = impl_from_IHTMLStyle4(iface);
430 FIXME("(%p)->(%p)\n", This, p);
431 return E_NOTIMPL;
432}
433
434static HRESULT WINAPI HTMLStyle4_put_minHeight(IHTMLStyle4 *iface, VARIANT v)
435{
436 HTMLStyle *This = impl_from_IHTMLStyle4(iface);
437
438 TRACE("(%p)->(%s)\n", This, debugstr_variant(&v));
439
440 return set_nsstyle_attr_var(This->nsstyle, STYLEID_MIN_HEIGHT, &v, 0);
441}
442
443static HRESULT WINAPI HTMLStyle4_get_minHeight(IHTMLStyle4 *iface, VARIANT *p)
444{
445 HTMLStyle *This = impl_from_IHTMLStyle4(iface);
446
447 TRACE("(%p)->(%p)\n", This, p);
448
449 return get_nsstyle_attr_var(This->nsstyle, STYLEID_MIN_HEIGHT, p, 0);
450}
451
452static const IHTMLStyle4Vtbl HTMLStyle4Vtbl = {
453 HTMLStyle4_QueryInterface,
454 HTMLStyle4_AddRef,
455 HTMLStyle4_Release,
456 HTMLStyle4_GetTypeInfoCount,
457 HTMLStyle4_GetTypeInfo,
458 HTMLStyle4_GetIDsOfNames,
459 HTMLStyle4_Invoke,
460 HTMLStyle4_put_textOverflow,
461 HTMLStyle4_get_textOverflow,
462 HTMLStyle4_put_minHeight,
463 HTMLStyle4_get_minHeight
464};
465
466static inline HTMLStyle *impl_from_IHTMLStyle5(IHTMLStyle5 *iface)
467{
468 return CONTAINING_RECORD(iface, HTMLStyle, IHTMLStyle5_iface);
469}
470
471static HRESULT WINAPI HTMLStyle5_QueryInterface(IHTMLStyle5 *iface, REFIID riid, void **ppv)
472{
473 HTMLStyle *This = impl_from_IHTMLStyle5(iface);
474
475 return IHTMLStyle_QueryInterface(&This->IHTMLStyle_iface, riid, ppv);
476}
477
478static ULONG WINAPI HTMLStyle5_AddRef(IHTMLStyle5 *iface)
479{
480 HTMLStyle *This = impl_from_IHTMLStyle5(iface);
481
482 return IHTMLStyle_AddRef(&This->IHTMLStyle_iface);
483}
484
485static ULONG WINAPI HTMLStyle5_Release(IHTMLStyle5 *iface)
486{
487 HTMLStyle *This = impl_from_IHTMLStyle5(iface);
488
489 return IHTMLStyle_Release(&This->IHTMLStyle_iface);
490}
491
492static HRESULT WINAPI HTMLStyle5_GetTypeInfoCount(IHTMLStyle5 *iface, UINT *pctinfo)
493{
494 HTMLStyle *This = impl_from_IHTMLStyle5(iface);
495 return IDispatchEx_GetTypeInfoCount(&This->dispex.IDispatchEx_iface, pctinfo);
496}
497
498static HRESULT WINAPI HTMLStyle5_GetTypeInfo(IHTMLStyle5 *iface, UINT iTInfo,
499 LCID lcid, ITypeInfo **ppTInfo)
500{
501 HTMLStyle *This = impl_from_IHTMLStyle5(iface);
502 return IDispatchEx_GetTypeInfo(&This->dispex.IDispatchEx_iface, iTInfo, lcid, ppTInfo);
503}
504
505static HRESULT WINAPI HTMLStyle5_GetIDsOfNames(IHTMLStyle5 *iface, REFIID riid,
506 LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
507{
508 HTMLStyle *This = impl_from_IHTMLStyle5(iface);
509 return IDispatchEx_GetIDsOfNames(&This->dispex.IDispatchEx_iface, riid, rgszNames, cNames,
510 lcid, rgDispId);
511}
512
513static HRESULT WINAPI HTMLStyle5_Invoke(IHTMLStyle5 *iface, DISPID dispIdMember,
514 REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams,
515 VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
516{
517 HTMLStyle *This = impl_from_IHTMLStyle5(iface);
518 return IDispatchEx_Invoke(&This->dispex.IDispatchEx_iface, dispIdMember, riid, lcid,
519 wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
520}
521
522static HRESULT WINAPI HTMLStyle5_put_msInterpolationMode(IHTMLStyle5 *iface, BSTR v)
523{
524 HTMLStyle *This = impl_from_IHTMLStyle5(iface);
525 FIXME("(%p)->(%s)\n", This, debugstr_w(v));
526 return E_NOTIMPL;
527}
528
529static HRESULT WINAPI HTMLStyle5_get_msInterpolationMode(IHTMLStyle5 *iface, BSTR *p)
530{
531 HTMLStyle *This = impl_from_IHTMLStyle5(iface);
532 FIXME("(%p)->(%p)\n", This, p);
533 return E_NOTIMPL;
534}
535
536static HRESULT WINAPI HTMLStyle5_put_maxHeight(IHTMLStyle5 *iface, VARIANT v)
537{
538 HTMLStyle *This = impl_from_IHTMLStyle5(iface);
539
540 TRACE("(%p)->(%s)\n", This, debugstr_variant(&v));
541
542 return set_nsstyle_attr_var(This->nsstyle, STYLEID_MAX_HEIGHT, &v, ATTR_FIX_PX);
543}
544
545static HRESULT WINAPI HTMLStyle5_get_maxHeight(IHTMLStyle5 *iface, VARIANT *p)
546{
547 HTMLStyle *This = impl_from_IHTMLStyle5(iface);
548
549 TRACE("(%p)->(%s)\n", This, debugstr_variant(p));
550
551 return get_nsstyle_attr_var(This->nsstyle, STYLEID_MAX_HEIGHT, p, 0);
552}
553
554static HRESULT WINAPI HTMLStyle5_put_minWidth(IHTMLStyle5 *iface, VARIANT v)
555{
556 HTMLStyle *This = impl_from_IHTMLStyle5(iface);
557
558 TRACE("(%p)->(%s)\n", This, debugstr_variant(&v));
559
560 return set_nsstyle_attr_var(This->nsstyle, STYLEID_MIN_WIDTH, &v, ATTR_FIX_PX);
561}
562
563static HRESULT WINAPI HTMLStyle5_get_minWidth(IHTMLStyle5 *iface, VARIANT *p)
564{
565 HTMLStyle *This = impl_from_IHTMLStyle5(iface);
566
567 TRACE("(%p)->(%p)\n", This, p);
568
569 return get_nsstyle_attr_var(This->nsstyle, STYLEID_MIN_WIDTH, p, 0);
570}
571
572static HRESULT WINAPI HTMLStyle5_put_maxWidth(IHTMLStyle5 *iface, VARIANT v)
573{
574 HTMLStyle *This = impl_from_IHTMLStyle5(iface);
575
576 TRACE("(%p)->(%s)\n", This, debugstr_variant(&v));
577
578 return set_nsstyle_attr_var(This->nsstyle, STYLEID_MAX_WIDTH, &v, ATTR_FIX_PX);
579}
580
581static HRESULT WINAPI HTMLStyle5_get_maxWidth(IHTMLStyle5 *iface, VARIANT *p)
582{
583 HTMLStyle *This = impl_from_IHTMLStyle5(iface);
584
585 TRACE("(%p)->(%p)\n", This, p);
586
587 return get_nsstyle_attr_var(This->nsstyle, STYLEID_MAX_WIDTH, p, 0);
588}
589
590static const IHTMLStyle5Vtbl HTMLStyle5Vtbl = {
591 HTMLStyle5_QueryInterface,
592 HTMLStyle5_AddRef,
593 HTMLStyle5_Release,
594 HTMLStyle5_GetTypeInfoCount,
595 HTMLStyle5_GetTypeInfo,
596 HTMLStyle5_GetIDsOfNames,
597 HTMLStyle5_Invoke,
598 HTMLStyle5_put_msInterpolationMode,
599 HTMLStyle5_get_msInterpolationMode,
600 HTMLStyle5_put_maxHeight,
601 HTMLStyle5_get_maxHeight,
602 HTMLStyle5_put_minWidth,
603 HTMLStyle5_get_minWidth,
604 HTMLStyle5_put_maxWidth,
605 HTMLStyle5_get_maxWidth
606};
607
608static inline HTMLStyle *impl_from_IHTMLStyle6(IHTMLStyle6 *iface)
609{
610 return CONTAINING_RECORD(iface, HTMLStyle, IHTMLStyle6_iface);
611}
612
613static HRESULT WINAPI HTMLStyle6_QueryInterface(IHTMLStyle6 *iface, REFIID riid, void **ppv)
614{
615 HTMLStyle *This = impl_from_IHTMLStyle6(iface);
616
617 return IHTMLStyle_QueryInterface(&This->IHTMLStyle_iface, riid, ppv);
618}
619
620static ULONG WINAPI HTMLStyle6_AddRef(IHTMLStyle6 *iface)
621{
622 HTMLStyle *This = impl_from_IHTMLStyle6(iface);
623
624 return IHTMLStyle_AddRef(&This->IHTMLStyle_iface);
625}
626
627static ULONG WINAPI HTMLStyle6_Release(IHTMLStyle6 *iface)
628{
629 HTMLStyle *This = impl_from_IHTMLStyle6(iface);
630
631 return IHTMLStyle_Release(&This->IHTMLStyle_iface);
632}
633
634static HRESULT WINAPI HTMLStyle6_GetTypeInfoCount(IHTMLStyle6 *iface, UINT *pctinfo)
635{
636 HTMLStyle *This = impl_from_IHTMLStyle6(iface);
637 return IDispatchEx_GetTypeInfoCount(&This->dispex.IDispatchEx_iface, pctinfo);
638}
639
640static HRESULT WINAPI HTMLStyle6_GetTypeInfo(IHTMLStyle6 *iface, UINT iTInfo,
641 LCID lcid, ITypeInfo **ppTInfo)
642{
643 HTMLStyle *This = impl_from_IHTMLStyle6(iface);
644 return IDispatchEx_GetTypeInfo(&This->dispex.IDispatchEx_iface, iTInfo, lcid, ppTInfo);
645}
646
647static HRESULT WINAPI HTMLStyle6_GetIDsOfNames(IHTMLStyle6 *iface, REFIID riid,
648 LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
649{
650 HTMLStyle *This = impl_from_IHTMLStyle6(iface);
651 return IDispatchEx_GetIDsOfNames(&This->dispex.IDispatchEx_iface, riid, rgszNames, cNames,
652 lcid, rgDispId);
653}
654
655static HRESULT WINAPI HTMLStyle6_Invoke(IHTMLStyle6 *iface, DISPID dispIdMember,
656 REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams,
657 VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
658{
659 HTMLStyle *This = impl_from_IHTMLStyle6(iface);
660 return IDispatchEx_Invoke(&This->dispex.IDispatchEx_iface, dispIdMember, riid, lcid,
661 wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
662}
663
664static HRESULT WINAPI HTMLStyle6_put_content(IHTMLStyle6 *iface, BSTR v)
665{
666 HTMLStyle *This = impl_from_IHTMLStyle6(iface);
667 FIXME("(%p)->(%s)\n", This, debugstr_w(v));
668 return E_NOTIMPL;
669}
670
671static HRESULT WINAPI HTMLStyle6_get_content(IHTMLStyle6 *iface, BSTR *p)
672{
673 HTMLStyle *This = impl_from_IHTMLStyle6(iface);
674 FIXME("(%p)->(%p)\n", This, p);
675 return E_NOTIMPL;
676}
677
678static HRESULT WINAPI HTMLStyle6_put_contentSide(IHTMLStyle6 *iface, BSTR v)
679{
680 HTMLStyle *This = impl_from_IHTMLStyle6(iface);
681 FIXME("(%p)->(%s)\n", This, debugstr_w(v));
682 return E_NOTIMPL;
683}
684
685static HRESULT WINAPI HTMLStyle6_get_contentSide(IHTMLStyle6 *iface, BSTR *p)
686{
687 HTMLStyle *This = impl_from_IHTMLStyle6(iface);
688 FIXME("(%p)->(%p)\n", This, p);
689 return E_NOTIMPL;
690}
691
692static HRESULT WINAPI HTMLStyle6_put_counterIncrement(IHTMLStyle6 *iface, BSTR v)
693{
694 HTMLStyle *This = impl_from_IHTMLStyle6(iface);
695 FIXME("(%p)->(%s)\n", This, debugstr_w(v));
696 return E_NOTIMPL;
697}
698
699static HRESULT WINAPI HTMLStyle6_get_counterIncrement(IHTMLStyle6 *iface, BSTR *p)
700{
701 HTMLStyle *This = impl_from_IHTMLStyle6(iface);
702 FIXME("(%p)->(%p)\n", This, p);
703 return E_NOTIMPL;
704}
705
706static HRESULT WINAPI HTMLStyle6_put_counterReset(IHTMLStyle6 *iface, BSTR v)
707{
708 HTMLStyle *This = impl_from_IHTMLStyle6(iface);
709 FIXME("(%p)->(%s)\n", This, debugstr_w(v));
710 return E_NOTIMPL;
711}
712
713static HRESULT WINAPI HTMLStyle6_get_counterReset(IHTMLStyle6 *iface, BSTR *p)
714{
715 HTMLStyle *This = impl_from_IHTMLStyle6(iface);
716 FIXME("(%p)->(%p)\n", This, p);
717 return E_NOTIMPL;
718}
719
720static HRESULT WINAPI HTMLStyle6_put_outline(IHTMLStyle6 *iface, BSTR v)
721{
722 HTMLStyle *This = impl_from_IHTMLStyle6(iface);
723
724 TRACE("(%p)->(%s)\n", This, debugstr_w(v));
725
726 return set_nsstyle_attr(This->nsstyle, STYLEID_OUTLINE, v, 0);
727}
728
729static HRESULT WINAPI HTMLStyle6_get_outline(IHTMLStyle6 *iface, BSTR *p)
730{
731 HTMLStyle *This = impl_from_IHTMLStyle6(iface);
732
733 TRACE("(%p)->(%p)\n", This, p);
734
735 return get_nsstyle_attr(This->nsstyle, STYLEID_OUTLINE, p, ATTR_NO_NULL);
736}
737
738static HRESULT WINAPI HTMLStyle6_put_outlineWidth(IHTMLStyle6 *iface, VARIANT v)
739{
740 HTMLStyle *This = impl_from_IHTMLStyle6(iface);
741 FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
742 return E_NOTIMPL;
743}
744
745static HRESULT WINAPI HTMLStyle6_get_outlineWidth(IHTMLStyle6 *iface, VARIANT *p)
746{
747 HTMLStyle *This = impl_from_IHTMLStyle6(iface);
748 FIXME("(%p)->(%p)\n", This, p);
749 return E_NOTIMPL;
750}
751
752static HRESULT WINAPI HTMLStyle6_put_outlineStyle(IHTMLStyle6 *iface, BSTR v)
753{
754 HTMLStyle *This = impl_from_IHTMLStyle6(iface);
755 FIXME("(%p)->(%s)\n", This, debugstr_w(v));
756 return E_NOTIMPL;
757}
758
759static HRESULT WINAPI HTMLStyle6_get_outlineStyle(IHTMLStyle6 *iface, BSTR *p)
760{
761 HTMLStyle *This = impl_from_IHTMLStyle6(iface);
762 FIXME("(%p)->(%p)\n", This, p);
763 return E_NOTIMPL;
764}
765
766static HRESULT WINAPI HTMLStyle6_put_outlineColor(IHTMLStyle6 *iface, VARIANT v)
767{
768 HTMLStyle *This = impl_from_IHTMLStyle6(iface);
769 FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
770 return E_NOTIMPL;
771}
772
773static HRESULT WINAPI HTMLStyle6_get_outlineColor(IHTMLStyle6 *iface, VARIANT *p)
774{
775 HTMLStyle *This = impl_from_IHTMLStyle6(iface);
776 FIXME("(%p)->(%p)\n", This, p);
777 return E_NOTIMPL;
778}
779
780static HRESULT WINAPI HTMLStyle6_put_boxSizing(IHTMLStyle6 *iface, BSTR v)
781{
782 HTMLStyle *This = impl_from_IHTMLStyle6(iface);
783
784 TRACE("(%p)->(%s)\n", This, debugstr_w(v));
785
786 return set_nsstyle_attr(This->nsstyle, STYLEID_BOX_SIZING, v, 0);
787}
788
789static HRESULT WINAPI HTMLStyle6_get_boxSizing(IHTMLStyle6 *iface, BSTR *p)
790{
791 HTMLStyle *This = impl_from_IHTMLStyle6(iface);
792
793 TRACE("(%p)->(%p)\n", This, p);
794
795 return get_nsstyle_attr(This->nsstyle, STYLEID_BOX_SIZING, p, 0);
796}
797
798static HRESULT WINAPI HTMLStyle6_put_boxSpacing(IHTMLStyle6 *iface, BSTR v)
799{
800 HTMLStyle *This = impl_from_IHTMLStyle6(iface);
801 FIXME("(%p)->(%s)\n", This, debugstr_w(v));
802 return E_NOTIMPL;
803}
804
805static HRESULT WINAPI HTMLStyle6_get_boxSpacing(IHTMLStyle6 *iface, BSTR *p)
806{
807 HTMLStyle *This = impl_from_IHTMLStyle6(iface);
808 FIXME("(%p)->(%p)\n", This, p);
809 return E_NOTIMPL;
810}
811
812static HRESULT WINAPI HTMLStyle6_put_orphans(IHTMLStyle6 *iface, VARIANT v)
813{
814 HTMLStyle *This = impl_from_IHTMLStyle6(iface);
815 FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
816 return E_NOTIMPL;
817}
818
819static HRESULT WINAPI HTMLStyle6_get_orphans(IHTMLStyle6 *iface, VARIANT *p)
820{
821 HTMLStyle *This = impl_from_IHTMLStyle6(iface);
822 FIXME("(%p)->(%p)\n", This, p);
823 return E_NOTIMPL;
824}
825
826static HRESULT WINAPI HTMLStyle6_put_windows(IHTMLStyle6 *iface, VARIANT v)
827{
828 HTMLStyle *This = impl_from_IHTMLStyle6(iface);
829 FIXME("(%p)->(%s)\n", This, debugstr_variant(&v));
830 return E_NOTIMPL;
831}
832
833static HRESULT WINAPI HTMLStyle6_get_windows(IHTMLStyle6 *iface, VARIANT *p)
834{
835 HTMLStyle *This = impl_from_IHTMLStyle6(iface);
836 FIXME("(%p)->(%p)\n", This, p);
837 return E_NOTIMPL;
838}
839
840static HRESULT WINAPI HTMLStyle6_put_pageBreakInside(IHTMLStyle6 *iface, BSTR v)
841{
842 HTMLStyle *This = impl_from_IHTMLStyle6(iface);
843 FIXME("(%p)->(%s)\n", This, debugstr_w(v));
844 return E_NOTIMPL;
845}
846
847static HRESULT WINAPI HTMLStyle6_get_pageBreakInside(IHTMLStyle6 *iface, BSTR *p)
848{
849 HTMLStyle *This = impl_from_IHTMLStyle6(iface);
850 FIXME("(%p)->(%p)\n", This, p);
851 return E_NOTIMPL;
852}
853
854static HRESULT WINAPI HTMLStyle6_put_emptyCells(IHTMLStyle6 *iface, BSTR v)
855{
856 HTMLStyle *This = impl_from_IHTMLStyle6(iface);
857 FIXME("(%p)->(%s)\n", This, debugstr_w(v));
858 return E_NOTIMPL;
859}
860
861static HRESULT WINAPI HTMLStyle6_get_emptyCells(IHTMLStyle6 *iface, BSTR *p)
862{
863 HTMLStyle *This = impl_from_IHTMLStyle6(iface);
864 FIXME("(%p)->(%p)\n", This, p);
865 return E_NOTIMPL;
866}
867
868static HRESULT WINAPI HTMLStyle6_put_msBlockProgression(IHTMLStyle6 *iface, BSTR v)
869{
870 HTMLStyle *This = impl_from_IHTMLStyle6(iface);
871 FIXME("(%p)->(%s)\n", This, debugstr_w(v));
872 return E_NOTIMPL;
873}
874
875static HRESULT WINAPI HTMLStyle6_get_msBlockProgression(IHTMLStyle6 *iface, BSTR *p)
876{
877 HTMLStyle *This = impl_from_IHTMLStyle6(iface);
878 FIXME("(%p)->(%p)\n", This, p);
879 return E_NOTIMPL;
880}
881
882static HRESULT WINAPI HTMLStyle6_put_quotes(IHTMLStyle6 *iface, BSTR v)
883{
884 HTMLStyle *This = impl_from_IHTMLStyle6(iface);
885 FIXME("(%p)->(%s)\n", This, debugstr_w(v));
886 return E_NOTIMPL;
887}
888
889static HRESULT WINAPI HTMLStyle6_get_quotes(IHTMLStyle6 *iface, BSTR *p)
890{
891 HTMLStyle *This = impl_from_IHTMLStyle6(iface);
892 FIXME("(%p)->(%p)\n", This, p);
893 return E_NOTIMPL;
894}
895
896static const IHTMLStyle6Vtbl HTMLStyle6Vtbl = {
897 HTMLStyle6_QueryInterface,
898 HTMLStyle6_AddRef,
899 HTMLStyle6_Release,
900 HTMLStyle6_GetTypeInfoCount,
901 HTMLStyle6_GetTypeInfo,
902 HTMLStyle6_GetIDsOfNames,
903 HTMLStyle6_Invoke,
904 HTMLStyle6_put_content,
905 HTMLStyle6_get_content,
906 HTMLStyle6_put_contentSide,
907 HTMLStyle6_get_contentSide,
908 HTMLStyle6_put_counterIncrement,
909 HTMLStyle6_get_counterIncrement,
910 HTMLStyle6_put_counterReset,
911 HTMLStyle6_get_counterReset,
912 HTMLStyle6_put_outline,
913 HTMLStyle6_get_outline,
914 HTMLStyle6_put_outlineWidth,
915 HTMLStyle6_get_outlineWidth,
916 HTMLStyle6_put_outlineStyle,
917 HTMLStyle6_get_outlineStyle,
918 HTMLStyle6_put_outlineColor,
919 HTMLStyle6_get_outlineColor,
920 HTMLStyle6_put_boxSizing,
921 HTMLStyle6_get_boxSizing,
922 HTMLStyle6_put_boxSpacing,
923 HTMLStyle6_get_boxSpacing,
924 HTMLStyle6_put_orphans,
925 HTMLStyle6_get_orphans,
926 HTMLStyle6_put_windows,
927 HTMLStyle6_get_windows,
928 HTMLStyle6_put_pageBreakInside,
929 HTMLStyle6_get_pageBreakInside,
930 HTMLStyle6_put_emptyCells,
931 HTMLStyle6_get_emptyCells,
932 HTMLStyle6_put_msBlockProgression,
933 HTMLStyle6_get_msBlockProgression,
934 HTMLStyle6_put_quotes,
935 HTMLStyle6_get_quotes
936};
937
938void HTMLStyle3_Init(HTMLStyle *This)
939{
940 This->IHTMLStyle3_iface.lpVtbl = &HTMLStyle3Vtbl;
941 This->IHTMLStyle4_iface.lpVtbl = &HTMLStyle4Vtbl;
942 This->IHTMLStyle5_iface.lpVtbl = &HTMLStyle5Vtbl;
943 This->IHTMLStyle6_iface.lpVtbl = &HTMLStyle6Vtbl;
944}