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