shell32: Avoid checking for <0 for unsigned variables.
[wine] / dlls / mshtml / htmlstyle.c
1 /*
2  * Copyright 2006 Jacek Caban for CodeWeavers
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17  */
18
19 #include "config.h"
20
21 #include <stdarg.h>
22 #include <stdio.h>
23
24 #define COBJMACROS
25
26 #include "windef.h"
27 #include "winbase.h"
28 #include "winuser.h"
29 #include "winnls.h"
30 #include "ole2.h"
31
32 #include "wine/debug.h"
33 #include "wine/unicode.h"
34
35 #include "mshtml_private.h"
36
37 WINE_DEFAULT_DEBUG_CHANNEL(mshtml);
38
39 typedef struct {
40     const IHTMLStyleVtbl *lpHTMLStyleVtbl;
41
42     LONG ref;
43
44     nsIDOMCSSStyleDeclaration *nsstyle;
45 } HTMLStyle;
46
47 #define HTMLSTYLE(x)  ((IHTMLStyle*) &(x)->lpHTMLStyleVtbl);
48
49 static const WCHAR attrBackgroundColor[] =
50     {'b','a','c','k','g','r','o','u','n','d','-','c','o','l','o','r',0};
51 static const WCHAR attrColor[] =
52     {'c','o','l','o','r',0};
53 static const WCHAR attrDisplay[] =
54     {'d','i','s','p','l','a','y',0};
55 static const WCHAR attrFontFamily[] =
56     {'f','o','n','t','-','f','a','m','i','l','y',0};
57 static const WCHAR attrFontSize[] =
58     {'f','o','n','t','-','s','i','z','e',0};
59 static const WCHAR attrFontStyle[] =
60     {'f','o','n','t','-','s','t','y','l','e',0};
61 static const WCHAR attrFontWeight[] =
62     {'f','o','n','t','-','w','e','i','g','h','t',0};
63 static const WCHAR attrTextDecoration[] =
64     {'t','e','x','t','-','d','e','c','o','r','a','t','i','o','n',0};
65 static const WCHAR attrVisibility[] =
66     {'v','i','s','i','b','i','l','i','t','y',0};
67
68 static const WCHAR valLineThrough[] =
69     {'l','i','n','e','-','t','h','r','o','u','g','h',0};
70 static const WCHAR valUnderline[] =
71     {'u','n','d','e','r','l','i','n','e',0};
72
73 static HRESULT set_style_attr(HTMLStyle *This, LPCWSTR name, LPCWSTR value)
74 {
75     nsAString str_name, str_value, str_empty;
76     nsresult nsres;
77
78     static const PRUnichar wszEmpty[] = {0};
79
80     TRACE("(%p)->(%s %s)\n", This, debugstr_w(name), debugstr_w(value));
81
82     nsAString_Init(&str_name, name);
83     nsAString_Init(&str_value, value);
84     nsAString_Init(&str_empty, wszEmpty);
85
86     nsres = nsIDOMCSSStyleDeclaration_SetProperty(This->nsstyle, &str_name, &str_value, &str_empty);
87     if(NS_FAILED(nsres))
88         ERR("SetProperty failed: %08x\n", nsres);
89
90     nsAString_Finish(&str_name);
91     nsAString_Finish(&str_value);
92     nsAString_Finish(&str_empty);
93
94     return S_OK;
95 }
96
97 static HRESULT get_style_attr_nsval(HTMLStyle *This, LPCWSTR name, nsAString *value)
98 {
99     nsAString str_name;
100     nsresult nsres;
101
102     nsAString_Init(&str_name, name);
103
104     nsres = nsIDOMCSSStyleDeclaration_GetPropertyValue(This->nsstyle, &str_name, value);
105     if(NS_FAILED(nsres)) {
106         ERR("SetProperty failed: %08x\n", nsres);
107         return E_FAIL;
108     }
109
110     nsAString_Finish(&str_name);
111
112     return NS_OK;
113 }
114
115 static HRESULT get_style_attr(HTMLStyle *This, LPCWSTR name, BSTR *p)
116 {
117     nsAString str_value;
118     const PRUnichar *value;
119
120     nsAString_Init(&str_value, NULL);
121
122     get_style_attr_nsval(This, name, &str_value);
123
124     nsAString_GetData(&str_value, &value, NULL);
125     *p = *value ? SysAllocString(value) : NULL;
126
127     nsAString_Finish(&str_value);
128
129     TRACE("%s -> %s\n", debugstr_w(name), debugstr_w(*p));
130     return S_OK;
131 }
132
133 static HRESULT check_style_attr_value(HTMLStyle *This, LPCWSTR name, LPCWSTR exval, VARIANT_BOOL *p)
134 {
135     nsAString str_value;
136     const PRUnichar *value;
137
138     nsAString_Init(&str_value, NULL);
139
140     get_style_attr_nsval(This, name, &str_value);
141
142     nsAString_GetData(&str_value, &value, NULL);
143     *p = strcmpW(value, exval) ? VARIANT_FALSE : VARIANT_TRUE;
144     nsAString_Finish(&str_value);
145
146     TRACE("%s -> %x\n", debugstr_w(name), *p);
147     return S_OK;
148 }
149
150 #define HTMLSTYLE_THIS(iface) DEFINE_THIS(HTMLStyle, HTMLStyle, iface)
151
152 static HRESULT WINAPI HTMLStyle_QueryInterface(IHTMLStyle *iface, REFIID riid, void **ppv)
153 {
154     HTMLStyle *This = HTMLSTYLE_THIS(iface);
155
156     *ppv = NULL;
157
158     if(IsEqualGUID(&IID_IUnknown, riid)) {
159         TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
160         *ppv = HTMLSTYLE(This);
161     }else if(IsEqualGUID(&IID_IDispatch, riid)) {
162         TRACE("(%p)->(IID_IDispatch %p)\n", This, ppv);
163         *ppv = HTMLSTYLE(This);
164     }else if(IsEqualGUID(&IID_IHTMLStyle, riid)) {
165         TRACE("(%p)->(IID_IHTMLStyle %p)\n", This, ppv);
166         *ppv = HTMLSTYLE(This);
167     }
168
169     if(*ppv) {
170         IUnknown_AddRef((IUnknown*)*ppv);
171         return S_OK;
172     }
173
174     WARN("unsupported %s\n", debugstr_guid(riid));
175     return E_NOINTERFACE;
176 }
177
178 static ULONG WINAPI HTMLStyle_AddRef(IHTMLStyle *iface)
179 {
180     HTMLStyle *This = HTMLSTYLE_THIS(iface);
181     LONG ref = InterlockedIncrement(&This->ref);
182
183     TRACE("(%p) ref=%d\n", This, ref);
184
185     return ref;
186 }
187
188 static ULONG WINAPI HTMLStyle_Release(IHTMLStyle *iface)
189 {
190     HTMLStyle *This = HTMLSTYLE_THIS(iface);
191     LONG ref = InterlockedDecrement(&This->ref);
192
193     TRACE("(%p) ref=%d\n", This, ref);
194
195     if(!ref)
196         mshtml_free(This);
197
198     return ref;
199 }
200
201 static HRESULT WINAPI HTMLStyle_GetTypeInfoCount(IHTMLStyle *iface, UINT *pctinfo)
202 {
203     HTMLStyle *This = HTMLSTYLE_THIS(iface);
204     FIXME("(%p)->(%p)\n", This, pctinfo);
205     return E_NOTIMPL;
206 }
207
208 static HRESULT WINAPI HTMLStyle_GetTypeInfo(IHTMLStyle *iface, UINT iTInfo,
209                                               LCID lcid, ITypeInfo **ppTInfo)
210 {
211     HTMLStyle *This = HTMLSTYLE_THIS(iface);
212     FIXME("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ppTInfo);
213     return E_NOTIMPL;
214 }
215
216 static HRESULT WINAPI HTMLStyle_GetIDsOfNames(IHTMLStyle *iface, REFIID riid,
217                                                 LPOLESTR *rgszNames, UINT cNames,
218                                                 LCID lcid, DISPID *rgDispId)
219 {
220     HTMLStyle *This = HTMLSTYLE_THIS(iface);
221     FIXME("(%p)->(%s %p %u %u %p)\n", This, debugstr_guid(riid), rgszNames, cNames,
222                                         lcid, rgDispId);
223     return E_NOTIMPL;
224 }
225
226 static HRESULT WINAPI HTMLStyle_Invoke(IHTMLStyle *iface, DISPID dispIdMember,
227                             REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams,
228                             VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
229 {
230     HTMLStyle *This = HTMLSTYLE_THIS(iface);
231     FIXME("(%p)->(%d %s %d %d %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid),
232             lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
233     return E_NOTIMPL;
234 }
235
236 static HRESULT WINAPI HTMLStyle_put_fontFamily(IHTMLStyle *iface, BSTR v)
237 {
238     HTMLStyle *This = HTMLSTYLE_THIS(iface);
239
240     TRACE("(%p)->(%s)\n", This, debugstr_w(v));
241
242     return set_style_attr(This, attrFontFamily, v);
243 }
244
245 static HRESULT WINAPI HTMLStyle_get_fontFamily(IHTMLStyle *iface, BSTR *p)
246 {
247     HTMLStyle *This = HTMLSTYLE_THIS(iface);
248
249     TRACE("(%p)->(%p)\n", This, p);
250
251     return get_style_attr(This, attrFontFamily, p);
252 }
253
254 static HRESULT WINAPI HTMLStyle_put_fontStyle(IHTMLStyle *iface, BSTR v)
255 {
256     HTMLStyle *This = HTMLSTYLE_THIS(iface);
257     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
258     return E_NOTIMPL;
259 }
260
261 static HRESULT WINAPI HTMLStyle_get_fontStyle(IHTMLStyle *iface, BSTR *p)
262 {
263     HTMLStyle *This = HTMLSTYLE_THIS(iface);
264
265     TRACE("(%p)->(%p)\n", This, p);
266
267     return get_style_attr(This, attrFontStyle, p);
268 }
269
270 static HRESULT WINAPI HTMLStyle_put_fontVariant(IHTMLStyle *iface, BSTR v)
271 {
272     HTMLStyle *This = HTMLSTYLE_THIS(iface);
273     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
274     return E_NOTIMPL;
275 }
276
277 static HRESULT WINAPI HTMLStyle_get_fontVariant(IHTMLStyle *iface, BSTR *p)
278 {
279     HTMLStyle *This = HTMLSTYLE_THIS(iface);
280     FIXME("(%p)->(%p)\n", This, p);
281     return E_NOTIMPL;
282 }
283
284 static HRESULT WINAPI HTMLStyle_put_fontWeight(IHTMLStyle *iface, BSTR v)
285 {
286     HTMLStyle *This = HTMLSTYLE_THIS(iface);
287     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
288     return E_NOTIMPL;
289 }
290
291 static HRESULT WINAPI HTMLStyle_get_fontWeight(IHTMLStyle *iface, BSTR *p)
292 {
293     HTMLStyle *This = HTMLSTYLE_THIS(iface);
294
295     TRACE("(%p)->(%p)\n", This, p);
296
297     return get_style_attr(This, attrFontWeight, p);
298 }
299
300 static HRESULT WINAPI HTMLStyle_put_fontSize(IHTMLStyle *iface, VARIANT v)
301 {
302     HTMLStyle *This = HTMLSTYLE_THIS(iface);
303
304     TRACE("(%p)->(v%d)\n", This, V_VT(&v));
305
306     switch(V_VT(&v)) {
307     case VT_BSTR:
308         return set_style_attr(This, attrFontSize, V_BSTR(&v));
309     default:
310         FIXME("not supported vt %d\n", V_VT(&v));
311     }
312
313     return S_OK;
314 }
315
316 static HRESULT WINAPI HTMLStyle_get_fontSize(IHTMLStyle *iface, VARIANT *p)
317 {
318     HTMLStyle *This = HTMLSTYLE_THIS(iface);
319
320     TRACE("(%p)->(%p)\n", This, p);
321
322     V_VT(p) = VT_BSTR;
323     return get_style_attr(This, attrFontSize, &V_BSTR(p));
324 }
325
326 static HRESULT WINAPI HTMLStyle_put_font(IHTMLStyle *iface, BSTR v)
327 {
328     HTMLStyle *This = HTMLSTYLE_THIS(iface);
329     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
330     return E_NOTIMPL;
331 }
332
333 static HRESULT WINAPI HTMLStyle_get_font(IHTMLStyle *iface, BSTR *p)
334 {
335     HTMLStyle *This = HTMLSTYLE_THIS(iface);
336     FIXME("(%p)->(%p)\n", This, p);
337     return E_NOTIMPL;
338 }
339
340 static HRESULT WINAPI HTMLStyle_put_color(IHTMLStyle *iface, VARIANT v)
341 {
342     HTMLStyle *This = HTMLSTYLE_THIS(iface);
343     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
344     return E_NOTIMPL;
345 }
346
347 static HRESULT WINAPI HTMLStyle_get_color(IHTMLStyle *iface, VARIANT *p)
348 {
349     HTMLStyle *This = HTMLSTYLE_THIS(iface);
350
351     TRACE("(%p)->(%p)\n", This, p);
352
353     V_VT(p) = VT_BSTR;
354     return get_style_attr(This, attrColor, &V_BSTR(p));
355 }
356
357 static HRESULT WINAPI HTMLStyle_put_background(IHTMLStyle *iface, BSTR v)
358 {
359     HTMLStyle *This = HTMLSTYLE_THIS(iface);
360     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
361     return E_NOTIMPL;
362 }
363
364 static HRESULT WINAPI HTMLStyle_get_background(IHTMLStyle *iface, BSTR *p)
365 {
366     HTMLStyle *This = HTMLSTYLE_THIS(iface);
367     FIXME("(%p)->(%p)\n", This, p);
368     return E_NOTIMPL;
369 }
370
371 static HRESULT WINAPI HTMLStyle_put_backgroundColor(IHTMLStyle *iface, VARIANT v)
372 {
373     HTMLStyle *This = HTMLSTYLE_THIS(iface);
374
375     TRACE("(%p)->(v%d)\n", This, V_VT(&v));
376
377     switch(V_VT(&v)) {
378     case VT_BSTR:
379         return set_style_attr(This, attrBackgroundColor, V_BSTR(&v));
380     case VT_I4: {
381         WCHAR value[10];
382         static const WCHAR format[] = {'#','%','0','6','x',0};
383
384         wsprintfW(value, format, V_I4(&v));
385         return set_style_attr(This, attrBackgroundColor, value);
386     }
387     default:
388         FIXME("unsupported vt %d\n", V_VT(&v));
389     }
390
391     return S_OK;
392 }
393
394 static HRESULT WINAPI HTMLStyle_get_backgroundColor(IHTMLStyle *iface, VARIANT *p)
395 {
396     HTMLStyle *This = HTMLSTYLE_THIS(iface);
397     FIXME("(%p)->(%p)\n", This, p);
398     return E_NOTIMPL;
399 }
400
401 static HRESULT WINAPI HTMLStyle_put_backgroundImage(IHTMLStyle *iface, BSTR v)
402 {
403     HTMLStyle *This = HTMLSTYLE_THIS(iface);
404     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
405     return E_NOTIMPL;
406 }
407
408 static HRESULT WINAPI HTMLStyle_get_backgroundImage(IHTMLStyle *iface, BSTR *p)
409 {
410     HTMLStyle *This = HTMLSTYLE_THIS(iface);
411     FIXME("(%p)->(%p)\n", This, p);
412     return E_NOTIMPL;
413 }
414
415 static HRESULT WINAPI HTMLStyle_put_backgroundRepeat(IHTMLStyle *iface, BSTR v)
416 {
417     HTMLStyle *This = HTMLSTYLE_THIS(iface);
418     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
419     return E_NOTIMPL;
420 }
421
422 static HRESULT WINAPI HTMLStyle_get_backgroundRepeat(IHTMLStyle *iface, BSTR *p)
423 {
424     HTMLStyle *This = HTMLSTYLE_THIS(iface);
425     FIXME("(%p)->(%p)\n", This, p);
426     return E_NOTIMPL;
427 }
428
429 static HRESULT WINAPI HTMLStyle_put_backgroundAttachment(IHTMLStyle *iface, BSTR v)
430 {
431     HTMLStyle *This = HTMLSTYLE_THIS(iface);
432     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
433     return E_NOTIMPL;
434 }
435
436 static HRESULT WINAPI HTMLStyle_get_backgroundAttachment(IHTMLStyle *iface, BSTR *p)
437 {
438     HTMLStyle *This = HTMLSTYLE_THIS(iface);
439     FIXME("(%p)->(%p)\n", This, p);
440     return E_NOTIMPL;
441 }
442
443 static HRESULT WINAPI HTMLStyle_put_backgroundPosition(IHTMLStyle *iface, BSTR v)
444 {
445     HTMLStyle *This = HTMLSTYLE_THIS(iface);
446     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
447     return E_NOTIMPL;
448 }
449
450 static HRESULT WINAPI HTMLStyle_get_backgroundPosition(IHTMLStyle *iface, BSTR *p)
451 {
452     HTMLStyle *This = HTMLSTYLE_THIS(iface);
453     FIXME("(%p)->(%p)\n", This, p);
454     return E_NOTIMPL;
455 }
456
457 static HRESULT WINAPI HTMLStyle_put_backgroundPositionX(IHTMLStyle *iface, VARIANT v)
458 {
459     HTMLStyle *This = HTMLSTYLE_THIS(iface);
460     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
461     return E_NOTIMPL;
462 }
463
464 static HRESULT WINAPI HTMLStyle_get_backgroundPositionX(IHTMLStyle *iface, VARIANT *p)
465 {
466     HTMLStyle *This = HTMLSTYLE_THIS(iface);
467     FIXME("(%p)->(%p)\n", This, p);
468     return E_NOTIMPL;
469 }
470
471 static HRESULT WINAPI HTMLStyle_put_backgroundPositionY(IHTMLStyle *iface, VARIANT v)
472 {
473     HTMLStyle *This = HTMLSTYLE_THIS(iface);
474     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
475     return E_NOTIMPL;
476 }
477
478 static HRESULT WINAPI HTMLStyle_get_backgroundPositionY(IHTMLStyle *iface, VARIANT *p)
479 {
480     HTMLStyle *This = HTMLSTYLE_THIS(iface);
481     FIXME("(%p)->(%p)\n", This, p);
482     return E_NOTIMPL;
483 }
484
485 static HRESULT WINAPI HTMLStyle_put_wordSpacing(IHTMLStyle *iface, VARIANT v)
486 {
487     HTMLStyle *This = HTMLSTYLE_THIS(iface);
488     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
489     return E_NOTIMPL;
490 }
491
492 static HRESULT WINAPI HTMLStyle_get_wordSpacing(IHTMLStyle *iface, VARIANT *p)
493 {
494     HTMLStyle *This = HTMLSTYLE_THIS(iface);
495     FIXME("(%p)->(%p)\n", This, p);
496     return E_NOTIMPL;
497 }
498
499 static HRESULT WINAPI HTMLStyle_put_letterSpacing(IHTMLStyle *iface, VARIANT v)
500 {
501     HTMLStyle *This = HTMLSTYLE_THIS(iface);
502     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
503     return E_NOTIMPL;
504 }
505
506 static HRESULT WINAPI HTMLStyle_get_letterSpacing(IHTMLStyle *iface, VARIANT *p)
507 {
508     HTMLStyle *This = HTMLSTYLE_THIS(iface);
509     FIXME("(%p)->(%p)\n", This, p);
510     return E_NOTIMPL;
511 }
512
513 static HRESULT WINAPI HTMLStyle_put_textDecoration(IHTMLStyle *iface, BSTR v)
514 {
515     HTMLStyle *This = HTMLSTYLE_THIS(iface);
516     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
517     return E_NOTIMPL;
518 }
519
520 static HRESULT WINAPI HTMLStyle_get_textDecoration(IHTMLStyle *iface, BSTR *p)
521 {
522     HTMLStyle *This = HTMLSTYLE_THIS(iface);
523
524     TRACE("(%p)->(%p)\n", This, p);
525
526     return get_style_attr(This, attrTextDecoration, p);
527 }
528
529 static HRESULT WINAPI HTMLStyle_put_textDecorationNone(IHTMLStyle *iface, VARIANT_BOOL v)
530 {
531     HTMLStyle *This = HTMLSTYLE_THIS(iface);
532     FIXME("(%p)->(%x)\n", This, v);
533     return E_NOTIMPL;
534 }
535
536 static HRESULT WINAPI HTMLStyle_get_textDecorationNone(IHTMLStyle *iface, VARIANT_BOOL *p)
537 {
538     HTMLStyle *This = HTMLSTYLE_THIS(iface);
539     FIXME("(%p)->(%p)\n", This, p);
540     return E_NOTIMPL;
541 }
542
543 static HRESULT WINAPI HTMLStyle_put_textDecorationUnderline(IHTMLStyle *iface, VARIANT_BOOL v)
544 {
545     HTMLStyle *This = HTMLSTYLE_THIS(iface);
546     FIXME("(%p)->(%x)\n", This, v);
547     return E_NOTIMPL;
548 }
549
550 static HRESULT WINAPI HTMLStyle_get_textDecorationUnderline(IHTMLStyle *iface, VARIANT_BOOL *p)
551 {
552     HTMLStyle *This = HTMLSTYLE_THIS(iface);
553
554     TRACE("(%p)->(%p)\n", This, p);
555
556     return check_style_attr_value(This, attrTextDecoration, valUnderline, p);
557 }
558
559 static HRESULT WINAPI HTMLStyle_put_textDecorationOverline(IHTMLStyle *iface, VARIANT_BOOL v)
560 {
561     HTMLStyle *This = HTMLSTYLE_THIS(iface);
562     FIXME("(%p)->(%x)\n", This, v);
563     return E_NOTIMPL;
564 }
565
566 static HRESULT WINAPI HTMLStyle_get_textDecorationOverline(IHTMLStyle *iface, VARIANT_BOOL *p)
567 {
568     HTMLStyle *This = HTMLSTYLE_THIS(iface);
569     FIXME("(%p)->(%p)\n", This, p);
570     return E_NOTIMPL;
571 }
572
573 static HRESULT WINAPI HTMLStyle_put_textDecorationLineThrough(IHTMLStyle *iface, VARIANT_BOOL v)
574 {
575     HTMLStyle *This = HTMLSTYLE_THIS(iface);
576     FIXME("(%p)->(%x)\n", This, v);
577     return E_NOTIMPL;
578 }
579
580 static HRESULT WINAPI HTMLStyle_get_textDecorationLineThrough(IHTMLStyle *iface, VARIANT_BOOL *p)
581 {
582     HTMLStyle *This = HTMLSTYLE_THIS(iface);
583
584     TRACE("(%p)->(%p)\n", This, p);
585
586     return check_style_attr_value(This, attrTextDecoration, valLineThrough, p);
587 }
588
589 static HRESULT WINAPI HTMLStyle_put_textDecorationBlink(IHTMLStyle *iface, VARIANT_BOOL v)
590 {
591     HTMLStyle *This = HTMLSTYLE_THIS(iface);
592     FIXME("(%p)->(%x)\n", This, v);
593     return E_NOTIMPL;
594 }
595
596 static HRESULT WINAPI HTMLStyle_get_textDecorationBlink(IHTMLStyle *iface, VARIANT_BOOL *p)
597 {
598     HTMLStyle *This = HTMLSTYLE_THIS(iface);
599     FIXME("(%p)->(%p)\n", This, p);
600     return E_NOTIMPL;
601 }
602
603 static HRESULT WINAPI HTMLStyle_put_verticalAlign(IHTMLStyle *iface, VARIANT v)
604 {
605     HTMLStyle *This = HTMLSTYLE_THIS(iface);
606     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
607     return E_NOTIMPL;
608 }
609
610 static HRESULT WINAPI HTMLStyle_get_verticalAlign(IHTMLStyle *iface, VARIANT *p)
611 {
612     HTMLStyle *This = HTMLSTYLE_THIS(iface);
613     FIXME("(%p)->(%p)\n", This, p);
614     return E_NOTIMPL;
615 }
616
617 static HRESULT WINAPI HTMLStyle_put_textTransform(IHTMLStyle *iface, BSTR v)
618 {
619     HTMLStyle *This = HTMLSTYLE_THIS(iface);
620     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
621     return E_NOTIMPL;
622 }
623
624 static HRESULT WINAPI HTMLStyle_get_textTransform(IHTMLStyle *iface, BSTR *p)
625 {
626     HTMLStyle *This = HTMLSTYLE_THIS(iface);
627     FIXME("(%p)->(%p)\n", This, p);
628     return E_NOTIMPL;
629 }
630
631 static HRESULT WINAPI HTMLStyle_put_textAlign(IHTMLStyle *iface, BSTR v)
632 {
633     HTMLStyle *This = HTMLSTYLE_THIS(iface);
634     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
635     return E_NOTIMPL;
636 }
637
638 static HRESULT WINAPI HTMLStyle_get_textAlign(IHTMLStyle *iface, BSTR *p)
639 {
640     HTMLStyle *This = HTMLSTYLE_THIS(iface);
641     FIXME("(%p)->(%p)\n", This, p);
642     return E_NOTIMPL;
643 }
644
645 static HRESULT WINAPI HTMLStyle_put_textIndent(IHTMLStyle *iface, VARIANT v)
646 {
647     HTMLStyle *This = HTMLSTYLE_THIS(iface);
648     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
649     return E_NOTIMPL;
650 }
651
652 static HRESULT WINAPI HTMLStyle_get_textIndent(IHTMLStyle *iface, VARIANT *p)
653 {
654     HTMLStyle *This = HTMLSTYLE_THIS(iface);
655     FIXME("(%p)->(%p)\n", This, p);
656     return E_NOTIMPL;
657 }
658
659 static HRESULT WINAPI HTMLStyle_put_lineHeight(IHTMLStyle *iface, VARIANT v)
660 {
661     HTMLStyle *This = HTMLSTYLE_THIS(iface);
662     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
663     return E_NOTIMPL;
664 }
665
666 static HRESULT WINAPI HTMLStyle_get_lineHeight(IHTMLStyle *iface, VARIANT *p)
667 {
668     HTMLStyle *This = HTMLSTYLE_THIS(iface);
669     FIXME("(%p)->(%p)\n", This, p);
670     return E_NOTIMPL;
671 }
672
673 static HRESULT WINAPI HTMLStyle_put_marginTop(IHTMLStyle *iface, VARIANT v)
674 {
675     HTMLStyle *This = HTMLSTYLE_THIS(iface);
676     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
677     return E_NOTIMPL;
678 }
679
680 static HRESULT WINAPI HTMLStyle_get_marginTop(IHTMLStyle *iface, VARIANT *p)
681 {
682     HTMLStyle *This = HTMLSTYLE_THIS(iface);
683     FIXME("(%p)->(%p)\n", This, p);
684     return E_NOTIMPL;
685 }
686
687 static HRESULT WINAPI HTMLStyle_put_marginRight(IHTMLStyle *iface, VARIANT v)
688 {
689     HTMLStyle *This = HTMLSTYLE_THIS(iface);
690     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
691     return E_NOTIMPL;
692 }
693
694 static HRESULT WINAPI HTMLStyle_get_marginRight(IHTMLStyle *iface, VARIANT *p)
695 {
696     HTMLStyle *This = HTMLSTYLE_THIS(iface);
697     FIXME("(%p)->(%p)\n", This, p);
698     return E_NOTIMPL;
699 }
700
701 static HRESULT WINAPI HTMLStyle_put_marginBottom(IHTMLStyle *iface, VARIANT v)
702 {
703     HTMLStyle *This = HTMLSTYLE_THIS(iface);
704     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
705     return E_NOTIMPL;
706 }
707
708 static HRESULT WINAPI HTMLStyle_get_marginBottom(IHTMLStyle *iface, VARIANT *p)
709 {
710     HTMLStyle *This = HTMLSTYLE_THIS(iface);
711     FIXME("(%p)->(%p)\n", This, p);
712     return E_NOTIMPL;
713 }
714
715 static HRESULT WINAPI HTMLStyle_put_marginLeft(IHTMLStyle *iface, VARIANT v)
716 {
717     HTMLStyle *This = HTMLSTYLE_THIS(iface);
718     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
719     return E_NOTIMPL;
720 }
721
722 static HRESULT WINAPI HTMLStyle_put_margin(IHTMLStyle *iface, BSTR v)
723 {
724     HTMLStyle *This = HTMLSTYLE_THIS(iface);
725     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
726     return E_NOTIMPL;
727 }
728
729 static HRESULT WINAPI HTMLStyle_get_margin(IHTMLStyle *iface, BSTR *p)
730 {
731     HTMLStyle *This = HTMLSTYLE_THIS(iface);
732     FIXME("(%p)->(%p)\n", This, p);
733     return E_NOTIMPL;
734 }
735
736 static HRESULT WINAPI HTMLStyle_get_marginLeft(IHTMLStyle *iface, VARIANT *p)
737 {
738     HTMLStyle *This = HTMLSTYLE_THIS(iface);
739     FIXME("(%p)->(%p)\n", This, p);
740     return E_NOTIMPL;
741 }
742
743 static HRESULT WINAPI HTMLStyle_put_paddingTop(IHTMLStyle *iface, VARIANT v)
744 {
745     HTMLStyle *This = HTMLSTYLE_THIS(iface);
746     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
747     return E_NOTIMPL;
748 }
749
750 static HRESULT WINAPI HTMLStyle_get_paddingTop(IHTMLStyle *iface, VARIANT *p)
751 {
752     HTMLStyle *This = HTMLSTYLE_THIS(iface);
753     FIXME("(%p)->(%p)\n", This, p);
754     return E_NOTIMPL;
755 }
756
757 static HRESULT WINAPI HTMLStyle_put_paddingRight(IHTMLStyle *iface, VARIANT v)
758 {
759     HTMLStyle *This = HTMLSTYLE_THIS(iface);
760     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
761     return E_NOTIMPL;
762 }
763
764 static HRESULT WINAPI HTMLStyle_get_paddingRight(IHTMLStyle *iface, VARIANT *p)
765 {
766     HTMLStyle *This = HTMLSTYLE_THIS(iface);
767     FIXME("(%p)->(%p)\n", This, p);
768     return E_NOTIMPL;
769 }
770
771 static HRESULT WINAPI HTMLStyle_put_paddingBottom(IHTMLStyle *iface, VARIANT v)
772 {
773     HTMLStyle *This = HTMLSTYLE_THIS(iface);
774     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
775     return E_NOTIMPL;
776 }
777
778 static HRESULT WINAPI HTMLStyle_get_paddingBottom(IHTMLStyle *iface, VARIANT *p)
779 {
780     HTMLStyle *This = HTMLSTYLE_THIS(iface);
781     FIXME("(%p)->(%p)\n", This, p);
782     return E_NOTIMPL;
783 }
784
785 static HRESULT WINAPI HTMLStyle_put_paddingLeft(IHTMLStyle *iface, VARIANT v)
786 {
787     HTMLStyle *This = HTMLSTYLE_THIS(iface);
788     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
789     return E_NOTIMPL;
790 }
791
792 static HRESULT WINAPI HTMLStyle_get_paddingLeft(IHTMLStyle *iface, VARIANT *p)
793 {
794     HTMLStyle *This = HTMLSTYLE_THIS(iface);
795     FIXME("(%p)->(%p)\n", This, p);
796     return E_NOTIMPL;
797 }
798
799 static HRESULT WINAPI HTMLStyle_put_padding(IHTMLStyle *iface, BSTR v)
800 {
801     HTMLStyle *This = HTMLSTYLE_THIS(iface);
802     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
803     return E_NOTIMPL;
804 }
805
806 static HRESULT WINAPI HTMLStyle_get_padding(IHTMLStyle *iface, BSTR *p)
807 {
808     HTMLStyle *This = HTMLSTYLE_THIS(iface);
809     FIXME("(%p)->(%p)\n", This, p);
810     return E_NOTIMPL;
811 }
812
813 static HRESULT WINAPI HTMLStyle_put_border(IHTMLStyle *iface, BSTR v)
814 {
815     HTMLStyle *This = HTMLSTYLE_THIS(iface);
816     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
817     return E_NOTIMPL;
818 }
819
820 static HRESULT WINAPI HTMLStyle_get_border(IHTMLStyle *iface, BSTR *p)
821 {
822     HTMLStyle *This = HTMLSTYLE_THIS(iface);
823     FIXME("(%p)->(%p)\n", This, p);
824     return E_NOTIMPL;
825 }
826
827 static HRESULT WINAPI HTMLStyle_put_borderTop(IHTMLStyle *iface, BSTR v)
828 {
829     HTMLStyle *This = HTMLSTYLE_THIS(iface);
830     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
831     return E_NOTIMPL;
832 }
833
834 static HRESULT WINAPI HTMLStyle_get_borderTop(IHTMLStyle *iface, BSTR *p)
835 {
836     HTMLStyle *This = HTMLSTYLE_THIS(iface);
837     FIXME("(%p)->(%p)\n", This, p);
838     return E_NOTIMPL;
839 }
840
841 static HRESULT WINAPI HTMLStyle_put_borderRight(IHTMLStyle *iface, BSTR v)
842 {
843     HTMLStyle *This = HTMLSTYLE_THIS(iface);
844     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
845     return E_NOTIMPL;
846 }
847
848 static HRESULT WINAPI HTMLStyle_get_borderRight(IHTMLStyle *iface, BSTR *p)
849 {
850     HTMLStyle *This = HTMLSTYLE_THIS(iface);
851     FIXME("(%p)->(%p)\n", This, p);
852     return E_NOTIMPL;
853 }
854
855 static HRESULT WINAPI HTMLStyle_put_borderBottom(IHTMLStyle *iface, BSTR v)
856 {
857     HTMLStyle *This = HTMLSTYLE_THIS(iface);
858     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
859     return E_NOTIMPL;
860 }
861
862 static HRESULT WINAPI HTMLStyle_get_borderBottom(IHTMLStyle *iface, BSTR *p)
863 {
864     HTMLStyle *This = HTMLSTYLE_THIS(iface);
865     FIXME("(%p)->(%p)\n", This, p);
866     return E_NOTIMPL;
867 }
868
869 static HRESULT WINAPI HTMLStyle_put_borderLeft(IHTMLStyle *iface, BSTR v)
870 {
871     HTMLStyle *This = HTMLSTYLE_THIS(iface);
872     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
873     return E_NOTIMPL;
874 }
875
876 static HRESULT WINAPI HTMLStyle_get_borderLeft(IHTMLStyle *iface, BSTR *p)
877 {
878     HTMLStyle *This = HTMLSTYLE_THIS(iface);
879     FIXME("(%p)->(%p)\n", This, p);
880     return E_NOTIMPL;
881 }
882
883 static HRESULT WINAPI HTMLStyle_put_borderColor(IHTMLStyle *iface, BSTR v)
884 {
885     HTMLStyle *This = HTMLSTYLE_THIS(iface);
886     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
887     return E_NOTIMPL;
888 }
889
890 static HRESULT WINAPI HTMLStyle_get_borderColor(IHTMLStyle *iface, BSTR *p)
891 {
892     HTMLStyle *This = HTMLSTYLE_THIS(iface);
893     FIXME("(%p)->(%p)\n", This, p);
894     return E_NOTIMPL;
895 }
896
897 static HRESULT WINAPI HTMLStyle_put_borderTopColor(IHTMLStyle *iface, VARIANT v)
898 {
899     HTMLStyle *This = HTMLSTYLE_THIS(iface);
900     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
901     return E_NOTIMPL;
902 }
903
904 static HRESULT WINAPI HTMLStyle_get_borderTopColor(IHTMLStyle *iface, VARIANT *p)
905 {
906     HTMLStyle *This = HTMLSTYLE_THIS(iface);
907     FIXME("(%p)->(%p)\n", This, p);
908     return E_NOTIMPL;
909 }
910
911 static HRESULT WINAPI HTMLStyle_put_borderRightColor(IHTMLStyle *iface, VARIANT v)
912 {
913     HTMLStyle *This = HTMLSTYLE_THIS(iface);
914     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
915     return E_NOTIMPL;
916 }
917
918 static HRESULT WINAPI HTMLStyle_get_borderRightColor(IHTMLStyle *iface, VARIANT *p)
919 {
920     HTMLStyle *This = HTMLSTYLE_THIS(iface);
921     FIXME("(%p)->(%p)\n", This, p);
922     return E_NOTIMPL;
923 }
924
925 static HRESULT WINAPI HTMLStyle_put_borderBottomColor(IHTMLStyle *iface, VARIANT v)
926 {
927     HTMLStyle *This = HTMLSTYLE_THIS(iface);
928     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
929     return E_NOTIMPL;
930 }
931
932 static HRESULT WINAPI HTMLStyle_get_borderBottomColor(IHTMLStyle *iface, VARIANT *p)
933 {
934     HTMLStyle *This = HTMLSTYLE_THIS(iface);
935     FIXME("(%p)->(%p)\n", This, p);
936     return E_NOTIMPL;
937 }
938
939 static HRESULT WINAPI HTMLStyle_put_borderLeftColor(IHTMLStyle *iface, VARIANT v)
940 {
941     HTMLStyle *This = HTMLSTYLE_THIS(iface);
942     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
943     return E_NOTIMPL;
944 }
945
946 static HRESULT WINAPI HTMLStyle_get_borderLeftColor(IHTMLStyle *iface, VARIANT *p)
947 {
948     HTMLStyle *This = HTMLSTYLE_THIS(iface);
949     FIXME("(%p)->(%p)\n", This, p);
950     return E_NOTIMPL;
951 }
952
953 static HRESULT WINAPI HTMLStyle_put_borderWidth(IHTMLStyle *iface, BSTR v)
954 {
955     HTMLStyle *This = HTMLSTYLE_THIS(iface);
956     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
957     return E_NOTIMPL;
958 }
959
960 static HRESULT WINAPI HTMLStyle_get_borderWidth(IHTMLStyle *iface, BSTR *p)
961 {
962     HTMLStyle *This = HTMLSTYLE_THIS(iface);
963     FIXME("(%p)->(%p)\n", This, p);
964     return E_NOTIMPL;
965 }
966
967 static HRESULT WINAPI HTMLStyle_put_borderTopWidth(IHTMLStyle *iface, VARIANT v)
968 {
969     HTMLStyle *This = HTMLSTYLE_THIS(iface);
970     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
971     return E_NOTIMPL;
972 }
973
974 static HRESULT WINAPI HTMLStyle_get_borderTopWidth(IHTMLStyle *iface, VARIANT *p)
975 {
976     HTMLStyle *This = HTMLSTYLE_THIS(iface);
977     FIXME("(%p)->(%p)\n", This, p);
978     return E_NOTIMPL;
979 }
980
981 static HRESULT WINAPI HTMLStyle_put_borderRightWidth(IHTMLStyle *iface, VARIANT v)
982 {
983     HTMLStyle *This = HTMLSTYLE_THIS(iface);
984     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
985     return E_NOTIMPL;
986 }
987
988 static HRESULT WINAPI HTMLStyle_get_borderRightWidth(IHTMLStyle *iface, VARIANT *p)
989 {
990     HTMLStyle *This = HTMLSTYLE_THIS(iface);
991     FIXME("(%p)->(%p)\n", This, p);
992     return E_NOTIMPL;
993 }
994
995 static HRESULT WINAPI HTMLStyle_put_borderBottomWidth(IHTMLStyle *iface, VARIANT v)
996 {
997     HTMLStyle *This = HTMLSTYLE_THIS(iface);
998     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
999     return E_NOTIMPL;
1000 }
1001
1002 static HRESULT WINAPI HTMLStyle_get_borderBottomWidth(IHTMLStyle *iface, VARIANT *p)
1003 {
1004     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1005     FIXME("(%p)->(%p)\n", This, p);
1006     return E_NOTIMPL;
1007 }
1008
1009 static HRESULT WINAPI HTMLStyle_put_borderLeftWidth(IHTMLStyle *iface, VARIANT v)
1010 {
1011     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1012     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
1013     return E_NOTIMPL;
1014 }
1015
1016 static HRESULT WINAPI HTMLStyle_get_borderLeftWidth(IHTMLStyle *iface, VARIANT *p)
1017 {
1018     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1019     FIXME("(%p)->(%p)\n", This, p);
1020     return E_NOTIMPL;
1021 }
1022
1023 static HRESULT WINAPI HTMLStyle_put_borderStyle(IHTMLStyle *iface, BSTR v)
1024 {
1025     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1026     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
1027     return E_NOTIMPL;
1028 }
1029
1030 static HRESULT WINAPI HTMLStyle_get_borderStyle(IHTMLStyle *iface, BSTR *p)
1031 {
1032     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1033     FIXME("(%p)->(%p)\n", This, p);
1034     return E_NOTIMPL;
1035 }
1036
1037 static HRESULT WINAPI HTMLStyle_put_borderTopStyle(IHTMLStyle *iface, BSTR v)
1038 {
1039     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1040     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
1041     return E_NOTIMPL;
1042 }
1043
1044 static HRESULT WINAPI HTMLStyle_get_borderTopStyle(IHTMLStyle *iface, BSTR *p)
1045 {
1046     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1047     FIXME("(%p)->(%p)\n", This, p);
1048     return E_NOTIMPL;
1049 }
1050
1051 static HRESULT WINAPI HTMLStyle_put_borderRightStyle(IHTMLStyle *iface, BSTR v)
1052 {
1053     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1054     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
1055     return E_NOTIMPL;
1056 }
1057
1058 static HRESULT WINAPI HTMLStyle_get_borderRightStyle(IHTMLStyle *iface, BSTR *p)
1059 {
1060     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1061     FIXME("(%p)->(%p)\n", This, p);
1062     return E_NOTIMPL;
1063 }
1064
1065 static HRESULT WINAPI HTMLStyle_put_borderBottomStyle(IHTMLStyle *iface, BSTR v)
1066 {
1067     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1068     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
1069     return E_NOTIMPL;
1070 }
1071
1072 static HRESULT WINAPI HTMLStyle_get_borderBottomStyle(IHTMLStyle *iface, BSTR *p)
1073 {
1074     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1075     FIXME("(%p)->(%p)\n", This, p);
1076     return E_NOTIMPL;
1077 }
1078
1079 static HRESULT WINAPI HTMLStyle_put_borderLeftStyle(IHTMLStyle *iface, BSTR v)
1080 {
1081     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1082     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
1083     return E_NOTIMPL;
1084 }
1085
1086 static HRESULT WINAPI HTMLStyle_get_borderLeftStyle(IHTMLStyle *iface, BSTR *p)
1087 {
1088     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1089     FIXME("(%p)->(%p)\n", This, p);
1090     return E_NOTIMPL;
1091 }
1092
1093 static HRESULT WINAPI HTMLStyle_put_width(IHTMLStyle *iface, VARIANT v)
1094 {
1095     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1096     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
1097     return E_NOTIMPL;
1098 }
1099
1100 static HRESULT WINAPI HTMLStyle_get_width(IHTMLStyle *iface, VARIANT *p)
1101 {
1102     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1103     FIXME("(%p)->(%p)\n", This, p);
1104     return E_NOTIMPL;
1105 }
1106
1107 static HRESULT WINAPI HTMLStyle_put_height(IHTMLStyle *iface, VARIANT v)
1108 {
1109     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1110     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
1111     return E_NOTIMPL;
1112 }
1113
1114 static HRESULT WINAPI HTMLStyle_get_height(IHTMLStyle *iface, VARIANT *p)
1115 {
1116     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1117     FIXME("(%p)->(%p)\n", This, p);
1118     return E_NOTIMPL;
1119 }
1120
1121 static HRESULT WINAPI HTMLStyle_put_styleFloat(IHTMLStyle *iface, BSTR v)
1122 {
1123     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1124     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
1125     return E_NOTIMPL;
1126 }
1127
1128 static HRESULT WINAPI HTMLStyle_get_styleFloat(IHTMLStyle *iface, BSTR *p)
1129 {
1130     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1131     FIXME("(%p)->(%p)\n", This, p);
1132     return E_NOTIMPL;
1133 }
1134
1135 static HRESULT WINAPI HTMLStyle_put_clear(IHTMLStyle *iface, BSTR v)
1136 {
1137     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1138     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
1139     return E_NOTIMPL;
1140 }
1141
1142 static HRESULT WINAPI HTMLStyle_get_clear(IHTMLStyle *iface, BSTR *p)
1143 {
1144     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1145     FIXME("(%p)->(%p)\n", This, p);
1146     return E_NOTIMPL;
1147 }
1148
1149 static HRESULT WINAPI HTMLStyle_put_display(IHTMLStyle *iface, BSTR v)
1150 {
1151     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1152
1153     TRACE("(%p)->(%s)\n", This, debugstr_w(v));
1154
1155     return set_style_attr(This, attrDisplay, v);
1156 }
1157
1158 static HRESULT WINAPI HTMLStyle_get_display(IHTMLStyle *iface, BSTR *p)
1159 {
1160     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1161
1162     TRACE("(%p)->(%p)\n", This, p);
1163
1164     return get_style_attr(This, attrDisplay, p);
1165 }
1166
1167 static HRESULT WINAPI HTMLStyle_put_visibility(IHTMLStyle *iface, BSTR v)
1168 {
1169     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1170
1171     TRACE("(%p)->(%s)\n", This, debugstr_w(v));
1172
1173     return set_style_attr(This, attrVisibility, v);
1174 }
1175
1176 static HRESULT WINAPI HTMLStyle_get_visibility(IHTMLStyle *iface, BSTR *p)
1177 {
1178     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1179
1180     TRACE("(%p)->(%p)\n", This, p);
1181
1182     return get_style_attr(This, attrVisibility, p);
1183 }
1184
1185 static HRESULT WINAPI HTMLStyle_put_listStyleType(IHTMLStyle *iface, BSTR v)
1186 {
1187     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1188     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
1189     return E_NOTIMPL;
1190 }
1191
1192 static HRESULT WINAPI HTMLStyle_get_listStyleType(IHTMLStyle *iface, BSTR *p)
1193 {
1194     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1195     FIXME("(%p)->(%p)\n", This, p);
1196     return E_NOTIMPL;
1197 }
1198
1199 static HRESULT WINAPI HTMLStyle_put_listStylePosition(IHTMLStyle *iface, BSTR v)
1200 {
1201     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1202     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
1203     return E_NOTIMPL;
1204 }
1205
1206 static HRESULT WINAPI HTMLStyle_get_listStylePosition(IHTMLStyle *iface, BSTR *p)
1207 {
1208     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1209     FIXME("(%p)->(%p)\n", This, p);
1210     return E_NOTIMPL;
1211 }
1212
1213 static HRESULT WINAPI HTMLStyle_put_listStyleImage(IHTMLStyle *iface, BSTR v)
1214 {
1215     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1216     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
1217     return E_NOTIMPL;
1218 }
1219
1220 static HRESULT WINAPI HTMLStyle_get_listStyleImage(IHTMLStyle *iface, BSTR *p)
1221 {
1222     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1223     FIXME("(%p)->(%p)\n", This, p);
1224     return E_NOTIMPL;
1225 }
1226
1227 static HRESULT WINAPI HTMLStyle_put_listStyle(IHTMLStyle *iface, BSTR v)
1228 {
1229     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1230     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
1231     return E_NOTIMPL;
1232 }
1233
1234 static HRESULT WINAPI HTMLStyle_get_listStyle(IHTMLStyle *iface, BSTR *p)
1235 {
1236     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1237     FIXME("(%p)->(%p)\n", This, p);
1238     return E_NOTIMPL;
1239 }
1240
1241 static HRESULT WINAPI HTMLStyle_put_whiteSpace(IHTMLStyle *iface, BSTR v)
1242 {
1243     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1244     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
1245     return E_NOTIMPL;
1246 }
1247
1248 static HRESULT WINAPI HTMLStyle_get_whiteSpace(IHTMLStyle *iface, BSTR *p)
1249 {
1250     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1251     FIXME("(%p)->(%p)\n", This, p);
1252     return E_NOTIMPL;
1253 }
1254
1255 static HRESULT WINAPI HTMLStyle_put_top(IHTMLStyle *iface, VARIANT v)
1256 {
1257     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1258     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
1259     return E_NOTIMPL;
1260 }
1261
1262 static HRESULT WINAPI HTMLStyle_get_top(IHTMLStyle *iface, VARIANT *p)
1263 {
1264     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1265     FIXME("(%p)->(%p)\n", This, p);
1266     return E_NOTIMPL;
1267 }
1268
1269 static HRESULT WINAPI HTMLStyle_put_left(IHTMLStyle *iface, VARIANT v)
1270 {
1271     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1272     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
1273     return E_NOTIMPL;
1274 }
1275
1276 static HRESULT WINAPI HTMLStyle_get_left(IHTMLStyle *iface, VARIANT *p)
1277 {
1278     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1279     FIXME("(%p)->(%p)\n", This, p);
1280     return E_NOTIMPL;
1281 }
1282
1283 static HRESULT WINAPI HTMLStyle_get_position(IHTMLStyle *iface, BSTR *p)
1284 {
1285     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1286     FIXME("(%p)->(%p)\n", This, p);
1287     return E_NOTIMPL;
1288 }
1289
1290 static HRESULT WINAPI HTMLStyle_put_zIndex(IHTMLStyle *iface, VARIANT v)
1291 {
1292     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1293     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
1294     return E_NOTIMPL;
1295 }
1296
1297 static HRESULT WINAPI HTMLStyle_get_zIndex(IHTMLStyle *iface, VARIANT *p)
1298 {
1299     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1300     FIXME("(%p)->(%p)\n", This, p);
1301     return E_NOTIMPL;
1302 }
1303
1304 static HRESULT WINAPI HTMLStyle_put_overflow(IHTMLStyle *iface, BSTR v)
1305 {
1306     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1307     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
1308     return E_NOTIMPL;
1309 }
1310
1311 static HRESULT WINAPI HTMLStyle_get_overflow(IHTMLStyle *iface, BSTR *p)
1312 {
1313     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1314     FIXME("(%p)->(%p)\n", This, p);
1315     return E_NOTIMPL;
1316 }
1317
1318 static HRESULT WINAPI HTMLStyle_put_pageBreakBefore(IHTMLStyle *iface, BSTR v)
1319 {
1320     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1321     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
1322     return E_NOTIMPL;
1323 }
1324
1325 static HRESULT WINAPI HTMLStyle_get_pageBreakBefore(IHTMLStyle *iface, BSTR *p)
1326 {
1327     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1328     FIXME("(%p)->(%p)\n", This, p);
1329     return E_NOTIMPL;
1330 }
1331
1332 static HRESULT WINAPI HTMLStyle_put_pageBreakAfter(IHTMLStyle *iface, BSTR v)
1333 {
1334     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1335     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
1336     return E_NOTIMPL;
1337 }
1338
1339 static HRESULT WINAPI HTMLStyle_get_pageBreakAfter(IHTMLStyle *iface, BSTR *p)
1340 {
1341     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1342     FIXME("(%p)->(%p)\n", This, p);
1343     return E_NOTIMPL;
1344 }
1345
1346 static HRESULT WINAPI HTMLStyle_put_cssText(IHTMLStyle *iface, BSTR v)
1347 {
1348     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1349     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
1350     return E_NOTIMPL;
1351 }
1352
1353 static HRESULT WINAPI HTMLStyle_get_cssText(IHTMLStyle *iface, BSTR *p)
1354 {
1355     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1356     FIXME("(%p)->(%p)\n", This, p);
1357     return E_NOTIMPL;
1358 }
1359
1360 static HRESULT WINAPI HTMLStyle_put_pixelTop(IHTMLStyle *iface, long v)
1361 {
1362     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1363     FIXME("(%p)->()\n", This);
1364     return E_NOTIMPL;
1365 }
1366
1367 static HRESULT WINAPI HTMLStyle_get_pixelTop(IHTMLStyle *iface, long *p)
1368 {
1369     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1370     FIXME("(%p)->()\n", This);
1371     return E_NOTIMPL;
1372 }
1373
1374 static HRESULT WINAPI HTMLStyle_put_pixelLeft(IHTMLStyle *iface, long v)
1375 {
1376     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1377     FIXME("(%p)->()\n", This);
1378     return E_NOTIMPL;
1379 }
1380
1381 static HRESULT WINAPI HTMLStyle_get_pixelLeft(IHTMLStyle *iface, long *p)
1382 {
1383     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1384     FIXME("(%p)->()\n", This);
1385     return E_NOTIMPL;
1386 }
1387
1388 static HRESULT WINAPI HTMLStyle_put_pixelWidth(IHTMLStyle *iface, long v)
1389 {
1390     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1391     FIXME("(%p)->()\n", This);
1392     return E_NOTIMPL;
1393 }
1394
1395 static HRESULT WINAPI HTMLStyle_get_pixelWidth(IHTMLStyle *iface, long *p)
1396 {
1397     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1398     FIXME("(%p)->()\n", This);
1399     return E_NOTIMPL;
1400 }
1401
1402 static HRESULT WINAPI HTMLStyle_put_pixelHeight(IHTMLStyle *iface, long v)
1403 {
1404     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1405     FIXME("(%p)->()\n", This);
1406     return E_NOTIMPL;
1407 }
1408
1409 static HRESULT WINAPI HTMLStyle_get_pixelHeight(IHTMLStyle *iface, long *p)
1410 {
1411     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1412     FIXME("(%p)->()\n", This);
1413     return E_NOTIMPL;
1414 }
1415
1416 static HRESULT WINAPI HTMLStyle_put_posTop(IHTMLStyle *iface, float v)
1417 {
1418     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1419     FIXME("(%p)->()\n", This);
1420     return E_NOTIMPL;
1421 }
1422
1423 static HRESULT WINAPI HTMLStyle_get_posTop(IHTMLStyle *iface, float *p)
1424 {
1425     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1426     FIXME("(%p)->()\n", This);
1427     return E_NOTIMPL;
1428 }
1429
1430 static HRESULT WINAPI HTMLStyle_put_posLeft(IHTMLStyle *iface, float v)
1431 {
1432     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1433     FIXME("(%p)->()\n", This);
1434     return E_NOTIMPL;
1435 }
1436
1437 static HRESULT WINAPI HTMLStyle_get_posLeft(IHTMLStyle *iface, float *p)
1438 {
1439     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1440     FIXME("(%p)->()\n", This);
1441     return E_NOTIMPL;
1442 }
1443
1444 static HRESULT WINAPI HTMLStyle_put_posWidth(IHTMLStyle *iface, float v)
1445 {
1446     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1447     FIXME("(%p)->()\n", This);
1448     return E_NOTIMPL;
1449 }
1450
1451 static HRESULT WINAPI HTMLStyle_get_posWidth(IHTMLStyle *iface, float *p)
1452 {
1453     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1454     FIXME("(%p)->()\n", This);
1455     return E_NOTIMPL;
1456 }
1457
1458 static HRESULT WINAPI HTMLStyle_put_posHeight(IHTMLStyle *iface, float v)
1459 {
1460     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1461     FIXME("(%p)->()\n", This);
1462     return E_NOTIMPL;
1463 }
1464
1465 static HRESULT WINAPI HTMLStyle_get_posHeight(IHTMLStyle *iface, float *p)
1466 {
1467     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1468     FIXME("(%p)->()\n", This);
1469     return E_NOTIMPL;
1470 }
1471
1472 static HRESULT WINAPI HTMLStyle_put_cursor(IHTMLStyle *iface, BSTR v)
1473 {
1474     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1475     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
1476     return E_NOTIMPL;
1477 }
1478
1479 static HRESULT WINAPI HTMLStyle_get_cursor(IHTMLStyle *iface, BSTR *p)
1480 {
1481     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1482     FIXME("(%p)->(%p)\n", This, p);
1483     return E_NOTIMPL;
1484 }
1485
1486 static HRESULT WINAPI HTMLStyle_put_clip(IHTMLStyle *iface, BSTR v)
1487 {
1488     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1489     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
1490     return E_NOTIMPL;
1491 }
1492
1493 static HRESULT WINAPI HTMLStyle_get_clip(IHTMLStyle *iface, BSTR *p)
1494 {
1495     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1496     FIXME("(%p)->(%p)\n", This, p);
1497     return E_NOTIMPL;
1498 }
1499
1500 static HRESULT WINAPI HTMLStyle_put_filter(IHTMLStyle *iface, BSTR v)
1501 {
1502     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1503     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
1504     return E_NOTIMPL;
1505 }
1506
1507 static HRESULT WINAPI HTMLStyle_get_filter(IHTMLStyle *iface, BSTR *p)
1508 {
1509     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1510     FIXME("(%p)->(%p)\n", This, p);
1511     return E_NOTIMPL;
1512 }
1513
1514 static HRESULT WINAPI HTMLStyle_setAttribute(IHTMLStyle *iface, BSTR strAttributeName,
1515         VARIANT AttributeValue, LONG lFlags)
1516 {
1517     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1518     FIXME("(%p)->(%s v%d %08x)\n", This, debugstr_w(strAttributeName),
1519           V_VT(&AttributeValue), lFlags);
1520     return E_NOTIMPL;
1521 }
1522
1523 static HRESULT WINAPI HTMLStyle_getAttribute(IHTMLStyle *iface, BSTR strAttributeName,
1524         LONG lFlags, VARIANT *AttributeValue)
1525 {
1526     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1527     FIXME("(%p)->(%s %08x %p)\n", This, debugstr_w(strAttributeName),
1528          lFlags, AttributeValue);
1529     return E_NOTIMPL;
1530 }
1531
1532 static HRESULT WINAPI HTMLStyle_removeAttribute(IHTMLStyle *iface, BSTR strAttributeName,
1533                                                 LONG lFlags, VARIANT_BOOL *pfSuccess)
1534 {
1535     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1536     FIXME("(%p)->(%s %08x %p)\n", This, debugstr_w(strAttributeName),
1537          lFlags, pfSuccess);
1538     return E_NOTIMPL;
1539 }
1540
1541 static HRESULT WINAPI HTMLStyle_toString(IHTMLStyle *iface, BSTR *String)
1542 {
1543     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1544     FIXME("(%p)->(%p)\n", This, String);
1545     return E_NOTIMPL;
1546 }
1547
1548 static const IHTMLStyleVtbl HTMLStyleVtbl = {
1549     HTMLStyle_QueryInterface,
1550     HTMLStyle_AddRef,
1551     HTMLStyle_Release,
1552     HTMLStyle_GetTypeInfoCount,
1553     HTMLStyle_GetTypeInfo,
1554     HTMLStyle_GetIDsOfNames,
1555     HTMLStyle_Invoke,
1556     HTMLStyle_put_fontFamily,
1557     HTMLStyle_get_fontFamily,
1558     HTMLStyle_put_fontStyle,
1559     HTMLStyle_get_fontStyle,
1560     HTMLStyle_put_fontVariant,
1561     HTMLStyle_get_fontVariant,
1562     HTMLStyle_put_fontWeight,
1563     HTMLStyle_get_fontWeight,
1564     HTMLStyle_put_fontSize,
1565     HTMLStyle_get_fontSize,
1566     HTMLStyle_put_font,
1567     HTMLStyle_get_font,
1568     HTMLStyle_put_color,
1569     HTMLStyle_get_color,
1570     HTMLStyle_put_background,
1571     HTMLStyle_get_background,
1572     HTMLStyle_put_backgroundColor,
1573     HTMLStyle_get_backgroundColor,
1574     HTMLStyle_put_backgroundImage,
1575     HTMLStyle_get_backgroundImage,
1576     HTMLStyle_put_backgroundRepeat,
1577     HTMLStyle_get_backgroundRepeat,
1578     HTMLStyle_put_backgroundAttachment,
1579     HTMLStyle_get_backgroundAttachment,
1580     HTMLStyle_put_backgroundPosition,
1581     HTMLStyle_get_backgroundPosition,
1582     HTMLStyle_put_backgroundPositionX,
1583     HTMLStyle_get_backgroundPositionX,
1584     HTMLStyle_put_backgroundPositionY,
1585     HTMLStyle_get_backgroundPositionY,
1586     HTMLStyle_put_wordSpacing,
1587     HTMLStyle_get_wordSpacing,
1588     HTMLStyle_put_letterSpacing,
1589     HTMLStyle_get_letterSpacing,
1590     HTMLStyle_put_textDecoration,
1591     HTMLStyle_get_textDecoration,
1592     HTMLStyle_put_textDecorationNone,
1593     HTMLStyle_get_textDecorationNone,
1594     HTMLStyle_put_textDecorationUnderline,
1595     HTMLStyle_get_textDecorationUnderline,
1596     HTMLStyle_put_textDecorationOverline,
1597     HTMLStyle_get_textDecorationOverline,
1598     HTMLStyle_put_textDecorationLineThrough,
1599     HTMLStyle_get_textDecorationLineThrough,
1600     HTMLStyle_put_textDecorationBlink,
1601     HTMLStyle_get_textDecorationBlink,
1602     HTMLStyle_put_verticalAlign,
1603     HTMLStyle_get_verticalAlign,
1604     HTMLStyle_put_textTransform,
1605     HTMLStyle_get_textTransform,
1606     HTMLStyle_put_textAlign,
1607     HTMLStyle_get_textAlign,
1608     HTMLStyle_put_textIndent,
1609     HTMLStyle_get_textIndent,
1610     HTMLStyle_put_lineHeight,
1611     HTMLStyle_get_lineHeight,
1612     HTMLStyle_put_marginTop,
1613     HTMLStyle_get_marginTop,
1614     HTMLStyle_put_marginRight,
1615     HTMLStyle_get_marginRight,
1616     HTMLStyle_put_marginBottom,
1617     HTMLStyle_get_marginBottom,
1618     HTMLStyle_put_marginLeft,
1619     HTMLStyle_get_marginLeft,
1620     HTMLStyle_put_margin,
1621     HTMLStyle_get_margin,
1622     HTMLStyle_put_paddingTop,
1623     HTMLStyle_get_paddingTop,
1624     HTMLStyle_put_paddingRight,
1625     HTMLStyle_get_paddingRight,
1626     HTMLStyle_put_paddingBottom,
1627     HTMLStyle_get_paddingBottom,
1628     HTMLStyle_put_paddingLeft,
1629     HTMLStyle_get_paddingLeft,
1630     HTMLStyle_put_padding,
1631     HTMLStyle_get_padding,
1632     HTMLStyle_put_border,
1633     HTMLStyle_get_border,
1634     HTMLStyle_put_borderTop,
1635     HTMLStyle_get_borderTop,
1636     HTMLStyle_put_borderRight,
1637     HTMLStyle_get_borderRight,
1638     HTMLStyle_put_borderBottom,
1639     HTMLStyle_get_borderBottom,
1640     HTMLStyle_put_borderLeft,
1641     HTMLStyle_get_borderLeft,
1642     HTMLStyle_put_borderColor,
1643     HTMLStyle_get_borderColor,
1644     HTMLStyle_put_borderTopColor,
1645     HTMLStyle_get_borderTopColor,
1646     HTMLStyle_put_borderRightColor,
1647     HTMLStyle_get_borderRightColor,
1648     HTMLStyle_put_borderBottomColor,
1649     HTMLStyle_get_borderBottomColor,
1650     HTMLStyle_put_borderLeftColor,
1651     HTMLStyle_get_borderLeftColor,
1652     HTMLStyle_put_borderWidth,
1653     HTMLStyle_get_borderWidth,
1654     HTMLStyle_put_borderTopWidth,
1655     HTMLStyle_get_borderTopWidth,
1656     HTMLStyle_put_borderRightWidth,
1657     HTMLStyle_get_borderRightWidth,
1658     HTMLStyle_put_borderBottomWidth,
1659     HTMLStyle_get_borderBottomWidth,
1660     HTMLStyle_put_borderLeftWidth,
1661     HTMLStyle_get_borderLeftWidth,
1662     HTMLStyle_put_borderStyle,
1663     HTMLStyle_get_borderStyle,
1664     HTMLStyle_put_borderTopStyle,
1665     HTMLStyle_get_borderTopStyle,
1666     HTMLStyle_put_borderRightStyle,
1667     HTMLStyle_get_borderRightStyle,
1668     HTMLStyle_put_borderBottomStyle,
1669     HTMLStyle_get_borderBottomStyle,
1670     HTMLStyle_put_borderLeftStyle,
1671     HTMLStyle_get_borderLeftStyle,
1672     HTMLStyle_put_width,
1673     HTMLStyle_get_width,
1674     HTMLStyle_put_height,
1675     HTMLStyle_get_height,
1676     HTMLStyle_put_styleFloat,
1677     HTMLStyle_get_styleFloat,
1678     HTMLStyle_put_clear,
1679     HTMLStyle_get_clear,
1680     HTMLStyle_put_display,
1681     HTMLStyle_get_display,
1682     HTMLStyle_put_visibility,
1683     HTMLStyle_get_visibility,
1684     HTMLStyle_put_listStyleType,
1685     HTMLStyle_get_listStyleType,
1686     HTMLStyle_put_listStylePosition,
1687     HTMLStyle_get_listStylePosition,
1688     HTMLStyle_put_listStyleImage,
1689     HTMLStyle_get_listStyleImage,
1690     HTMLStyle_put_listStyle,
1691     HTMLStyle_get_listStyle,
1692     HTMLStyle_put_whiteSpace,
1693     HTMLStyle_get_whiteSpace,
1694     HTMLStyle_put_top,
1695     HTMLStyle_get_top,
1696     HTMLStyle_put_left,
1697     HTMLStyle_get_left,
1698     HTMLStyle_get_position,
1699     HTMLStyle_put_zIndex,
1700     HTMLStyle_get_zIndex,
1701     HTMLStyle_put_overflow,
1702     HTMLStyle_get_overflow,
1703     HTMLStyle_put_pageBreakBefore,
1704     HTMLStyle_get_pageBreakBefore,
1705     HTMLStyle_put_pageBreakAfter,
1706     HTMLStyle_get_pageBreakAfter,
1707     HTMLStyle_put_cssText,
1708     HTMLStyle_get_cssText,
1709     HTMLStyle_put_pixelTop,
1710     HTMLStyle_get_pixelTop,
1711     HTMLStyle_put_pixelLeft,
1712     HTMLStyle_get_pixelLeft,
1713     HTMLStyle_put_pixelWidth,
1714     HTMLStyle_get_pixelWidth,
1715     HTMLStyle_put_pixelHeight,
1716     HTMLStyle_get_pixelHeight,
1717     HTMLStyle_put_posTop,
1718     HTMLStyle_get_posTop,
1719     HTMLStyle_put_posLeft,
1720     HTMLStyle_get_posLeft,
1721     HTMLStyle_put_posWidth,
1722     HTMLStyle_get_posWidth,
1723     HTMLStyle_put_posHeight,
1724     HTMLStyle_get_posHeight,
1725     HTMLStyle_put_cursor,
1726     HTMLStyle_get_cursor,
1727     HTMLStyle_put_clip,
1728     HTMLStyle_get_clip,
1729     HTMLStyle_put_filter,
1730     HTMLStyle_get_filter,
1731     HTMLStyle_setAttribute,
1732     HTMLStyle_getAttribute,
1733     HTMLStyle_removeAttribute,
1734     HTMLStyle_toString
1735 };
1736
1737 IHTMLStyle *HTMLStyle_Create(nsIDOMCSSStyleDeclaration *nsstyle)
1738 {
1739     HTMLStyle *ret = mshtml_alloc(sizeof(HTMLStyle));
1740
1741     ret->lpHTMLStyleVtbl = &HTMLStyleVtbl;
1742     ret->ref = 1;
1743     ret->nsstyle = nsstyle;
1744
1745     nsIDOMCSSStyleDeclaration_AddRef(nsstyle);
1746
1747     return HTMLSTYLE(ret);
1748 }