mshtml: Added test of callbacks called from document timer.
[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 static const WCHAR attrFontSize[] =
54     {'f','o','n','t','-','s','i','z','e',0};
55
56 static HRESULT set_style_attr(HTMLStyle *This, LPCWSTR name, LPCWSTR value)
57 {
58     nsAString str_name, str_value, str_empty;
59     nsresult nsres;
60
61     static const PRUnichar wszEmpty[] = {0};
62
63     TRACE("(%p)->(%s %s)\n", This, debugstr_w(name), debugstr_w(value));
64
65     nsAString_Init(&str_name, name);
66     nsAString_Init(&str_value, value);
67     nsAString_Init(&str_empty, wszEmpty);
68
69     nsres = nsIDOMCSSStyleDeclaration_SetProperty(This->nsstyle, &str_name, &str_value, &str_empty);
70     if(NS_FAILED(nsres))
71         ERR("SetProperty failed: %08x\n", nsres);
72
73     nsAString_Finish(&str_name);
74     nsAString_Finish(&str_value);
75     nsAString_Finish(&str_empty);
76
77     return S_OK;
78 }
79
80 #define HTMLSTYLE_THIS(iface) DEFINE_THIS(HTMLStyle, HTMLStyle, iface)
81
82 static HRESULT WINAPI HTMLStyle_QueryInterface(IHTMLStyle *iface, REFIID riid, void **ppv)
83 {
84     HTMLStyle *This = HTMLSTYLE_THIS(iface);
85
86     *ppv = NULL;
87
88     if(IsEqualGUID(&IID_IUnknown, riid)) {
89         TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
90         *ppv = HTMLSTYLE(This);
91     }else if(IsEqualGUID(&IID_IDispatch, riid)) {
92         TRACE("(%p)->(IID_IDispatch %p)\n", This, ppv);
93         *ppv = HTMLSTYLE(This);
94     }else if(IsEqualGUID(&IID_IHTMLStyle, riid)) {
95         TRACE("(%p)->(IID_IHTMLStyle %p)\n", This, ppv);
96         *ppv = HTMLSTYLE(This);
97     }
98
99     if(*ppv) {
100         IUnknown_AddRef((IUnknown*)*ppv);
101         return S_OK;
102     }
103
104     WARN("unsupported %s\n", debugstr_guid(riid));
105     return E_NOINTERFACE;
106 }
107
108 static ULONG WINAPI HTMLStyle_AddRef(IHTMLStyle *iface)
109 {
110     HTMLStyle *This = HTMLSTYLE_THIS(iface);
111     LONG ref = InterlockedIncrement(&This->ref);
112
113     TRACE("(%p) ref=%d\n", This, ref);
114
115     return ref;
116 }
117
118 static ULONG WINAPI HTMLStyle_Release(IHTMLStyle *iface)
119 {
120     HTMLStyle *This = HTMLSTYLE_THIS(iface);
121     LONG ref = InterlockedDecrement(&This->ref);
122
123     TRACE("(%p) ref=%d\n", This, ref);
124
125     if(!ref)
126         mshtml_free(This);
127
128     return ref;
129 }
130
131 static HRESULT WINAPI HTMLStyle_GetTypeInfoCount(IHTMLStyle *iface, UINT *pctinfo)
132 {
133     HTMLStyle *This = HTMLSTYLE_THIS(iface);
134     FIXME("(%p)->(%p)\n", This, pctinfo);
135     return E_NOTIMPL;
136 }
137
138 static HRESULT WINAPI HTMLStyle_GetTypeInfo(IHTMLStyle *iface, UINT iTInfo,
139                                               LCID lcid, ITypeInfo **ppTInfo)
140 {
141     HTMLStyle *This = HTMLSTYLE_THIS(iface);
142     FIXME("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ppTInfo);
143     return E_NOTIMPL;
144 }
145
146 static HRESULT WINAPI HTMLStyle_GetIDsOfNames(IHTMLStyle *iface, REFIID riid,
147                                                 LPOLESTR *rgszNames, UINT cNames,
148                                                 LCID lcid, DISPID *rgDispId)
149 {
150     HTMLStyle *This = HTMLSTYLE_THIS(iface);
151     FIXME("(%p)->(%s %p %u %u %p)\n", This, debugstr_guid(riid), rgszNames, cNames,
152                                         lcid, rgDispId);
153     return E_NOTIMPL;
154 }
155
156 static HRESULT WINAPI HTMLStyle_Invoke(IHTMLStyle *iface, DISPID dispIdMember,
157                             REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams,
158                             VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
159 {
160     HTMLStyle *This = HTMLSTYLE_THIS(iface);
161     FIXME("(%p)->(%d %s %d %d %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid),
162             lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
163     return E_NOTIMPL;
164 }
165
166 static HRESULT WINAPI HTMLStyle_put_fontFamily(IHTMLStyle *iface, BSTR v)
167 {
168     HTMLStyle *This = HTMLSTYLE_THIS(iface);
169
170     TRACE("(%p)->(%s)\n", This, debugstr_w(v));
171
172     return set_style_attr(This, attrFontFamily, v);
173 }
174
175 static HRESULT WINAPI HTMLStyle_get_fontFamily(IHTMLStyle *iface, BSTR *p)
176 {
177     HTMLStyle *This = HTMLSTYLE_THIS(iface);
178     FIXME("(%p)->(%p)\n", This, p);
179     return E_NOTIMPL;
180 }
181
182 static HRESULT WINAPI HTMLStyle_put_fontStyle(IHTMLStyle *iface, BSTR v)
183 {
184     HTMLStyle *This = HTMLSTYLE_THIS(iface);
185     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
186     return E_NOTIMPL;
187 }
188
189 static HRESULT WINAPI HTMLStyle_get_fontStyle(IHTMLStyle *iface, BSTR *p)
190 {
191     HTMLStyle *This = HTMLSTYLE_THIS(iface);
192     FIXME("(%p)->(%p)\n", This, p);
193     return E_NOTIMPL;
194 }
195
196 static HRESULT WINAPI HTMLStyle_put_fontVariant(IHTMLStyle *iface, BSTR v)
197 {
198     HTMLStyle *This = HTMLSTYLE_THIS(iface);
199     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
200     return E_NOTIMPL;
201 }
202
203 static HRESULT WINAPI HTMLStyle_get_fontVariant(IHTMLStyle *iface, BSTR *p)
204 {
205     HTMLStyle *This = HTMLSTYLE_THIS(iface);
206     FIXME("(%p)->(%p)\n", This, p);
207     return E_NOTIMPL;
208 }
209
210 static HRESULT WINAPI HTMLStyle_put_fontWeight(IHTMLStyle *iface, BSTR v)
211 {
212     HTMLStyle *This = HTMLSTYLE_THIS(iface);
213     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
214     return E_NOTIMPL;
215 }
216
217 static HRESULT WINAPI HTMLStyle_get_fontWeight(IHTMLStyle *iface, BSTR *p)
218 {
219     HTMLStyle *This = HTMLSTYLE_THIS(iface);
220     FIXME("(%p)->(%p)\n", This, p);
221     return E_NOTIMPL;
222 }
223
224 static HRESULT WINAPI HTMLStyle_put_fontSize(IHTMLStyle *iface, VARIANT v)
225 {
226     HTMLStyle *This = HTMLSTYLE_THIS(iface);
227
228     TRACE("(%p)->(v%d)\n", This, V_VT(&v));
229
230     switch(V_VT(&v)) {
231     case VT_BSTR:
232         return set_style_attr(This, attrFontSize, V_BSTR(&v));
233     default:
234         FIXME("not supported vt %d\n", V_VT(&v));
235     }
236
237     return S_OK;
238 }
239
240 static HRESULT WINAPI HTMLStyle_get_fontSize(IHTMLStyle *iface, VARIANT *p)
241 {
242     HTMLStyle *This = HTMLSTYLE_THIS(iface);
243     FIXME("(%p)->(%p)\n", This, p);
244     return E_NOTIMPL;
245 }
246
247 static HRESULT WINAPI HTMLStyle_put_font(IHTMLStyle *iface, BSTR v)
248 {
249     HTMLStyle *This = HTMLSTYLE_THIS(iface);
250     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
251     return E_NOTIMPL;
252 }
253
254 static HRESULT WINAPI HTMLStyle_get_font(IHTMLStyle *iface, BSTR *p)
255 {
256     HTMLStyle *This = HTMLSTYLE_THIS(iface);
257     FIXME("(%p)->(%p)\n", This, p);
258     return E_NOTIMPL;
259 }
260
261 static HRESULT WINAPI HTMLStyle_put_color(IHTMLStyle *iface, VARIANT v)
262 {
263     HTMLStyle *This = HTMLSTYLE_THIS(iface);
264     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
265     return E_NOTIMPL;
266 }
267
268 static HRESULT WINAPI HTMLStyle_get_color(IHTMLStyle *iface, VARIANT *p)
269 {
270     HTMLStyle *This = HTMLSTYLE_THIS(iface);
271     FIXME("(%p)->(%p)\n", This, p);
272     return E_NOTIMPL;
273 }
274
275 static HRESULT WINAPI HTMLStyle_put_background(IHTMLStyle *iface, BSTR v)
276 {
277     HTMLStyle *This = HTMLSTYLE_THIS(iface);
278     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
279     return E_NOTIMPL;
280 }
281
282 static HRESULT WINAPI HTMLStyle_get_background(IHTMLStyle *iface, BSTR *p)
283 {
284     HTMLStyle *This = HTMLSTYLE_THIS(iface);
285     FIXME("(%p)->(%p)\n", This, p);
286     return E_NOTIMPL;
287 }
288
289 static HRESULT WINAPI HTMLStyle_put_backgroundColor(IHTMLStyle *iface, VARIANT v)
290 {
291     HTMLStyle *This = HTMLSTYLE_THIS(iface);
292
293     TRACE("(%p)->(v%d)\n", This, V_VT(&v));
294
295     switch(V_VT(&v)) {
296     case VT_BSTR:
297         return set_style_attr(This, attrBackgroundColor, V_BSTR(&v));
298     case VT_I4: {
299         WCHAR value[10];
300         static const WCHAR format[] = {'#','%','0','6','x',0};
301
302         wsprintfW(value, format, V_I4(&v));
303         return set_style_attr(This, attrBackgroundColor, value);
304     }
305     default:
306         FIXME("unsupported vt %d\n", V_VT(&v));
307     }
308
309     return S_OK;
310 }
311
312 static HRESULT WINAPI HTMLStyle_get_backgroundColor(IHTMLStyle *iface, VARIANT *p)
313 {
314     HTMLStyle *This = HTMLSTYLE_THIS(iface);
315     FIXME("(%p)->(%p)\n", This, p);
316     return E_NOTIMPL;
317 }
318
319 static HRESULT WINAPI HTMLStyle_put_backgroundImage(IHTMLStyle *iface, BSTR v)
320 {
321     HTMLStyle *This = HTMLSTYLE_THIS(iface);
322     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
323     return E_NOTIMPL;
324 }
325
326 static HRESULT WINAPI HTMLStyle_get_backgroundImage(IHTMLStyle *iface, BSTR *p)
327 {
328     HTMLStyle *This = HTMLSTYLE_THIS(iface);
329     FIXME("(%p)->(%p)\n", This, p);
330     return E_NOTIMPL;
331 }
332
333 static HRESULT WINAPI HTMLStyle_put_backgroundRepeat(IHTMLStyle *iface, BSTR v)
334 {
335     HTMLStyle *This = HTMLSTYLE_THIS(iface);
336     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
337     return E_NOTIMPL;
338 }
339
340 static HRESULT WINAPI HTMLStyle_get_backgroundRepeat(IHTMLStyle *iface, BSTR *p)
341 {
342     HTMLStyle *This = HTMLSTYLE_THIS(iface);
343     FIXME("(%p)->(%p)\n", This, p);
344     return E_NOTIMPL;
345 }
346
347 static HRESULT WINAPI HTMLStyle_put_backgroundAttachment(IHTMLStyle *iface, BSTR v)
348 {
349     HTMLStyle *This = HTMLSTYLE_THIS(iface);
350     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
351     return E_NOTIMPL;
352 }
353
354 static HRESULT WINAPI HTMLStyle_get_backgroundAttachment(IHTMLStyle *iface, BSTR *p)
355 {
356     HTMLStyle *This = HTMLSTYLE_THIS(iface);
357     FIXME("(%p)->(%p)\n", This, p);
358     return E_NOTIMPL;
359 }
360
361 static HRESULT WINAPI HTMLStyle_put_backgroundPosition(IHTMLStyle *iface, BSTR v)
362 {
363     HTMLStyle *This = HTMLSTYLE_THIS(iface);
364     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
365     return E_NOTIMPL;
366 }
367
368 static HRESULT WINAPI HTMLStyle_get_backgroundPosition(IHTMLStyle *iface, BSTR *p)
369 {
370     HTMLStyle *This = HTMLSTYLE_THIS(iface);
371     FIXME("(%p)->(%p)\n", This, p);
372     return E_NOTIMPL;
373 }
374
375 static HRESULT WINAPI HTMLStyle_put_backgroundPositionX(IHTMLStyle *iface, VARIANT v)
376 {
377     HTMLStyle *This = HTMLSTYLE_THIS(iface);
378     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
379     return E_NOTIMPL;
380 }
381
382 static HRESULT WINAPI HTMLStyle_get_backgroundPositionX(IHTMLStyle *iface, VARIANT *p)
383 {
384     HTMLStyle *This = HTMLSTYLE_THIS(iface);
385     FIXME("(%p)->(%p)\n", This, p);
386     return E_NOTIMPL;
387 }
388
389 static HRESULT WINAPI HTMLStyle_put_backgroundPositionY(IHTMLStyle *iface, VARIANT v)
390 {
391     HTMLStyle *This = HTMLSTYLE_THIS(iface);
392     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
393     return E_NOTIMPL;
394 }
395
396 static HRESULT WINAPI HTMLStyle_get_backgroundPositionY(IHTMLStyle *iface, VARIANT *p)
397 {
398     HTMLStyle *This = HTMLSTYLE_THIS(iface);
399     FIXME("(%p)->(%p)\n", This, p);
400     return E_NOTIMPL;
401 }
402
403 static HRESULT WINAPI HTMLStyle_put_wordSpacing(IHTMLStyle *iface, VARIANT v)
404 {
405     HTMLStyle *This = HTMLSTYLE_THIS(iface);
406     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
407     return E_NOTIMPL;
408 }
409
410 static HRESULT WINAPI HTMLStyle_get_wordSpacing(IHTMLStyle *iface, VARIANT *p)
411 {
412     HTMLStyle *This = HTMLSTYLE_THIS(iface);
413     FIXME("(%p)->(%p)\n", This, p);
414     return E_NOTIMPL;
415 }
416
417 static HRESULT WINAPI HTMLStyle_put_letterSpacing(IHTMLStyle *iface, VARIANT v)
418 {
419     HTMLStyle *This = HTMLSTYLE_THIS(iface);
420     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
421     return E_NOTIMPL;
422 }
423
424 static HRESULT WINAPI HTMLStyle_get_letterSpacing(IHTMLStyle *iface, VARIANT *p)
425 {
426     HTMLStyle *This = HTMLSTYLE_THIS(iface);
427     FIXME("(%p)->(%p)\n", This, p);
428     return E_NOTIMPL;
429 }
430
431 static HRESULT WINAPI HTMLStyle_put_textDecoration(IHTMLStyle *iface, BSTR v)
432 {
433     HTMLStyle *This = HTMLSTYLE_THIS(iface);
434     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
435     return E_NOTIMPL;
436 }
437
438 static HRESULT WINAPI HTMLStyle_get_textDecoration(IHTMLStyle *iface, BSTR *p)
439 {
440     HTMLStyle *This = HTMLSTYLE_THIS(iface);
441     FIXME("(%p)->(%p)\n", This, p);
442     return E_NOTIMPL;
443 }
444
445 static HRESULT WINAPI HTMLStyle_put_textDecorationNone(IHTMLStyle *iface, VARIANT_BOOL v)
446 {
447     HTMLStyle *This = HTMLSTYLE_THIS(iface);
448     FIXME("(%p)->(%x)\n", This, v);
449     return E_NOTIMPL;
450 }
451
452 static HRESULT WINAPI HTMLStyle_get_textDecorationNone(IHTMLStyle *iface, VARIANT_BOOL *p)
453 {
454     HTMLStyle *This = HTMLSTYLE_THIS(iface);
455     FIXME("(%p)->(%p)\n", This, p);
456     return E_NOTIMPL;
457 }
458
459 static HRESULT WINAPI HTMLStyle_put_textDecorationUnderline(IHTMLStyle *iface, VARIANT_BOOL v)
460 {
461     HTMLStyle *This = HTMLSTYLE_THIS(iface);
462     FIXME("(%p)->(%x)\n", This, v);
463     return E_NOTIMPL;
464 }
465
466 static HRESULT WINAPI HTMLStyle_get_textDecorationUnderline(IHTMLStyle *iface, VARIANT_BOOL *p)
467 {
468     HTMLStyle *This = HTMLSTYLE_THIS(iface);
469     FIXME("(%p)->(%p)\n", This, p);
470     return E_NOTIMPL;
471 }
472
473 static HRESULT WINAPI HTMLStyle_put_textDecorationOverline(IHTMLStyle *iface, VARIANT_BOOL v)
474 {
475     HTMLStyle *This = HTMLSTYLE_THIS(iface);
476     FIXME("(%p)->(%x)\n", This, v);
477     return E_NOTIMPL;
478 }
479
480 static HRESULT WINAPI HTMLStyle_get_textDecorationOverline(IHTMLStyle *iface, VARIANT_BOOL *p)
481 {
482     HTMLStyle *This = HTMLSTYLE_THIS(iface);
483     FIXME("(%p)->(%p)\n", This, p);
484     return E_NOTIMPL;
485 }
486
487 static HRESULT WINAPI HTMLStyle_put_textDecorationLineThrough(IHTMLStyle *iface, VARIANT_BOOL v)
488 {
489     HTMLStyle *This = HTMLSTYLE_THIS(iface);
490     FIXME("(%p)->(%x)\n", This, v);
491     return E_NOTIMPL;
492 }
493
494 static HRESULT WINAPI HTMLStyle_get_textDecorationLineThrough(IHTMLStyle *iface, VARIANT_BOOL *p)
495 {
496     HTMLStyle *This = HTMLSTYLE_THIS(iface);
497     FIXME("(%p)->(%p)\n", This, p);
498     return E_NOTIMPL;
499 }
500
501 static HRESULT WINAPI HTMLStyle_put_textDecorationBlink(IHTMLStyle *iface, VARIANT_BOOL v)
502 {
503     HTMLStyle *This = HTMLSTYLE_THIS(iface);
504     FIXME("(%p)->(%x)\n", This, v);
505     return E_NOTIMPL;
506 }
507
508 static HRESULT WINAPI HTMLStyle_get_textDecorationBlink(IHTMLStyle *iface, VARIANT_BOOL *p)
509 {
510     HTMLStyle *This = HTMLSTYLE_THIS(iface);
511     FIXME("(%p)->(%p)\n", This, p);
512     return E_NOTIMPL;
513 }
514
515 static HRESULT WINAPI HTMLStyle_put_verticalAlign(IHTMLStyle *iface, VARIANT v)
516 {
517     HTMLStyle *This = HTMLSTYLE_THIS(iface);
518     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
519     return E_NOTIMPL;
520 }
521
522 static HRESULT WINAPI HTMLStyle_get_verticalAlign(IHTMLStyle *iface, VARIANT *p)
523 {
524     HTMLStyle *This = HTMLSTYLE_THIS(iface);
525     FIXME("(%p)->(%p)\n", This, p);
526     return E_NOTIMPL;
527 }
528
529 static HRESULT WINAPI HTMLStyle_put_textTransform(IHTMLStyle *iface, BSTR v)
530 {
531     HTMLStyle *This = HTMLSTYLE_THIS(iface);
532     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
533     return E_NOTIMPL;
534 }
535
536 static HRESULT WINAPI HTMLStyle_get_textTransform(IHTMLStyle *iface, BSTR *p)
537 {
538     HTMLStyle *This = HTMLSTYLE_THIS(iface);
539     FIXME("(%p)->(%p)\n", This, p);
540     return E_NOTIMPL;
541 }
542
543 static HRESULT WINAPI HTMLStyle_put_textAlign(IHTMLStyle *iface, BSTR v)
544 {
545     HTMLStyle *This = HTMLSTYLE_THIS(iface);
546     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
547     return E_NOTIMPL;
548 }
549
550 static HRESULT WINAPI HTMLStyle_get_textAlign(IHTMLStyle *iface, BSTR *p)
551 {
552     HTMLStyle *This = HTMLSTYLE_THIS(iface);
553     FIXME("(%p)->(%p)\n", This, p);
554     return E_NOTIMPL;
555 }
556
557 static HRESULT WINAPI HTMLStyle_put_textIndent(IHTMLStyle *iface, VARIANT v)
558 {
559     HTMLStyle *This = HTMLSTYLE_THIS(iface);
560     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
561     return E_NOTIMPL;
562 }
563
564 static HRESULT WINAPI HTMLStyle_get_textIndent(IHTMLStyle *iface, VARIANT *p)
565 {
566     HTMLStyle *This = HTMLSTYLE_THIS(iface);
567     FIXME("(%p)->(%p)\n", This, p);
568     return E_NOTIMPL;
569 }
570
571 static HRESULT WINAPI HTMLStyle_put_lineHeight(IHTMLStyle *iface, VARIANT v)
572 {
573     HTMLStyle *This = HTMLSTYLE_THIS(iface);
574     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
575     return E_NOTIMPL;
576 }
577
578 static HRESULT WINAPI HTMLStyle_get_lineHeight(IHTMLStyle *iface, VARIANT *p)
579 {
580     HTMLStyle *This = HTMLSTYLE_THIS(iface);
581     FIXME("(%p)->(%p)\n", This, p);
582     return E_NOTIMPL;
583 }
584
585 static HRESULT WINAPI HTMLStyle_put_marginTop(IHTMLStyle *iface, VARIANT v)
586 {
587     HTMLStyle *This = HTMLSTYLE_THIS(iface);
588     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
589     return E_NOTIMPL;
590 }
591
592 static HRESULT WINAPI HTMLStyle_get_marginTop(IHTMLStyle *iface, VARIANT *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_marginRight(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_marginRight(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_marginBottom(IHTMLStyle *iface, VARIANT v)
614 {
615     HTMLStyle *This = HTMLSTYLE_THIS(iface);
616     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
617     return E_NOTIMPL;
618 }
619
620 static HRESULT WINAPI HTMLStyle_get_marginBottom(IHTMLStyle *iface, VARIANT *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_marginLeft(IHTMLStyle *iface, VARIANT v)
628 {
629     HTMLStyle *This = HTMLSTYLE_THIS(iface);
630     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
631     return E_NOTIMPL;
632 }
633
634 static HRESULT WINAPI HTMLStyle_put_margin(IHTMLStyle *iface, BSTR v)
635 {
636     HTMLStyle *This = HTMLSTYLE_THIS(iface);
637     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
638     return E_NOTIMPL;
639 }
640
641 static HRESULT WINAPI HTMLStyle_get_margin(IHTMLStyle *iface, BSTR *p)
642 {
643     HTMLStyle *This = HTMLSTYLE_THIS(iface);
644     FIXME("(%p)->(%p)\n", This, p);
645     return E_NOTIMPL;
646 }
647
648 static HRESULT WINAPI HTMLStyle_get_marginLeft(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_paddingTop(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_paddingTop(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_paddingRight(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_paddingRight(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_paddingBottom(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_paddingBottom(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_paddingLeft(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_paddingLeft(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_padding(IHTMLStyle *iface, BSTR v)
712 {
713     HTMLStyle *This = HTMLSTYLE_THIS(iface);
714     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
715     return E_NOTIMPL;
716 }
717
718 static HRESULT WINAPI HTMLStyle_get_padding(IHTMLStyle *iface, BSTR *p)
719 {
720     HTMLStyle *This = HTMLSTYLE_THIS(iface);
721     FIXME("(%p)->(%p)\n", This, p);
722     return E_NOTIMPL;
723 }
724
725 static HRESULT WINAPI HTMLStyle_put_border(IHTMLStyle *iface, BSTR v)
726 {
727     HTMLStyle *This = HTMLSTYLE_THIS(iface);
728     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
729     return E_NOTIMPL;
730 }
731
732 static HRESULT WINAPI HTMLStyle_get_border(IHTMLStyle *iface, BSTR *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_borderTop(IHTMLStyle *iface, BSTR v)
740 {
741     HTMLStyle *This = HTMLSTYLE_THIS(iface);
742     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
743     return E_NOTIMPL;
744 }
745
746 static HRESULT WINAPI HTMLStyle_get_borderTop(IHTMLStyle *iface, BSTR *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_borderRight(IHTMLStyle *iface, BSTR v)
754 {
755     HTMLStyle *This = HTMLSTYLE_THIS(iface);
756     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
757     return E_NOTIMPL;
758 }
759
760 static HRESULT WINAPI HTMLStyle_get_borderRight(IHTMLStyle *iface, BSTR *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_borderBottom(IHTMLStyle *iface, BSTR v)
768 {
769     HTMLStyle *This = HTMLSTYLE_THIS(iface);
770     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
771     return E_NOTIMPL;
772 }
773
774 static HRESULT WINAPI HTMLStyle_get_borderBottom(IHTMLStyle *iface, BSTR *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_borderLeft(IHTMLStyle *iface, BSTR v)
782 {
783     HTMLStyle *This = HTMLSTYLE_THIS(iface);
784     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
785     return E_NOTIMPL;
786 }
787
788 static HRESULT WINAPI HTMLStyle_get_borderLeft(IHTMLStyle *iface, BSTR *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_borderColor(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_borderColor(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_borderTopColor(IHTMLStyle *iface, VARIANT v)
810 {
811     HTMLStyle *This = HTMLSTYLE_THIS(iface);
812     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
813     return E_NOTIMPL;
814 }
815
816 static HRESULT WINAPI HTMLStyle_get_borderTopColor(IHTMLStyle *iface, VARIANT *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_borderRightColor(IHTMLStyle *iface, VARIANT v)
824 {
825     HTMLStyle *This = HTMLSTYLE_THIS(iface);
826     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
827     return E_NOTIMPL;
828 }
829
830 static HRESULT WINAPI HTMLStyle_get_borderRightColor(IHTMLStyle *iface, VARIANT *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_borderBottomColor(IHTMLStyle *iface, VARIANT v)
838 {
839     HTMLStyle *This = HTMLSTYLE_THIS(iface);
840     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
841     return E_NOTIMPL;
842 }
843
844 static HRESULT WINAPI HTMLStyle_get_borderBottomColor(IHTMLStyle *iface, VARIANT *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_borderLeftColor(IHTMLStyle *iface, VARIANT v)
852 {
853     HTMLStyle *This = HTMLSTYLE_THIS(iface);
854     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
855     return E_NOTIMPL;
856 }
857
858 static HRESULT WINAPI HTMLStyle_get_borderLeftColor(IHTMLStyle *iface, VARIANT *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_borderWidth(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_borderWidth(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_borderTopWidth(IHTMLStyle *iface, VARIANT v)
880 {
881     HTMLStyle *This = HTMLSTYLE_THIS(iface);
882     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
883     return E_NOTIMPL;
884 }
885
886 static HRESULT WINAPI HTMLStyle_get_borderTopWidth(IHTMLStyle *iface, VARIANT *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_borderRightWidth(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_borderRightWidth(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_borderBottomWidth(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_borderBottomWidth(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_borderLeftWidth(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_borderLeftWidth(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_borderStyle(IHTMLStyle *iface, BSTR v)
936 {
937     HTMLStyle *This = HTMLSTYLE_THIS(iface);
938     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
939     return E_NOTIMPL;
940 }
941
942 static HRESULT WINAPI HTMLStyle_get_borderStyle(IHTMLStyle *iface, BSTR *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_borderTopStyle(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_borderTopStyle(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_borderRightStyle(IHTMLStyle *iface, BSTR v)
964 {
965     HTMLStyle *This = HTMLSTYLE_THIS(iface);
966     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
967     return E_NOTIMPL;
968 }
969
970 static HRESULT WINAPI HTMLStyle_get_borderRightStyle(IHTMLStyle *iface, BSTR *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_borderBottomStyle(IHTMLStyle *iface, BSTR v)
978 {
979     HTMLStyle *This = HTMLSTYLE_THIS(iface);
980     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
981     return E_NOTIMPL;
982 }
983
984 static HRESULT WINAPI HTMLStyle_get_borderBottomStyle(IHTMLStyle *iface, BSTR *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_borderLeftStyle(IHTMLStyle *iface, BSTR v)
992 {
993     HTMLStyle *This = HTMLSTYLE_THIS(iface);
994     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
995     return E_NOTIMPL;
996 }
997
998 static HRESULT WINAPI HTMLStyle_get_borderLeftStyle(IHTMLStyle *iface, BSTR *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_width(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_width(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_height(IHTMLStyle *iface, VARIANT v)
1020 {
1021     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1022     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
1023     return E_NOTIMPL;
1024 }
1025
1026 static HRESULT WINAPI HTMLStyle_get_height(IHTMLStyle *iface, VARIANT *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_styleFloat(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_styleFloat(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_clear(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_clear(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_display(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_display(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_visibility(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_visibility(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_listStyleType(IHTMLStyle *iface, BSTR v)
1090 {
1091     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1092     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
1093     return E_NOTIMPL;
1094 }
1095
1096 static HRESULT WINAPI HTMLStyle_get_listStyleType(IHTMLStyle *iface, BSTR *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_listStylePosition(IHTMLStyle *iface, BSTR v)
1104 {
1105     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1106     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
1107     return E_NOTIMPL;
1108 }
1109
1110 static HRESULT WINAPI HTMLStyle_get_listStylePosition(IHTMLStyle *iface, BSTR *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_listStyleImage(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_listStyleImage(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_listStyle(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_listStyle(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_whiteSpace(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_whiteSpace(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_top(IHTMLStyle *iface, VARIANT v)
1160 {
1161     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1162     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
1163     return E_NOTIMPL;
1164 }
1165
1166 static HRESULT WINAPI HTMLStyle_get_top(IHTMLStyle *iface, VARIANT *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_left(IHTMLStyle *iface, VARIANT v)
1174 {
1175     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1176     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
1177     return E_NOTIMPL;
1178 }
1179
1180 static HRESULT WINAPI HTMLStyle_get_left(IHTMLStyle *iface, VARIANT *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_get_position(IHTMLStyle *iface, BSTR *p)
1188 {
1189     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1190     FIXME("(%p)->(%p)\n", This, p);
1191     return E_NOTIMPL;
1192 }
1193
1194 static HRESULT WINAPI HTMLStyle_put_zIndex(IHTMLStyle *iface, VARIANT v)
1195 {
1196     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1197     FIXME("(%p)->(v%d)\n", This, V_VT(&v));
1198     return E_NOTIMPL;
1199 }
1200
1201 static HRESULT WINAPI HTMLStyle_get_zIndex(IHTMLStyle *iface, VARIANT *p)
1202 {
1203     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1204     FIXME("(%p)->(%p)\n", This, p);
1205     return E_NOTIMPL;
1206 }
1207
1208 static HRESULT WINAPI HTMLStyle_put_overflow(IHTMLStyle *iface, BSTR v)
1209 {
1210     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1211     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
1212     return E_NOTIMPL;
1213 }
1214
1215 static HRESULT WINAPI HTMLStyle_get_overflow(IHTMLStyle *iface, BSTR *p)
1216 {
1217     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1218     FIXME("(%p)->(%p)\n", This, p);
1219     return E_NOTIMPL;
1220 }
1221
1222 static HRESULT WINAPI HTMLStyle_put_pageBreakBefore(IHTMLStyle *iface, BSTR v)
1223 {
1224     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1225     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
1226     return E_NOTIMPL;
1227 }
1228
1229 static HRESULT WINAPI HTMLStyle_get_pageBreakBefore(IHTMLStyle *iface, BSTR *p)
1230 {
1231     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1232     FIXME("(%p)->(%p)\n", This, p);
1233     return E_NOTIMPL;
1234 }
1235
1236 static HRESULT WINAPI HTMLStyle_put_pageBreakAfter(IHTMLStyle *iface, BSTR v)
1237 {
1238     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1239     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
1240     return E_NOTIMPL;
1241 }
1242
1243 static HRESULT WINAPI HTMLStyle_get_pageBreakAfter(IHTMLStyle *iface, BSTR *p)
1244 {
1245     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1246     FIXME("(%p)->(%p)\n", This, p);
1247     return E_NOTIMPL;
1248 }
1249
1250 static HRESULT WINAPI HTMLStyle_put_cssText(IHTMLStyle *iface, BSTR v)
1251 {
1252     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1253     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
1254     return E_NOTIMPL;
1255 }
1256
1257 static HRESULT WINAPI HTMLStyle_get_cssText(IHTMLStyle *iface, BSTR *p)
1258 {
1259     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1260     FIXME("(%p)->(%p)\n", This, p);
1261     return E_NOTIMPL;
1262 }
1263
1264 static HRESULT WINAPI HTMLStyle_put_pixelTop(IHTMLStyle *iface, long v)
1265 {
1266     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1267     FIXME("(%p)->()\n", This);
1268     return E_NOTIMPL;
1269 }
1270
1271 static HRESULT WINAPI HTMLStyle_get_pixelTop(IHTMLStyle *iface, long *p)
1272 {
1273     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1274     FIXME("(%p)->()\n", This);
1275     return E_NOTIMPL;
1276 }
1277
1278 static HRESULT WINAPI HTMLStyle_put_pixelLeft(IHTMLStyle *iface, long v)
1279 {
1280     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1281     FIXME("(%p)->()\n", This);
1282     return E_NOTIMPL;
1283 }
1284
1285 static HRESULT WINAPI HTMLStyle_get_pixelLeft(IHTMLStyle *iface, long *p)
1286 {
1287     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1288     FIXME("(%p)->()\n", This);
1289     return E_NOTIMPL;
1290 }
1291
1292 static HRESULT WINAPI HTMLStyle_put_pixelWidth(IHTMLStyle *iface, long v)
1293 {
1294     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1295     FIXME("(%p)->()\n", This);
1296     return E_NOTIMPL;
1297 }
1298
1299 static HRESULT WINAPI HTMLStyle_get_pixelWidth(IHTMLStyle *iface, long *p)
1300 {
1301     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1302     FIXME("(%p)->()\n", This);
1303     return E_NOTIMPL;
1304 }
1305
1306 static HRESULT WINAPI HTMLStyle_put_pixelHeight(IHTMLStyle *iface, long v)
1307 {
1308     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1309     FIXME("(%p)->()\n", This);
1310     return E_NOTIMPL;
1311 }
1312
1313 static HRESULT WINAPI HTMLStyle_get_pixelHeight(IHTMLStyle *iface, long *p)
1314 {
1315     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1316     FIXME("(%p)->()\n", This);
1317     return E_NOTIMPL;
1318 }
1319
1320 static HRESULT WINAPI HTMLStyle_put_posTop(IHTMLStyle *iface, float v)
1321 {
1322     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1323     FIXME("(%p)->()\n", This);
1324     return E_NOTIMPL;
1325 }
1326
1327 static HRESULT WINAPI HTMLStyle_get_posTop(IHTMLStyle *iface, float *p)
1328 {
1329     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1330     FIXME("(%p)->()\n", This);
1331     return E_NOTIMPL;
1332 }
1333
1334 static HRESULT WINAPI HTMLStyle_put_posLeft(IHTMLStyle *iface, float v)
1335 {
1336     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1337     FIXME("(%p)->()\n", This);
1338     return E_NOTIMPL;
1339 }
1340
1341 static HRESULT WINAPI HTMLStyle_get_posLeft(IHTMLStyle *iface, float *p)
1342 {
1343     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1344     FIXME("(%p)->()\n", This);
1345     return E_NOTIMPL;
1346 }
1347
1348 static HRESULT WINAPI HTMLStyle_put_posWidth(IHTMLStyle *iface, float 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_posWidth(IHTMLStyle *iface, float *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_posHeight(IHTMLStyle *iface, float 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_posHeight(IHTMLStyle *iface, float *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_cursor(IHTMLStyle *iface, BSTR v)
1377 {
1378     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1379     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
1380     return E_NOTIMPL;
1381 }
1382
1383 static HRESULT WINAPI HTMLStyle_get_cursor(IHTMLStyle *iface, BSTR *p)
1384 {
1385     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1386     FIXME("(%p)->(%p)\n", This, p);
1387     return E_NOTIMPL;
1388 }
1389
1390 static HRESULT WINAPI HTMLStyle_put_clip(IHTMLStyle *iface, BSTR v)
1391 {
1392     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1393     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
1394     return E_NOTIMPL;
1395 }
1396
1397 static HRESULT WINAPI HTMLStyle_get_clip(IHTMLStyle *iface, BSTR *p)
1398 {
1399     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1400     FIXME("(%p)->(%p)\n", This, p);
1401     return E_NOTIMPL;
1402 }
1403
1404 static HRESULT WINAPI HTMLStyle_put_filter(IHTMLStyle *iface, BSTR v)
1405 {
1406     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1407     FIXME("(%p)->(%s)\n", This, debugstr_w(v));
1408     return E_NOTIMPL;
1409 }
1410
1411 static HRESULT WINAPI HTMLStyle_get_filter(IHTMLStyle *iface, BSTR *p)
1412 {
1413     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1414     FIXME("(%p)->(%p)\n", This, p);
1415     return E_NOTIMPL;
1416 }
1417
1418 static HRESULT WINAPI HTMLStyle_setAttribute(IHTMLStyle *iface, BSTR strAttributeName,
1419         VARIANT AttributeValue, LONG lFlags)
1420 {
1421     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1422     FIXME("(%p)->(%s v%d %08x)\n", This, debugstr_w(strAttributeName),
1423           V_VT(&AttributeValue), lFlags);
1424     return E_NOTIMPL;
1425 }
1426
1427 static HRESULT WINAPI HTMLStyle_getAttribute(IHTMLStyle *iface, BSTR strAttributeName,
1428         LONG lFlags, VARIANT *AttributeValue)
1429 {
1430     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1431     FIXME("(%p)->(%s %08x %p)\n", This, debugstr_w(strAttributeName),
1432          lFlags, AttributeValue);
1433     return E_NOTIMPL;
1434 }
1435
1436 static HRESULT WINAPI HTMLStyle_removeAttribute(IHTMLStyle *iface, BSTR strAttributeName,
1437                                                 LONG lFlags, VARIANT_BOOL *pfSuccess)
1438 {
1439     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1440     FIXME("(%p)->(%s %08x %p)\n", This, debugstr_w(strAttributeName),
1441          lFlags, pfSuccess);
1442     return E_NOTIMPL;
1443 }
1444
1445 static HRESULT WINAPI HTMLStyle_toString(IHTMLStyle *iface, BSTR *String)
1446 {
1447     HTMLStyle *This = HTMLSTYLE_THIS(iface);
1448     FIXME("(%p)->(%p)\n", This, String);
1449     return E_NOTIMPL;
1450 }
1451
1452 static const IHTMLStyleVtbl HTMLStyleVtbl = {
1453     HTMLStyle_QueryInterface,
1454     HTMLStyle_AddRef,
1455     HTMLStyle_Release,
1456     HTMLStyle_GetTypeInfoCount,
1457     HTMLStyle_GetTypeInfo,
1458     HTMLStyle_GetIDsOfNames,
1459     HTMLStyle_Invoke,
1460     HTMLStyle_put_fontFamily,
1461     HTMLStyle_get_fontFamily,
1462     HTMLStyle_put_fontStyle,
1463     HTMLStyle_get_fontStyle,
1464     HTMLStyle_put_fontVariant,
1465     HTMLStyle_get_fontVariant,
1466     HTMLStyle_put_fontWeight,
1467     HTMLStyle_get_fontWeight,
1468     HTMLStyle_put_fontSize,
1469     HTMLStyle_get_fontSize,
1470     HTMLStyle_put_font,
1471     HTMLStyle_get_font,
1472     HTMLStyle_put_color,
1473     HTMLStyle_get_color,
1474     HTMLStyle_put_background,
1475     HTMLStyle_get_background,
1476     HTMLStyle_put_backgroundColor,
1477     HTMLStyle_get_backgroundColor,
1478     HTMLStyle_put_backgroundImage,
1479     HTMLStyle_get_backgroundImage,
1480     HTMLStyle_put_backgroundRepeat,
1481     HTMLStyle_get_backgroundRepeat,
1482     HTMLStyle_put_backgroundAttachment,
1483     HTMLStyle_get_backgroundAttachment,
1484     HTMLStyle_put_backgroundPosition,
1485     HTMLStyle_get_backgroundPosition,
1486     HTMLStyle_put_backgroundPositionX,
1487     HTMLStyle_get_backgroundPositionX,
1488     HTMLStyle_put_backgroundPositionY,
1489     HTMLStyle_get_backgroundPositionY,
1490     HTMLStyle_put_wordSpacing,
1491     HTMLStyle_get_wordSpacing,
1492     HTMLStyle_put_letterSpacing,
1493     HTMLStyle_get_letterSpacing,
1494     HTMLStyle_put_textDecoration,
1495     HTMLStyle_get_textDecoration,
1496     HTMLStyle_put_textDecorationNone,
1497     HTMLStyle_get_textDecorationNone,
1498     HTMLStyle_put_textDecorationUnderline,
1499     HTMLStyle_get_textDecorationUnderline,
1500     HTMLStyle_put_textDecorationOverline,
1501     HTMLStyle_get_textDecorationOverline,
1502     HTMLStyle_put_textDecorationLineThrough,
1503     HTMLStyle_get_textDecorationLineThrough,
1504     HTMLStyle_put_textDecorationBlink,
1505     HTMLStyle_get_textDecorationBlink,
1506     HTMLStyle_put_verticalAlign,
1507     HTMLStyle_get_verticalAlign,
1508     HTMLStyle_put_textTransform,
1509     HTMLStyle_get_textTransform,
1510     HTMLStyle_put_textAlign,
1511     HTMLStyle_get_textAlign,
1512     HTMLStyle_put_textIndent,
1513     HTMLStyle_get_textIndent,
1514     HTMLStyle_put_lineHeight,
1515     HTMLStyle_get_lineHeight,
1516     HTMLStyle_put_marginTop,
1517     HTMLStyle_get_marginTop,
1518     HTMLStyle_put_marginRight,
1519     HTMLStyle_get_marginRight,
1520     HTMLStyle_put_marginBottom,
1521     HTMLStyle_get_marginBottom,
1522     HTMLStyle_put_marginLeft,
1523     HTMLStyle_get_marginLeft,
1524     HTMLStyle_put_margin,
1525     HTMLStyle_get_margin,
1526     HTMLStyle_put_paddingTop,
1527     HTMLStyle_get_paddingTop,
1528     HTMLStyle_put_paddingRight,
1529     HTMLStyle_get_paddingRight,
1530     HTMLStyle_put_paddingBottom,
1531     HTMLStyle_get_paddingBottom,
1532     HTMLStyle_put_paddingLeft,
1533     HTMLStyle_get_paddingLeft,
1534     HTMLStyle_put_padding,
1535     HTMLStyle_get_padding,
1536     HTMLStyle_put_border,
1537     HTMLStyle_get_border,
1538     HTMLStyle_put_borderTop,
1539     HTMLStyle_get_borderTop,
1540     HTMLStyle_put_borderRight,
1541     HTMLStyle_get_borderRight,
1542     HTMLStyle_put_borderBottom,
1543     HTMLStyle_get_borderBottom,
1544     HTMLStyle_put_borderLeft,
1545     HTMLStyle_get_borderLeft,
1546     HTMLStyle_put_borderColor,
1547     HTMLStyle_get_borderColor,
1548     HTMLStyle_put_borderTopColor,
1549     HTMLStyle_get_borderTopColor,
1550     HTMLStyle_put_borderRightColor,
1551     HTMLStyle_get_borderRightColor,
1552     HTMLStyle_put_borderBottomColor,
1553     HTMLStyle_get_borderBottomColor,
1554     HTMLStyle_put_borderLeftColor,
1555     HTMLStyle_get_borderLeftColor,
1556     HTMLStyle_put_borderWidth,
1557     HTMLStyle_get_borderWidth,
1558     HTMLStyle_put_borderTopWidth,
1559     HTMLStyle_get_borderTopWidth,
1560     HTMLStyle_put_borderRightWidth,
1561     HTMLStyle_get_borderRightWidth,
1562     HTMLStyle_put_borderBottomWidth,
1563     HTMLStyle_get_borderBottomWidth,
1564     HTMLStyle_put_borderLeftWidth,
1565     HTMLStyle_get_borderLeftWidth,
1566     HTMLStyle_put_borderStyle,
1567     HTMLStyle_get_borderStyle,
1568     HTMLStyle_put_borderTopStyle,
1569     HTMLStyle_get_borderTopStyle,
1570     HTMLStyle_put_borderRightStyle,
1571     HTMLStyle_get_borderRightStyle,
1572     HTMLStyle_put_borderBottomStyle,
1573     HTMLStyle_get_borderBottomStyle,
1574     HTMLStyle_put_borderLeftStyle,
1575     HTMLStyle_get_borderLeftStyle,
1576     HTMLStyle_put_width,
1577     HTMLStyle_get_width,
1578     HTMLStyle_put_height,
1579     HTMLStyle_get_height,
1580     HTMLStyle_put_styleFloat,
1581     HTMLStyle_get_styleFloat,
1582     HTMLStyle_put_clear,
1583     HTMLStyle_get_clear,
1584     HTMLStyle_put_display,
1585     HTMLStyle_get_display,
1586     HTMLStyle_put_visibility,
1587     HTMLStyle_get_visibility,
1588     HTMLStyle_put_listStyleType,
1589     HTMLStyle_get_listStyleType,
1590     HTMLStyle_put_listStylePosition,
1591     HTMLStyle_get_listStylePosition,
1592     HTMLStyle_put_listStyleImage,
1593     HTMLStyle_get_listStyleImage,
1594     HTMLStyle_put_listStyle,
1595     HTMLStyle_get_listStyle,
1596     HTMLStyle_put_whiteSpace,
1597     HTMLStyle_get_whiteSpace,
1598     HTMLStyle_put_top,
1599     HTMLStyle_get_top,
1600     HTMLStyle_put_left,
1601     HTMLStyle_get_left,
1602     HTMLStyle_get_position,
1603     HTMLStyle_put_zIndex,
1604     HTMLStyle_get_zIndex,
1605     HTMLStyle_put_overflow,
1606     HTMLStyle_get_overflow,
1607     HTMLStyle_put_pageBreakBefore,
1608     HTMLStyle_get_pageBreakBefore,
1609     HTMLStyle_put_pageBreakAfter,
1610     HTMLStyle_get_pageBreakAfter,
1611     HTMLStyle_put_cssText,
1612     HTMLStyle_get_cssText,
1613     HTMLStyle_put_pixelTop,
1614     HTMLStyle_get_pixelTop,
1615     HTMLStyle_put_pixelLeft,
1616     HTMLStyle_get_pixelLeft,
1617     HTMLStyle_put_pixelWidth,
1618     HTMLStyle_get_pixelWidth,
1619     HTMLStyle_put_pixelHeight,
1620     HTMLStyle_get_pixelHeight,
1621     HTMLStyle_put_posTop,
1622     HTMLStyle_get_posTop,
1623     HTMLStyle_put_posLeft,
1624     HTMLStyle_get_posLeft,
1625     HTMLStyle_put_posWidth,
1626     HTMLStyle_get_posWidth,
1627     HTMLStyle_put_posHeight,
1628     HTMLStyle_get_posHeight,
1629     HTMLStyle_put_cursor,
1630     HTMLStyle_get_cursor,
1631     HTMLStyle_put_clip,
1632     HTMLStyle_get_clip,
1633     HTMLStyle_put_filter,
1634     HTMLStyle_get_filter,
1635     HTMLStyle_setAttribute,
1636     HTMLStyle_getAttribute,
1637     HTMLStyle_removeAttribute,
1638     HTMLStyle_toString
1639 };
1640
1641 IHTMLStyle *HTMLStyle_Create(nsIDOMCSSStyleDeclaration *nsstyle)
1642 {
1643     HTMLStyle *ret = mshtml_alloc(sizeof(HTMLStyle));
1644
1645     ret->lpHTMLStyleVtbl = &HTMLStyleVtbl;
1646     ret->ref = 1;
1647     ret->nsstyle = nsstyle;
1648
1649     nsIDOMCSSStyleDeclaration_AddRef(nsstyle);
1650
1651     return HTMLSTYLE(ret);
1652 }