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