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