ole32: Remove an unneeded WINAPI and remove some useless comments.
[wine] / dlls / mshtml / htmlcurstyle.c
1 /*
2  * Copyright 2008 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 <stdarg.h>
20
21 #define COBJMACROS
22
23 #include "windef.h"
24 #include "winbase.h"
25 #include "winuser.h"
26 #include "ole2.h"
27
28 #include "wine/debug.h"
29 #include "wine/unicode.h"
30
31 #include "mshtml_private.h"
32
33 WINE_DEFAULT_DEBUG_CHANNEL(mshtml);
34
35 typedef struct {
36     const IHTMLCurrentStyleVtbl *lpIHTMLCurrentStyleVtbl;
37
38     LONG ref;
39 } HTMLCurrentStyle;
40
41 #define HTMLCURSTYLE(x)  ((IHTMLCurrentStyle*)  &(x)->lpIHTMLCurrentStyleVtbl)
42
43 #define HTMLCURSTYLE_THIS(iface) DEFINE_THIS(HTMLCurrentStyle, IHTMLCurrentStyle, iface)
44
45 static HRESULT WINAPI HTMLCurrentStyle_QueryInterface(IHTMLCurrentStyle *iface, REFIID riid, void **ppv)
46 {
47     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
48
49     *ppv = NULL;
50
51     if(IsEqualGUID(&IID_IUnknown, riid)) {
52         TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
53         *ppv = HTMLCURSTYLE(This);
54     }else if(IsEqualGUID(&IID_IDispatch, riid)) {
55         TRACE("(%p)->(IID_IDispatch %p)\n", This, ppv);
56         *ppv = HTMLCURSTYLE(This);
57     }else if(IsEqualGUID(&IID_IHTMLCurrentStyle, riid)) {
58         TRACE("(%p)->(IID_IHTMLCurrentStyle %p)\n", This, ppv);
59         *ppv = HTMLCURSTYLE(This);
60     }
61
62     if(*ppv) {
63         IUnknown_AddRef((IUnknown*)*ppv);
64         return S_OK;
65     }
66
67     WARN("unsupported %s\n", debugstr_guid(riid));
68     return E_NOINTERFACE;
69 }
70
71 static ULONG WINAPI HTMLCurrentStyle_AddRef(IHTMLCurrentStyle *iface)
72 {
73     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
74     LONG ref = InterlockedIncrement(&This->ref);
75
76     TRACE("(%p) ref=%d\n", This, ref);
77
78     return ref;
79 }
80
81 static ULONG WINAPI HTMLCurrentStyle_Release(IHTMLCurrentStyle *iface)
82 {
83     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
84     LONG ref = InterlockedDecrement(&This->ref);
85
86     TRACE("(%p) ref=%d\n", This, ref);
87
88     if(!ref)
89         heap_free(This);
90
91     return ref;
92 }
93
94 static HRESULT WINAPI HTMLCurrentStyle_GetTypeInfoCount(IHTMLCurrentStyle *iface, UINT *pctinfo)
95 {
96     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
97     FIXME("(%p)\n", This);
98     return E_NOTIMPL;
99 }
100
101 static HRESULT WINAPI HTMLCurrentStyle_GetTypeInfo(IHTMLCurrentStyle *iface, UINT iTInfo,
102         LCID lcid, ITypeInfo **ppTInfo)
103 {
104     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
105     FIXME("(%p)\n", This);
106     return E_NOTIMPL;
107 }
108
109 static HRESULT WINAPI HTMLCurrentStyle_GetIDsOfNames(IHTMLCurrentStyle *iface, REFIID riid,
110         LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
111 {
112     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
113     FIXME("(%p)\n", This);
114     return E_NOTIMPL;
115 }
116
117 static HRESULT WINAPI HTMLCurrentStyle_Invoke(IHTMLCurrentStyle *iface, DISPID dispIdMember,
118         REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams,
119         VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
120 {
121     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
122     FIXME("(%p)\n", This);
123     return E_NOTIMPL;
124 }
125
126 static HRESULT WINAPI HTMLCurrentStyle_get_position(IHTMLCurrentStyle *iface, BSTR *p)
127 {
128     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
129     FIXME("(%p)->(%p)\n", This, p);
130     return E_NOTIMPL;
131 }
132
133 static HRESULT WINAPI HTMLCurrentStyle_get_styleFloat(IHTMLCurrentStyle *iface, BSTR *p)
134 {
135     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
136     FIXME("(%p)->(%p)\n", This, p);
137     return E_NOTIMPL;
138 }
139
140 static HRESULT WINAPI HTMLCurrentStyle_get_color(IHTMLCurrentStyle *iface, VARIANT *p)
141 {
142     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
143     FIXME("(%p)->(%p)\n", This, p);
144     return E_NOTIMPL;
145 }
146
147 static HRESULT WINAPI HTMLCurrentStyle_get_backgroundColor(IHTMLCurrentStyle *iface, VARIANT *p)
148 {
149     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
150     FIXME("(%p)->(%p)\n", This, p);
151     return E_NOTIMPL;
152 }
153
154 static HRESULT WINAPI HTMLCurrentStyle_get_fontFamily(IHTMLCurrentStyle *iface, BSTR *p)
155 {
156     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
157     FIXME("(%p)->(%p)\n", This, p);
158     return E_NOTIMPL;
159 }
160
161 static HRESULT WINAPI HTMLCurrentStyle_get_fontStyle(IHTMLCurrentStyle *iface, BSTR *p)
162 {
163     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
164     FIXME("(%p)->(%p)\n", This, p);
165     return E_NOTIMPL;
166 }
167
168 static HRESULT WINAPI HTMLCurrentStyle_get_fontVariant(IHTMLCurrentStyle *iface, BSTR *p)
169 {
170     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
171     FIXME("(%p)->(%p)\n", This, p);
172     return E_NOTIMPL;
173 }
174
175 static HRESULT WINAPI HTMLCurrentStyle_get_fontWeight(IHTMLCurrentStyle *iface, VARIANT *p)
176 {
177     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
178     FIXME("(%p)->(%p)\n", This, p);
179     return E_NOTIMPL;
180 }
181
182 static HRESULT WINAPI HTMLCurrentStyle_get_fontSize(IHTMLCurrentStyle *iface, VARIANT *p)
183 {
184     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
185     FIXME("(%p)->(%p)\n", This, p);
186     return E_NOTIMPL;
187 }
188
189 static HRESULT WINAPI HTMLCurrentStyle_get_backgroundImage(IHTMLCurrentStyle *iface, BSTR *p)
190 {
191     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
192     FIXME("(%p)->(%p)\n", This, p);
193     return E_NOTIMPL;
194 }
195
196 static HRESULT WINAPI HTMLCurrentStyle_get_backgroundPositionX(IHTMLCurrentStyle *iface, VARIANT *p)
197 {
198     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
199     FIXME("(%p)->(%p)\n", This, p);
200     return E_NOTIMPL;
201 }
202
203 static HRESULT WINAPI HTMLCurrentStyle_get_backgroundPositionY(IHTMLCurrentStyle *iface, VARIANT *p)
204 {
205     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
206     FIXME("(%p)->(%p)\n", This, p);
207     return E_NOTIMPL;
208 }
209
210 static HRESULT WINAPI HTMLCurrentStyle_get_backgroundRepeat(IHTMLCurrentStyle *iface, BSTR *p)
211 {
212     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
213     FIXME("(%p)->(%p)\n", This, p);
214     return E_NOTIMPL;
215 }
216
217 static HRESULT WINAPI HTMLCurrentStyle_get_borderLeftColor(IHTMLCurrentStyle *iface, VARIANT *p)
218 {
219     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
220     FIXME("(%p)->(%p)\n", This, p);
221     return E_NOTIMPL;
222 }
223
224 static HRESULT WINAPI HTMLCurrentStyle_get_borderTopColor(IHTMLCurrentStyle *iface, VARIANT *p)
225 {
226     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
227     FIXME("(%p)->(%p)\n", This, p);
228     return E_NOTIMPL;
229 }
230
231 static HRESULT WINAPI HTMLCurrentStyle_get_borderRightColor(IHTMLCurrentStyle *iface, VARIANT *p)
232 {
233     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
234     FIXME("(%p)->(%p)\n", This, p);
235     return E_NOTIMPL;
236 }
237
238 static HRESULT WINAPI HTMLCurrentStyle_get_borderBottomColor(IHTMLCurrentStyle *iface, VARIANT *p)
239 {
240     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
241     FIXME("(%p)->(%p)\n", This, p);
242     return E_NOTIMPL;
243 }
244
245 static HRESULT WINAPI HTMLCurrentStyle_get_borderTopStyle(IHTMLCurrentStyle *iface, BSTR *p)
246 {
247     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
248     FIXME("(%p)->(%p)\n", This, p);
249     return E_NOTIMPL;
250 }
251
252 static HRESULT WINAPI HTMLCurrentStyle_get_borderRightStyle(IHTMLCurrentStyle *iface, BSTR *p)
253 {
254     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
255     FIXME("(%p)->(%p)\n", This, p);
256     return E_NOTIMPL;
257 }
258
259 static HRESULT WINAPI HTMLCurrentStyle_get_borderBottomStyle(IHTMLCurrentStyle *iface, BSTR *p)
260 {
261     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
262     FIXME("(%p)->(%p)\n", This, p);
263     return E_NOTIMPL;
264 }
265
266 static HRESULT WINAPI HTMLCurrentStyle_get_borderLeftStyle(IHTMLCurrentStyle *iface, BSTR *p)
267 {
268     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
269     FIXME("(%p)->(%p)\n", This, p);
270     return E_NOTIMPL;
271 }
272
273 static HRESULT WINAPI HTMLCurrentStyle_get_borderTopWidth(IHTMLCurrentStyle *iface, VARIANT *p)
274 {
275     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
276     FIXME("(%p)->(%p)\n", This, p);
277     return E_NOTIMPL;
278 }
279
280 static HRESULT WINAPI HTMLCurrentStyle_get_borderRightWidth(IHTMLCurrentStyle *iface, VARIANT *p)
281 {
282     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
283     FIXME("(%p)->(%p)\n", This, p);
284     return E_NOTIMPL;
285 }
286
287 static HRESULT WINAPI HTMLCurrentStyle_get_borderBottomWidth(IHTMLCurrentStyle *iface, VARIANT *p)
288 {
289     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
290     FIXME("(%p)->(%p)\n", This, p);
291     return E_NOTIMPL;
292 }
293
294 static HRESULT WINAPI HTMLCurrentStyle_get_borderLeftWidth(IHTMLCurrentStyle *iface, VARIANT *p)
295 {
296     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
297     FIXME("(%p)->(%p)\n", This, p);
298     return E_NOTIMPL;
299 }
300
301 static HRESULT WINAPI HTMLCurrentStyle_get_left(IHTMLCurrentStyle *iface, VARIANT *p)
302 {
303     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
304     FIXME("(%p)->(%p)\n", This, p);
305     return E_NOTIMPL;
306 }
307
308 static HRESULT WINAPI HTMLCurrentStyle_get_top(IHTMLCurrentStyle *iface, VARIANT *p)
309 {
310     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
311     FIXME("(%p)->(%p)\n", This, p);
312     return E_NOTIMPL;
313 }
314
315 static HRESULT WINAPI HTMLCurrentStyle_get_width(IHTMLCurrentStyle *iface, VARIANT *p)
316 {
317     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
318     FIXME("(%p)->(%p)\n", This, p);
319     return E_NOTIMPL;
320 }
321
322 static HRESULT WINAPI HTMLCurrentStyle_get_height(IHTMLCurrentStyle *iface, VARIANT *p)
323 {
324     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
325     FIXME("(%p)->(%p)\n", This, p);
326     return E_NOTIMPL;
327 }
328
329 static HRESULT WINAPI HTMLCurrentStyle_get_paddingLeft(IHTMLCurrentStyle *iface, VARIANT *p)
330 {
331     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
332     FIXME("(%p)->(%p)\n", This, p);
333     return E_NOTIMPL;
334 }
335
336 static HRESULT WINAPI HTMLCurrentStyle_get_paddingTop(IHTMLCurrentStyle *iface, VARIANT *p)
337 {
338     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
339     FIXME("(%p)->(%p)\n", This, p);
340     return E_NOTIMPL;
341 }
342
343 static HRESULT WINAPI HTMLCurrentStyle_get_paddingRight(IHTMLCurrentStyle *iface, VARIANT *p)
344 {
345     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
346     FIXME("(%p)->(%p)\n", This, p);
347     return E_NOTIMPL;
348 }
349
350 static HRESULT WINAPI HTMLCurrentStyle_get_paddingBottom(IHTMLCurrentStyle *iface, VARIANT *p)
351 {
352     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
353     FIXME("(%p)->(%p)\n", This, p);
354     return E_NOTIMPL;
355 }
356
357 static HRESULT WINAPI HTMLCurrentStyle_get_textAlign(IHTMLCurrentStyle *iface, BSTR *p)
358 {
359     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
360     FIXME("(%p)->(%p)\n", This, p);
361     return E_NOTIMPL;
362 }
363
364 static HRESULT WINAPI HTMLCurrentStyle_get_textDecoration(IHTMLCurrentStyle *iface, BSTR *p)
365 {
366     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
367     FIXME("(%p)->(%p)\n", This, p);
368     return E_NOTIMPL;
369 }
370
371 static HRESULT WINAPI HTMLCurrentStyle_get_display(IHTMLCurrentStyle *iface, BSTR *p)
372 {
373     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
374     FIXME("(%p)->(%p)\n", This, p);
375     return E_NOTIMPL;
376 }
377
378 static HRESULT WINAPI HTMLCurrentStyle_get_visibility(IHTMLCurrentStyle *iface, BSTR *p)
379 {
380     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
381     FIXME("(%p)->(%p)\n", This, p);
382     return E_NOTIMPL;
383 }
384
385 static HRESULT WINAPI HTMLCurrentStyle_get_zIndex(IHTMLCurrentStyle *iface, VARIANT *p)
386 {
387     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
388     FIXME("(%p)->(%p)\n", This, p);
389     return E_NOTIMPL;
390 }
391
392 static HRESULT WINAPI HTMLCurrentStyle_get_letterSpacing(IHTMLCurrentStyle *iface, VARIANT *p)
393 {
394     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
395     FIXME("(%p)->(%p)\n", This, p);
396     return E_NOTIMPL;
397 }
398
399 static HRESULT WINAPI HTMLCurrentStyle_get_lineHeight(IHTMLCurrentStyle *iface, VARIANT *p)
400 {
401     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
402     FIXME("(%p)->(%p)\n", This, p);
403     return E_NOTIMPL;
404 }
405
406 static HRESULT WINAPI HTMLCurrentStyle_get_textIndent(IHTMLCurrentStyle *iface, VARIANT *p)
407 {
408     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
409     FIXME("(%p)->(%p)\n", This, p);
410     return E_NOTIMPL;
411 }
412
413 static HRESULT WINAPI HTMLCurrentStyle_get_verticalAlign(IHTMLCurrentStyle *iface, VARIANT *p)
414 {
415     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
416     FIXME("(%p)->(%p)\n", This, p);
417     return E_NOTIMPL;
418 }
419
420 static HRESULT WINAPI HTMLCurrentStyle_get_backgroundAttachment(IHTMLCurrentStyle *iface, BSTR *p)
421 {
422     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
423     FIXME("(%p)->(%p)\n", This, p);
424     return E_NOTIMPL;
425 }
426
427 static HRESULT WINAPI HTMLCurrentStyle_get_marginTop(IHTMLCurrentStyle *iface, VARIANT *p)
428 {
429     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
430     FIXME("(%p)->(%p)\n", This, p);
431     return E_NOTIMPL;
432 }
433
434 static HRESULT WINAPI HTMLCurrentStyle_get_marginRight(IHTMLCurrentStyle *iface, VARIANT *p)
435 {
436     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
437     FIXME("(%p)->(%p)\n", This, p);
438     return E_NOTIMPL;
439 }
440
441 static HRESULT WINAPI HTMLCurrentStyle_get_marginBottom(IHTMLCurrentStyle *iface, VARIANT *p)
442 {
443     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
444     FIXME("(%p)->(%p)\n", This, p);
445     return E_NOTIMPL;
446 }
447
448 static HRESULT WINAPI HTMLCurrentStyle_get_marginLeft(IHTMLCurrentStyle *iface, VARIANT *p)
449 {
450     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
451     FIXME("(%p)->(%p)\n", This, p);
452     return E_NOTIMPL;
453 }
454
455 static HRESULT WINAPI HTMLCurrentStyle_get_clear(IHTMLCurrentStyle *iface, BSTR *p)
456 {
457     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
458     FIXME("(%p)->(%p)\n", This, p);
459     return E_NOTIMPL;
460 }
461
462 static HRESULT WINAPI HTMLCurrentStyle_get_listStyleType(IHTMLCurrentStyle *iface, BSTR *p)
463 {
464     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
465     FIXME("(%p)->(%p)\n", This, p);
466     return E_NOTIMPL;
467 }
468
469 static HRESULT WINAPI HTMLCurrentStyle_get_listStylePosition(IHTMLCurrentStyle *iface, BSTR *p)
470 {
471     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
472     FIXME("(%p)->(%p)\n", This, p);
473     return E_NOTIMPL;
474 }
475
476 static HRESULT WINAPI HTMLCurrentStyle_get_listStyleImage(IHTMLCurrentStyle *iface, BSTR *p)
477 {
478     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
479     FIXME("(%p)->(%p)\n", This, p);
480     return E_NOTIMPL;
481 }
482
483 static HRESULT WINAPI HTMLCurrentStyle_get_clipTop(IHTMLCurrentStyle *iface, VARIANT *p)
484 {
485     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
486     FIXME("(%p)->(%p)\n", This, p);
487     return E_NOTIMPL;
488 }
489
490 static HRESULT WINAPI HTMLCurrentStyle_get_clipRight(IHTMLCurrentStyle *iface, VARIANT *p)
491 {
492     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
493     FIXME("(%p)->(%p)\n", This, p);
494     return E_NOTIMPL;
495 }
496
497 static HRESULT WINAPI HTMLCurrentStyle_get_clipBottom(IHTMLCurrentStyle *iface, VARIANT *p)
498 {
499     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
500     FIXME("(%p)->(%p)\n", This, p);
501     return E_NOTIMPL;
502 }
503
504 static HRESULT WINAPI HTMLCurrentStyle_get_clipLeft(IHTMLCurrentStyle *iface, VARIANT *p)
505 {
506     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
507     FIXME("(%p)->(%p)\n", This, p);
508     return E_NOTIMPL;
509 }
510
511 static HRESULT WINAPI HTMLCurrentStyle_get_overflow(IHTMLCurrentStyle *iface, BSTR *p)
512 {
513     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
514     FIXME("(%p)->(%p)\n", This, p);
515     return E_NOTIMPL;
516 }
517
518 static HRESULT WINAPI HTMLCurrentStyle_get_pageBreakBefore(IHTMLCurrentStyle *iface, BSTR *p)
519 {
520     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
521     FIXME("(%p)->(%p)\n", This, p);
522     return E_NOTIMPL;
523 }
524
525 static HRESULT WINAPI HTMLCurrentStyle_get_pageBreakAfter(IHTMLCurrentStyle *iface, BSTR *p)
526 {
527     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
528     FIXME("(%p)->(%p)\n", This, p);
529     return E_NOTIMPL;
530 }
531
532 static HRESULT WINAPI HTMLCurrentStyle_get_cursor(IHTMLCurrentStyle *iface, BSTR *p)
533 {
534     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
535     FIXME("(%p)->(%p)\n", This, p);
536     return E_NOTIMPL;
537 }
538
539 static HRESULT WINAPI HTMLCurrentStyle_get_tableLayout(IHTMLCurrentStyle *iface, BSTR *p)
540 {
541     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
542     FIXME("(%p)->(%p)\n", This, p);
543     return E_NOTIMPL;
544 }
545
546 static HRESULT WINAPI HTMLCurrentStyle_get_borderCollapse(IHTMLCurrentStyle *iface, BSTR *p)
547 {
548     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
549     FIXME("(%p)->(%p)\n", This, p);
550     return E_NOTIMPL;
551 }
552
553 static HRESULT WINAPI HTMLCurrentStyle_get_direction(IHTMLCurrentStyle *iface, BSTR *p)
554 {
555     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
556     FIXME("(%p)->(%p)\n", This, p);
557     return E_NOTIMPL;
558 }
559
560 static HRESULT WINAPI HTMLCurrentStyle_get_behavior(IHTMLCurrentStyle *iface, BSTR *p)
561 {
562     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
563     FIXME("(%p)->(%p)\n", This, p);
564     return E_NOTIMPL;
565 }
566
567 static HRESULT WINAPI HTMLCurrentStyle_getAttribute(IHTMLCurrentStyle *iface, BSTR strAttributeName,
568         LONG lFlags, VARIANT *AttributeValue)
569 {
570     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
571     FIXME("(%p)->(%s %x %p)\n", This, debugstr_w(strAttributeName), lFlags, AttributeValue);
572     return E_NOTIMPL;
573 }
574
575 static HRESULT WINAPI HTMLCurrentStyle_get_unicodeBidi(IHTMLCurrentStyle *iface, BSTR *p)
576 {
577     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
578     FIXME("(%p)->(%p)\n", This, p);
579     return E_NOTIMPL;
580 }
581
582 static HRESULT WINAPI HTMLCurrentStyle_get_right(IHTMLCurrentStyle *iface, VARIANT *p)
583 {
584     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
585     FIXME("(%p)->(%p)\n", This, p);
586     return E_NOTIMPL;
587 }
588
589 static HRESULT WINAPI HTMLCurrentStyle_get_bottom(IHTMLCurrentStyle *iface, VARIANT *p)
590 {
591     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
592     FIXME("(%p)->(%p)\n", This, p);
593     return E_NOTIMPL;
594 }
595
596 static HRESULT WINAPI HTMLCurrentStyle_get_imeMode(IHTMLCurrentStyle *iface, BSTR *p)
597 {
598     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
599     FIXME("(%p)->(%p)\n", This, p);
600     return E_NOTIMPL;
601 }
602
603 static HRESULT WINAPI HTMLCurrentStyle_get_rubyAlign(IHTMLCurrentStyle *iface, BSTR *p)
604 {
605     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
606     FIXME("(%p)->(%p)\n", This, p);
607     return E_NOTIMPL;
608 }
609
610 static HRESULT WINAPI HTMLCurrentStyle_get_rubyPosition(IHTMLCurrentStyle *iface, BSTR *p)
611 {
612     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
613     FIXME("(%p)->(%p)\n", This, p);
614     return E_NOTIMPL;
615 }
616
617 static HRESULT WINAPI HTMLCurrentStyle_get_rubyOverhang(IHTMLCurrentStyle *iface, BSTR *p)
618 {
619     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
620     FIXME("(%p)->(%p)\n", This, p);
621     return E_NOTIMPL;
622 }
623
624 static HRESULT WINAPI HTMLCurrentStyle_get_textAutospace(IHTMLCurrentStyle *iface, BSTR *p)
625 {
626     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
627     FIXME("(%p)->(%p)\n", This, p);
628     return E_NOTIMPL;
629 }
630
631 static HRESULT WINAPI HTMLCurrentStyle_get_lineBreak(IHTMLCurrentStyle *iface, BSTR *p)
632 {
633     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
634     FIXME("(%p)->(%p)\n", This, p);
635     return E_NOTIMPL;
636 }
637
638 static HRESULT WINAPI HTMLCurrentStyle_get_wordBreak(IHTMLCurrentStyle *iface, BSTR *p)
639 {
640     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
641     FIXME("(%p)->(%p)\n", This, p);
642     return E_NOTIMPL;
643 }
644
645 static HRESULT WINAPI HTMLCurrentStyle_get_textJustify(IHTMLCurrentStyle *iface, BSTR *p)
646 {
647     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
648     FIXME("(%p)->(%p)\n", This, p);
649     return E_NOTIMPL;
650 }
651
652 static HRESULT WINAPI HTMLCurrentStyle_get_textJustifyTrim(IHTMLCurrentStyle *iface, BSTR *p)
653 {
654     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
655     FIXME("(%p)->(%p)\n", This, p);
656     return E_NOTIMPL;
657 }
658
659 static HRESULT WINAPI HTMLCurrentStyle_get_textKashida(IHTMLCurrentStyle *iface, VARIANT *p)
660 {
661     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
662     FIXME("(%p)->(%p)\n", This, p);
663     return E_NOTIMPL;
664 }
665
666 static HRESULT WINAPI HTMLCurrentStyle_get_blockDirection(IHTMLCurrentStyle *iface, BSTR *p)
667 {
668     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
669     FIXME("(%p)->(%p)\n", This, p);
670     return E_NOTIMPL;
671 }
672
673 static HRESULT WINAPI HTMLCurrentStyle_get_layoutGridChar(IHTMLCurrentStyle *iface, VARIANT *p)
674 {
675     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
676     FIXME("(%p)->(%p)\n", This, p);
677     return E_NOTIMPL;
678 }
679
680 static HRESULT WINAPI HTMLCurrentStyle_get_layoutGridLine(IHTMLCurrentStyle *iface, VARIANT *p)
681 {
682     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
683     FIXME("(%p)->(%p)\n", This, p);
684     return E_NOTIMPL;
685 }
686
687 static HRESULT WINAPI HTMLCurrentStyle_get_layoutGridMode(IHTMLCurrentStyle *iface, BSTR *p)
688 {
689     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
690     FIXME("(%p)->(%p)\n", This, p);
691     return E_NOTIMPL;
692 }
693
694 static HRESULT WINAPI HTMLCurrentStyle_get_layoutGridType(IHTMLCurrentStyle *iface, BSTR *p)
695 {
696     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
697     FIXME("(%p)->(%p)\n", This, p);
698     return E_NOTIMPL;
699 }
700
701 static HRESULT WINAPI HTMLCurrentStyle_get_borderStyle(IHTMLCurrentStyle *iface, BSTR *p)
702 {
703     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
704     FIXME("(%p)->(%p)\n", This, p);
705     return E_NOTIMPL;
706 }
707
708 static HRESULT WINAPI HTMLCurrentStyle_get_borderColor(IHTMLCurrentStyle *iface, BSTR *p)
709 {
710     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
711     FIXME("(%p)->(%p)\n", This, p);
712     return E_NOTIMPL;
713 }
714
715 static HRESULT WINAPI HTMLCurrentStyle_get_borderWidth(IHTMLCurrentStyle *iface, BSTR *p)
716 {
717     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
718     FIXME("(%p)->(%p)\n", This, p);
719     return E_NOTIMPL;
720 }
721
722 static HRESULT WINAPI HTMLCurrentStyle_get_padding(IHTMLCurrentStyle *iface, BSTR *p)
723 {
724     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
725     FIXME("(%p)->(%p)\n", This, p);
726     return E_NOTIMPL;
727 }
728
729 static HRESULT WINAPI HTMLCurrentStyle_get_margin(IHTMLCurrentStyle *iface, BSTR *p)
730 {
731     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
732     FIXME("(%p)->(%p)\n", This, p);
733     return E_NOTIMPL;
734 }
735
736 static HRESULT WINAPI HTMLCurrentStyle_get_accelerator(IHTMLCurrentStyle *iface, BSTR *p)
737 {
738     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
739     FIXME("(%p)->(%p)\n", This, p);
740     return E_NOTIMPL;
741 }
742
743 static HRESULT WINAPI HTMLCurrentStyle_get_overflowX(IHTMLCurrentStyle *iface, BSTR *p)
744 {
745     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
746     FIXME("(%p)->(%p)\n", This, p);
747     return E_NOTIMPL;
748 }
749
750 static HRESULT WINAPI HTMLCurrentStyle_get_overflowY(IHTMLCurrentStyle *iface, BSTR *p)
751 {
752     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
753     FIXME("(%p)->(%p)\n", This, p);
754     return E_NOTIMPL;
755 }
756
757 static HRESULT WINAPI HTMLCurrentStyle_get_textTransform(IHTMLCurrentStyle *iface, BSTR *p)
758 {
759     HTMLCurrentStyle *This = HTMLCURSTYLE_THIS(iface);
760     FIXME("(%p)->(%p)\n", This, p);
761     return E_NOTIMPL;
762 }
763
764 #undef HTMLCURSTYLE_THIS
765
766 static const IHTMLCurrentStyleVtbl HTMLCurrentStyleVtbl = {
767     HTMLCurrentStyle_QueryInterface,
768     HTMLCurrentStyle_AddRef,
769     HTMLCurrentStyle_Release,
770     HTMLCurrentStyle_GetTypeInfoCount,
771     HTMLCurrentStyle_GetTypeInfo,
772     HTMLCurrentStyle_GetIDsOfNames,
773     HTMLCurrentStyle_Invoke,
774     HTMLCurrentStyle_get_position,
775     HTMLCurrentStyle_get_styleFloat,
776     HTMLCurrentStyle_get_color,
777     HTMLCurrentStyle_get_backgroundColor,
778     HTMLCurrentStyle_get_fontFamily,
779     HTMLCurrentStyle_get_fontStyle,
780     HTMLCurrentStyle_get_fontVariant,
781     HTMLCurrentStyle_get_fontWeight,
782     HTMLCurrentStyle_get_fontSize,
783     HTMLCurrentStyle_get_backgroundImage,
784     HTMLCurrentStyle_get_backgroundPositionX,
785     HTMLCurrentStyle_get_backgroundPositionY,
786     HTMLCurrentStyle_get_backgroundRepeat,
787     HTMLCurrentStyle_get_borderLeftColor,
788     HTMLCurrentStyle_get_borderTopColor,
789     HTMLCurrentStyle_get_borderRightColor,
790     HTMLCurrentStyle_get_borderBottomColor,
791     HTMLCurrentStyle_get_borderTopStyle,
792     HTMLCurrentStyle_get_borderRightStyle,
793     HTMLCurrentStyle_get_borderBottomStyle,
794     HTMLCurrentStyle_get_borderLeftStyle,
795     HTMLCurrentStyle_get_borderTopWidth,
796     HTMLCurrentStyle_get_borderRightWidth,
797     HTMLCurrentStyle_get_borderBottomWidth,
798     HTMLCurrentStyle_get_borderLeftWidth,
799     HTMLCurrentStyle_get_left,
800     HTMLCurrentStyle_get_top,
801     HTMLCurrentStyle_get_width,
802     HTMLCurrentStyle_get_height,
803     HTMLCurrentStyle_get_paddingLeft,
804     HTMLCurrentStyle_get_paddingTop,
805     HTMLCurrentStyle_get_paddingRight,
806     HTMLCurrentStyle_get_paddingBottom,
807     HTMLCurrentStyle_get_textAlign,
808     HTMLCurrentStyle_get_textDecoration,
809     HTMLCurrentStyle_get_display,
810     HTMLCurrentStyle_get_visibility,
811     HTMLCurrentStyle_get_zIndex,
812     HTMLCurrentStyle_get_letterSpacing,
813     HTMLCurrentStyle_get_lineHeight,
814     HTMLCurrentStyle_get_textIndent,
815     HTMLCurrentStyle_get_verticalAlign,
816     HTMLCurrentStyle_get_backgroundAttachment,
817     HTMLCurrentStyle_get_marginTop,
818     HTMLCurrentStyle_get_marginRight,
819     HTMLCurrentStyle_get_marginBottom,
820     HTMLCurrentStyle_get_marginLeft,
821     HTMLCurrentStyle_get_clear,
822     HTMLCurrentStyle_get_listStyleType,
823     HTMLCurrentStyle_get_listStylePosition,
824     HTMLCurrentStyle_get_listStyleImage,
825     HTMLCurrentStyle_get_clipTop,
826     HTMLCurrentStyle_get_clipRight,
827     HTMLCurrentStyle_get_clipBottom,
828     HTMLCurrentStyle_get_clipLeft,
829     HTMLCurrentStyle_get_overflow,
830     HTMLCurrentStyle_get_pageBreakBefore,
831     HTMLCurrentStyle_get_pageBreakAfter,
832     HTMLCurrentStyle_get_cursor,
833     HTMLCurrentStyle_get_tableLayout,
834     HTMLCurrentStyle_get_borderCollapse,
835     HTMLCurrentStyle_get_direction,
836     HTMLCurrentStyle_get_behavior,
837     HTMLCurrentStyle_getAttribute,
838     HTMLCurrentStyle_get_unicodeBidi,
839     HTMLCurrentStyle_get_right,
840     HTMLCurrentStyle_get_bottom,
841     HTMLCurrentStyle_get_imeMode,
842     HTMLCurrentStyle_get_rubyAlign,
843     HTMLCurrentStyle_get_rubyPosition,
844     HTMLCurrentStyle_get_rubyOverhang,
845     HTMLCurrentStyle_get_textAutospace,
846     HTMLCurrentStyle_get_lineBreak,
847     HTMLCurrentStyle_get_wordBreak,
848     HTMLCurrentStyle_get_textJustify,
849     HTMLCurrentStyle_get_textJustifyTrim,
850     HTMLCurrentStyle_get_textKashida,
851     HTMLCurrentStyle_get_blockDirection,
852     HTMLCurrentStyle_get_layoutGridChar,
853     HTMLCurrentStyle_get_layoutGridLine,
854     HTMLCurrentStyle_get_layoutGridMode,
855     HTMLCurrentStyle_get_layoutGridType,
856     HTMLCurrentStyle_get_borderStyle,
857     HTMLCurrentStyle_get_borderColor,
858     HTMLCurrentStyle_get_borderWidth,
859     HTMLCurrentStyle_get_padding,
860     HTMLCurrentStyle_get_margin,
861     HTMLCurrentStyle_get_accelerator,
862     HTMLCurrentStyle_get_overflowX,
863     HTMLCurrentStyle_get_overflowY,
864     HTMLCurrentStyle_get_textTransform
865 };
866
867 HRESULT HTMLCurrentStyle_Create(IHTMLCurrentStyle **p)
868 {
869     HTMLCurrentStyle *ret;
870
871     ret = heap_alloc_zero(sizeof(HTMLCurrentStyle));
872     if(!ret)
873         return E_OUTOFMEMORY;
874
875     ret->lpIHTMLCurrentStyleVtbl = &HTMLCurrentStyleVtbl;
876     ret->ref = 1;
877
878     *p = HTMLCURSTYLE(ret);
879     return S_OK;
880 }