[MSHTA] Implement MSHTA.exe (#577) CORE-12813
[reactos.git] / dll / win32 / mshtml / htmlstyle3.c
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
21 static inline HTMLStyle *impl_from_IHTMLStyle3(IHTMLStyle3 *iface)
22 {
23 return CONTAINING_RECORD(iface, HTMLStyle, IHTMLStyle3_iface);
24 }
25
26 static 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
33 static ULONG WINAPI HTMLStyle3_AddRef(IHTMLStyle3 *iface)
34 {
35 HTMLStyle *This = impl_from_IHTMLStyle3(iface);
36
37 return IHTMLStyle_AddRef(&This->IHTMLStyle_iface);
38 }
39
40 static ULONG WINAPI HTMLStyle3_Release(IHTMLStyle3 *iface)
41 {
42 HTMLStyle *This = impl_from_IHTMLStyle3(iface);
43
44 return IHTMLStyle_Release(&This->IHTMLStyle_iface);
45 }
46
47 static 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
53 static 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
60 static 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
69 static 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
78 static 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
85 static 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
92 static const WCHAR zoomW[] = {'z','o','o','m',0};
93
94 static 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
114 static 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
134 static 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
143 static 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
152 static 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
159 static 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
166 static 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
173 static 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
180 static 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
187 static 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
194 static 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
201 static 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
208 static 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
215 static 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
222 static 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
229 static 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
236 static 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
243 static 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
250 static 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
257 static 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
264 static 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
271 static 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
278 static 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
285 static 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
292 static 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
299 static 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
306 static 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
313 static 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
320 static 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 */
363 static inline HTMLStyle *impl_from_IHTMLStyle4(IHTMLStyle4 *iface)
364 {
365 return CONTAINING_RECORD(iface, HTMLStyle, IHTMLStyle4_iface);
366 }
367
368 static 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
375 static ULONG WINAPI HTMLStyle4_AddRef(IHTMLStyle4 *iface)
376 {
377 HTMLStyle *This = impl_from_IHTMLStyle4(iface);
378
379 return IHTMLStyle_AddRef(&This->IHTMLStyle_iface);
380 }
381
382 static ULONG WINAPI HTMLStyle4_Release(IHTMLStyle4 *iface)
383 {
384 HTMLStyle *This = impl_from_IHTMLStyle4(iface);
385
386 return IHTMLStyle_Release(&This->IHTMLStyle_iface);
387 }
388
389 static 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
395 static 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
402 static 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
411 static 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
420 static 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
427 static 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
434 static 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
443 static 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
452 static 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
466 static inline HTMLStyle *impl_from_IHTMLStyle5(IHTMLStyle5 *iface)
467 {
468 return CONTAINING_RECORD(iface, HTMLStyle, IHTMLStyle5_iface);
469 }
470
471 static 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
478 static ULONG WINAPI HTMLStyle5_AddRef(IHTMLStyle5 *iface)
479 {
480 HTMLStyle *This = impl_from_IHTMLStyle5(iface);
481
482 return IHTMLStyle_AddRef(&This->IHTMLStyle_iface);
483 }
484
485 static ULONG WINAPI HTMLStyle5_Release(IHTMLStyle5 *iface)
486 {
487 HTMLStyle *This = impl_from_IHTMLStyle5(iface);
488
489 return IHTMLStyle_Release(&This->IHTMLStyle_iface);
490 }
491
492 static 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
498 static 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
505 static 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
513 static 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
522 static 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
529 static 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
536 static 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
545 static 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
554 static 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
563 static 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
572 static 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
581 static 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
590 static 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
608 static inline HTMLStyle *impl_from_IHTMLStyle6(IHTMLStyle6 *iface)
609 {
610 return CONTAINING_RECORD(iface, HTMLStyle, IHTMLStyle6_iface);
611 }
612
613 static 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
620 static ULONG WINAPI HTMLStyle6_AddRef(IHTMLStyle6 *iface)
621 {
622 HTMLStyle *This = impl_from_IHTMLStyle6(iface);
623
624 return IHTMLStyle_AddRef(&This->IHTMLStyle_iface);
625 }
626
627 static ULONG WINAPI HTMLStyle6_Release(IHTMLStyle6 *iface)
628 {
629 HTMLStyle *This = impl_from_IHTMLStyle6(iface);
630
631 return IHTMLStyle_Release(&This->IHTMLStyle_iface);
632 }
633
634 static 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
640 static 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
647 static 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
655 static 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
664 static 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
671 static 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
678 static 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
685 static 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
692 static 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
699 static 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
706 static 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
713 static 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
720 static 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
729 static 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
738 static 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
745 static 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
752 static 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
759 static 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
766 static 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
773 static 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
780 static 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
789 static 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
798 static 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
805 static 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
812 static 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
819 static 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
826 static 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
833 static 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
840 static 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
847 static 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
854 static 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
861 static 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
868 static 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
875 static 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
882 static 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
889 static 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
896 static 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
938 void 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 }