mshtml.idl: Added more interfaces.
[wine] / include / mshtml.idl
1 /*
2  * Copyright 2004-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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17  */
18
19 #include <mshtmdid.h>
20 #include <mshtmcid.h>
21 #include <olectl.h>
22
23 import "ocidl.idl";
24 /* import "dimm.idl"; */
25
26 cpp_quote("#include <olectl.h>")
27
28 interface IHTMLDocument2;
29 interface IHTMLStyleSheetsCollection;
30
31 /*****************************************************************************
32  *    IHTMLFiltersCollection interface
33  */
34 [
35     odl,
36     oleautomation,
37     dual,
38     uuid(3050F3EE-98B5-11Cf-BB82-00AA00BDCE0B)
39 ]
40 interface IHTMLFiltersCollection : IDispatch
41 {
42     [propget, id(DISPID_IHTMLFILTERSCOLLECTION_LENGTH)]
43     HRESULT length([retval, out] long *p);
44
45     [propget, id(DISPID_IHTMLFILTERSCOLLECTION__NEWENUM)]
46     HRESULT _newEnum([retval, out] IUnknown **p);
47
48     [id(DISPID_IHTMLFILTERSCOLLECTION_ITEM)]
49     HRESULT item(
50         [in] VARIANT *pvarIndex,
51         [retval, out] VARIANT *pvarResult);
52 }
53
54 [
55     uuid(3050F1C5-98B5-11CF-BB82-00AA00BDCE0B)
56 ]
57 library MSHTML
58 {
59
60 /*****************************************************************************
61  *    IHTMLStyle interface
62  */
63 [
64     odl,
65     oleautomation,
66     dual,
67     uuid(3050F25E-98B5-11CF-BB82-00AA00BDCE0B)
68 ]
69 interface IHTMLStyle : IDispatch
70 {
71     [propput, id(DISPID_IHTMLSTYLE_FONTFAMILY)]
72     HRESULT fontFamily([in] BSTR v);
73
74     [propget, id(DISPID_IHTMLSTYLE_FONTFAMILY)]
75     HRESULT fontFamily([retval, out] BSTR *p);
76
77     [propput, id(DISPID_IHTMLSTYLE_FONTSTYLE)]
78     HRESULT fontStyle([in] BSTR v);
79
80     [propget, id(DISPID_IHTMLSTYLE_FONTSTYLE)]
81     HRESULT fontStyle([retval, out] BSTR *p);
82
83     [propput, id(DISPID_IHTMLSTYLE_FONTVARIANT)]
84     HRESULT fontVariant([in] BSTR v);
85
86     [propget, id(DISPID_IHTMLSTYLE_FONTVARIANT)]
87     HRESULT fontVariant([retval, out] BSTR *p);
88
89     [propput, id(DISPID_IHTMLSTYLE_FONTWEIGHT)]
90     HRESULT fontWeight([in] BSTR v);
91
92     [propget, id(DISPID_IHTMLSTYLE_FONTWEIGHT)]
93     HRESULT fontWeight([retval, out] BSTR *p);
94
95     [propput, id(DISPID_IHTMLSTYLE_FONTSIZE)]
96     HRESULT fontSize([in] VARIANT v);
97
98     [propget, id(DISPID_IHTMLSTYLE_FONTSIZE)]
99     HRESULT fontSize([retval, out] VARIANT *p);
100
101     [propput, id(DISPID_IHTMLSTYLE_FONT)]
102     HRESULT font([in] BSTR v);
103
104     [propget, id(DISPID_IHTMLSTYLE_FONT)]
105     HRESULT font([retval, out] BSTR *p);
106
107     [propput, id(DISPID_IHTMLSTYLE_COLOR)]
108     HRESULT color([in] VARIANT v);
109
110     [propget, id(DISPID_IHTMLSTYLE_COLOR)]
111     HRESULT color([retval, out] VARIANT *p);
112
113     [propput, id(DISPID_IHTMLSTYLE_BACKGROUND)]
114     HRESULT background([in] BSTR v);
115
116     [propget, id(DISPID_IHTMLSTYLE_BACKGROUND)]
117     HRESULT background([retval, out] BSTR *p);
118
119     [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDCOLOR)]
120     HRESULT backgroundColor([in] VARIANT v);
121
122     [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDCOLOR)]
123     HRESULT backgroundColor([retval, out] VARIANT *p);
124
125     [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDIMAGE)]
126     HRESULT backgroundImage([in] BSTR v);
127
128     [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDIMAGE)]
129     HRESULT backgroundImage([retval, out] BSTR *p);
130
131     [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDREPEAT)]
132     HRESULT backgroundRepeat([in] BSTR v);
133
134     [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDREPEAT)]
135     HRESULT backgroundRepeat([retval, out] BSTR *p);
136
137     [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDATTACHMENT)]
138     HRESULT backgroundAttachment([in] BSTR v);
139
140     [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDATTACHMENT)]
141     HRESULT backgroundAttachment([retval, out] BSTR *p);
142
143     [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDPOSITION)]
144     HRESULT backgroundPosition([in] BSTR v);
145
146     [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDPOSITION)]
147     HRESULT backgroundPosition([retval, out] BSTR *p);
148
149     [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDPOSITIONX)]
150     HRESULT backgroundPositionX([in] VARIANT v);
151
152     [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDPOSITIONX)]
153     HRESULT backgroundPositionX([retval, out] VARIANT *p);
154
155     [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDPOSITIONY)]
156     HRESULT backgroundPositionY([in] VARIANT v);
157
158     [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDPOSITIONY)]
159     HRESULT backgroundPositionY([retval, out] VARIANT *p);
160
161     [propput, id(DISPID_IHTMLSTYLE_WORDSPACING)]
162     HRESULT wordSpacing([in] VARIANT v);
163
164     [propget, id(DISPID_IHTMLSTYLE_WORDSPACING)]
165     HRESULT wordSpacing([retval, out] VARIANT *p);
166
167     [propput, id(DISPID_IHTMLSTYLE_LETTERSPACING)]
168     HRESULT letterSpacing([in] VARIANT v);
169
170     [propget, id(DISPID_IHTMLSTYLE_LETTERSPACING)]
171     HRESULT letterSpacing([retval, out] VARIANT *p);
172
173     [propput, id(DISPID_IHTMLSTYLE_TEXTDECORATION)]
174     HRESULT textDecoration([in] BSTR v);
175
176     [propget, id(DISPID_IHTMLSTYLE_TEXTDECORATION)]
177     HRESULT textDecoration([retval, out] BSTR *p);
178
179     [propput, id(DISPID_IHTMLSTYLE_TEXTDECORATIONNONE)]
180     HRESULT textDecorationNone([in] VARIANT_BOOL v);
181
182     [propget, id(DISPID_IHTMLSTYLE_TEXTDECORATIONNONE)]
183     HRESULT textDecorationNone([retval, out] VARIANT_BOOL *p);
184
185     [propput, id(DISPID_IHTMLSTYLE_TEXTDECORATIONUNDERLINE)]
186     HRESULT textDecorationUnderline([in] VARIANT_BOOL v);
187
188     [propget, id(DISPID_IHTMLSTYLE_TEXTDECORATIONUNDERLINE)]
189     HRESULT textDecorationUnderline([retval, out] VARIANT_BOOL *p);
190
191     [propput, id(DISPID_IHTMLSTYLE_TEXTDECORATIONOVERLINE)]
192     HRESULT textDecorationOverline([in] VARIANT_BOOL v);
193
194     [propget, id(DISPID_IHTMLSTYLE_TEXTDECORATIONOVERLINE)]
195     HRESULT textDecorationOverline([retval, out] VARIANT_BOOL *p);
196
197     [propput, id(DISPID_IHTMLSTYLE_TEXTDECORATIONLINETHROUGH)]
198     HRESULT textDecorationLineThrough([in] VARIANT_BOOL v);
199
200     [propget, id(DISPID_IHTMLSTYLE_TEXTDECORATIONLINETHROUGH)]
201     HRESULT textDecorationLineThrough([retval, out] VARIANT_BOOL *p);
202
203     [propput, id(DISPID_IHTMLSTYLE_TEXTDECORATIONBLINK)]
204     HRESULT textDecorationBlink([in] VARIANT_BOOL v);
205
206     [propget, id(DISPID_IHTMLSTYLE_TEXTDECORATIONBLINK)]
207     HRESULT textDecorationBlink([retval, out] VARIANT_BOOL *p);
208
209     [propput, id(DISPID_IHTMLSTYLE_VERTICALALIGN)]
210     HRESULT verticalAlign([in] VARIANT v);
211
212     [propget, id(DISPID_IHTMLSTYLE_VERTICALALIGN)]
213     HRESULT verticalAlign([retval, out] VARIANT *p);
214
215     [propput, id(DISPID_IHTMLSTYLE_TEXTTRANSFORM)]
216     HRESULT textTransform([in] BSTR v);
217
218     [propget, id(DISPID_IHTMLSTYLE_TEXTTRANSFORM)]
219     HRESULT textTransform([retval, out] BSTR *p);
220
221     [propput, id(DISPID_IHTMLSTYLE_TEXTALIGN)]
222     HRESULT textAlign([in] BSTR v);
223
224     [propget, id(DISPID_IHTMLSTYLE_TEXTALIGN)]
225     HRESULT textAlign([retval, out] BSTR *p);
226
227     [propput, id(DISPID_IHTMLSTYLE_TEXTINDENT)]
228     HRESULT textIndent([in] VARIANT v);
229
230     [propget, id(DISPID_IHTMLSTYLE_TEXTINDENT)]
231     HRESULT textIndent([retval, out] VARIANT *p);
232
233     [propput, id(DISPID_IHTMLSTYLE_LINEHEIGHT)]
234     HRESULT lineHeight([in] VARIANT v);
235
236     [propget, id(DISPID_IHTMLSTYLE_LINEHEIGHT)]
237     HRESULT lineHeight([retval, out] VARIANT *p);
238
239     [propput, id(DISPID_IHTMLSTYLE_MARGINTOP)]
240     HRESULT marginTop([in] VARIANT v);
241
242     [propget, id(DISPID_IHTMLSTYLE_MARGINTOP)]
243     HRESULT marginTop([retval, out] VARIANT *p);
244
245     [propput, id(DISPID_IHTMLSTYLE_MARGINRIGHT)]
246     HRESULT marginRight([in] VARIANT v);
247
248     [propget, id(DISPID_IHTMLSTYLE_MARGINRIGHT)]
249     HRESULT marginRight([retval, out] VARIANT *p);
250
251     [propput, id(DISPID_IHTMLSTYLE_MARGINBOTTOM)]
252     HRESULT marginBottom([in] VARIANT v);
253
254     [propget, id(DISPID_IHTMLSTYLE_MARGINBOTTOM)]
255     HRESULT marginBottom([retval, out] VARIANT *p);
256
257     [propput, id(DISPID_IHTMLSTYLE_MARGINLEFT)]
258     HRESULT marginLeft([in] VARIANT v);
259
260     [propget, id(DISPID_IHTMLSTYLE_MARGINLEFT)]
261     HRESULT marginLeft([retval, out] VARIANT *p);
262
263     [propput, id(DISPID_IHTMLSTYLE_MARGIN)]
264     HRESULT margin([in] BSTR v);
265
266     [propget, id(DISPID_IHTMLSTYLE_MARGIN)]
267     HRESULT margin([retval, out] BSTR *p);
268
269     [propput, id(DISPID_IHTMLSTYLE_PADDINGTOP)]
270     HRESULT paddingTop([in] VARIANT v);
271
272     [propget, id(DISPID_IHTMLSTYLE_PADDINGTOP)]
273     HRESULT paddingTop([retval, out] VARIANT *p);
274
275     [propput, id(DISPID_IHTMLSTYLE_PADDINGRIGHT)]
276     HRESULT paddingRight([in] VARIANT v);
277
278     [propget, id(DISPID_IHTMLSTYLE_PADDINGRIGHT)]
279     HRESULT paddingRight([retval, out] VARIANT *p);
280
281     [propput, id(DISPID_IHTMLSTYLE_PADDINGBOTTOM)]
282     HRESULT paddingBottom([in] VARIANT v);
283
284     [propget, id(DISPID_IHTMLSTYLE_PADDINGBOTTOM)]
285     HRESULT paddingBottom([retval, out] VARIANT *p);
286
287     [propput, id(DISPID_IHTMLSTYLE_PADDINGLEFT)]
288     HRESULT paddingLeft([in] VARIANT v);
289
290     [propget, id(DISPID_IHTMLSTYLE_PADDINGLEFT)]
291     HRESULT paddingLeft([retval, out] VARIANT *p);
292
293     [propput, id(DISPID_IHTMLSTYLE_PADDING)]
294     HRESULT padding([in] BSTR v);
295
296     [propget, id(DISPID_IHTMLSTYLE_PADDING)]
297     HRESULT padding([retval, out] BSTR *p);
298
299     [propput, id(DISPID_IHTMLSTYLE_BORDER)]
300     HRESULT border([in] BSTR v);
301
302     [propget, id(DISPID_IHTMLSTYLE_BORDER)]
303     HRESULT border([retval, out] BSTR *p);
304
305     [propput, id(DISPID_IHTMLSTYLE_BORDERTOP)]
306     HRESULT borderTop([in] BSTR v);
307
308     [propget, id(DISPID_IHTMLSTYLE_BORDERTOP)]
309     HRESULT borderTop([retval, out] BSTR *p);
310
311     [propput, id(DISPID_IHTMLSTYLE_BORDERRIGHT)]
312     HRESULT borderRight([in] BSTR v);
313
314     [propget, id(DISPID_IHTMLSTYLE_BORDERRIGHT)]
315     HRESULT borderRight([retval, out] BSTR *p);
316
317     [propput, id(DISPID_IHTMLSTYLE_BORDERBOTTOM)]
318     HRESULT borderBottom([in] BSTR v);
319
320     [propget, id(DISPID_IHTMLSTYLE_BORDERBOTTOM)]
321     HRESULT borderBottom([retval, out] BSTR *p);
322
323     [propput, id(DISPID_IHTMLSTYLE_BORDERLEFT)]
324     HRESULT borderLeft([in] BSTR v);
325
326     [propget, id(DISPID_IHTMLSTYLE_BORDERLEFT)]
327     HRESULT borderLeft([retval, out] BSTR *p);
328
329     [propput, id(DISPID_IHTMLSTYLE_BORDERCOLOR)]
330     HRESULT borderColor([in] BSTR v);
331
332     [propget, id(DISPID_IHTMLSTYLE_BORDERCOLOR)]
333     HRESULT borderColor([retval, out] BSTR *p);
334
335     [propput, id(DISPID_IHTMLSTYLE_BORDERTOPCOLOR)]
336     HRESULT borderTopColor([in] VARIANT v);
337
338     [propget, id(DISPID_IHTMLSTYLE_BORDERTOPCOLOR)]
339     HRESULT borderTopColor([retval, out] VARIANT *p);
340
341     [propput, id(DISPID_IHTMLSTYLE_BORDERRIGHTCOLOR)]
342     HRESULT borderRightColor([in] VARIANT v);
343
344     [propget, id(DISPID_IHTMLSTYLE_BORDERRIGHTCOLOR)]
345     HRESULT borderRightColor([retval, out] VARIANT *p);
346
347     [propput, id(DISPID_IHTMLSTYLE_BORDERBOTTOMCOLOR)]
348     HRESULT borderBottomColor([in] VARIANT v);
349
350     [propget, id(DISPID_IHTMLSTYLE_BORDERBOTTOMCOLOR)]
351     HRESULT borderBottomColor([retval, out] VARIANT *p);
352
353     [propput, id(DISPID_IHTMLSTYLE_BORDERLEFTCOLOR)]
354     HRESULT borderLeftColor([in] VARIANT v);
355
356     [propget, id(DISPID_IHTMLSTYLE_BORDERLEFTCOLOR)]
357     HRESULT borderLeftColor([retval, out] VARIANT *p);
358
359     [propput, id(DISPID_IHTMLSTYLE_BORDERWIDTH)]
360     HRESULT borderWidth([in] BSTR v);
361
362     [propget, id(DISPID_IHTMLSTYLE_BORDERWIDTH)]
363     HRESULT borderWidth([retval, out] BSTR *p);
364
365     [propput, id(DISPID_IHTMLSTYLE_BORDERTOPWIDTH)]
366     HRESULT borderTopWidth([in] VARIANT v);
367
368     [propget, id(DISPID_IHTMLSTYLE_BORDERTOPWIDTH)]
369     HRESULT borderTopWidth([retval, out] VARIANT *p);
370
371     [propput, id(DISPID_IHTMLSTYLE_BORDERRIGHTWIDTH)]
372     HRESULT borderRightWidth([in] VARIANT v);
373
374     [propget, id(DISPID_IHTMLSTYLE_BORDERRIGHTWIDTH)]
375     HRESULT borderRightWidth([retval, out] VARIANT *p);
376
377     [propput, id(DISPID_IHTMLSTYLE_BORDERBOTTOMWIDTH)]
378     HRESULT borderBottomWidth([in] VARIANT v);
379
380     [propget, id(DISPID_IHTMLSTYLE_BORDERBOTTOMWIDTH)]
381     HRESULT borderBottomWidth([retval, out] VARIANT *p);
382
383     [propput, id(DISPID_IHTMLSTYLE_BORDERLEFTWIDTH)]
384     HRESULT borderLeftWidth([in] VARIANT v);
385
386     [propget, id(DISPID_IHTMLSTYLE_BORDERLEFTWIDTH)]
387     HRESULT borderLeftWidth([retval, out] VARIANT *p);
388
389     [propput, id(DISPID_IHTMLSTYLE_BORDERSTYLE)]
390     HRESULT borderStyle([in] BSTR v);
391
392     [propget, id(DISPID_IHTMLSTYLE_BORDERSTYLE)]
393     HRESULT borderStyle([retval, out] BSTR *p);
394
395     [propput, id(DISPID_IHTMLSTYLE_BORDERTOPSTYLE)]
396     HRESULT borderTopStyle([in] BSTR v);
397
398     [propget, id(DISPID_IHTMLSTYLE_BORDERTOPSTYLE)]
399     HRESULT borderTopStyle([retval, out] BSTR *p);
400
401     [propput, id(DISPID_IHTMLSTYLE_BORDERRIGHTSTYLE)]
402     HRESULT borderRightStyle([in] BSTR v);
403
404     [propget, id(DISPID_IHTMLSTYLE_BORDERRIGHTSTYLE)]
405     HRESULT borderRightStyle([retval, out] BSTR *p);
406
407     [propput, id(DISPID_IHTMLSTYLE_BORDERBOTTOMSTYLE)]
408     HRESULT borderBottomStyle([in] BSTR v);
409
410     [propget, id(DISPID_IHTMLSTYLE_BORDERBOTTOMSTYLE)]
411     HRESULT borderBottomStyle([retval, out] BSTR *p);
412
413     [propput, id(DISPID_IHTMLSTYLE_BORDERLEFTSTYLE)]
414     HRESULT borderLeftStyle([in] BSTR v);
415
416     [propget, id(DISPID_IHTMLSTYLE_BORDERLEFTSTYLE)]
417     HRESULT borderLeftStyle([retval, out] BSTR *p);
418
419     [propput, id(DISPID_IHTMLSTYLE_WIDTH)]
420     HRESULT width([in] VARIANT v);
421
422     [propget, id(DISPID_IHTMLSTYLE_WIDTH)]
423     HRESULT width([retval, out] VARIANT *p);
424
425     [propput, id(DISPID_IHTMLSTYLE_HEIGHT)]
426     HRESULT height([in] VARIANT v);
427
428     [propget, id(DISPID_IHTMLSTYLE_HEIGHT)]
429     HRESULT height([retval, out] VARIANT *p);
430
431     [propput, id(DISPID_IHTMLSTYLE_STYLEFLOAT)]
432     HRESULT styleFloat([in] BSTR v);
433
434     [propget, id(DISPID_IHTMLSTYLE_STYLEFLOAT)]
435     HRESULT styleFloat([retval, out] BSTR *p);
436
437     [propput, id(DISPID_IHTMLSTYLE_CLEAR)]
438     HRESULT clear([in] BSTR v);
439
440     [propget, id(DISPID_IHTMLSTYLE_CLEAR)]
441     HRESULT clear([retval, out] BSTR *p);
442
443     [propput, id(DISPID_IHTMLSTYLE_DISPLAY)]
444     HRESULT display([in] BSTR v);
445
446     [propget, id(DISPID_IHTMLSTYLE_DISPLAY)]
447     HRESULT display([retval, out] BSTR *p);
448
449     [propput, id(DISPID_IHTMLSTYLE_VISIBILITY)]
450     HRESULT visibility([in] BSTR v);
451
452     [propget, id(DISPID_IHTMLSTYLE_VISIBILITY)]
453     HRESULT visibility([retval, out] BSTR *p);
454
455     [propput, id(DISPID_IHTMLSTYLE_LISTSTYLETYPE)]
456     HRESULT listStyleType([in] BSTR v);
457
458     [propget, id(DISPID_IHTMLSTYLE_LISTSTYLETYPE)]
459     HRESULT listStyleType([retval, out] BSTR *p);
460
461     [propput, id(DISPID_IHTMLSTYLE_LISTSTYLEPOSITION)]
462     HRESULT listStylePosition([in] BSTR v);
463
464     [propget, id(DISPID_IHTMLSTYLE_LISTSTYLEPOSITION)]
465     HRESULT listStylePosition([retval, out] BSTR *p);
466
467     [propput, id(DISPID_IHTMLSTYLE_LISTSTYLEIMAGE)]
468     HRESULT listStyleImage([in] BSTR v);
469
470     [propget, id(DISPID_IHTMLSTYLE_LISTSTYLEIMAGE)]
471     HRESULT listStyleImage([retval, out] BSTR *p);
472
473     [propput, id(DISPID_IHTMLSTYLE_LISTSTYLE)]
474     HRESULT listStyle([in] BSTR v);
475
476     [propget, id(DISPID_IHTMLSTYLE_LISTSTYLE)]
477     HRESULT listStyle([retval, out] BSTR *p);
478
479     [propput, id(DISPID_IHTMLSTYLE_WHITESPACE)]
480     HRESULT whiteSpace([in] BSTR v);
481
482     [propget, id(DISPID_IHTMLSTYLE_WHITESPACE)]
483     HRESULT whiteSpace([retval, out] BSTR *p);
484
485     [propput, id(DISPID_IHTMLSTYLE_TOP)]
486     HRESULT top([in] VARIANT v);
487
488     [propget, id(DISPID_IHTMLSTYLE_TOP)]
489     HRESULT top([retval, out] VARIANT *p);
490
491     [propput, id(DISPID_IHTMLSTYLE_LEFT)]
492     HRESULT left([in] VARIANT v);
493
494     [propget, id(DISPID_IHTMLSTYLE_LEFT)]
495     HRESULT left([retval, out] VARIANT *p);
496
497     [propget, id(DISPID_IHTMLSTYLE_POSITION)]
498     HRESULT position([retval, out] BSTR *p);
499
500     [propput, id(DISPID_IHTMLSTYLE_ZINDEX)]
501     HRESULT zIndex([in] VARIANT v);
502
503     [propget, id(DISPID_IHTMLSTYLE_ZINDEX)]
504     HRESULT zIndex([retval, out] VARIANT *p);
505
506     [propput, id(DISPID_IHTMLSTYLE_OVERFLOW)]
507     HRESULT overflow([in] BSTR v);
508
509     [propget, id(DISPID_IHTMLSTYLE_OVERFLOW)]
510     HRESULT overflow([retval, out] BSTR *p);
511
512     [propput, id(DISPID_IHTMLSTYLE_PAGEBREAKBEFORE)]
513     HRESULT pageBreakBefore([in] BSTR v);
514
515     [propget, id(DISPID_IHTMLSTYLE_PAGEBREAKBEFORE)]
516     HRESULT pageBreakBefore([retval, out] BSTR *p);
517
518     [propput, id(DISPID_IHTMLSTYLE_PAGEBREAKAFTER)]
519     HRESULT pageBreakAfter([in] BSTR v);
520
521     [propget, id(DISPID_IHTMLSTYLE_PAGEBREAKAFTER)]
522     HRESULT pageBreakAfter([retval, out] BSTR *p);
523
524     [propput, id(DISPID_IHTMLSTYLE_CSSTEXT)]
525     HRESULT cssText([in] BSTR v);
526
527     [propget, id(DISPID_IHTMLSTYLE_CSSTEXT)]
528     HRESULT cssText([retval, out] BSTR *p);
529
530     [propput, id(DISPID_IHTMLSTYLE_PIXELTOP)]
531     HRESULT pixelTop([in] long v);
532
533     [propget, id(DISPID_IHTMLSTYLE_PIXELTOP)]
534     HRESULT pixelTop([retval, out] long *p);
535
536     [propput, id(DISPID_IHTMLSTYLE_PIXELLEFT)]
537     HRESULT pixelLeft([in] long v);
538
539     [propget, id(DISPID_IHTMLSTYLE_PIXELLEFT)]
540     HRESULT pixelLeft([retval, out] long *p);
541
542     [propput, id(DISPID_IHTMLSTYLE_PIXELWIDTH)]
543     HRESULT pixelWidth([in] long v);
544
545     [propget, id(DISPID_IHTMLSTYLE_PIXELWIDTH)]
546     HRESULT pixelWidth([retval, out] long *p);
547
548     [propput, id(DISPID_IHTMLSTYLE_PIXELHEIGHT)]
549     HRESULT pixelHeight([in] long v);
550
551     [propget, id(DISPID_IHTMLSTYLE_PIXELHEIGHT)]
552     HRESULT pixelHeight([retval, out] long *p);
553
554     [propput, id(DISPID_IHTMLSTYLE_POSTOP)]
555     HRESULT posTop([in] float v);
556
557     [propget, id(DISPID_IHTMLSTYLE_POSTOP)]
558     HRESULT posTop([retval, out] float *p);
559
560     [propput, id(DISPID_IHTMLSTYLE_POSLEFT)]
561     HRESULT posLeft([in] float v);
562
563     [propget, id(DISPID_IHTMLSTYLE_POSLEFT)]
564     HRESULT posLeft([retval, out] float *p);
565
566     [propput, id(DISPID_IHTMLSTYLE_POSWIDTH)]
567     HRESULT posWidth([in] float v);
568
569     [propget, id(DISPID_IHTMLSTYLE_POSWIDTH)]
570     HRESULT posWidth([retval, out] float *p);
571
572     [propput, id(DISPID_IHTMLSTYLE_POSHEIGHT)]
573     HRESULT posHeight([in] float v);
574
575     [propget, id(DISPID_IHTMLSTYLE_POSHEIGHT)]
576     HRESULT posHeight([retval, out] float *p);
577
578     [propput, id(DISPID_IHTMLSTYLE_CURSOR)]
579     HRESULT cursor([in] BSTR v);
580
581     [propget, id(DISPID_IHTMLSTYLE_CURSOR)]
582     HRESULT cursor([retval, out] BSTR *p);
583
584     [propput, id(DISPID_IHTMLSTYLE_CLIP)]
585     HRESULT clip([in] BSTR v);
586
587     [propget, id(DISPID_IHTMLSTYLE_CLIP)]
588     HRESULT clip([retval, out] BSTR *p);
589
590     [propput, id(DISPID_IHTMLSTYLE_FILTER)]
591     HRESULT filter([in] BSTR v);
592
593     [propget, id(DISPID_IHTMLSTYLE_FILTER)]
594     HRESULT filter([retval, out] BSTR *p);
595
596     [id(DISPID_IHTMLSTYLE_SETATTRIBUTE)]
597     HRESULT setAttribute(
598         [in] BSTR strAttributeName,
599         [in] VARIANT AttributeValue,
600         [defaultvalue(1), in] LONG lFlags);
601
602     [id(DISPID_IHTMLSTYLE_GETATTRIBUTE)]
603     HRESULT getAttribute(
604         [in] BSTR strAttributeName,
605         [defaultvalue(0), in] LONG lFlags,
606         [retval, out] VARIANT *AttributeValue);
607
608     [id(DISPID_IHTMLSTYLE_REMOVEATTRIBUTE)]
609     HRESULT removeAttribute(
610         [in] BSTR strAttributeName,
611         [defaultvalue(1), in]
612         LONG lFlags,
613         [retval, out] VARIANT_BOOL *pfSuccess);
614
615     [id(DISPID_IHTMLSTYLE_TOSTRING)]
616     HRESULT toString([retval, out] BSTR *String);
617 }
618
619 /*****************************************************************************
620  *    IHTMLRuleStyle interface
621  */
622 [
623         odl,
624         oleautomation,
625         dual,
626         uuid(3050F3CF-98B5-11CF-BB82-00AA00BDCE0B)
627 ]
628 interface IHTMLRuleStyle : IDispatch
629 {
630     [propput, id(DISPID_IHTMLRULESTYLE_FONTFAMILY)]
631     HRESULT fontFamily([in] BSTR v);
632
633     [propget, id(DISPID_IHTMLRULESTYLE_FONTFAMILY)]
634     HRESULT fontFamily([retval, out] BSTR *p);
635
636     [propput, id(DISPID_IHTMLRULESTYLE_FONTSTYLE)]
637     HRESULT fontStyle([in] BSTR v);
638
639     [propget, id(DISPID_IHTMLRULESTYLE_FONTSTYLE)]
640     HRESULT fontStyle([retval, out] BSTR *p);
641
642     [propput, id(DISPID_IHTMLRULESTYLE_FONTVARIANT)]
643     HRESULT fontVariant([in] BSTR v);
644
645     [propget, id(DISPID_IHTMLRULESTYLE_FONTVARIANT)]
646     HRESULT fontVariant([retval, out] BSTR *p);
647
648     [propput, id(DISPID_IHTMLRULESTYLE_FONTWEIGHT)]
649     HRESULT fontWeight([in] BSTR v);
650
651     [propget, id(DISPID_IHTMLRULESTYLE_FONTWEIGHT)]
652     HRESULT fontWeight([retval, out] BSTR *p);
653
654     [propput, id(DISPID_IHTMLRULESTYLE_FONTSIZE)]
655     HRESULT fontSize([in] VARIANT v);
656
657     [propget, id(DISPID_IHTMLRULESTYLE_FONTSIZE)]
658     HRESULT fontSize([retval, out] VARIANT *p);
659
660     [propput, id(DISPID_IHTMLRULESTYLE_FONT)]
661     HRESULT font([in] BSTR v);
662
663     [propget, id(DISPID_IHTMLRULESTYLE_FONT)]
664     HRESULT font([retval, out] BSTR *p);
665
666     [propput, id(DISPID_IHTMLRULESTYLE_COLOR)]
667     HRESULT color([in] VARIANT v);
668
669     [propget, id(DISPID_IHTMLRULESTYLE_COLOR)]
670     HRESULT color([retval, out] VARIANT *p);
671
672     [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUND)]
673     HRESULT background([in] BSTR v);
674
675     [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUND)]
676     HRESULT background([retval, out] BSTR *p);
677
678     [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDCOLOR)]
679     HRESULT backgroundColor([in] VARIANT v);
680
681     [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDCOLOR)]
682     HRESULT backgroundColor([retval, out] VARIANT *p);
683
684     [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDIMAGE)]
685     HRESULT backgroundImage([in] BSTR v);
686
687     [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDIMAGE)]
688     HRESULT backgroundImage([retval, out] BSTR *p);
689
690     [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDREPEAT)]
691     HRESULT backgroundRepeat([in] BSTR v);
692
693     [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDREPEAT)]
694     HRESULT backgroundRepeat([retval, out] BSTR *p);
695
696     [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDATTACHMENT)]
697     HRESULT backgroundAttachment([in] BSTR v);
698
699     [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDATTACHMENT)]
700     HRESULT backgroundAttachment([retval, out] BSTR *p);
701
702     [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITION)]
703     HRESULT backgroundPosition([in] BSTR v);
704
705     [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITION)]
706     HRESULT backgroundPosition([retval, out] BSTR *p);
707
708     [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITIONX)]
709     HRESULT backgroundPositionX([in] VARIANT v);
710
711     [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITIONX)]
712     HRESULT backgroundPositionX([retval, out] VARIANT *p);
713
714     [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITIONY)]
715     HRESULT backgroundPositionY([in] VARIANT v);
716
717     [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITIONY)]
718     HRESULT backgroundPositionY([retval, out] VARIANT *p);
719
720     [propput, id(DISPID_IHTMLRULESTYLE_WORDSPACING)]
721     HRESULT wordSpacing([in] VARIANT v);
722
723     [propget, id(DISPID_IHTMLRULESTYLE_WORDSPACING)]
724     HRESULT wordSpacing([retval, out] VARIANT *p);
725
726     [propput, id(DISPID_IHTMLRULESTYLE_LETTERSPACING)]
727     HRESULT letterSpacing([in] VARIANT v);
728
729     [propget, id(DISPID_IHTMLRULESTYLE_LETTERSPACING)]
730     HRESULT letterSpacing([retval, out] VARIANT *p);
731
732     [propput, id(DISPID_IHTMLRULESTYLE_TEXTDECORATION)]
733     HRESULT textDecoration([in] BSTR v);
734
735     [propget, id(DISPID_IHTMLRULESTYLE_TEXTDECORATION)]
736     HRESULT textDecoration([retval, out] BSTR *p);
737
738     [propput, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONNONE)]
739     HRESULT textDecorationNone([in] VARIANT_BOOL v);
740
741     [propget, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONNONE)]
742     HRESULT textDecorationNone([retval, out] VARIANT_BOOL *p);
743
744     [propput, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONUNDERLINE)]
745     HRESULT textDecorationUnderline([in] VARIANT_BOOL v);
746
747     [propget, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONUNDERLINE)]
748     HRESULT textDecorationUnderline([retval, out] VARIANT_BOOL *p);
749
750     [propput, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONOVERLINE)]
751     HRESULT textDecorationOverline([in] VARIANT_BOOL v);
752
753     [propget, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONOVERLINE)]
754     HRESULT textDecorationOverline([retval, out] VARIANT_BOOL *p);
755
756     [propput, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONLINETHROUGH)]
757     HRESULT textDecorationLineThrough([in] VARIANT_BOOL v);
758
759     [propget, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONLINETHROUGH)]
760     HRESULT textDecorationLineThrough([retval, out] VARIANT_BOOL *p);
761
762     [propput, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONBLINK)]
763     HRESULT textDecorationBlink([in] VARIANT_BOOL v);
764
765     [propget, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONBLINK)]
766     HRESULT textDecorationBlink([retval, out] VARIANT_BOOL *p);
767
768     [propput, id(DISPID_IHTMLRULESTYLE_VERTICALALIGN)]
769     HRESULT verticalAlign([in] VARIANT v);
770
771     [propget, id(DISPID_IHTMLRULESTYLE_VERTICALALIGN)]
772     HRESULT verticalAlign([retval, out] VARIANT *p);
773
774     [propput, id(DISPID_IHTMLRULESTYLE_TEXTTRANSFORM)]
775     HRESULT textTransform([in] BSTR v);
776
777     [propget, id(DISPID_IHTMLRULESTYLE_TEXTTRANSFORM)]
778     HRESULT textTransform([retval, out] BSTR *p);
779
780     [propput, id(DISPID_IHTMLRULESTYLE_TEXTALIGN)]
781     HRESULT textAlign([in] BSTR v);
782
783     [propget, id(DISPID_IHTMLRULESTYLE_TEXTALIGN)]
784     HRESULT textAlign([retval, out] BSTR *p);
785
786     [propput, id(DISPID_IHTMLRULESTYLE_TEXTINDENT)]
787     HRESULT textIndent([in] VARIANT v);
788
789     [propget, id(DISPID_IHTMLRULESTYLE_TEXTINDENT)]
790     HRESULT textIndent([retval, out] VARIANT *p);
791
792     [propput, id(DISPID_IHTMLRULESTYLE_LINEHEIGHT)]
793     HRESULT lineHeight([in] VARIANT v);
794
795     [propget, id(DISPID_IHTMLRULESTYLE_LINEHEIGHT)]
796     HRESULT lineHeight([retval, out] VARIANT *p);
797
798     [propput, id(DISPID_IHTMLRULESTYLE_MARGINTOP)]
799     HRESULT marginTop([in] VARIANT v);
800
801     [propget, id(DISPID_IHTMLRULESTYLE_MARGINTOP)]
802     HRESULT marginTop([retval, out] VARIANT *p);
803
804     [propput, id(DISPID_IHTMLRULESTYLE_MARGINRIGHT)]
805     HRESULT marginRight([in] VARIANT v);
806
807     [propget, id(DISPID_IHTMLRULESTYLE_MARGINRIGHT)]
808     HRESULT marginRight([retval, out] VARIANT *p);
809
810     [propput, id(DISPID_IHTMLRULESTYLE_MARGINBOTTOM)]
811     HRESULT marginBottom([in] VARIANT v);
812
813     [propget, id(DISPID_IHTMLRULESTYLE_MARGINBOTTOM)]
814     HRESULT marginBottom([retval, out] VARIANT *p);
815
816     [propput, id(DISPID_IHTMLRULESTYLE_MARGINLEFT)]
817     HRESULT marginLeft([in] VARIANT v);
818
819     [propget, id(DISPID_IHTMLRULESTYLE_MARGINLEFT)]
820     HRESULT marginLeft([retval, out] VARIANT *p);
821
822     [propput, id(DISPID_IHTMLRULESTYLE_MARGIN)]
823     HRESULT margin([in] BSTR v);
824
825     [propget, id(DISPID_IHTMLRULESTYLE_MARGIN)]
826     HRESULT margin([retval, out] BSTR *p);
827
828     [propput, id(DISPID_IHTMLRULESTYLE_PADDINGTOP)]
829     HRESULT paddingTop([in] VARIANT v);
830
831     [propget, id(DISPID_IHTMLRULESTYLE_PADDINGTOP)]
832     HRESULT paddingTop([retval, out] VARIANT *p);
833
834     [propput, id(DISPID_IHTMLRULESTYLE_PADDINGRIGHT)]
835     HRESULT paddingRight([in] VARIANT v);
836
837     [propget, id(DISPID_IHTMLRULESTYLE_PADDINGRIGHT)]
838     HRESULT paddingRight([retval, out] VARIANT *p);
839
840     [propput, id(DISPID_IHTMLRULESTYLE_PADDINGBOTTOM)]
841     HRESULT paddingBottom([in] VARIANT v);
842
843     [propget, id(DISPID_IHTMLRULESTYLE_PADDINGBOTTOM)]
844     HRESULT paddingBottom([retval, out] VARIANT *p);
845
846     [propput, id(DISPID_IHTMLRULESTYLE_PADDINGLEFT)]
847     HRESULT paddingLeft([in] VARIANT v);
848
849     [propget, id(DISPID_IHTMLRULESTYLE_PADDINGLEFT)]
850     HRESULT paddingLeft([retval, out] VARIANT *p);
851
852     [propput, id(DISPID_IHTMLRULESTYLE_PADDING)]
853     HRESULT padding([in] BSTR v);
854
855     [propget, id(DISPID_IHTMLRULESTYLE_PADDING)]
856     HRESULT padding([retval, out] BSTR *p);
857
858     [propput, id(DISPID_IHTMLRULESTYLE_BORDER)]
859     HRESULT border([in] BSTR v);
860
861     [propget, id(DISPID_IHTMLRULESTYLE_BORDER)]
862     HRESULT border([retval, out] BSTR *p);
863
864     [propput, id(DISPID_IHTMLRULESTYLE_BORDERTOP)]
865     HRESULT borderTop([in] BSTR v);
866
867     [propget, id(DISPID_IHTMLRULESTYLE_BORDERTOP)]
868     HRESULT borderTop([retval, out] BSTR *p);
869
870     [propput, id(DISPID_IHTMLRULESTYLE_BORDERRIGHT)]
871     HRESULT borderRight([in] BSTR v);
872
873     [propget, id(DISPID_IHTMLRULESTYLE_BORDERRIGHT)]
874     HRESULT borderRight([retval, out] BSTR *p);
875
876     [propput, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOM)]
877     HRESULT borderBottom([in] BSTR v);
878
879     [propget, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOM)]
880     HRESULT borderBottom([retval, out] BSTR *p);
881
882     [propput, id(DISPID_IHTMLRULESTYLE_BORDERLEFT)]
883     HRESULT borderLeft([in] BSTR v);
884
885     [propget, id(DISPID_IHTMLRULESTYLE_BORDERLEFT)]
886     HRESULT borderLeft([retval, out] BSTR *p);
887
888     [propput, id(DISPID_IHTMLRULESTYLE_BORDERCOLOR)]
889     HRESULT borderColor([in] BSTR v);
890
891     [propget, id(DISPID_IHTMLRULESTYLE_BORDERCOLOR)]
892     HRESULT borderColor([retval, out] BSTR *p);
893
894     [propput, id(DISPID_IHTMLRULESTYLE_BORDERTOPCOLOR)]
895     HRESULT borderTopColor([in] VARIANT v);
896
897     [propget, id(DISPID_IHTMLRULESTYLE_BORDERTOPCOLOR)]
898     HRESULT borderTopColor([retval, out] VARIANT *p);
899
900     [propput, id(DISPID_IHTMLRULESTYLE_BORDERRIGHTCOLOR)]
901     HRESULT borderRightColor([in] VARIANT v);
902
903     [propget, id(DISPID_IHTMLRULESTYLE_BORDERRIGHTCOLOR)]
904     HRESULT borderRightColor([retval, out] VARIANT *p);
905
906     [propput, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOMCOLOR)]
907     HRESULT borderBottomColor([in] VARIANT v);
908
909     [propget, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOMCOLOR)]
910     HRESULT borderBottomColor([retval, out] VARIANT *p);
911
912     [propput, id(DISPID_IHTMLRULESTYLE_BORDERLEFTCOLOR)]
913     HRESULT borderLeftColor([in] VARIANT v);
914
915     [propget, id(DISPID_IHTMLRULESTYLE_BORDERLEFTCOLOR)]
916     HRESULT borderLeftColor([retval, out] VARIANT *p);
917
918     [propput, id(DISPID_IHTMLRULESTYLE_BORDERWIDTH)]
919     HRESULT borderWidth([in] BSTR v);
920
921     [propget, id(DISPID_IHTMLRULESTYLE_BORDERWIDTH)]
922     HRESULT borderWidth([retval, out] BSTR *p);
923
924     [propput, id(DISPID_IHTMLRULESTYLE_BORDERTOPWIDTH)]
925     HRESULT borderTopWidth([in] VARIANT v);
926
927     [propget, id(DISPID_IHTMLRULESTYLE_BORDERTOPWIDTH)]
928     HRESULT borderTopWidth([retval, out] VARIANT *p);
929
930     [propput, id(DISPID_IHTMLRULESTYLE_BORDERRIGHTWIDTH)]
931     HRESULT borderRightWidth([in] VARIANT v);
932
933     [propget, id(DISPID_IHTMLRULESTYLE_BORDERRIGHTWIDTH)]
934     HRESULT borderRightWidth([retval, out] VARIANT *p);
935
936     [propput, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOMWIDTH)]
937     HRESULT borderBottomWidth([in] VARIANT v);
938
939     [propget, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOMWIDTH)]
940     HRESULT borderBottomWidth([retval, out] VARIANT *p);
941
942     [propput, id(DISPID_IHTMLRULESTYLE_BORDERLEFTWIDTH)]
943     HRESULT borderLeftWidth([in] VARIANT v);
944
945     [propget, id(DISPID_IHTMLRULESTYLE_BORDERLEFTWIDTH)]
946     HRESULT borderLeftWidth([retval, out] VARIANT *p);
947
948     [propput, id(DISPID_IHTMLRULESTYLE_BORDERSTYLE)]
949     HRESULT borderStyle([in] BSTR v);
950
951     [propget, id(DISPID_IHTMLRULESTYLE_BORDERSTYLE)]
952     HRESULT borderStyle([retval, out] BSTR *p);
953
954     [propput, id(DISPID_IHTMLRULESTYLE_BORDERTOPSTYLE)]
955     HRESULT borderTopStyle([in] BSTR v);
956
957     [propget, id(DISPID_IHTMLRULESTYLE_BORDERTOPSTYLE)]
958     HRESULT borderTopStyle([retval, out] BSTR *p);
959
960     [propput, id(DISPID_IHTMLRULESTYLE_BORDERRIGHTSTYLE)]
961     HRESULT borderRightStyle([in] BSTR v);
962
963     [propget, id(DISPID_IHTMLRULESTYLE_BORDERRIGHTSTYLE)]
964     HRESULT borderRightStyle([retval, out] BSTR *p);
965
966     [propput, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOMSTYLE)]
967     HRESULT borderBottomStyle([in] BSTR v);
968
969     [propget, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOMSTYLE)]
970     HRESULT borderBottomStyle([retval, out] BSTR *p);
971
972     [propput, id(DISPID_IHTMLRULESTYLE_BORDERLEFTSTYLE)]
973     HRESULT borderLeftStyle([in] BSTR v);
974
975     [propget, id(DISPID_IHTMLRULESTYLE_BORDERLEFTSTYLE)]
976     HRESULT borderLeftStyle([retval, out] BSTR *p);
977
978     [propput, id(DISPID_IHTMLRULESTYLE_WIDTH)]
979     HRESULT width([in] VARIANT v);
980
981     [propget, id(DISPID_IHTMLRULESTYLE_WIDTH)]
982     HRESULT width([retval, out] VARIANT *p);
983
984     [propput, id(DISPID_IHTMLRULESTYLE_HEIGHT)]
985     HRESULT height([in] VARIANT v);
986
987     [propget, id(DISPID_IHTMLRULESTYLE_HEIGHT)]
988     HRESULT height([retval, out] VARIANT *p);
989
990     [propput, id(DISPID_IHTMLRULESTYLE_STYLEFLOAT)]
991     HRESULT styleFloat([in] BSTR v);
992
993     [propget, id(DISPID_IHTMLRULESTYLE_STYLEFLOAT)]
994     HRESULT styleFloat([retval, out] BSTR *p);
995
996     [propput, id(DISPID_IHTMLRULESTYLE_CLEAR)]
997     HRESULT clear([in] BSTR v);
998
999     [propget, id(DISPID_IHTMLRULESTYLE_CLEAR)]
1000     HRESULT clear([retval, out] BSTR *p);
1001
1002     [propput, id(DISPID_IHTMLRULESTYLE_DISPLAY)]
1003     HRESULT display([in] BSTR v);
1004
1005     [propget, id(DISPID_IHTMLRULESTYLE_DISPLAY)]
1006     HRESULT display([retval, out] BSTR *p);
1007
1008     [propput, id(DISPID_IHTMLRULESTYLE_VISIBILITY)]
1009     HRESULT visibility([in] BSTR v);
1010
1011     [propget, id(DISPID_IHTMLRULESTYLE_VISIBILITY)]
1012     HRESULT visibility([retval, out] BSTR *p);
1013
1014     [propput, id(DISPID_IHTMLRULESTYLE_LISTSTYLETYPE)]
1015     HRESULT listStyleType([in] BSTR v);
1016
1017     [propget, id(DISPID_IHTMLRULESTYLE_LISTSTYLETYPE)]
1018     HRESULT listStyleType([retval, out] BSTR *p);
1019
1020     [propput, id(DISPID_IHTMLRULESTYLE_LISTSTYLEPOSITION)]
1021     HRESULT listStylePosition([in] BSTR v);
1022
1023     [propget, id(DISPID_IHTMLRULESTYLE_LISTSTYLEPOSITION)]
1024     HRESULT listStylePosition([retval, out] BSTR *p);
1025
1026     [propput, id(DISPID_IHTMLRULESTYLE_LISTSTYLEIMAGE)]
1027     HRESULT listStyleImage([in] BSTR v);
1028
1029     [propget, id(DISPID_IHTMLRULESTYLE_LISTSTYLEIMAGE)]
1030     HRESULT listStyleImage([retval, out] BSTR *p);
1031
1032     [propput, id(DISPID_IHTMLRULESTYLE_LISTSTYLE)]
1033     HRESULT listStyle([in] BSTR v);
1034
1035     [propget, id(DISPID_IHTMLRULESTYLE_LISTSTYLE)]
1036     HRESULT listStyle([retval, out] BSTR *p);
1037
1038     [propput, id(DISPID_IHTMLRULESTYLE_WHITESPACE)]
1039     HRESULT whiteSpace([in] BSTR v);
1040
1041     [propget, id(DISPID_IHTMLRULESTYLE_WHITESPACE)]
1042     HRESULT whiteSpace([retval, out] BSTR *p);
1043
1044     [propput, id(DISPID_IHTMLRULESTYLE_TOP)]
1045     HRESULT top([in] VARIANT v);
1046
1047     [propget, id(DISPID_IHTMLRULESTYLE_TOP)]
1048     HRESULT top([retval, out] VARIANT *p);
1049
1050     [propput, id(DISPID_IHTMLRULESTYLE_LEFT)]
1051     HRESULT left([in] VARIANT v);
1052
1053     [propget, id(DISPID_IHTMLRULESTYLE_LEFT)]
1054     HRESULT left([retval, out] VARIANT *p);
1055
1056     [propget, id(DISPID_IHTMLRULESTYLE_POSITION)]
1057     HRESULT position([retval, out] BSTR *p);
1058
1059     [propput, id(DISPID_IHTMLRULESTYLE_ZINDEX)]
1060     HRESULT zIndex([in] VARIANT v);
1061
1062     [propget, id(DISPID_IHTMLRULESTYLE_ZINDEX)]
1063     HRESULT zIndex([retval, out] VARIANT *p);
1064
1065     [propput, id(DISPID_IHTMLRULESTYLE_OVERFLOW)]
1066     HRESULT overflow([in] BSTR v);
1067
1068     [propget, id(DISPID_IHTMLRULESTYLE_OVERFLOW)]
1069     HRESULT overflow([retval, out] BSTR *p);
1070
1071     [propput, id(DISPID_IHTMLRULESTYLE_PAGEBREAKBEFORE)]
1072     HRESULT pageBreakBefore([in] BSTR v);
1073
1074     [propget, id(DISPID_IHTMLRULESTYLE_PAGEBREAKBEFORE)]
1075     HRESULT pageBreakBefore([retval, out] BSTR *p);
1076
1077     [propput, id(DISPID_IHTMLRULESTYLE_PAGEBREAKAFTER)]
1078     HRESULT pageBreakAfter([in] BSTR v);
1079
1080     [propget, id(DISPID_IHTMLRULESTYLE_PAGEBREAKAFTER)]
1081     HRESULT pageBreakAfter([retval, out] BSTR *p);
1082
1083     [propput, id(DISPID_IHTMLRULESTYLE_CSSTEXT)]
1084     HRESULT cssText([in] BSTR v);
1085
1086     [propget, id(DISPID_IHTMLRULESTYLE_CSSTEXT)]
1087     HRESULT cssText([retval, out] BSTR *p);
1088
1089     [propput, id(DISPID_IHTMLRULESTYLE_CURSOR)]
1090     HRESULT cursor([in] BSTR v);
1091
1092     [propget, id(DISPID_IHTMLRULESTYLE_CURSOR)]
1093     HRESULT cursor([retval, out] BSTR *p);
1094
1095     [propput, id(DISPID_IHTMLRULESTYLE_CLIP)]
1096     HRESULT clip([in] BSTR v);
1097
1098     [propget, id(DISPID_IHTMLRULESTYLE_CLIP)]
1099     HRESULT clip([retval, out] BSTR *p);
1100
1101     [propput, id(DISPID_IHTMLRULESTYLE_FILTER)]
1102     HRESULT filter([in] BSTR v);
1103
1104     [propget, id(DISPID_IHTMLRULESTYLE_FILTER)]
1105     HRESULT filter([retval, out] BSTR *p);
1106
1107     [id(DISPID_IHTMLRULESTYLE_SETATTRIBUTE)]
1108     HRESULT setAttribute(
1109         [in] BSTR strAttributeName,
1110         [in] VARIANT AttributeValue,
1111         [defaultvalue(1), in] LONG lFlags);
1112
1113     [id(DISPID_IHTMLRULESTYLE_GETATTRIBUTE)]
1114     HRESULT getAttribute(
1115         [in] BSTR strAttributeName,
1116         [defaultvalue(0), in] LONG lFlags,
1117         [retval, out] VARIANT *AttributeValue);
1118
1119     [id(DISPID_IHTMLRULESTYLE_REMOVEATTRIBUTE)]
1120     HRESULT removeAttribute(
1121         [in] BSTR strAttributeName,
1122         [defaultvalue(1), in] LONG lFlags,
1123         [retval, out] VARIANT_BOOL *pfSuccess);
1124 }
1125
1126 /*****************************************************************************
1127  *    IHTMLRenderStyle interface
1128  */
1129 [
1130     odl,
1131     oleautomation,
1132     dual,
1133     uuid(3050f6ae-98b5-11cf-bb82-00aa00bdce0b)
1134 ]
1135 interface IHTMLRenderStyle : IDispatch
1136 {
1137     [propput, id(DISPID_IHTMLRENDERSTYLE_TEXTLINETHROUGHSTYLE), displaybind, bindable]
1138     HRESULT textLineThroughStyle([in] BSTR v);
1139
1140     [propget, id(DISPID_IHTMLRENDERSTYLE_TEXTLINETHROUGHSTYLE), displaybind, bindable]
1141     HRESULT textLineThroughStyle([retval, out] BSTR *p);
1142
1143     [propput, id(DISPID_IHTMLRENDERSTYLE_TEXTUNDERLINESTYLE), displaybind, bindable]
1144     HRESULT textUnderlineStyle([in] BSTR v);
1145
1146     [propget, id(DISPID_IHTMLRENDERSTYLE_TEXTUNDERLINESTYLE), displaybind, bindable]
1147     HRESULT textUnderlineStyle([retval, out] BSTR *p);
1148
1149     [propput, id(DISPID_IHTMLRENDERSTYLE_TEXTEFFECT), displaybind, bindable]
1150     HRESULT textEffect([in] BSTR v);
1151
1152     [propget, id(DISPID_IHTMLRENDERSTYLE_TEXTEFFECT), displaybind, bindable]
1153     HRESULT textEffect([retval, out] BSTR *p);
1154
1155     [propput, id(DISPID_IHTMLRENDERSTYLE_TEXTCOLOR), displaybind, bindable]
1156     HRESULT textColor([in] VARIANT v);
1157
1158     [propget, id(DISPID_IHTMLRENDERSTYLE_TEXTCOLOR), displaybind, bindable]
1159     HRESULT textColor([retval, out] VARIANT *p);
1160
1161     [propput, id(DISPID_IHTMLRENDERSTYLE_TEXTBACKGROUNDCOLOR), displaybind, bindable]
1162     HRESULT textBackgroundColor([in] VARIANT v);
1163
1164     [propget, id(DISPID_IHTMLRENDERSTYLE_TEXTBACKGROUNDCOLOR), displaybind, bindable]
1165     HRESULT textBackgroundColor([retval, out] VARIANT *p);
1166
1167     [propput, id(DISPID_IHTMLRENDERSTYLE_TEXTDECORATIONCOLOR), displaybind, bindable]
1168     HRESULT textDecorationColor([in] VARIANT v);
1169
1170     [propget, id(DISPID_IHTMLRENDERSTYLE_TEXTDECORATIONCOLOR), displaybind, bindable]
1171     HRESULT textDecorationColor([retval, out] VARIANT *p);
1172
1173     [propput, id(DISPID_IHTMLRENDERSTYLE_RENDERINGPRIORITY), displaybind, bindable]
1174     HRESULT renderingPriority([in] long v);
1175
1176     [propget, id(DISPID_IHTMLRENDERSTYLE_RENDERINGPRIORITY), displaybind, bindable]
1177     HRESULT renderingPriority([retval, out] long *p);
1178
1179     [propput, id(DISPID_IHTMLRENDERSTYLE_DEFAULTTEXTSELECTION), displaybind, bindable]
1180     HRESULT defaultTextSelection([in] BSTR v);
1181
1182     [propget, id(DISPID_IHTMLRENDERSTYLE_DEFAULTTEXTSELECTION), displaybind, bindable]
1183     HRESULT defaultTextSelection([retval, out] BSTR *p);
1184
1185     [propput, id(DISPID_IHTMLRENDERSTYLE_TEXTDECORATION), displaybind, bindable]
1186     HRESULT textDecoration([in] BSTR v);
1187
1188     [propget, id(DISPID_IHTMLRENDERSTYLE_TEXTDECORATION), displaybind, bindable]
1189     HRESULT textDecoration([retval, out] BSTR *p);
1190 }
1191
1192 /*****************************************************************************
1193  *    IHTMLCurrentStyle interface
1194  */
1195 [
1196     odl,
1197     oleautomation,
1198     dual,
1199     uuid(3050f3db-98b5-11cf-bb82-00aa00bdce0b)
1200 ]
1201 interface IHTMLCurrentStyle : IDispatch
1202 {
1203     [propget, id(DISPID_IHTMLCURRENTSTYLE_POSITION), displaybind, bindable]
1204     HRESULT position([retval, out] BSTR *p);
1205
1206     [propget, id(DISPID_IHTMLCURRENTSTYLE_STYLEFLOAT), displaybind, bindable]
1207     HRESULT styleFloat([retval, out] BSTR *p);
1208
1209     [propget, id(DISPID_IHTMLCURRENTSTYLE_COLOR), displaybind, bindable]
1210     HRESULT color([retval, out] VARIANT *p);
1211
1212     [propget, id(DISPID_IHTMLCURRENTSTYLE_BACKGROUNDCOLOR), displaybind, bindable]
1213     HRESULT backgroundColor([retval, out] VARIANT *p);
1214
1215     [propget, id(DISPID_IHTMLCURRENTSTYLE_FONTFAMILY), displaybind, bindable]
1216     HRESULT fontFamily([retval, out] BSTR *p);
1217
1218     [propget, id(DISPID_IHTMLCURRENTSTYLE_FONTSTYLE), displaybind, bindable]
1219     HRESULT fontStyle([retval, out] BSTR *p);
1220
1221     [propget, id(DISPID_IHTMLCURRENTSTYLE_FONTVARIANT), displaybind, bindable, hidden]
1222     HRESULT fontVariant([retval, out] BSTR *p);
1223
1224     [propget, id(DISPID_IHTMLCURRENTSTYLE_FONTWEIGHT), displaybind, bindable]
1225     HRESULT fontWeight([retval, out] VARIANT *p);
1226
1227     [propget, id(DISPID_IHTMLCURRENTSTYLE_FONTSIZE), displaybind, bindable]
1228     HRESULT fontSize([retval, out] VARIANT *p);
1229
1230     [propget, id(DISPID_IHTMLCURRENTSTYLE_BACKGROUNDIMAGE), displaybind, bindable]
1231     HRESULT backgroundImage([retval, out] BSTR *p);
1232
1233     [propget, id(DISPID_IHTMLCURRENTSTYLE_BACKGROUNDPOSITIONX), displaybind, bindable]
1234     HRESULT backgroundPositionX([retval, out] VARIANT *p);
1235
1236     [propget, id(DISPID_IHTMLCURRENTSTYLE_BACKGROUNDPOSITIONY), displaybind, bindable]
1237     HRESULT backgroundPositionY([retval, out] VARIANT *p);
1238
1239     [propget, id(DISPID_IHTMLCURRENTSTYLE_BACKGROUNDREPEAT), displaybind, bindable]
1240     HRESULT backgroundRepeat([retval, out] BSTR *p);
1241
1242     [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERLEFTCOLOR), displaybind, bindable]
1243     HRESULT borderLeftColor([retval, out] VARIANT *p);
1244
1245     [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERTOPCOLOR), displaybind, bindable]
1246     HRESULT borderTopColor([retval, out] VARIANT *p);
1247
1248     [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERRIGHTCOLOR), displaybind, bindable]
1249     HRESULT borderRightColor([retval, out] VARIANT *p);
1250
1251     [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERBOTTOMCOLOR), displaybind, bindable]
1252     HRESULT borderBottomColor([retval, out] VARIANT *p);
1253
1254     [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERTOPSTYLE), displaybind, bindable]
1255     HRESULT borderTopStyle([retval, out] BSTR *p);
1256
1257     [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERRIGHTSTYLE), displaybind, bindable]
1258     HRESULT borderRightStyle([retval, out] BSTR *p);
1259
1260     [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERBOTTOMSTYLE), displaybind, bindable]
1261     HRESULT borderBottomStyle([retval, out] BSTR *p);
1262
1263     [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERLEFTSTYLE), displaybind, bindable]
1264     HRESULT borderLeftStyle([retval, out] BSTR *p);
1265
1266     [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERTOPWIDTH), displaybind, bindable]
1267     HRESULT borderTopWidth([retval, out] VARIANT *p);
1268
1269     [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERRIGHTWIDTH), displaybind, bindable]
1270     HRESULT borderRightWidth([retval, out] VARIANT *p);
1271
1272     [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERBOTTOMWIDTH), displaybind, bindable]
1273     HRESULT borderBottomWidth([retval, out] VARIANT *p);
1274
1275     [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERLEFTWIDTH), displaybind, bindable]
1276     HRESULT borderLeftWidth([retval, out] VARIANT *p);
1277
1278     [propget, id(DISPID_IHTMLCURRENTSTYLE_LEFT), displaybind, bindable]
1279     HRESULT left([retval, out] VARIANT *p);
1280
1281     [propget, id(DISPID_IHTMLCURRENTSTYLE_TOP), displaybind, bindable]
1282     HRESULT top([retval, out] VARIANT *p);
1283
1284     [propget, id(DISPID_IHTMLCURRENTSTYLE_WIDTH), displaybind, bindable]
1285     HRESULT width([retval, out] VARIANT *p);
1286
1287     [propget, id(DISPID_IHTMLCURRENTSTYLE_HEIGHT), displaybind, bindable]
1288     HRESULT height([retval, out] VARIANT *p);
1289
1290     [propget, id(DISPID_IHTMLCURRENTSTYLE_PADDINGLEFT), displaybind, bindable]
1291     HRESULT paddingLeft([retval, out] VARIANT *p);
1292
1293     [propget, id(DISPID_IHTMLCURRENTSTYLE_PADDINGTOP), displaybind, bindable]
1294     HRESULT paddingTop([retval, out] VARIANT *p);
1295
1296     [propget, id(DISPID_IHTMLCURRENTSTYLE_PADDINGRIGHT), displaybind, bindable]
1297     HRESULT paddingRight([retval, out] VARIANT *p);
1298
1299     [propget, id(DISPID_IHTMLCURRENTSTYLE_PADDINGBOTTOM), displaybind, bindable]
1300     HRESULT paddingBottom([retval, out] VARIANT *p);
1301
1302     [propget, id(DISPID_IHTMLCURRENTSTYLE_TEXTALIGN), displaybind, bindable]
1303     HRESULT textAlign([retval, out] BSTR *p);
1304
1305     [propget, id(DISPID_IHTMLCURRENTSTYLE_TEXTDECORATION), displaybind, bindable]
1306     HRESULT textDecoration([retval, out] BSTR *p);
1307
1308     [propget, id(DISPID_IHTMLCURRENTSTYLE_DISPLAY), displaybind, bindable]
1309     HRESULT display([retval, out] BSTR *p);
1310
1311     [propget, id(DISPID_IHTMLCURRENTSTYLE_VISIBILITY), displaybind, bindable]
1312     HRESULT visibility([retval, out] BSTR *p);
1313
1314     [propget, id(DISPID_IHTMLCURRENTSTYLE_ZINDEX), displaybind, bindable]
1315     HRESULT zIndex([retval, out] VARIANT *p);
1316
1317     [propget, id(DISPID_IHTMLCURRENTSTYLE_LETTERSPACING), displaybind, bindable]
1318     HRESULT letterSpacing([retval, out] VARIANT *p);
1319
1320     [propget, id(DISPID_IHTMLCURRENTSTYLE_LINEHEIGHT), displaybind, bindable]
1321     HRESULT lineHeight([retval, out] VARIANT *p);
1322
1323     [propget, id(DISPID_IHTMLCURRENTSTYLE_TEXTINDENT), displaybind, bindable]
1324     HRESULT textIndent([retval, out] VARIANT *p);
1325
1326     [propget, id(DISPID_IHTMLCURRENTSTYLE_VERTICALALIGN), displaybind, bindable]
1327     HRESULT verticalAlign([retval, out] VARIANT *p);
1328
1329     [propget, id(DISPID_IHTMLCURRENTSTYLE_BACKGROUNDATTACHMENT), displaybind, bindable]
1330     HRESULT backgroundAttachment([retval, out] BSTR *p);
1331
1332     [propget, id(DISPID_IHTMLCURRENTSTYLE_MARGINTOP), displaybind, bindable]
1333     HRESULT marginTop([retval, out] VARIANT *p);
1334
1335     [propget, id(DISPID_IHTMLCURRENTSTYLE_MARGINRIGHT), displaybind, bindable]
1336     HRESULT marginRight([retval, out] VARIANT *p);
1337
1338     [propget, id(DISPID_IHTMLCURRENTSTYLE_MARGINBOTTOM), displaybind, bindable]
1339     HRESULT marginBottom([retval, out] VARIANT *p);
1340
1341     [propget, id(DISPID_IHTMLCURRENTSTYLE_MARGINLEFT), displaybind, bindable]
1342     HRESULT marginLeft([retval, out] VARIANT *p);
1343
1344     [propget, id(DISPID_IHTMLCURRENTSTYLE_CLEAR), displaybind, bindable]
1345     HRESULT clear([retval, out] BSTR *p);
1346
1347     [propget, id(DISPID_IHTMLCURRENTSTYLE_LISTSTYLETYPE), displaybind, bindable]
1348     HRESULT listStyleType([retval, out] BSTR *p);
1349
1350     [propget, id(DISPID_IHTMLCURRENTSTYLE_LISTSTYLEPOSITION), displaybind, bindable]
1351     HRESULT listStylePosition([retval, out] BSTR *p);
1352
1353     [propget, id(DISPID_IHTMLCURRENTSTYLE_LISTSTYLEIMAGE), displaybind, bindable]
1354     HRESULT listStyleImage([retval, out] BSTR *p);
1355
1356     [propget, id(DISPID_IHTMLCURRENTSTYLE_CLIPTOP), displaybind, bindable]
1357     HRESULT clipTop([retval, out] VARIANT *p);
1358
1359     [propget, id(DISPID_IHTMLCURRENTSTYLE_CLIPRIGHT), displaybind, bindable]
1360     HRESULT clipRight([retval, out] VARIANT *p);
1361
1362     [propget, id(DISPID_IHTMLCURRENTSTYLE_CLIPBOTTOM), displaybind, bindable]
1363     HRESULT clipBottom([retval, out] VARIANT *p);
1364
1365     [propget, id(DISPID_IHTMLCURRENTSTYLE_CLIPLEFT), displaybind, bindable]
1366     HRESULT clipLeft([retval, out] VARIANT *p);
1367
1368     [propget, id(DISPID_IHTMLCURRENTSTYLE_OVERFLOW), displaybind, bindable]
1369     HRESULT overflow([retval, out] BSTR *p);
1370
1371     [propget, id(DISPID_IHTMLCURRENTSTYLE_PAGEBREAKBEFORE), displaybind, bindable]
1372     HRESULT pageBreakBefore([retval, out] BSTR *p);
1373
1374     [propget, id(DISPID_IHTMLCURRENTSTYLE_PAGEBREAKAFTER), displaybind, bindable]
1375     HRESULT pageBreakAfter([retval, out] BSTR *p);
1376
1377     [propget, id(DISPID_IHTMLCURRENTSTYLE_CURSOR), displaybind, bindable]
1378     HRESULT cursor([retval, out] BSTR *p);
1379
1380     [propget, id(DISPID_IHTMLCURRENTSTYLE_TABLELAYOUT), displaybind, bindable]
1381     HRESULT tableLayout([retval, out] BSTR *p);
1382
1383     [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERCOLLAPSE), displaybind, bindable]
1384     HRESULT borderCollapse([retval, out] BSTR *p);
1385
1386     [propget, id(DISPID_IHTMLCURRENTSTYLE_DIRECTION), displaybind, bindable]
1387     HRESULT direction([retval, out] BSTR *p);
1388
1389     [propget, id(DISPID_IHTMLCURRENTSTYLE_BEHAVIOR), displaybind, bindable]
1390     HRESULT behavior([retval, out] BSTR *p);
1391
1392     [id(DISPID_IHTMLCURRENTSTYLE_GETATTRIBUTE)]
1393     HRESULT getAttribute(
1394         [in] BSTR strAttributeName,
1395         [defaultvalue(0), in] LONG lFlags,
1396         [retval, out] VARIANT *AttributeValue);
1397
1398     [propget, id(DISPID_IHTMLCURRENTSTYLE_UNICODEBIDI), displaybind, bindable]
1399     HRESULT unicodeBidi([retval, out] BSTR *p);
1400
1401     [propget, id(DISPID_IHTMLCURRENTSTYLE_RIGHT), displaybind, bindable]
1402     HRESULT right([retval, out] VARIANT *p);
1403
1404     [propget, id(DISPID_IHTMLCURRENTSTYLE_BOTTOM), displaybind, bindable]
1405     HRESULT bottom([retval, out] VARIANT *p);
1406
1407     [propget, id(DISPID_IHTMLCURRENTSTYLE_IMEMODE), displaybind, bindable]
1408     HRESULT imeMode([retval, out] BSTR *p);
1409
1410     [propget, id(DISPID_IHTMLCURRENTSTYLE_RUBYALIGN), displaybind, bindable]
1411     HRESULT rubyAlign([retval, out] BSTR *p);
1412
1413     [propget, id(DISPID_IHTMLCURRENTSTYLE_RUBYPOSITION), displaybind, bindable]
1414     HRESULT rubyPosition([retval, out] BSTR *p);
1415
1416     [propget, id(DISPID_IHTMLCURRENTSTYLE_RUBYOVERHANG), displaybind, bindable]
1417     HRESULT rubyOverhang([retval, out] BSTR *p);
1418
1419     [propget, id(DISPID_IHTMLCURRENTSTYLE_TEXTAUTOSPACE), displaybind, bindable]
1420     HRESULT textAutospace([retval, out] BSTR *p);
1421
1422     [propget, id(DISPID_IHTMLCURRENTSTYLE_LINEBREAK), displaybind, bindable]
1423     HRESULT lineBreak([retval, out] BSTR *p);
1424
1425     [propget, id(DISPID_IHTMLCURRENTSTYLE_WORDBREAK), displaybind, bindable]
1426     HRESULT wordBreak([retval, out] BSTR *p);
1427
1428     [propget, id(DISPID_IHTMLCURRENTSTYLE_TEXTJUSTIFY), displaybind, bindable]
1429     HRESULT textJustify([retval, out] BSTR *p);
1430
1431     [propget, id(DISPID_IHTMLCURRENTSTYLE_TEXTJUSTIFYTRIM), displaybind, bindable]
1432     HRESULT textJustifyTrim([retval, out] BSTR *p);
1433
1434     [propget, id(DISPID_IHTMLCURRENTSTYLE_TEXTKASHIDA), displaybind, bindable]
1435     HRESULT textKashida([retval, out] VARIANT *p);
1436
1437     [propget, id(DISPID_IHTMLCURRENTSTYLE_BLOCKDIRECTION), displaybind, bindable]
1438     HRESULT blockDirection([retval, out] BSTR *p);
1439
1440     [propget, id(DISPID_IHTMLCURRENTSTYLE_LAYOUTGRIDCHAR), displaybind, bindable]
1441     HRESULT layoutGridChar([retval, out] VARIANT *p);
1442
1443     [propget, id(DISPID_IHTMLCURRENTSTYLE_LAYOUTGRIDLINE), displaybind, bindable]
1444     HRESULT layoutGridLine([retval, out] VARIANT *p);
1445
1446     [propget, id(DISPID_IHTMLCURRENTSTYLE_LAYOUTGRIDMODE), displaybind, bindable]
1447     HRESULT layoutGridMode([retval, out] BSTR *p);
1448
1449     [propget, id(DISPID_IHTMLCURRENTSTYLE_LAYOUTGRIDTYPE), displaybind, bindable]
1450     HRESULT layoutGridType([retval, out] BSTR *p);
1451
1452     [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERSTYLE), displaybind, bindable]
1453     HRESULT borderStyle([retval, out] BSTR *p);
1454
1455     [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERCOLOR), displaybind, bindable]
1456     HRESULT borderColor([retval, out] BSTR *p);
1457
1458     [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERWIDTH), displaybind, bindable]
1459     HRESULT borderWidth([retval, out] BSTR *p);
1460
1461     [propget, id(DISPID_IHTMLCURRENTSTYLE_PADDING), displaybind, bindable]
1462     HRESULT padding([retval, out] BSTR *p);
1463
1464     [propget, id(DISPID_IHTMLCURRENTSTYLE_MARGIN), displaybind, bindable]
1465     HRESULT margin([retval, out] BSTR *p);
1466
1467     [propget, id(DISPID_IHTMLCURRENTSTYLE_ACCELERATOR), displaybind, bindable]
1468     HRESULT accelerator([retval, out] BSTR *p);
1469
1470     [propget, id(DISPID_IHTMLCURRENTSTYLE_OVERFLOWX), displaybind, bindable]
1471     HRESULT overflowX([retval, out] BSTR *p);
1472
1473     [propget, id(DISPID_IHTMLCURRENTSTYLE_OVERFLOWY), displaybind, bindable]
1474     HRESULT overflowY([retval, out] BSTR *p);
1475
1476     [propget, id(DISPID_IHTMLCURRENTSTYLE_TEXTTRANSFORM), displaybind, bindable]
1477     HRESULT textTransform([retval, out] BSTR *p);
1478 }
1479
1480 /*****************************************************************************
1481  *    IHTMLRect interface
1482  */
1483 [
1484     odl,
1485     oleautomation,
1486     dual,
1487     uuid(3050f4a3-98b5-11cf-bb82-00aa00bdce0b)
1488 ]
1489 interface IHTMLRect : IDispatch
1490 {
1491     [propput, id(DISPID_IHTMLRECT_LEFT)]
1492     HRESULT left([in] long v);
1493
1494     [propget, id(DISPID_IHTMLRECT_LEFT)]
1495     HRESULT left([retval, out] long *p);
1496
1497     [propput, id(DISPID_IHTMLRECT_TOP)]
1498     HRESULT top([in] long v);
1499
1500     [propget, id(DISPID_IHTMLRECT_TOP)]
1501     HRESULT top([retval, out] long *p);
1502
1503     [propput, id(DISPID_IHTMLRECT_RIGHT)]
1504     HRESULT right([in] long v);
1505
1506     [propget, id(DISPID_IHTMLRECT_RIGHT)]
1507     HRESULT right([retval, out] long *p);
1508
1509     [propput, id(DISPID_IHTMLRECT_BOTTOM)]
1510     HRESULT bottom([in] long v);
1511
1512     [propget, id(DISPID_IHTMLRECT_BOTTOM)]
1513     HRESULT bottom([retval, out] long *p);
1514 }
1515
1516 /*****************************************************************************
1517  *    IHTMLRectCollection interface
1518  */
1519 [
1520     odl,
1521     oleautomation,
1522     dual,
1523     uuid(3050f4a4-98b5-11cf-bb82-00aa00bdce0b)
1524 ]
1525 interface IHTMLRectCollection : IDispatch
1526 {
1527     [propget, id(DISPID_IHTMLRECTCOLLECTION_LENGTH)]
1528     HRESULT length([retval, out] long *p);
1529
1530     [propget, id(DISPID_IHTMLRECTCOLLECTION__NEWENUM), hidden, restricted]
1531     HRESULT _newEnum([retval, out] IUnknown **p);
1532
1533     [id(DISPID_IHTMLRECTCOLLECTION_ITEM)]
1534     HRESULT item(
1535         [in] VARIANT *pvarIndex,
1536         [retval, out] VARIANT *pvarResult);
1537 }
1538
1539 /*****************************************************************************
1540  *    IHTMLDOMNode interface
1541  */
1542 [
1543     odl,
1544     oleautomation,
1545     dual,
1546     uuid(3050f5da-98b5-11cf-bb82-00aa00bdce0b)
1547 ]
1548 interface IHTMLDOMNode : IDispatch
1549 {
1550     [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)]
1551     HRESULT nodeType([retval, out] long *p);
1552
1553     [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)]
1554     HRESULT parentNode([retval, out] IHTMLDOMNode **p);
1555
1556     [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)]
1557     HRESULT hasChildNodes([retval, out] VARIANT_BOOL *fChildren);
1558
1559     [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)]
1560     HRESULT childNodes([retval, out] IDispatch **p);
1561
1562     [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)]
1563     HRESULT attributes([retval, out] IDispatch **p);
1564
1565     [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)]
1566     HRESULT insertBefore(
1567         [in] IHTMLDOMNode *newChild,
1568         [optional, in] VARIANT refChild,
1569         [retval, out] IHTMLDOMNode **node);
1570
1571     [id(DISPID_IHTMLDOMNODE_REMOVECHILD)]
1572     HRESULT removeChild(
1573         [in] IHTMLDOMNode *oldChild,
1574         [retval, out] IHTMLDOMNode **node);
1575
1576     [id(DISPID_IHTMLDOMNODE_REPLACECHILD)]
1577     HRESULT replaceChild(
1578         [in] IHTMLDOMNode *newChild,
1579         [in] IHTMLDOMNode *oldChild,
1580         [retval, out] IHTMLDOMNode **node);
1581
1582     [id(DISPID_IHTMLDOMNODE_CLONENODE)]
1583     HRESULT cloneNode(
1584         [in] VARIANT_BOOL fDeep,
1585         [retval, out] IHTMLDOMNode **clonedNode);
1586
1587     [id(DISPID_IHTMLDOMNODE_REMOVENODE)]
1588     HRESULT removeNode(
1589         [defaultvalue(0), in] VARIANT_BOOL fDeep,
1590         [retval, out] IHTMLDOMNode **removed);
1591
1592     [id(DISPID_IHTMLDOMNODE_SWAPNODE)]
1593     HRESULT swapNode(
1594         [in] IHTMLDOMNode *otherNode,
1595         [retval, out] IHTMLDOMNode **swappedNode);
1596
1597     [id(DISPID_IHTMLDOMNODE_REPLACENODE)]
1598     HRESULT replaceNode(
1599         [in] IHTMLDOMNode *replacement,
1600         [retval, out] IHTMLDOMNode **replaced);
1601
1602     [id(DISPID_IHTMLDOMNODE_APPENDCHILD)]
1603     HRESULT appendChild(
1604         [in] IHTMLDOMNode *newChild,
1605         [retval, out] IHTMLDOMNode **node);
1606
1607     [propget, id(DISPID_IHTMLDOMNODE_NODENAME)]
1608     HRESULT nodeName([retval, out] BSTR *p);
1609
1610     [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)]
1611     HRESULT nodeValue([in] VARIANT v);
1612
1613     [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)]
1614     HRESULT nodeValue([retval, out] VARIANT *p);
1615
1616     [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)]
1617     HRESULT firstChild([retval, out] IHTMLDOMNode **p);
1618
1619     [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)]
1620     HRESULT lastChild([retval, out] IHTMLDOMNode **p);
1621
1622     [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)]
1623     HRESULT previousSibling([retval, out] IHTMLDOMNode **p);
1624
1625     [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)]
1626     HRESULT nextSibling([retval, out] IHTMLDOMNode **p);
1627 }
1628
1629 /*****************************************************************************
1630  *    IHTMLDOMAttribute interface
1631  */
1632 [
1633     odl,
1634     oleautomation,
1635     dual,
1636     uuid(3050f4b0-98b5-11cf-bb82-00aa00bdce0b)
1637 ]
1638 interface IHTMLDOMAttribute : IDispatch
1639 {
1640     [propget, id(DISPID_IHTMLDOMATTRIBUTE_NODENAME)]
1641     HRESULT nodeName([retval, out] BSTR *p);
1642
1643     [propput, id(DISPID_IHTMLDOMATTRIBUTE_NODEVALUE)]
1644     HRESULT nodeValue([in] VARIANT v);
1645
1646     [propget, id(DISPID_IHTMLDOMATTRIBUTE_NODEVALUE)]
1647     HRESULT nodeValue([retval, out] VARIANT *p);
1648
1649     [propget, id(DISPID_IHTMLDOMATTRIBUTE_SPECIFIED)]
1650     HRESULT specified([retval, out] VARIANT_BOOL *p);
1651 }
1652
1653 /*****************************************************************************
1654  *    IHTMLDOMImplementation interface
1655  */
1656 [
1657     odl,
1658     oleautomation,
1659     dual,
1660     uuid(3050f80d-98b5-11cf-bb82-00aa00bdce0b)
1661 ]
1662 interface IHTMLDOMImplementation : IDispatch
1663 {
1664     [id(DISPID_IHTMLDOMIMPLEMENTATION_HASFEATURE)]
1665     HRESULT hasFeature(
1666         [in] BSTR bstrfeature,
1667         [optional, in] VARIANT version,
1668         [retval, out] VARIANT_BOOL *pfHasFeature);
1669 }
1670
1671 interface IHTMLElementCollection;
1672
1673 /*****************************************************************************
1674  *    IHTMLElement interface
1675  */
1676 [
1677     odl,
1678     dual,
1679     oleautomation,
1680     uuid(3050f1FF-98B5-11CF-BB82-00AA00BDCE0B)
1681 ]
1682 interface IHTMLElement : IDispatch
1683 {
1684     [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)]
1685     HRESULT setAttribute(
1686         [in] BSTR strAttributeName,
1687         [in] VARIANT AttributeValue,
1688         [defaultvalue(1), in] LONG lFlags);
1689
1690     [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)]
1691     HRESULT getAttribute(
1692         [in] BSTR strAttributeName,
1693         [defaultvalue(0), in] LONG lFlags,
1694         [retval, out] VARIANT *AttributeValue);
1695
1696     [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)]
1697     HRESULT removeAttribute(
1698         [in] BSTR strAttributeName,
1699         [defaultvalue(1), in] LONG lFlags,
1700         [retval, out] VARIANT_BOOL *pfSuccess);
1701
1702     [propput, id(DISPID_IHTMLELEMENT_CLASSNAME)]
1703     HRESULT className([in] BSTR v);
1704
1705     [propget, id(DISPID_IHTMLELEMENT_CLASSNAME)]
1706     HRESULT className([retval, out] BSTR *p);
1707
1708     [propput, id(DISPID_IHTMLELEMENT_ID)]
1709     HRESULT id([in] BSTR v);
1710
1711     [propget, id(DISPID_IHTMLELEMENT_ID)]
1712     HRESULT id([retval, out] BSTR *p);
1713
1714     [propget, id(DISPID_IHTMLELEMENT_TAGNAME)]
1715     HRESULT tagName([retval, out] BSTR *p);
1716
1717     [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)]
1718     HRESULT parentElement([retval, out] IHTMLElement **p);
1719
1720     [propget, id(DISPID_IHTMLELEMENT_STYLE)]
1721     HRESULT style([retval, out] IHTMLStyle **p);
1722
1723     [propput, id(DISPID_IHTMLELEMENT_ONHELP)]
1724     HRESULT onhelp([in] VARIANT v);
1725
1726     [propget, id(DISPID_IHTMLELEMENT_ONHELP)]
1727     HRESULT onhelp([retval, out] VARIANT *p);
1728
1729     [propput, id(DISPID_IHTMLELEMENT_ONCLICK)]
1730     HRESULT onclick([in] VARIANT v);
1731
1732     [propget, id(DISPID_IHTMLELEMENT_ONCLICK)]
1733     HRESULT onclick([retval, out] VARIANT *p);
1734
1735     [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK)]
1736     HRESULT ondblclick([in] VARIANT v);
1737
1738     [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK)]
1739     HRESULT ondblclick([retval, out] VARIANT *p);
1740
1741     [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN)]
1742     HRESULT onkeydown([in] VARIANT v);
1743
1744     [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN)]
1745     HRESULT onkeydown([retval, out] VARIANT *p);
1746
1747     [propput, id(DISPID_IHTMLELEMENT_ONKEYUP)]
1748     HRESULT onkeyup([in] VARIANT v);
1749     
1750     [propget, id(DISPID_IHTMLELEMENT_ONKEYUP)]
1751     HRESULT onkeyup([retval, out] VARIANT *p);
1752
1753     [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS)]
1754     HRESULT onkeypress([in] VARIANT v);
1755
1756     [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS)]
1757     HRESULT onkeypress([retval, out] VARIANT *p);
1758
1759     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT)]
1760     HRESULT onmouseout([in] VARIANT v);
1761
1762     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT)]
1763     HRESULT onmouseout([retval, out] VARIANT *p);
1764
1765     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER)]
1766     HRESULT onmouseover([in] VARIANT v);
1767
1768     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER)]
1769     HRESULT onmouseover([retval, out] VARIANT *p);
1770
1771     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE)]
1772     HRESULT onmousemove([in] VARIANT v);
1773
1774     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE)]
1775     HRESULT onmousemove([retval, out] VARIANT *p);
1776
1777     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN)]
1778     HRESULT onmousedown([in] VARIANT v);
1779
1780     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN)]
1781     HRESULT onmousedown([retval, out] VARIANT *p);
1782
1783     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP)]
1784     HRESULT onmouseup([in] VARIANT v);
1785
1786     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP)]
1787     HRESULT onmouseup([retval, out] VARIANT *p);
1788
1789     [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)]
1790     HRESULT document([retval, out] IDispatch **p);
1791
1792     [propput, id(DISPID_IHTMLELEMENT_TITLE)]
1793     HRESULT title([in] BSTR v);
1794
1795     [propget, id(DISPID_IHTMLELEMENT_TITLE)]
1796     HRESULT title([retval, out] BSTR *p);
1797
1798     [propput, id(DISPID_IHTMLELEMENT_LANGUAGE)]
1799     HRESULT language([in] BSTR v);
1800
1801     [propget, id(DISPID_IHTMLELEMENT_LANGUAGE)]
1802     HRESULT language([retval, out] BSTR *p);
1803
1804     [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART)]
1805     HRESULT onselectstart([in] VARIANT v);
1806
1807     [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART)]
1808     HRESULT onselectstart([retval, out] VARIANT *p);
1809
1810     [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)]
1811     HRESULT scrollIntoView([optional, in] VARIANT varargStart);
1812
1813     [id(DISPID_IHTMLELEMENT_CONTAINS)]
1814     HRESULT contains(
1815         [in] IHTMLElement *pChild,
1816         [retval, out] VARIANT_BOOL *pfResult);
1817
1818     [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX)]
1819     HRESULT sourceIndex([retval, out] long *p);
1820
1821     [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)]
1822     HRESULT recordNumber([retval, out] VARIANT *p);
1823
1824     [propput, id(DISPID_IHTMLELEMENT_LANG)]
1825     HRESULT lang([in] BSTR v);
1826
1827     [propget, id(DISPID_IHTMLELEMENT_LANG)]
1828     HRESULT lang([retval, out] BSTR *p);
1829
1830     [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)]
1831     HRESULT offsetLeft([retval, out] long *p);
1832
1833     [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)]
1834     HRESULT offsetTop([retval, out] long *p);
1835
1836     [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)]
1837     HRESULT offsetWidth([retval, out] long *p);
1838
1839     [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)]
1840     HRESULT offsetHeight([retval, out] long *p);
1841
1842     [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)]
1843     HRESULT offsetParent([retval, out] IHTMLElement **p);
1844
1845     [propput, id(DISPID_IHTMLELEMENT_INNERHTML)]
1846     HRESULT innerHTML([in] BSTR v);
1847
1848     [propget, id(DISPID_IHTMLELEMENT_INNERHTML)]
1849     HRESULT innerHTML([retval, out] BSTR *p);
1850
1851     [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)]
1852     HRESULT innerText([in] BSTR v);
1853
1854     [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)]
1855     HRESULT innerText([retval, out] BSTR *p);
1856
1857     [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)]
1858     HRESULT outerHTML([in] BSTR v);
1859
1860     [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)]
1861     HRESULT outerHTML([retval, out] BSTR *p);
1862
1863     [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
1864     HRESULT outerText([in] BSTR v);
1865
1866     [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
1867     HRESULT outerText([retval, out] BSTR *p);
1868
1869     [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)]
1870     HRESULT insertAdjacentHTML([in] BSTR where, [in] BSTR html);
1871
1872     [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)]
1873     HRESULT insertAdjacentText([in] BSTR where, [in] BSTR text);
1874
1875     [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)]
1876     HRESULT parentTextEdit([retval, out] IHTMLElement **p);
1877
1878     [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)]
1879     HRESULT isTextEdit([retval, out] VARIANT_BOOL *p);
1880
1881     [id(DISPID_IHTMLELEMENT_CLICK)]
1882     HRESULT click();
1883
1884     [propget, id(DISPID_IHTMLELEMENT_FILTERS)]
1885     HRESULT filters([retval, out] IHTMLFiltersCollection **p);
1886
1887     [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART)]
1888     HRESULT ondragstart([in] VARIANT v);
1889
1890     [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART)]
1891     HRESULT ondragstart([retval, out] VARIANT *p);
1892
1893     [id(DISPID_IHTMLELEMENT_TOSTRING)]
1894     HRESULT toString([retval, out] BSTR *String);
1895
1896     [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE)]
1897     HRESULT onbeforeupdate([in] VARIANT v);
1898
1899     [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE)]
1900     HRESULT onbeforeupdate([retval, out] VARIANT *p);
1901
1902     [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE)]
1903     HRESULT onafterupdate([in] VARIANT v);
1904
1905     [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE)]
1906     HRESULT onafterupdate([retval, out] VARIANT *p);
1907
1908     [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE)]
1909     HRESULT onerrorupdate([in] VARIANT v);
1910
1911     [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE)]
1912     HRESULT onerrorupdate([retval, out] VARIANT *p);
1913
1914     [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT)]
1915     HRESULT onrowexit([in] VARIANT v);
1916
1917     [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT)]
1918     HRESULT onrowexit([retval, out] VARIANT *p);
1919
1920     [propput, id(DISPID_IHTMLELEMENT_ONROWENTER)]
1921     HRESULT onrowenter([in] VARIANT v);
1922
1923     [propget, id(DISPID_IHTMLELEMENT_ONROWENTER)]
1924     HRESULT onrowenter([retval, out] VARIANT *p);
1925
1926     [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED)]
1927     HRESULT ondatasetchanged([in] VARIANT v);
1928
1929     [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED)]
1930     HRESULT ondatasetchanged([retval, out] VARIANT *p);
1931
1932     [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE)]
1933     HRESULT ondataavailable([in] VARIANT v);
1934
1935     [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE)]
1936     HRESULT ondataavailable([retval, out] VARIANT *p);
1937
1938     [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE)]
1939     HRESULT ondatasetcomplete([in] VARIANT v);
1940
1941     [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE)]
1942     HRESULT ondatasetcomplete([retval, out] VARIANT *p);
1943
1944     [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE)]
1945     HRESULT onfilterchange([in] VARIANT v);
1946
1947     [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE)]
1948     HRESULT onfilterchange([retval, out] VARIANT *p);
1949
1950     [propget, id(DISPID_IHTMLELEMENT_CHILDREN)]
1951     HRESULT children([retval, out] IDispatch **p);
1952
1953     [propget, id(DISPID_IHTMLELEMENT_ALL)]
1954     HRESULT all([retval, out] IDispatch **p);
1955 }
1956
1957 /*****************************************************************************
1958  *    IHTMLElement2 interface
1959  */
1960 [
1961     odl,
1962     oleautomation,
1963     dual,
1964     uuid(3050f434-98b5-11cf-bb82-00aa00bdce0b)
1965 ]
1966 interface IHTMLElement2 : IDispatch
1967 {
1968     [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)]
1969     HRESULT scopeName([retval, out] BSTR *p);
1970
1971     [id(DISPID_IHTMLELEMENT2_SETCAPTURE)]
1972     HRESULT setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
1973
1974     [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)]
1975     HRESULT releaseCapture();
1976
1977     [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
1978     HRESULT onlosecapture([in] VARIANT v);
1979
1980     [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
1981     HRESULT onlosecapture([retval, out] VARIANT *p);
1982
1983     [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)]
1984     HRESULT componentFromPoint(
1985         [in] long x,
1986         [in] long y,
1987         [retval, out] BSTR *component);
1988
1989     [id(DISPID_IHTMLELEMENT2_DOSCROLL)]
1990     HRESULT doScroll([optional, in] VARIANT component);
1991
1992     [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
1993     HRESULT onscroll([in] VARIANT v);
1994
1995     [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
1996     HRESULT onscroll([retval, out] VARIANT *p);
1997
1998     [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
1999     HRESULT ondrag([in] VARIANT v);
2000
2001     [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
2002     HRESULT ondrag([retval, out] VARIANT *p);
2003
2004     [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
2005     HRESULT ondragend([in] VARIANT v);
2006
2007     [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
2008     HRESULT ondragend([retval, out] VARIANT *p);
2009
2010     [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
2011     HRESULT ondragenter([in] VARIANT v);
2012
2013     [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
2014     HRESULT ondragenter([retval, out] VARIANT *p);
2015
2016     [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
2017     HRESULT ondragover([in] VARIANT v);
2018
2019     [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
2020     HRESULT ondragover([retval, out] VARIANT *p);
2021
2022     [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
2023     HRESULT ondragleave([in] VARIANT v);
2024
2025     [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
2026     HRESULT ondragleave([retval, out] VARIANT *p);
2027
2028     [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable]
2029     HRESULT ondrop([in] VARIANT v);
2030
2031     [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable]
2032     HRESULT ondrop([retval, out] VARIANT *p);
2033
2034     [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable]
2035     HRESULT onbeforecut([in] VARIANT v);
2036
2037     [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable]
2038     HRESULT onbeforecut([retval, out] VARIANT *p);
2039
2040     [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable]
2041     HRESULT oncut([in] VARIANT v);
2042
2043     [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable]
2044     HRESULT oncut([retval, out] VARIANT *p);
2045
2046     [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable]
2047     HRESULT onbeforecopy([in] VARIANT v);
2048
2049     [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable]
2050     HRESULT onbeforecopy([retval, out] VARIANT *p);
2051
2052     [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable]
2053     HRESULT oncopy([in] VARIANT v);
2054
2055     [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable]
2056     HRESULT oncopy([retval, out] VARIANT *p);
2057
2058     [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable]
2059     HRESULT onbeforepaste([in] VARIANT v);
2060
2061     [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable]
2062     HRESULT onbeforepaste([retval, out] VARIANT *p);
2063
2064     [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable]
2065     HRESULT onpaste([in] VARIANT v);
2066
2067     [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable]
2068     HRESULT onpaste([retval, out] VARIANT *p);
2069
2070     [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable]
2071     HRESULT currentStyle([retval, out] IHTMLCurrentStyle **p);
2072
2073     [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable]
2074     HRESULT onpropertychange([in] VARIANT v);
2075
2076     [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable]
2077     HRESULT onpropertychange([retval, out] VARIANT *p);
2078
2079     [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)]
2080     HRESULT getClientRects([retval, out] IHTMLRectCollection **pRectCol);
2081
2082     [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)]
2083     HRESULT getBoundingClientRect([retval, out] IHTMLRect **pRect);
2084
2085     [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)]
2086     HRESULT setExpression(
2087         [in] BSTR propname,
2088         [in] BSTR expression,
2089         [defaultvalue(""), in] BSTR language);
2090
2091     [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)]
2092     HRESULT getExpression(
2093         [in] BSTR propname,
2094         [retval, out] VARIANT *expression);
2095
2096     [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)]
2097     HRESULT removeExpression(
2098         [in] BSTR propname,
2099         [retval, out] VARIANT_BOOL *pfSuccess);
2100
2101     [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable]
2102     HRESULT tabIndex([in] short v);
2103
2104     [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable]
2105     HRESULT tabIndex([retval, out] short *p);
2106
2107     [id(DISPID_IHTMLELEMENT2_FOCUS)]
2108     HRESULT focus();
2109
2110     [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable]
2111     HRESULT accessKey([in] BSTR v);
2112
2113     [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable]
2114     HRESULT accessKey([retval, out] BSTR *p);
2115
2116     [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable]
2117     HRESULT onblur([in] VARIANT v);
2118
2119     [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable]
2120     HRESULT onblur([retval, out] VARIANT *p);
2121
2122     [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable]
2123     HRESULT onfocus([in] VARIANT v);
2124
2125     [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable]
2126     HRESULT onfocus([retval, out] VARIANT *p);
2127
2128     [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable]
2129     HRESULT onresize([in] VARIANT v);
2130
2131     [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable]
2132     HRESULT onresize([retval, out] VARIANT *p);
2133
2134     [id(DISPID_IHTMLELEMENT2_BLUR)]
2135     HRESULT blur();
2136
2137     [id(DISPID_IHTMLELEMENT2_ADDFILTER)]
2138     HRESULT addFilter([in] IUnknown *pUnk);
2139
2140     [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)]
2141     HRESULT removeFilter([in] IUnknown *pUnk);
2142
2143     [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable]
2144     HRESULT clientHeight([retval, out] long *p);
2145
2146     [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable]
2147     HRESULT clientWidth([retval, out] long *p);
2148
2149     [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable]
2150     HRESULT clientTop([retval, out] long *p);
2151
2152     [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable]
2153     HRESULT clientLeft([retval, out] long *p);
2154
2155     [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)]
2156     HRESULT attachEvent(
2157         [in] BSTR event,
2158         [in] IDispatch *pDisp,
2159         [retval, out] VARIANT_BOOL *pfResult);
2160
2161     [id(DISPID_IHTMLELEMENT2_DETACHEVENT)]
2162     HRESULT detachEvent(
2163         [in] BSTR event,
2164         [in] IDispatch *pDisp);
2165
2166     [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)]
2167     HRESULT readyState([retval, out] VARIANT *p);
2168
2169     [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable]
2170     HRESULT onreadystatechange([in] VARIANT v);
2171
2172     [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable]
2173     HRESULT onreadystatechange([retval, out] VARIANT *p);
2174
2175     [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable]
2176     HRESULT onrowsdelete([in] VARIANT v);
2177
2178     [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable]
2179     HRESULT onrowsdelete([retval, out] VARIANT *p);
2180
2181     [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable]
2182     HRESULT onrowsinserted([in] VARIANT v);
2183
2184     [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable]
2185     HRESULT onrowsinserted([retval, out] VARIANT *p);
2186
2187     [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable]
2188     HRESULT oncellchange([in] VARIANT v);
2189
2190     [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable]
2191     HRESULT oncellchange([retval, out] VARIANT *p);
2192
2193     [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable]
2194     HRESULT dir([in] BSTR v);
2195
2196     [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable]
2197     HRESULT dir([retval, out] BSTR *p);
2198
2199     [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)]
2200     HRESULT createControlRange([retval, out] IDispatch **range);
2201
2202     [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable]
2203     HRESULT scrollHeight([retval, out] long *p);
2204
2205     [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable]
2206     HRESULT scrollWidth([retval, out] long *p);
2207
2208     [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable]
2209     HRESULT scrollTop([in] long v);
2210
2211     [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable]
2212     HRESULT scrollTop([retval, out] long *p);
2213
2214     [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable]
2215     HRESULT scrollLeft([in] long v);
2216
2217     [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable]
2218     HRESULT scrollLeft([retval, out] long *p);
2219
2220     [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)]
2221     HRESULT clearAttributes();
2222
2223     [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)]
2224     HRESULT mergeAttributes([in] IHTMLElement *mergeThis);
2225
2226     [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable]
2227     HRESULT oncontextmenu([in] VARIANT v);
2228
2229     [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable]
2230     HRESULT oncontextmenu([retval, out] VARIANT *p);
2231
2232     [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)]
2233     HRESULT insertAdjacentElement(
2234         [in] BSTR where,
2235         [in] IHTMLElement *insertedElement,
2236         [retval, out] IHTMLElement **inserted);
2237
2238     [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)]
2239     HRESULT applyElement(
2240         [in] IHTMLElement *apply,
2241         [in] BSTR where,
2242         [retval, out] IHTMLElement **applied);
2243
2244     [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)]
2245     HRESULT getAdjacentText(
2246         [in] BSTR where,
2247         [retval, out] BSTR *text);
2248
2249     [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)]
2250     HRESULT replaceAdjacentText(
2251         [in] BSTR where,
2252         [in] BSTR newText,
2253         [retval, out] BSTR *oldText);
2254
2255     [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)]
2256     HRESULT canHaveChildren([retval, out] VARIANT_BOOL *p);
2257
2258     [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)]
2259     HRESULT addBehavior(
2260         [in] BSTR bstrUrl,
2261         [optional, in] VARIANT *pvarFactory,
2262         [retval, out] long *pCookie);
2263
2264     [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)]
2265     HRESULT removeBehavior(
2266         [in] long cookie,
2267         [retval, out] VARIANT_BOOL *pfResult);
2268
2269     [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable]
2270     HRESULT runtimeStyle([retval, out] IHTMLStyle **p);
2271
2272     [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)]
2273     HRESULT behaviorUrns([retval, out] IDispatch **p);
2274
2275     [propput, id(DISPID_IHTMLELEMENT2_TAGURN)]
2276     HRESULT tagUrn([in] BSTR v);
2277
2278     [propget, id(DISPID_IHTMLELEMENT2_TAGURN)]
2279     HRESULT tagUrn([retval, out] BSTR *p);
2280
2281     [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable]
2282     HRESULT onbeforeeditfocus([in] VARIANT v);
2283
2284     [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable]
2285     HRESULT onbeforeeditfocus([retval, out] VARIANT *p);
2286
2287     [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted]
2288     HRESULT readyStateValue([retval, out] long *p);
2289
2290     [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)]
2291     HRESULT getElementsByTagName(
2292         [in] BSTR v,
2293         [retval, out] IHTMLElementCollection **pelColl);
2294 }
2295
2296 /*****************************************************************************
2297  *    IHTMLStyleSheetRule interface
2298  */
2299 [
2300     odl,
2301     oleautomation,
2302     dual,
2303     uuid(3050F357-98B5-11CF-BB82-00AA00BDCE0B)
2304 ]
2305 interface IHTMLStyleSheetRule : IDispatch
2306 {
2307     [propput, id(DISPID_IHTMLSTYLESHEETRULE_SELECTORTEXT)]
2308     HRESULT selectorText([in] BSTR v);
2309
2310     [propget, id(DISPID_IHTMLSTYLESHEETRULE_SELECTORTEXT)]
2311     HRESULT selectorText([retval, out] BSTR *p);
2312
2313     [propget, id(DISPID_IHTMLSTYLESHEETRULE_STYLE)]
2314     HRESULT style([retval, out] IHTMLRuleStyle **p);
2315
2316     [propget, id(DISPID_IHTMLSTYLESHEETRULE_READONLY)]
2317     HRESULT readOnly([retval, out] VARIANT_BOOL *p);
2318 }
2319
2320 /*****************************************************************************
2321  *    IHTMLStyleSheetRulesCollection interface
2322  */
2323 [
2324     odl,
2325     oleautomation,
2326     dual,
2327     uuid(3050F2E5-98B5-11Cf-BB82-00AA00BDCE0B)
2328 ]
2329 interface IHTMLStyleSheetRulesCollection : IDispatch
2330 {
2331     [propget, id(DISPID_IHTMLSTYLESHEETRULESCOLLECTION_LENGTH)]
2332     HRESULT length([retval, out] long *p);
2333
2334     [id(DISPID_IHTMLSTYLESHEETRULESCOLLECTION_ITEM)]
2335     HRESULT item(
2336         [in] long index,
2337         [retval, out] IHTMLStyleSheetRule **ppHTMLStyleSheetRule);
2338 }
2339
2340 /*****************************************************************************
2341  *    IHTMLStyleSheet interface
2342  */
2343 [
2344     odl,
2345     oleautomation,
2346     dual,
2347     uuid(3050F2E3-98B5-11CF-BB82-00AA00BDCE0B)
2348 ]
2349 interface IHTMLStyleSheet : IDispatch
2350 {
2351     [propput, id(DISPID_IHTMLSTYLESHEET_TITLE)]
2352     HRESULT title([in] BSTR v);
2353
2354     [propget, id(DISPID_IHTMLSTYLESHEET_TITLE)]
2355     HRESULT title([retval, out] BSTR *p);
2356
2357     [propget, id(DISPID_IHTMLSTYLESHEET_PARENTSTYLESHEET)]
2358     HRESULT parentStyleSheet([retval, out] IHTMLStyleSheet **p);
2359
2360     [propget, id(DISPID_IHTMLSTYLESHEET_OWNINGELEMENT)]
2361     HRESULT owningElement([retval, out] IHTMLElement **p);
2362
2363     [propput, id(DISPID_IHTMLSTYLESHEET_DISABLED)]
2364     HRESULT disabled([in] VARIANT_BOOL v);
2365
2366     [propget, id(DISPID_IHTMLSTYLESHEET_DISABLED)]
2367     HRESULT disabled([retval, out] VARIANT_BOOL *p);
2368
2369     [propget, id(DISPID_IHTMLSTYLESHEET_READONLY)]
2370     HRESULT readOnly([retval, out] VARIANT_BOOL *p);
2371
2372     [propget, id(DISPID_IHTMLSTYLESHEET_IMPORTS)]
2373     HRESULT imports([retval, out] IHTMLStyleSheetsCollection **p);
2374
2375     [propput, id(DISPID_IHTMLSTYLESHEET_HREF)]
2376     HRESULT href([in] BSTR v);
2377
2378     [propget, id(DISPID_IHTMLSTYLESHEET_HREF)]
2379     HRESULT href([retval, out] BSTR *p);
2380
2381     [propget, id(DISPID_IHTMLSTYLESHEET_TYPE)]
2382     HRESULT type([retval, out] BSTR *p);
2383
2384     [propget, id(DISPID_IHTMLSTYLESHEET_ID)]
2385     HRESULT id([retval, out] BSTR *p);
2386
2387     [id(DISPID_IHTMLSTYLESHEET_ADDIMPORT)]
2388     HRESULT addImport(
2389         [in] BSTR bstrURL,
2390         [defaultvalue(-1), in] long lIndex,
2391         [retval, out] long *plIndex);
2392
2393     [id(DISPID_IHTMLSTYLESHEET_ADDRULE)]
2394     HRESULT addRule(
2395         [in] BSTR bstrSelector,
2396         [in] BSTR bstrStyle,
2397         [defaultvalue(-1), in] long lIndex,
2398         [retval, out] long *plNewIndex);
2399
2400     [id(DISPID_IHTMLSTYLESHEET_REMOVEIMPORT)]
2401     HRESULT removeImport([in] long lIndex);
2402
2403     [id(DISPID_IHTMLSTYLESHEET_REMOVERULE)]
2404     HRESULT removeRule([in] long lIndex);
2405
2406     [propput, id(DISPID_IHTMLSTYLESHEET_MEDIA)]
2407     HRESULT media([in] BSTR v);
2408
2409     [propget, id(DISPID_IHTMLSTYLESHEET_MEDIA)]
2410     HRESULT media([retval, out] BSTR *p);
2411
2412     [propput, id(DISPID_IHTMLSTYLESHEET_CSSTEXT)]
2413     HRESULT cssText([in] BSTR v);
2414
2415     [propget, id(DISPID_IHTMLSTYLESHEET_CSSTEXT)]
2416     HRESULT cssText([retval, out] BSTR *p);
2417
2418     [propget, id(DISPID_IHTMLSTYLESHEET_RULES)]
2419     HRESULT rules([retval, out] IHTMLStyleSheetRulesCollection **p);
2420 }
2421
2422 /*****************************************************************************
2423  *    IHTMLStyleSheetsCollection interface
2424  */
2425 [
2426     odl,
2427     oleautomation,
2428     dual,
2429     uuid(3050F37E-98B5-11CF-BB82-00AA00BDCE0B)
2430 ]
2431 interface IHTMLStyleSheetsCollection : IDispatch
2432 {
2433     [propget, id(DISPID_IHTMLSTYLESHEETSCOLLECTION_LENGTH)]
2434     HRESULT length([retval, out] long *p);
2435
2436     [propget, id(DISPID_IHTMLSTYLESHEETSCOLLECTION__NEWENUM)]
2437     HRESULT _newEnum([retval, out] IUnknown **p);
2438
2439     [id(DISPID_IHTMLSTYLESHEETSCOLLECTION_ITEM)]
2440     HRESULT item(
2441         [in] VARIANT *pvarIndex,
2442         [retval, out] VARIANT *pvarResult);
2443 }
2444
2445 /*****************************************************************************
2446  *    IHTMLTxtRange interface
2447  */
2448 [
2449     odl,
2450     oleautomation,
2451     dual,
2452     uuid(3050f220-98b5-11cf-bb82-00aa00bdce0b)
2453 ]
2454 interface IHTMLTxtRange : IDispatch
2455 {
2456     [propget, id(DISPID_IHTMLTXTRANGE_HTMLTEXT)]
2457     HRESULT htmlText([retval, out] BSTR *p);
2458
2459     [propput, id(DISPID_IHTMLTXTRANGE_TEXT)]
2460     HRESULT text([in] BSTR v);
2461
2462     [propget, id(DISPID_IHTMLTXTRANGE_TEXT)]
2463     HRESULT text([retval, out] BSTR *p);
2464
2465     [id(DISPID_IHTMLTXTRANGE_PARENTELEMENT)]
2466     HRESULT parentElement([retval, out] IHTMLElement **parent);
2467
2468     [id(DISPID_IHTMLTXTRANGE_DUPLICATE)]
2469     HRESULT duplicate([retval, out] IHTMLTxtRange **Duplicate);
2470
2471     [id(DISPID_IHTMLTXTRANGE_INRANGE)]
2472     HRESULT inRange(
2473         [in] IHTMLTxtRange *Range,
2474         [retval, out] VARIANT_BOOL *InRange);
2475
2476     [id(DISPID_IHTMLTXTRANGE_ISEQUAL)]
2477     HRESULT isEqual(
2478         [in] IHTMLTxtRange *Range,
2479         [retval, out] VARIANT_BOOL *IsEqual);
2480
2481     [id(DISPID_IHTMLTXTRANGE_SCROLLINTOVIEW)]
2482     HRESULT scrollIntoView([defaultvalue(-1), in] VARIANT_BOOL fStart);
2483
2484     [id(DISPID_IHTMLTXTRANGE_COLLAPSE)]
2485     HRESULT collapse([defaultvalue(-1), in] VARIANT_BOOL Start);
2486
2487     [id(DISPID_IHTMLTXTRANGE_EXPAND)]
2488     HRESULT expand(
2489         [in] BSTR Unit,
2490         [retval, out] VARIANT_BOOL *Success);
2491
2492     [id(DISPID_IHTMLTXTRANGE_MOVE)]
2493     HRESULT move(
2494         [in] BSTR Unit,
2495         [defaultvalue(1), in] long Count,
2496         [retval, out] long *ActualCount);
2497
2498     [id(DISPID_IHTMLTXTRANGE_MOVESTART)]
2499     HRESULT moveStart(
2500         [in] BSTR Unit,
2501         [defaultvalue(1), in] long Count,
2502         [retval, out] long *ActualCount);
2503
2504     [id(DISPID_IHTMLTXTRANGE_MOVEEND)]
2505     HRESULT moveEnd(
2506         [in] BSTR Unit,
2507         [defaultvalue(1), in] long Count,
2508         [retval, out] long *ActualCount);
2509
2510     [id(DISPID_IHTMLTXTRANGE_SELECT)]
2511     HRESULT select();
2512
2513     [id(DISPID_IHTMLTXTRANGE_PASTEHTML)]
2514     HRESULT pasteHTML([in] BSTR html);
2515
2516     [id(DISPID_IHTMLTXTRANGE_MOVETOELEMENTTEXT)]
2517     HRESULT moveToElementText([in] IHTMLElement *element);
2518
2519     [id(DISPID_IHTMLTXTRANGE_SETENDPOINT)]
2520     HRESULT setEndPoint(
2521         [in] BSTR how,
2522         [in] IHTMLTxtRange *SourceRange);
2523
2524     [id(DISPID_IHTMLTXTRANGE_COMPAREENDPOINTS)]
2525     HRESULT compareEndPoints(
2526         [in] BSTR how,
2527         [in] IHTMLTxtRange *SourceRange,
2528         [retval, out] long *ret);
2529
2530     [id(DISPID_IHTMLTXTRANGE_FINDTEXT)]
2531     HRESULT findText(
2532         [in] BSTR String,
2533         [defaultvalue(1073741823), in] long count,
2534         [defaultvalue(0), in] long Flags,
2535         [retval, out] VARIANT_BOOL *Success);
2536
2537     [id(DISPID_IHTMLTXTRANGE_MOVETOPOINT)]
2538     HRESULT moveToPoint(
2539         [in] long x,
2540         [in] long y);
2541
2542     [id(DISPID_IHTMLTXTRANGE_GETBOOKMARK)]
2543     HRESULT getBookmark([retval, out] BSTR *Boolmark);
2544
2545     [id(DISPID_IHTMLTXTRANGE_MOVETOBOOKMARK)]
2546     HRESULT moveToBookmark(
2547         [in] BSTR Bookmark,
2548         [retval, out] VARIANT_BOOL *Success);
2549
2550     [id(DISPID_IHTMLTXTRANGE_QUERYCOMMANDSUPPORTED)]
2551     HRESULT queryCommandSupported(
2552         [in] BSTR cmdID,
2553         [retval, out] VARIANT_BOOL *pfRet);
2554
2555     [id(DISPID_IHTMLTXTRANGE_QUERYCOMMANDENABLED)]
2556     HRESULT queryCommandEnabled(
2557         [in] BSTR cmdID,
2558         [retval, out] VARIANT_BOOL *pfRet);
2559
2560     [id(DISPID_IHTMLTXTRANGE_QUERYCOMMANDSTATE)]
2561     HRESULT queryCommandState(
2562         [in] BSTR cmdID,
2563         [retval, out] VARIANT_BOOL *pfRet);
2564
2565     [id(DISPID_IHTMLTXTRANGE_QUERYCOMMANDINDETERM)]
2566     HRESULT queryCommandIndeterm(
2567         [in] BSTR cmdID,
2568         [retval, out] VARIANT_BOOL *pfRet);
2569
2570     [id(DISPID_IHTMLTXTRANGE_QUERYCOMMANDTEXT)]
2571     HRESULT queryCommandText(
2572         [in] BSTR cmdID,
2573         [retval, out] BSTR *pcmdText);
2574
2575     [id(DISPID_IHTMLTXTRANGE_QUERYCOMMANDVALUE)]
2576     HRESULT queryCommandValue(
2577         [in] BSTR cmdID,
2578         [retval, out] VARIANT *pcmdValue);
2579
2580     [id(DISPID_IHTMLTXTRANGE_EXECCOMMAND)]
2581     HRESULT execCommand(
2582         [in] BSTR cmdID,
2583         [defaultvalue(0), in] VARIANT_BOOL showUI,
2584         [optional, in] VARIANT value,
2585         [retval, out] VARIANT_BOOL *pfRet);
2586
2587     [id(DISPID_IHTMLTXTRANGE_EXECCOMMANDSHOWHELP)]
2588     HRESULT execCommandShowHelp(
2589         [in] BSTR cmdID,
2590         [retval, out] VARIANT_BOOL *pfRet);
2591 }
2592
2593 /*****************************************************************************
2594  *    IHTMLFormElement interface
2595  */
2596 [
2597     odl,
2598     oleautomation,
2599     dual,
2600     uuid(3050F1F7-98B5-11CF-BB82-00AA00BDCE0B)
2601 ]
2602 interface IHTMLFormElement : IDispatch
2603 {
2604     [propput, id(DISPID_IHTMLFORMELEMENT_ACTION)]
2605     HRESULT action([in] BSTR v);
2606
2607     [propget, id(DISPID_IHTMLFORMELEMENT_ACTION)]
2608     HRESULT action([retval, out] BSTR *p);
2609
2610     [propput, id(DISPID_IHTMLFORMELEMENT_DIR)]
2611     HRESULT dir([in] BSTR v);
2612
2613     [propget, id(DISPID_IHTMLFORMELEMENT_DIR)]
2614     HRESULT dir([retval, out] BSTR *p);
2615
2616     [propput, id(DISPID_IHTMLFORMELEMENT_ENCODING)]
2617     HRESULT encoding([in] BSTR v);
2618
2619     [propget, id(DISPID_IHTMLFORMELEMENT_ENCODING)]
2620     HRESULT encoding([retval, out] BSTR *p);
2621
2622     [propput, id(DISPID_IHTMLFORMELEMENT_METHOD)]
2623     HRESULT method([in] BSTR v);
2624
2625     [propget, id(DISPID_IHTMLFORMELEMENT_METHOD)]
2626     HRESULT method([retval, out] BSTR *p);
2627
2628     [propget, id(DISPID_IHTMLFORMELEMENT_ELEMENTS)]
2629     HRESULT elements([retval, out] IDispatch **p);
2630
2631     [propput, id(DISPID_IHTMLFORMELEMENT_TARGET)]
2632     HRESULT target([in] BSTR v);
2633
2634     [propget, id(DISPID_IHTMLFORMELEMENT_TARGET)]
2635     HRESULT target([retval, out] BSTR *p);
2636
2637     [propput, id(DISPID_IHTMLFORMELEMENT_NAME)]
2638     HRESULT name([in] BSTR v);
2639
2640     [propget, id(DISPID_IHTMLFORMELEMENT_NAME)]
2641     HRESULT name([retval, out] BSTR *p);
2642
2643     [propput, id(DISPID_IHTMLFORMELEMENT_ONSUBMIT)]
2644     HRESULT onsubmit([in] VARIANT v);
2645
2646     [propget, id(DISPID_IHTMLFORMELEMENT_ONSUBMIT)]
2647     HRESULT onsubmit([retval, out] VARIANT *p);
2648
2649     [propput, id(DISPID_IHTMLFORMELEMENT_ONRESET)]
2650     HRESULT onreset([in] VARIANT v);
2651
2652     [propget, id(DISPID_IHTMLFORMELEMENT_ONRESET)]
2653     HRESULT onreset([retval, out] VARIANT *p);
2654
2655     [id(DISPID_IHTMLFORMELEMENT_SUBMIT)]
2656     HRESULT submit();
2657
2658     [id(DISPID_IHTMLFORMELEMENT_RESET)]
2659     HRESULT reset();
2660
2661     [propput, id(DISPID_IHTMLFORMELEMENT_LENGTH)]
2662     HRESULT length([in] long v);
2663
2664     [propget, id(DISPID_IHTMLFORMELEMENT_LENGTH)]
2665     HRESULT length([retval, out] long *p);
2666
2667     [propget, id(DISPID_IHTMLFORMELEMENT__NEWENUM)]
2668     HRESULT _newEnum([retval, out] IUnknown **p);
2669
2670     [id(DISPID_IHTMLFORMELEMENT_ITEM)]
2671     HRESULT item(
2672         [optional, in] VARIANT name,
2673         [optional, in] VARIANT index,
2674         [retval, out] IDispatch **pdisp);
2675
2676     [id(DISPID_IHTMLFORMELEMENT_TAGS)]
2677     HRESULT tags(
2678         [in] VARIANT tagName,
2679         [retval, out] IDispatch **pdisp);
2680 }
2681
2682 /*****************************************************************************
2683  *    IHTMLImgElement interface
2684  */
2685 [
2686     odl,
2687     oleautomation,
2688     dual,
2689     uuid(3050F240-98B5-11CF-BB82-00AA00BDCE0B)
2690 ]
2691 interface IHTMLImgElement : IDispatch
2692 {
2693     [propput, id(DISPID_IHTMLIMGELEMENT_ISMAP)]
2694     HRESULT isMap([in] VARIANT_BOOL v);
2695
2696     [propget, id(DISPID_IHTMLIMGELEMENT_ISMAP)]
2697     HRESULT isMap([retval, out] VARIANT_BOOL *p);
2698
2699     [propput, id(DISPID_IHTMLIMGELEMENT_USEMAP)]
2700     HRESULT useMap([in] BSTR v);
2701
2702     [propget, id(DISPID_IHTMLIMGELEMENT_USEMAP)]
2703     HRESULT useMap([retval, out] BSTR *p);
2704
2705     [propget, id(DISPID_IHTMLIMGELEMENT_MIMETYPE)]
2706     HRESULT mimeType([retval, out] BSTR *p);
2707
2708     [propget, id(DISPID_IHTMLIMGELEMENT_FILESIZE)]
2709     HRESULT fileSize([retval, out] BSTR *p);
2710
2711     [propget, id(DISPID_IHTMLIMGELEMENT_FILECREATEDDATE)]
2712     HRESULT fileCreatedDate([retval, out] BSTR *p);
2713
2714     [propget, id(DISPID_IHTMLIMGELEMENT_FILEMODIFIEDDATE)]
2715     HRESULT fileModifiedDate([retval, out] BSTR *p);
2716
2717     [propget, id(DISPID_IHTMLIMGELEMENT_FILEUPDATEDDATE)]
2718     HRESULT fileUpdatedDate([retval, out] BSTR *p);
2719
2720     [propget, id(DISPID_IHTMLIMGELEMENT_PROTOCOL)]
2721     HRESULT protocol([retval, out] BSTR *p);
2722
2723     [propget, id(DISPID_IHTMLIMGELEMENT_HREF)]
2724     HRESULT href([retval, out] BSTR *p);
2725
2726     [propget, id(DISPID_IHTMLIMGELEMENT_NAMEPROP)]
2727     HRESULT nameProp([retval, out] BSTR *p);
2728
2729     [propput, id(DISPID_IHTMLIMGELEMENT_BORDER)]
2730     HRESULT border([in] VARIANT v);
2731
2732     [propget, id(DISPID_IHTMLIMGELEMENT_BORDER)]
2733     HRESULT border([retval, out] VARIANT *p);
2734
2735     [propput, id(DISPID_IHTMLIMGELEMENT_VSPACE)]
2736     HRESULT vspace([in] long v);
2737
2738     [propget, id(DISPID_IHTMLIMGELEMENT_VSPACE)]
2739     HRESULT vspace([retval, out] long *p);
2740
2741     [propput, id(DISPID_IHTMLIMGELEMENT_HSPACE)]
2742     HRESULT hspace([in] long v);
2743
2744     [propget, id(DISPID_IHTMLIMGELEMENT_HSPACE)]
2745     HRESULT hspace([retval, out] long *p);
2746
2747     [propput, id(DISPID_IHTMLIMGELEMENT_ALT)]
2748     HRESULT alt([in] BSTR v);
2749
2750     [propget, id(DISPID_IHTMLIMGELEMENT_ALT)]
2751     HRESULT alt([retval, out] BSTR *p);
2752
2753     [propput, id(DISPID_IHTMLIMGELEMENT_SRC)]
2754     HRESULT src([in] BSTR v);
2755
2756     [propget, id(DISPID_IHTMLIMGELEMENT_SRC)]
2757     HRESULT src([retval, out] BSTR *p);
2758
2759     [propput, id(DISPID_IHTMLIMGELEMENT_LOWSRC)]
2760     HRESULT lowsrc([in] BSTR v);
2761
2762     [propget, id(DISPID_IHTMLIMGELEMENT_LOWSRC)]
2763     HRESULT lowsrc([retval, out] BSTR *p);
2764
2765     [propput, id(DISPID_IHTMLIMGELEMENT_VRML)]
2766     HRESULT vrml([in] BSTR v);
2767
2768     [propget, id(DISPID_IHTMLIMGELEMENT_VRML)]
2769     HRESULT vrml([retval, out] BSTR *p);
2770
2771     [propput, id(DISPID_IHTMLIMGELEMENT_DYNSRC)]
2772     HRESULT dynsrc([in] BSTR v);
2773
2774     [propget, id(DISPID_IHTMLIMGELEMENT_DYNSRC)]
2775     HRESULT dynsrc([retval, out] BSTR *p);
2776
2777     [propget, id(DISPID_IHTMLIMGELEMENT_READYSTATE)]
2778     HRESULT readyState([retval, out] BSTR *p);
2779
2780     [propget, id(DISPID_IHTMLIMGELEMENT_COMPLETE)]
2781     HRESULT complete([retval, out] VARIANT_BOOL *p);
2782
2783     [propput, id(DISPID_IHTMLIMGELEMENT_LOOP)]
2784     HRESULT loop([in] VARIANT v);
2785
2786     [propget, id(DISPID_IHTMLIMGELEMENT_LOOP)]
2787     HRESULT loop([retval, out] VARIANT *p);
2788
2789     [propput, id(DISPID_IHTMLIMGELEMENT_ALIGN)]
2790     HRESULT align([in] BSTR v);
2791
2792     [propget, id(DISPID_IHTMLIMGELEMENT_ALIGN)]
2793     HRESULT align([retval, out] BSTR *p);
2794
2795     [propput, id(DISPID_IHTMLIMGELEMENT_ONLOAD)]
2796     HRESULT onload([in] VARIANT v);
2797
2798     [propget, id(DISPID_IHTMLIMGELEMENT_ONLOAD)]
2799     HRESULT onload([retval, out] VARIANT *p);
2800
2801     [propput, id(DISPID_IHTMLIMGELEMENT_ONERROR)]
2802     HRESULT onerror([in] VARIANT v);
2803
2804     [propget, id(DISPID_IHTMLIMGELEMENT_ONERROR)]
2805     HRESULT onerror([retval, out] VARIANT *p);
2806
2807     [propput, id(DISPID_IHTMLIMGELEMENT_ONABORT)]
2808     HRESULT onabort([in] VARIANT v);
2809
2810     [propget, id(DISPID_IHTMLIMGELEMENT_ONABORT)]
2811     HRESULT onabort([retval, out] VARIANT *p);
2812
2813     [propput, id(DISPID_IHTMLIMGELEMENT_NAME)]
2814     HRESULT name([in] BSTR v);
2815
2816     [propget, id(DISPID_IHTMLIMGELEMENT_NAME)]
2817     HRESULT name([retval, out] BSTR *p);
2818
2819     [propput, id(DISPID_IHTMLIMGELEMENT_WIDTH)]
2820     HRESULT width([in] long v);
2821
2822     [propget, id(DISPID_IHTMLIMGELEMENT_WIDTH)]
2823     HRESULT width([retval, out] long *p);
2824
2825     [propput, id(DISPID_IHTMLIMGELEMENT_HEIGHT)]
2826     HRESULT height([in] long v);
2827
2828     [propget, id(DISPID_IHTMLIMGELEMENT_HEIGHT)]
2829     HRESULT height([retval, out] long *p);
2830
2831     [propput, id(DISPID_IHTMLIMGELEMENT_START)]
2832     HRESULT start([in] BSTR v);
2833
2834     [propget, id(DISPID_IHTMLIMGELEMENT_START)]
2835     HRESULT start([retval, out] BSTR *p);
2836 }
2837
2838 /*****************************************************************************
2839  *    IHTMLImageElementFactory interface
2840  */
2841 [
2842     odl,
2843     oleautomation,
2844     dual,
2845     uuid(3050F38E-98B5-11CF-BB82-00AAA0BDCE0B)
2846 ]
2847 interface IHTMLImageElementFactory : IDispatch
2848 {
2849     [id(DISPID_IHTMLIMAGEELEMENTFACTORY_CREATE)]
2850     HRESULT create(
2851         [optional, in] VARIANT width,
2852         [optional, in] VARIANT height,
2853         [retval, out]  IHTMLImgElement **elem);
2854 }
2855
2856 /*****************************************************************************
2857  *    IHTMLBodyElement interface
2858  */
2859 [
2860     odl,
2861     oleautomation,
2862     dual,
2863     uuid(3050f1d8-98b5-11cf-bb82-00aa00bdce0b)
2864 ]
2865 interface IHTMLBodyElement : IDispatch
2866 {
2867     [propput, id(DISPID_IHTMLBODYELEMENT_BACKGROUND), displaybind, bindable]
2868     HRESULT background([in] BSTR v);
2869
2870     [propget, id(DISPID_IHTMLBODYELEMENT_BACKGROUND), displaybind, bindable]
2871     HRESULT background([retval, out] BSTR *p);
2872
2873     [propput, id(DISPID_IHTMLBODYELEMENT_BGPROPERTIES), displaybind, bindable]
2874     HRESULT bgProperties([in] BSTR v);
2875
2876     [propget, id(DISPID_IHTMLBODYELEMENT_BGPROPERTIES), displaybind, bindable]
2877     HRESULT bgProperties([retval, out] BSTR *p);
2878
2879     [propput, id(DISPID_IHTMLBODYELEMENT_LEFTMARGIN), displaybind, bindable]
2880     HRESULT leftMargin([in] VARIANT v);
2881
2882     [propget, id(DISPID_IHTMLBODYELEMENT_LEFTMARGIN), displaybind, bindable]
2883     HRESULT leftMargin([retval, out] VARIANT *p);
2884
2885     [propput, id(DISPID_IHTMLBODYELEMENT_TOPMARGIN), displaybind, bindable]
2886     HRESULT topMargin([in] VARIANT v);
2887
2888     [propget, id(DISPID_IHTMLBODYELEMENT_TOPMARGIN), displaybind, bindable]
2889     HRESULT topMargin([retval, out] VARIANT *p);
2890
2891     [propput, id(DISPID_IHTMLBODYELEMENT_RIGHTMARGIN), displaybind, bindable]
2892     HRESULT rightMargin([in] VARIANT v);
2893
2894     [propget, id(DISPID_IHTMLBODYELEMENT_RIGHTMARGIN), displaybind, bindable]
2895     HRESULT rightMargin([retval, out] VARIANT *p);
2896
2897     [propput, id(DISPID_IHTMLBODYELEMENT_BOTTOMMARGIN), displaybind, bindable]
2898     HRESULT bottomMargin([in] VARIANT v);
2899
2900     [propget, id(DISPID_IHTMLBODYELEMENT_BOTTOMMARGIN), displaybind, bindable]
2901     HRESULT bottomMargin([retval, out] VARIANT *p);
2902
2903     [propput, id(DISPID_IHTMLBODYELEMENT_NOWRAP), displaybind, bindable]
2904     HRESULT noWrap([in] VARIANT_BOOL v);
2905
2906     [propget, id(DISPID_IHTMLBODYELEMENT_NOWRAP), displaybind, bindable]
2907     HRESULT noWrap([retval, out] VARIANT_BOOL *p);
2908
2909     [propput, id(DISPID_IHTMLBODYELEMENT_BGCOLOR), displaybind, bindable]
2910     HRESULT bgColor([in] VARIANT v);
2911
2912     [propget, id(DISPID_IHTMLBODYELEMENT_BGCOLOR), displaybind, bindable]
2913     HRESULT bgColor([retval, out] VARIANT *p);
2914
2915     [propput, id(DISPID_IHTMLBODYELEMENT_TEXT), displaybind, bindable]
2916     HRESULT text([in] VARIANT v);
2917
2918     [propget, id(DISPID_IHTMLBODYELEMENT_TEXT), displaybind, bindable]
2919     HRESULT text([retval, out] VARIANT *p);
2920
2921     [propput, id(DISPID_IHTMLBODYELEMENT_LINK), displaybind, bindable]
2922     HRESULT link([in] VARIANT v);
2923
2924     [propget, id(DISPID_IHTMLBODYELEMENT_LINK), displaybind, bindable]
2925     HRESULT link([retval, out] VARIANT *p);
2926
2927     [propput, id(DISPID_IHTMLBODYELEMENT_VLINK), displaybind, bindable]
2928     HRESULT vLink([in] VARIANT v);
2929
2930     [propget, id(DISPID_IHTMLBODYELEMENT_VLINK), displaybind, bindable]
2931     HRESULT vLink([retval, out] VARIANT *p);
2932
2933     [propput, id(DISPID_IHTMLBODYELEMENT_ALINK), displaybind, bindable]
2934     HRESULT aLink([in] VARIANT v);
2935
2936     [propget, id(DISPID_IHTMLBODYELEMENT_ALINK), displaybind, bindable]
2937     HRESULT aLink([retval, out] VARIANT *p);
2938
2939     [propput, id(DISPID_IHTMLBODYELEMENT_ONLOAD), displaybind, bindable]
2940     HRESULT onload([in] VARIANT v);
2941
2942     [propget, id(DISPID_IHTMLBODYELEMENT_ONLOAD), displaybind, bindable]
2943     HRESULT onload([retval, out] VARIANT *p);
2944
2945     [propput, id(DISPID_IHTMLBODYELEMENT_ONUNLOAD), displaybind, bindable]
2946     HRESULT onunload([in] VARIANT v);
2947
2948     [propget, id(DISPID_IHTMLBODYELEMENT_ONUNLOAD), displaybind, bindable]
2949     HRESULT onunload([retval, out] VARIANT *p);
2950
2951     [propput, id(DISPID_IHTMLBODYELEMENT_SCROLL), displaybind, bindable]
2952     HRESULT scroll([in] BSTR v);
2953
2954     [propget, id(DISPID_IHTMLBODYELEMENT_SCROLL), displaybind, bindable]
2955     HRESULT scroll([retval, out] BSTR *p);
2956
2957     [propput, id(DISPID_IHTMLBODYELEMENT_ONSELECT), displaybind, bindable]
2958     HRESULT onselect([in] VARIANT v);
2959
2960     [propget, id(DISPID_IHTMLBODYELEMENT_ONSELECT), displaybind, bindable]
2961     HRESULT onselect([retval, out] VARIANT *p);
2962
2963     [propput, id(DISPID_IHTMLBODYELEMENT_ONBEFOREUNLOAD), displaybind, bindable]
2964     HRESULT onbeforeunload([in] VARIANT v);
2965
2966     [propget, id(DISPID_IHTMLBODYELEMENT_ONBEFOREUNLOAD), displaybind, bindable]
2967     HRESULT onbeforeunload([retval, out] VARIANT *p);
2968
2969     [id(DISPID_IHTMLBODYELEMENT_CREATETEXTRANGE)]
2970     HRESULT createTextRange([retval, out] IHTMLTxtRange **range);
2971 }
2972
2973 /*****************************************************************************
2974  *    IHTMLBodyElement2 interface
2975  */
2976 [
2977     odl,
2978     oleautomation,
2979     dual,
2980     uuid(3050f5c5-98b5-11cf-bb82-00aa00bdce0b)
2981 ]
2982 interface IHTMLBodyElement2 : IDispatch
2983 {
2984     [propput, id(DISPID_IHTMLBODYELEMENT2_ONBEFOREPRINT), displaybind, bindable]
2985     HRESULT onbeforeprint([in] VARIANT v);
2986
2987     [propget, id(DISPID_IHTMLBODYELEMENT2_ONBEFOREPRINT), displaybind, bindable]
2988     HRESULT onbeforeprint([retval, out] VARIANT *p);
2989
2990     [propput, id(DISPID_IHTMLBODYELEMENT2_ONAFTERPRINT), displaybind, bindable]
2991     HRESULT onafterprint([in] VARIANT v);
2992
2993     [propget, id(DISPID_IHTMLBODYELEMENT2_ONAFTERPRINT), displaybind, bindable]
2994     HRESULT onafterprint([retval, out] VARIANT *p);
2995 }
2996
2997
2998 /*****************************************************************************
2999  *    IHTMLElementCollection interface
3000  */
3001 [
3002     odl,
3003     oleautomation,
3004     dual,
3005     uuid(3050F21F-98B5-11CF-BB82-00AA00BDCE0B)
3006 ]
3007 interface IHTMLElementCollection : IDispatch
3008 {
3009     [id(DISPID_IHTMLELEMENTCOLLECTION_TOSTRING)]
3010     HRESULT toString([retval, out] BSTR *String);
3011
3012     [propput, id(DISPID_IHTMLELEMENTCOLLECTION_LENGTH)]
3013     HRESULT length([in] long v);
3014
3015     [propget, id(DISPID_IHTMLELEMENTCOLLECTION_LENGTH)]
3016     HRESULT length([retval, out] long *p);
3017
3018     [propget, id(DISPID_IHTMLELEMENTCOLLECTION__NEWENUM)]
3019     HRESULT _newEnum([retval, out] IUnknown **p);
3020
3021     [id(DISPID_IHTMLELEMENTCOLLECTION_ITEM)]
3022     HRESULT item(
3023         [optional, in] VARIANT name,
3024         [optional, in] VARIANT index,
3025         [retval,  out] IDispatch **pdisp);
3026
3027     [id(DISPID_IHTMLELEMENTCOLLECTION_TAGS)]
3028     HRESULT tags(
3029         [in] VARIANT tagName,
3030         [retval, out] IDispatch **pdisp);
3031 }
3032
3033 /*****************************************************************************
3034  *    IHTMLSelectElement interface
3035  */
3036 [
3037     odl,
3038     oleautomation,
3039     dual,
3040     uuid(3050f244-98b5-11cf-bb82-00aa00bdce0b)
3041 ]
3042 interface IHTMLSelectElement : IDispatch
3043 {
3044     [propput, id(DISPID_IHTMLSELECTELEMENT_SIZE), displaybind, bindable]
3045     HRESULT size([in] long v);
3046
3047     [propget, id(DISPID_IHTMLSELECTELEMENT_SIZE), displaybind, bindable]
3048     HRESULT size([retval, out] long *p);
3049
3050     [propput, id(DISPID_IHTMLSELECTELEMENT_MULTIPLE), displaybind, bindable]
3051     HRESULT multiple([in] VARIANT_BOOL v);
3052
3053     [propget, id(DISPID_IHTMLSELECTELEMENT_MULTIPLE), displaybind, bindable]
3054     HRESULT multiple([retval, out] VARIANT_BOOL *p);
3055
3056     [propput, id(DISPID_IHTMLSELECTELEMENT_NAME), displaybind, bindable]
3057     HRESULT name([in] BSTR v);
3058
3059     [propget, id(DISPID_IHTMLSELECTELEMENT_NAME), displaybind, bindable]
3060     HRESULT name([retval, out] BSTR *p);
3061
3062     [propget, id(DISPID_IHTMLSELECTELEMENT_OPTIONS)]
3063     HRESULT options([retval, out] IDispatch **p);
3064
3065     [propput, id(DISPID_IHTMLSELECTELEMENT_ONCHANGE), displaybind, bindable]
3066     HRESULT onchange([in] VARIANT v);
3067
3068     [propget, id(DISPID_IHTMLSELECTELEMENT_ONCHANGE), displaybind, bindable]
3069     HRESULT onchange([retval, out] VARIANT *p);
3070
3071     [propput, id(DISPID_IHTMLSELECTELEMENT_SELECTEDINDEX)]
3072     HRESULT selectedIndex([in] long v);
3073
3074     [propget, id(DISPID_IHTMLSELECTELEMENT_SELECTEDINDEX)]
3075     HRESULT selectedIndex([retval, out] long *p);
3076
3077     [propget, id(DISPID_IHTMLSELECTELEMENT_TYPE), displaybind, bindable]
3078     HRESULT type([retval, out] BSTR *p);
3079
3080     [propput, id(DISPID_IHTMLSELECTELEMENT_VALUE), displaybind, bindable]
3081     HRESULT value([in] BSTR v);
3082
3083     [propget, id(DISPID_IHTMLSELECTELEMENT_VALUE), displaybind, bindable]
3084     HRESULT value([retval, out] BSTR *p);
3085
3086     [propput, id(DISPID_IHTMLSELECTELEMENT_DISABLED), displaybind, bindable]
3087     HRESULT disabled([in] VARIANT_BOOL v);
3088
3089     [propget, id(DISPID_IHTMLSELECTELEMENT_DISABLED), displaybind, bindable]
3090     HRESULT disabled([retval, out] VARIANT_BOOL *p);
3091
3092     [propget, id(DISPID_IHTMLSELECTELEMENT_FORM)]
3093     HRESULT form([retval, out] IHTMLFormElement **p);
3094
3095     [id(DISPID_IHTMLSELECTELEMENT_ADD)]
3096     HRESULT add(
3097         [in] IHTMLElement *element,
3098         [optional, in] VARIANT before);
3099
3100     [id(DISPID_IHTMLSELECTELEMENT_REMOVE)]
3101     HRESULT remove([defaultvalue(-1), in] long index);
3102
3103     [propput, id(DISPID_IHTMLSELECTELEMENT_LENGTH)]
3104     HRESULT length([in] long v);
3105
3106     [propget, id(DISPID_IHTMLSELECTELEMENT_LENGTH)]
3107     HRESULT length([retval, out] long *p);
3108
3109     [propget, id(DISPID_IHTMLSELECTELEMENT__NEWENUM), hidden, restricted]
3110     HRESULT _newEnum([retval, out] IUnknown **p);
3111
3112     [id(DISPID_IHTMLSELECTELEMENT_ITEM)]
3113     HRESULT item(
3114         [optional, in] VARIANT name,
3115         [optional, in] VARIANT index,
3116         [retval, out] IDispatch **pdisp);
3117
3118     [id(DISPID_IHTMLSELECTELEMENT_TAGS)]
3119     HRESULT tags(
3120         [in] VARIANT tagName,
3121         [retval, out] IDispatch **pdisp);
3122 }
3123
3124 /*****************************************************************************
3125  *    IHTMLSelectionObject interface
3126  */
3127 [
3128     odl,
3129     oleautomation,
3130     dual,
3131     uuid(3050F25A-98B5-11CF-BB82-00AA00BDCE0B)
3132 ]
3133 interface IHTMLSelectionObject : IDispatch
3134 {
3135     [id(DISPID_IHTMLSELECTIONOBJECT_CREATERANGE)]
3136     HRESULT createRange([retval, out] IDispatch **range);
3137
3138     [id(DISPID_IHTMLSELECTIONOBJECT_EMPTY)]
3139     HRESULT empty();
3140
3141     [id(DISPID_IHTMLSELECTIONOBJECT_CLEAR)]
3142     HRESULT clear();
3143
3144     [propget, id(DISPID_IHTMLSELECTIONOBJECT_TYPE)]
3145     HRESULT type([retval, out] BSTR *p);
3146 }
3147
3148 /*****************************************************************************
3149  *    IHTMLOptionElement interface
3150  */
3151 [
3152     odl,
3153     oleautomation,
3154     dual,
3155     uuid(3050F211-98B5-11CF-BB82-00AA00BDCE0B)
3156 ]
3157 interface IHTMLOptionElement : IDispatch
3158 {
3159     [propput, id(DISPID_IHTMLOPTIONELEMENT_SELECTED)]
3160     HRESULT selected([in] VARIANT_BOOL v);
3161
3162     [propget, id(DISPID_IHTMLOPTIONELEMENT_SELECTED)]
3163     HRESULT selected([retval, out] VARIANT_BOOL *p);
3164
3165     [propput, id(DISPID_IHTMLOPTIONELEMENT_VALUE)]
3166     HRESULT value([in] BSTR v);
3167
3168     [propget, id(DISPID_IHTMLOPTIONELEMENT_VALUE)]
3169     HRESULT value([retval, out] BSTR *p);
3170
3171     [propput, id(DISPID_IHTMLOPTIONELEMENT_DEFAULTSELECTED)]
3172     HRESULT defaultSelected([in] VARIANT_BOOL v);
3173
3174     [propget, id(DISPID_IHTMLOPTIONELEMENT_DEFAULTSELECTED)]
3175     HRESULT defaultSelected([retval, out] VARIANT_BOOL *p);
3176
3177     [propput, id(DISPID_IHTMLOPTIONELEMENT_INDEX)]
3178     HRESULT index([in] LONG v);
3179
3180     [propget, id(DISPID_IHTMLOPTIONELEMENT_INDEX)]
3181     HRESULT index([retval, out] LONG *p);
3182
3183     [propput, id(DISPID_IHTMLOPTIONELEMENT_TEXT)]
3184     HRESULT text([in] BSTR v);
3185
3186     [propget, id(DISPID_IHTMLOPTIONELEMENT_TEXT)]
3187     HRESULT text([retval, out] BSTR *p);
3188
3189     [propget, id(DISPID_IHTMLOPTIONELEMENT_FORM)]
3190     HRESULT form([retval, out] IHTMLFormElement **p);
3191 }
3192
3193 /*****************************************************************************
3194  *    IHTMLOptionElementFactory interface
3195  */
3196 [
3197     odl,
3198     oleautomation,
3199     dual,
3200     uuid(3050F38C-98B5-11Cf-BB82-00AA00BDCE0B)
3201 ]
3202 interface IHTMLOptionElementFactory : IDispatch
3203 {
3204     [id(DISPID_IHTMLOPTIONELEMENTFACTORY_CREATE)]
3205     HRESULT create(
3206         [optional, in] VARIANT text,
3207         [optional, in] VARIANT value,
3208         [optional, in] VARIANT defaultselected,
3209         [optional, in] VARIANT selected,
3210         [retval, out] IHTMLOptionElement **optelem);
3211 }
3212
3213 /*****************************************************************************
3214  *    IHTMLInputElement interface
3215  */
3216 [
3217     odl,
3218     oleautomation,
3219     dual,
3220     uuid(3050f5d2-98b5-11cf-bb82-00aa00bdce0b)
3221 ]
3222 interface IHTMLInputElement : IDispatch
3223 {
3224     [propput, id(DISPID_IHTMLINPUTELEMENT_TYPE)]
3225     HRESULT type([in] BSTR v);
3226
3227     [propget, id(DISPID_IHTMLINPUTELEMENT_TYPE)]
3228     HRESULT type([retval, out] BSTR *p);
3229
3230     [propput, id(DISPID_IHTMLINPUTELEMENT_VALUE), displaybind, bindable]
3231     HRESULT value([in] BSTR v);
3232
3233     [propget, id(DISPID_IHTMLINPUTELEMENT_VALUE), displaybind, bindable]
3234     HRESULT value([retval, out] BSTR *p);
3235
3236     [propput, id(DISPID_IHTMLINPUTELEMENT_NAME), displaybind, bindable]
3237     HRESULT name([in] BSTR v);
3238
3239     [propget, id(DISPID_IHTMLINPUTELEMENT_NAME), displaybind, bindable]
3240     HRESULT name([retval, out] BSTR *p);
3241
3242     [propput, id(DISPID_IHTMLINPUTELEMENT_STATUS)]
3243     HRESULT status([in] VARIANT_BOOL v);
3244
3245     [propget, id(DISPID_IHTMLINPUTELEMENT_STATUS)]
3246     HRESULT status([retval, out] VARIANT_BOOL *p);
3247
3248     [propput, id(DISPID_IHTMLINPUTELEMENT_DISABLED), displaybind, bindable]
3249     HRESULT disabled([in] VARIANT_BOOL v);
3250
3251     [propget, id(DISPID_IHTMLINPUTELEMENT_DISABLED), displaybind, bindable]
3252     HRESULT disabled([retval, out] VARIANT_BOOL *p);
3253
3254     [propget, id(DISPID_IHTMLINPUTELEMENT_FORM)]
3255     HRESULT form([retval, out] IHTMLFormElement **p);
3256
3257     [propput, id(DISPID_IHTMLINPUTELEMENT_SIZE), displaybind, bindable]
3258     HRESULT size([in] long v);
3259
3260     [propget, id(DISPID_IHTMLINPUTELEMENT_SIZE), displaybind, bindable]
3261     HRESULT size([retval, out] long *p);
3262
3263     [propput, id(DISPID_IHTMLINPUTELEMENT_MAXLENGTH), displaybind, bindable]
3264     HRESULT maxLength([in] long v);
3265
3266     [propget, id(DISPID_IHTMLINPUTELEMENT_MAXLENGTH), displaybind, bindable]
3267     HRESULT maxLength([retval, out] long *p);
3268
3269     [id(DISPID_IHTMLINPUTELEMENT_SELECT)]
3270     HRESULT select();
3271
3272     [propput, id(DISPID_IHTMLINPUTELEMENT_ONCHANGE), displaybind, bindable]
3273     HRESULT onchange([in] VARIANT v);
3274
3275     [propget, id(DISPID_IHTMLINPUTELEMENT_ONCHANGE), displaybind, bindable]
3276     HRESULT onchange([retval, out] VARIANT *p);
3277
3278     [propput, id(DISPID_IHTMLINPUTELEMENT_ONSELECT), displaybind, bindable]
3279     HRESULT onselect([in] VARIANT v);
3280
3281     [propget, id(DISPID_IHTMLINPUTELEMENT_ONSELECT), displaybind, bindable]
3282     HRESULT onselect([retval, out] VARIANT *p);
3283
3284     [propput, id(DISPID_IHTMLINPUTELEMENT_DEFAULTVALUE), displaybind, bindable, hidden]
3285     HRESULT defaultValue([in] BSTR v);
3286
3287     [propget, id(DISPID_IHTMLINPUTELEMENT_DEFAULTVALUE), displaybind, bindable, hidden]
3288     HRESULT defaultValue([retval, out] BSTR *p);
3289
3290     [propput, id(DISPID_IHTMLINPUTELEMENT_READONLY), displaybind, bindable]
3291     HRESULT readOnly([in] VARIANT_BOOL v);
3292
3293     [propget, id(DISPID_IHTMLINPUTELEMENT_READONLY), displaybind, bindable]
3294     HRESULT readOnly([retval, out] VARIANT_BOOL *p);
3295
3296     [id(DISPID_IHTMLINPUTELEMENT_CREATETEXTRANGE)]
3297     HRESULT createTextRange([retval, out] IHTMLTxtRange **range);
3298
3299     [propput, id(DISPID_IHTMLINPUTELEMENT_INDETERMINATE), bindable]
3300     HRESULT indeterminate([in] VARIANT_BOOL v);
3301
3302     [propget, id(DISPID_IHTMLINPUTELEMENT_INDETERMINATE), bindable]
3303     HRESULT indeterminate([retval, out] VARIANT_BOOL *p);
3304
3305     [propput, id(DISPID_IHTMLINPUTELEMENT_DEFAULTCHECKED), bindable]
3306     HRESULT defaultChecked([in] VARIANT_BOOL v);
3307
3308     [propget, id(DISPID_IHTMLINPUTELEMENT_DEFAULTCHECKED), bindable]
3309     HRESULT defaultChecked([retval, out] VARIANT_BOOL *p);
3310
3311     [propput, id(DISPID_IHTMLINPUTELEMENT_CHECKED), bindable]
3312     HRESULT checked([in] VARIANT_BOOL v);
3313
3314     [propget, id(DISPID_IHTMLINPUTELEMENT_CHECKED), bindable]
3315     HRESULT checked([retval, out] VARIANT_BOOL *p);
3316
3317     [propput, id(DISPID_IHTMLINPUTELEMENT_BORDER), displaybind, bindable]
3318     HRESULT border([in] VARIANT v);
3319
3320     [propget, id(DISPID_IHTMLINPUTELEMENT_BORDER), displaybind, bindable]
3321     HRESULT border([retval, out] VARIANT *p);
3322
3323     [propput, id(DISPID_IHTMLINPUTELEMENT_VSPACE), displaybind, bindable]
3324     HRESULT vspace([in] long v);
3325
3326     [propget, id(DISPID_IHTMLINPUTELEMENT_VSPACE), displaybind, bindable]
3327     HRESULT vspace([retval, out] long *p);
3328
3329     [propput, id(DISPID_IHTMLINPUTELEMENT_HSPACE), displaybind, bindable]
3330     HRESULT hspace([in] long v);
3331
3332     [propget, id(DISPID_IHTMLINPUTELEMENT_HSPACE), displaybind, bindable]
3333     HRESULT hspace([retval, out] long *p);
3334
3335     [propput, id(DISPID_IHTMLINPUTELEMENT_ALT), displaybind, bindable]
3336     HRESULT alt([in] BSTR v);
3337
3338     [propget, id(DISPID_IHTMLINPUTELEMENT_ALT), displaybind, bindable]
3339     HRESULT alt([retval, out] BSTR *p);
3340
3341     [propput, id(DISPID_IHTMLINPUTELEMENT_SRC), displaybind, bindable]
3342     HRESULT src([in] BSTR v);
3343
3344     [propget, id(DISPID_IHTMLINPUTELEMENT_SRC), displaybind, bindable]
3345     HRESULT src([retval, out] BSTR *p);
3346
3347     [propput, id(DISPID_IHTMLINPUTELEMENT_LOWSRC), displaybind, bindable]
3348     HRESULT lowsrc([in] BSTR v);
3349
3350     [propget, id(DISPID_IHTMLINPUTELEMENT_LOWSRC), displaybind, bindable]
3351     HRESULT lowsrc([retval, out] BSTR *p);
3352
3353     [propput, id(DISPID_IHTMLINPUTELEMENT_VRML), displaybind, bindable]
3354     HRESULT vrml([in] BSTR v);
3355
3356     [propget, id(DISPID_IHTMLINPUTELEMENT_VRML), displaybind, bindable]
3357     HRESULT vrml([retval, out] BSTR *p);
3358
3359     [propput, id(DISPID_IHTMLINPUTELEMENT_DYNSRC), displaybind, bindable]
3360     HRESULT dynsrc([in] BSTR v);
3361
3362     [propget, id(DISPID_IHTMLINPUTELEMENT_DYNSRC), displaybind, bindable]
3363     HRESULT dynsrc([retval, out] BSTR *p);
3364
3365     [propget, id(DISPID_IHTMLINPUTELEMENT_READYSTATE)]
3366     HRESULT readyState([retval, out] BSTR *p);
3367
3368     [propget, id(DISPID_IHTMLINPUTELEMENT_COMPLETE)]
3369     HRESULT complete([retval, out] VARIANT_BOOL *p);
3370
3371     [propput, id(DISPID_IHTMLINPUTELEMENT_LOOP), displaybind, bindable]
3372     HRESULT loop([in] VARIANT v);
3373
3374     [propget, id(DISPID_IHTMLINPUTELEMENT_LOOP), displaybind, bindable]
3375     HRESULT loop([retval, out] VARIANT *p);
3376
3377     [propput, id(DISPID_IHTMLINPUTELEMENT_ALIGN), displaybind, bindable]
3378     HRESULT align([in] BSTR v);
3379
3380     [propget, id(DISPID_IHTMLINPUTELEMENT_ALIGN), displaybind, bindable]
3381     HRESULT align([retval, out] BSTR *p);
3382
3383     [propput, id(DISPID_IHTMLINPUTELEMENT_ONLOAD), displaybind, bindable]
3384     HRESULT onload([in] VARIANT v);
3385
3386     [propget, id(DISPID_IHTMLINPUTELEMENT_ONLOAD), displaybind, bindable]
3387     HRESULT onload([retval, out] VARIANT *p);
3388
3389     [propput, id(DISPID_IHTMLINPUTELEMENT_ONERROR), displaybind, bindable]
3390     HRESULT onerror([in] VARIANT v);
3391
3392     [propget, id(DISPID_IHTMLINPUTELEMENT_ONERROR), displaybind, bindable]
3393     HRESULT onerror([retval, out] VARIANT *p);
3394
3395     [propput, id(DISPID_IHTMLINPUTELEMENT_ONABORT), displaybind, bindable]
3396     HRESULT onabort([in] VARIANT v);
3397
3398     [propget, id(DISPID_IHTMLINPUTELEMENT_ONABORT), displaybind, bindable]
3399     HRESULT onabort([retval, out] VARIANT *p);
3400
3401     [propput, id(DISPID_IHTMLINPUTELEMENT_WIDTH)]
3402     HRESULT width([in] long v);
3403
3404     [propget, id(DISPID_IHTMLINPUTELEMENT_WIDTH)]
3405     HRESULT width([retval, out] long *p);
3406
3407     [propput, id(DISPID_IHTMLINPUTELEMENT_HEIGHT)]
3408     HRESULT height([in] long v);
3409
3410     [propget, id(DISPID_IHTMLINPUTELEMENT_HEIGHT)]
3411     HRESULT height([retval, out] long *p);
3412
3413     [propput, id(DISPID_IHTMLINPUTELEMENT_START), displaybind, bindable]
3414     HRESULT start([in] BSTR v);
3415
3416     [propget, id(DISPID_IHTMLINPUTELEMENT_START), displaybind, bindable]
3417     HRESULT start([retval, out] BSTR *p);
3418 }
3419
3420 /*****************************************************************************
3421  *    IHTMLTextAreaElement interface
3422  */
3423 [
3424     odl,
3425     oleautomation,
3426     dual,
3427     uuid(3050f2aa-98b5-11cf-bb82-00aa00bdce0b)
3428 ]
3429 interface IHTMLTextAreaElement : IDispatch
3430 {
3431     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_TYPE)]
3432     HRESULT type([retval, out] BSTR *p);
3433
3434     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_VALUE), displaybind, bindable]
3435     HRESULT value([in] BSTR v);
3436
3437     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_VALUE), displaybind, bindable]
3438     HRESULT value([retval, out] BSTR *p);
3439
3440     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_NAME), displaybind, bindable]
3441     HRESULT name([in] BSTR v);
3442
3443     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_NAME), displaybind, bindable]
3444     HRESULT name([retval, out] BSTR *p);
3445
3446     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_STATUS)]
3447     HRESULT status([in] VARIANT v);
3448
3449     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_STATUS)]
3450     HRESULT status([retval, out] VARIANT *p);
3451
3452     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_DISABLED), displaybind, bindable]
3453     HRESULT disabled([in] VARIANT_BOOL v);
3454
3455     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_DISABLED), displaybind, bindable]
3456     HRESULT disabled([retval, out] VARIANT_BOOL *p);
3457
3458     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_FORM)]
3459     HRESULT form([retval, out] IHTMLFormElement **p);
3460
3461     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_DEFAULTVALUE), displaybind, bindable, hidden]
3462     HRESULT defaultValue([in] BSTR v);
3463
3464     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_DEFAULTVALUE), displaybind, bindable, hidden]
3465     HRESULT defaultValue([retval, out] BSTR *p);
3466
3467     [id(DISPID_IHTMLTEXTAREAELEMENT_SELECT)]
3468     HRESULT select();
3469
3470     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_ONCHANGE), displaybind, bindable]
3471     HRESULT onchange([in] VARIANT v);
3472
3473     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_ONCHANGE), displaybind, bindable]
3474     HRESULT onchange([retval, out] VARIANT *p);
3475
3476     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_ONSELECT), displaybind, bindable]
3477     HRESULT onselect([in] VARIANT v);
3478
3479     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_ONSELECT), displaybind, bindable]
3480     HRESULT onselect([retval, out] VARIANT *p);
3481
3482     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_READONLY), displaybind, bindable]
3483     HRESULT readOnly([in] VARIANT_BOOL v);
3484
3485     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_READONLY), displaybind, bindable]
3486     HRESULT readOnly([retval, out] VARIANT_BOOL *p);
3487
3488     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_ROWS), displaybind, bindable]
3489     HRESULT rows([in] long v);
3490
3491     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_ROWS), displaybind, bindable]
3492     HRESULT rows([retval, out] long *p);
3493
3494     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_COLS), displaybind, bindable]
3495     HRESULT cols([in] long v);
3496
3497     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_COLS), displaybind, bindable]
3498     HRESULT cols([retval, out] long *p);
3499
3500     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_WRAP), displaybind, bindable]
3501     HRESULT wrap([in] BSTR v);
3502
3503     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_WRAP), displaybind, bindable]
3504     HRESULT wrap([retval, out] BSTR *p);
3505
3506     [id(DISPID_IHTMLTEXTAREAELEMENT_CREATETEXTRANGE)]
3507     HRESULT createTextRange([retval, out] IHTMLTxtRange **range);
3508 }
3509
3510 /*****************************************************************************
3511  *    IOmHistory interface
3512  */
3513 [
3514     odl,
3515     oleautomation,
3516     dual,
3517     uuid(FECEAAA2-8405-11CF-8BA1-00AA00476DA6)
3518 ]
3519 interface IOmHistory : IDispatch
3520 {
3521     [propget, id(DISPID_IOMHISTORY_LENGTH)]
3522     HRESULT length([retval, out] short *p);
3523
3524     [id(DISPID_IOMHISTORY_BACK)]
3525     HRESULT back([optional, in] VARIANT *pvargdistance);
3526
3527     [id(DISPID_IOMHISTORY_FORWARD)]
3528     HRESULT forward([optional, in] VARIANT *pvargdistance);
3529
3530     [id(DISPID_IOMHISTORY_GO)]
3531     HRESULT go([optional, in] VARIANT *pvargdistance);
3532 }
3533
3534 /*****************************************************************************
3535  *    IHTMLMimeTypesCollection interface
3536  */
3537 [
3538     odl,
3539     oleautomation,
3540     dual,
3541     uuid(3050F3FC-98B5-11CF-BB82-00AA00BDCE0B)
3542 ]
3543 interface IHTMLMimeTypesCollection : IDispatch
3544 {
3545     [propget, id(DISPID_IHTMLMIMETYPESCOLLECTION_LENGTH)]
3546     HRESULT length([retval, out] long *p);
3547 }
3548
3549 /*****************************************************************************
3550  *    IHTMLPluginsCollection interface
3551  */
3552 [
3553     odl,
3554     oleautomation,
3555     dual,
3556     uuid(3050F3FD-98B5-11CF-BB82-00AA00BDCE0B)
3557 ]
3558 interface IHTMLPluginsCollection : IDispatch
3559 {
3560     [propget, id(DISPID_IHTMLPLUGINSCOLLECTION_LENGTH)]
3561     HRESULT length([retval, out] long *p);
3562
3563     [id(DISPID_IHTMLPLUGINSCOLLECTION_REFRESH)]
3564     HRESULT refresh([defaultvalue(0), in] VARIANT_BOOL reload);
3565 }
3566
3567 /*****************************************************************************
3568  *    IHTMLOpsProfile interface
3569  */
3570 [
3571     odl,
3572     oleautomation,
3573     dual,
3574     uuid(3050F401-98B5-11CF-BB82-00AA00BDCE0B)
3575 ]
3576 interface IHTMLOpsProfile : IDispatch
3577 {
3578     [id(DISPID_IHTMLOPSPROFILE_ADDREQUEST)]
3579     HRESULT addRequest(
3580         [in] BSTR name,
3581         [optional, in] VARIANT reserved,
3582         [retval, out] VARIANT_BOOL *success);
3583
3584     [id(DISPID_IHTMLOPSPROFILE_CLEARREQUEST)]
3585     HRESULT clearRequest();
3586
3587     [id(DISPID_IHTMLOPSPROFILE_DOREQUEST)]
3588     HRESULT doRequest(
3589         [in] VARIANT usage,
3590         [optional, in] VARIANT fname,
3591         [optional, in] VARIANT domain,
3592         [optional, in] VARIANT path,
3593         [optional, in] VARIANT expire,
3594         [optional, in] VARIANT reserved);
3595
3596     [id(DISPID_IHTMLOPSPROFILE_GETATTRIBUTE)]
3597     HRESULT getAttribute(
3598         [in] BSTR name,
3599         [retval, out] BSTR *value);
3600
3601     [id(DISPID_IHTMLOPSPROFILE_SETATTRIBUTE)]
3602     HRESULT setAttribute(
3603         [in] BSTR name,
3604         [in] BSTR value,
3605         [optional, in] VARIANT prefs,
3606         [retval, out] VARIANT_BOOL *success);
3607
3608     [id(DISPID_IHTMLOPSPROFILE_COMMITCHANGES)]
3609     HRESULT commitChanges([retval, out] VARIANT_BOOL *success);
3610
3611     [id(DISPID_IHTMLOPSPROFILE_ADDREADREQUEST)]
3612     HRESULT addReadRequest(
3613         [in] BSTR name,
3614         [optional, in] VARIANT reserved,
3615         [retval, out] VARIANT_BOOL *success);
3616
3617     [id(DISPID_IHTMLOPSPROFILE_DOREADREQUEST)]
3618     HRESULT doReadRequest(
3619         [in] VARIANT usage,
3620         [optional, in] VARIANT fname,
3621         [optional, in] VARIANT domain,
3622         [optional, in] VARIANT path,
3623         [optional, in] VARIANT expire,
3624         [optional, in] VARIANT reserved);
3625
3626     [id(DISPID_IHTMLOPSPROFILE_DOWRITEREQUEST)]
3627     HRESULT doWriteRequest([retval, out] VARIANT_BOOL *success);
3628 }
3629
3630 /*****************************************************************************
3631  *    IOmNavigator interface
3632  */
3633 [
3634         odl,
3635         oleautomation,
3636         dual,
3637         uuid(FECEAAA5-8405-11CF-8BA1-00AA00476DA6)
3638 ]
3639 interface IOmNavigator : IDispatch
3640 {
3641     [propget, id(DISPID_IOMNAVIGATOR_APPCODENAME)]
3642     HRESULT appCodeName([retval, out] BSTR *p);
3643
3644     [propget, id(DISPID_IOMNAVIGATOR_APPNAME)]
3645     HRESULT appName([retval, out] BSTR *p);
3646
3647     [propget, id(DISPID_IOMNAVIGATOR_APPVERSION)]
3648     HRESULT appVersion([retval, out] BSTR *p);
3649
3650     [propget, id(DISPID_IOMNAVIGATOR_USERAGENT)]
3651     HRESULT userAgent([retval, out] BSTR *p);
3652
3653     [id(DISPID_IOMNAVIGATOR_JAVAENABLED)]
3654     HRESULT javaEnabled([retval, out] VARIANT_BOOL *enabled);
3655
3656     [id(DISPID_IOMNAVIGATOR_TAINTENABLED)]
3657     HRESULT taintEnabled([retval, out] VARIANT_BOOL *enabled);
3658
3659     [propget, id(DISPID_IOMNAVIGATOR_MIMETYPES)]
3660     HRESULT mimeTypes([retval, out] IHTMLMimeTypesCollection **p);
3661
3662     [propget, id(DISPID_IOMNAVIGATOR_PLUGINS)]
3663     HRESULT plugins([retval, out] IHTMLPluginsCollection **p);
3664
3665     [propget, id(DISPID_IOMNAVIGATOR_COOKIEENABLED)]
3666     HRESULT cookieEnabled([retval, out] VARIANT_BOOL *p);
3667
3668     [propget, id(DISPID_IOMNAVIGATOR_OPSPROFILE)]
3669     HRESULT opsProfile([retval, out] IHTMLOpsProfile **p);
3670
3671     [id(DISPID_IOMNAVIGATOR_TOSTRING)]
3672     HRESULT toString([retval, out] BSTR *String);
3673
3674     [propget, id(DISPID_IOMNAVIGATOR_CPUCLASS)]
3675     HRESULT cpuClass([retval, out] BSTR *p);
3676
3677     [propget, id(DISPID_IOMNAVIGATOR_SYSTEMLANGUAGE)]
3678     HRESULT systemLanguage([retval, out] BSTR *p);
3679
3680     [propget, id(DISPID_IOMNAVIGATOR_BROWSERLANGUAGE)]
3681     HRESULT browserLanguage([retval, out] BSTR *p);
3682
3683     [propget, id(DISPID_IOMNAVIGATOR_USERLANGUAGE)]
3684     HRESULT userLanguage([retval, out] BSTR *p);
3685
3686     [propget, id(DISPID_IOMNAVIGATOR_PLATFORM)]
3687     HRESULT platform([retval, out] BSTR *p);
3688
3689     [propget, id(DISPID_IOMNAVIGATOR_APPMINORVERSION)]
3690     HRESULT appMinorVersion([retval, out] BSTR *p);
3691
3692     [propget, id(DISPID_IOMNAVIGATOR_CONNECTIONSPEED)]
3693     HRESULT connectionSpeed([retval, out] long *p);
3694
3695     [propget, id(DISPID_IOMNAVIGATOR_ONLINE)]
3696     HRESULT onLine([retval, out] VARIANT_BOOL *p);
3697
3698     [propget, id(DISPID_IOMNAVIGATOR_USERPROFILE)]
3699     HRESULT userProfile([retval, out] IHTMLOpsProfile **p);
3700 }
3701
3702 /*****************************************************************************
3703  *    IHTMLLocation interface
3704  */
3705 [
3706     odl,
3707     oleautomation,
3708     dual,
3709     uuid(163BB1E0-6E00-11cf-837A-48DC04C10000)
3710 ]
3711 interface IHTMLLocation : IDispatch
3712 {
3713     [propput, id(DISPID_IHTMLLOCATION_HREF)]
3714     HRESULT href([in] BSTR v);
3715
3716     [propget, id(DISPID_IHTMLLOCATION_HREF)]
3717     HRESULT href([retval, out] BSTR *p);
3718
3719     [propput, id(DISPID_IHTMLLOCATION_PROTOCOL)]
3720     HRESULT protocol([in] BSTR v);
3721
3722     [propget, id(DISPID_IHTMLLOCATION_PROTOCOL)]
3723     HRESULT protocol([retval, out] BSTR *p);
3724
3725     [propput, id(DISPID_IHTMLLOCATION_HOST)]
3726     HRESULT host([in] BSTR v);
3727
3728     [propget, id(DISPID_IHTMLLOCATION_HOST)]
3729     HRESULT host([retval, out] BSTR *p);
3730
3731     [propput, id(DISPID_IHTMLLOCATION_HOSTNAME)]
3732     HRESULT hostname([in] BSTR v);
3733
3734     [propget, id(DISPID_IHTMLLOCATION_HOSTNAME)]
3735     HRESULT hostname([retval, out] BSTR *p);
3736
3737     [propput, id(DISPID_IHTMLLOCATION_PORT)]
3738     HRESULT port([in] BSTR v);
3739
3740     [propget, id(DISPID_IHTMLLOCATION_PORT)]
3741     HRESULT port([retval, out] BSTR *p);
3742
3743     [propput, id(DISPID_IHTMLLOCATION_PATHNAME)]
3744     HRESULT pathname([in] BSTR v);
3745
3746     [propget, id(DISPID_IHTMLLOCATION_PATHNAME)]
3747     HRESULT pathname([retval, out] BSTR *p);
3748
3749     [propput, id(DISPID_IHTMLLOCATION_SEARCH)]
3750     HRESULT search([in] BSTR v);
3751
3752     [propget, id(DISPID_IHTMLLOCATION_SEARCH)]
3753     HRESULT search([retval, out] BSTR *p);
3754
3755     [propput, id(DISPID_IHTMLLOCATION_HASH)]
3756     HRESULT hash([in] BSTR v);
3757
3758     [propget, id(DISPID_IHTMLLOCATION_HASH)]
3759     HRESULT hash([retval, out] BSTR *p);
3760
3761     [id(DISPID_IHTMLLOCATION_RELOAD)]
3762     HRESULT reload([defaultvalue(0), in] VARIANT_BOOL flag);
3763
3764     [id(DISPID_IHTMLLOCATION_REPLACE)]
3765     HRESULT replace([in] BSTR bstr);
3766
3767     [id(DISPID_IHTMLLOCATION_ASSIGN)]
3768     HRESULT assign([in] BSTR bstr);
3769
3770     [id(DISPID_IHTMLLOCATION_TOSTRING)]
3771     HRESULT toString([retval, out] BSTR *String);
3772 }
3773
3774 /*****************************************************************************
3775  *    IHTMLEventObj interface
3776  */
3777 [
3778     odl,
3779     oleautomation,
3780     dual,
3781     uuid(3050F32D-98B5-11CF-BB82-00AA00BDCE0B)
3782 ]
3783 interface IHTMLEventObj : IDispatch
3784 {
3785     [propget, id(DISPID_IHTMLEVENTOBJ_SRCELEMENT)]
3786     HRESULT srcElement([retval, out] IHTMLElement **p);
3787
3788     [propget, id(DISPID_IHTMLEVENTOBJ_ALTKEY)]
3789     HRESULT altKey([retval, out] VARIANT_BOOL *p);
3790
3791     [propget, id(DISPID_IHTMLEVENTOBJ_CTRLKEY)]
3792     HRESULT ctrlKey([retval, out] VARIANT_BOOL *p);
3793
3794     [propget, id(DISPID_IHTMLEVENTOBJ_SHIFTKEY)]
3795     HRESULT shiftKey([retval, out] VARIANT_BOOL *p);
3796
3797     [propput, id(DISPID_IHTMLEVENTOBJ_RETURNVALUE)]
3798     HRESULT returnValue([in] VARIANT v);
3799
3800     [propget, id(DISPID_IHTMLEVENTOBJ_RETURNVALUE)]
3801     HRESULT returnValue([retval, out] VARIANT *p);
3802
3803     [propput, id(DISPID_IHTMLEVENTOBJ_CANCELBUBBLE)]
3804     HRESULT cancelBubble([in] VARIANT_BOOL v);
3805
3806     [propget, id(DISPID_IHTMLEVENTOBJ_CANCELBUBBLE)]
3807     HRESULT cancelBubble([retval, out] VARIANT_BOOL *p);
3808
3809     [propget, id(DISPID_IHTMLEVENTOBJ_FROMELEMENT)]
3810     HRESULT fromElement([retval, out] IHTMLElement **p);
3811
3812     [propget, id(DISPID_IHTMLEVENTOBJ_TOELEMENT)]
3813     HRESULT toElement([retval, out] IHTMLElement **p);
3814
3815     [propput, id(DISPID_IHTMLEVENTOBJ_KEYCODE)]
3816     HRESULT keyCode([in] long v);
3817
3818     [propget, id(DISPID_IHTMLEVENTOBJ_KEYCODE)]
3819     HRESULT keyCode([retval, out] long *p);
3820
3821     [propget, id(DISPID_IHTMLEVENTOBJ_BUTTON)]
3822     HRESULT button([retval, out] long *p);
3823
3824     [propget, id(DISPID_IHTMLEVENTOBJ_TYPE)]
3825     HRESULT type([retval, out] BSTR *p);
3826
3827     [propget, id(DISPID_IHTMLEVENTOBJ_QUALIFIER)]
3828     HRESULT qualifier([retval, out] BSTR *p);
3829
3830     [propget, id(DISPID_IHTMLEVENTOBJ_REASON)]
3831     HRESULT reason([retval, out] long *p);
3832
3833     [propget, id(DISPID_IHTMLEVENTOBJ_X)]
3834     HRESULT x([retval, out] long *p);
3835
3836     [propget, id(DISPID_IHTMLEVENTOBJ_Y)]
3837     HRESULT y([retval, out] long *p);
3838
3839     [propget, id(DISPID_IHTMLEVENTOBJ_CLIENTX)]
3840     HRESULT clientX([retval, out] long *p);
3841
3842     [propget, id(DISPID_IHTMLEVENTOBJ_CLIENTY)]
3843     HRESULT clientY([retval, out] long *p);
3844
3845     [propget, id(DISPID_IHTMLEVENTOBJ_OFFSETX)]
3846     HRESULT offsetX([retval, out] long *p);
3847
3848     [propget, id(DISPID_IHTMLEVENTOBJ_OFFSETY)]
3849     HRESULT offsetY([retval, out] long *p);
3850
3851     [propget, id(DISPID_IHTMLEVENTOBJ_SCREENX)]
3852     HRESULT screenX([retval, out] long *p);
3853
3854     [propget, id(DISPID_IHTMLEVENTOBJ_SCREENY)]
3855     HRESULT screenY([retval, out] long *p);
3856
3857     [propget, id(DISPID_IHTMLEVENTOBJ_SRCFILTER)]
3858     HRESULT srcFilter([retval, out] IDispatch **p);
3859 }
3860
3861 /*****************************************************************************
3862  *    IHTMLFramesCollection2 interface
3863  */
3864 [
3865     odl,
3866     oleautomation,
3867     dual,
3868     uuid(332C4426-26CB-11D0-B483-00C04FD90119)
3869 ]
3870 interface IHTMLFramesCollection2 : IDispatch
3871 {
3872     [id(DISPID_IHTMLFRAMESCOLLECTION2_ITEM)]
3873     HRESULT item(
3874         [in] VARIANT *pvarIndex,
3875         [retval, out] VARIANT *pvarResult);
3876
3877     [propget, id(DISPID_IHTMLFRAMESCOLLECTION2_LENGTH)]
3878     HRESULT length([retval, out] long *p);
3879 }
3880
3881 /*****************************************************************************
3882  *    IHTMLScreen interface
3883  */
3884 [
3885     odl,
3886     oleautomation,
3887     dual,
3888     uuid(3050f35C-98B5-11CF-BB82-00AA00BDCE0B)
3889 ]
3890 interface IHTMLScreen : IDispatch
3891 {
3892     [propget, id(DISPID_IHTMLSCREEN_COLORDEPTH)]
3893     HRESULT colorDepth([retval, out] long *p);
3894
3895     [propput, id(DISPID_IHTMLSCREEN_BUFFERDEPTH)]
3896     HRESULT bufferDepth([in] long v);
3897
3898     [propget, id(DISPID_IHTMLSCREEN_BUFFERDEPTH)]
3899     HRESULT bufferDepth([retval, out] long *p);
3900
3901     [propget, id(DISPID_IHTMLSCREEN_WIDTH)]
3902     HRESULT width([retval, out] long *p);
3903
3904     [propget, id(DISPID_IHTMLSCREEN_HEIGHT)]
3905     HRESULT height([retval, out] long *p);
3906
3907     [propput, id(DISPID_IHTMLSCREEN_UPDATEINTERVAL)]
3908     HRESULT updateInterval([in] long v);
3909
3910     [propget, id(DISPID_IHTMLSCREEN_UPDATEINTERVAL)]
3911     HRESULT updateInterval([retval, out] long *p);
3912
3913     [propget, id(DISPID_IHTMLSCREEN_AVAILHEIGHT)]
3914     HRESULT availHeight([retval, out] long *p);
3915
3916     [propget, id(DISPID_IHTMLSCREEN_AVAILWIDTH)]
3917     HRESULT availWidth([retval, out] long *p);
3918
3919     [propget, id(DISPID_IHTMLSCREEN_FONTSMOOTHINGENABLED)]
3920     HRESULT fontSmoothingEnabled([retval, out] VARIANT_BOOL *p);
3921 }
3922
3923 /*****************************************************************************
3924  *    IHTMLWindow2 interface
3925  */
3926 [
3927     odl,
3928     oleautomation,
3929     dual,
3930     uuid(332C4427-26CB-11D0-B483-00C04FD90119)
3931 ]
3932 interface IHTMLWindow2 : IHTMLFramesCollection2
3933 {
3934     [propget, id(DISPID_IHTMLWINDOW2_FRAMES)]
3935     HRESULT frames([retval, out] IHTMLFramesCollection2 **p);
3936
3937     [propput, id(DISPID_IHTMLWINDOW2_DEFAULTSTATUS)]
3938     HRESULT defaultStatus([in] BSTR v);
3939
3940     [propget, id(DISPID_IHTMLWINDOW2_DEFAULTSTATUS)]
3941     HRESULT defaultStatus([retval, out] BSTR *p);
3942
3943     [propput, id(DISPID_IHTMLWINDOW2_STATUS)]
3944     HRESULT status([in] BSTR v);
3945
3946     [propget, id(DISPID_IHTMLWINDOW2_STATUS)]
3947     HRESULT status([retval, out] BSTR *p);
3948
3949     [id(DISPID_IHTMLWINDOW2_SETTIMEOUT)]
3950     HRESULT setTimeout(
3951         [in] BSTR expression,
3952         [in] long msec,
3953         [optional, in] VARIANT *language,
3954         [retval, out] long *timerID);
3955
3956     [id(DISPID_IHTMLWINDOW2_CLEARTIMEOUT)]
3957     HRESULT clearTimeout([in] long timerID);
3958
3959     [id(DISPID_IHTMLWINDOW2_ALERT)]
3960     HRESULT alert([defaultvalue(""), in] BSTR message);
3961
3962     [id(DISPID_IHTMLWINDOW2_CONFIRM)]
3963     HRESULT confirm(
3964         [defaultvalue(""), in] BSTR message,
3965         [retval, out] VARIANT_BOOL *confirmed);
3966
3967     [id(DISPID_IHTMLWINDOW2_PROMPT)]
3968     HRESULT prompt(
3969         [defaultvalue(""), in] BSTR message,
3970         [defaultvalue("undefined"), in] BSTR defstr,
3971         [retval, out] VARIANT *textdata);
3972
3973     [propget, id(DISPID_IHTMLWINDOW2_IMAGE)]
3974     HRESULT Image([retval, out] IHTMLImageElementFactory **p);
3975
3976     [propget, id(DISPID_IHTMLWINDOW2_LOCATION)]
3977     HRESULT location([retval, out] IHTMLLocation **p);
3978
3979     [propget, id(DISPID_IHTMLWINDOW2_HISTORY)]
3980     HRESULT history([retval, out] IOmHistory **p);
3981
3982     [id(DISPID_IHTMLWINDOW2_CLOSE)]
3983     HRESULT close();
3984
3985     [propput, id(DISPID_IHTMLWINDOW2_OPENER)]
3986     HRESULT opener([in] VARIANT v);
3987
3988     [propget, id(DISPID_IHTMLWINDOW2_OPENER)]
3989     HRESULT opener([retval, out] VARIANT *p);
3990
3991     [propget, id(DISPID_IHTMLWINDOW2_NAVIGATOR)]
3992     HRESULT navigator([retval, out] IOmNavigator **p);
3993
3994     [propput, id(DISPID_IHTMLWINDOW2_NAME)]
3995     HRESULT name([in] BSTR v);
3996
3997     [propget, id(DISPID_IHTMLWINDOW2_NAME)]
3998     HRESULT name([retval, out] BSTR *p);
3999
4000     [propget, id(DISPID_IHTMLWINDOW2_PARENT)]
4001     HRESULT parent([retval, out] IHTMLWindow2 **p);
4002
4003     [id(DISPID_IHTMLWINDOW2_OPEN)]
4004     HRESULT open(
4005         [defaultvalue(""), in] BSTR url,
4006         [defaultvalue(""), in] BSTR name,
4007         [defaultvalue(""), in] BSTR features,
4008         [defaultvalue(0), in] VARIANT_BOOL replace,
4009         [retval, out] IHTMLWindow2 **pomWindowResult);
4010
4011     [propget, id(DISPID_IHTMLWINDOW2_SELF)]
4012     HRESULT self([retval, out] IHTMLWindow2 **p);
4013
4014     [propget, id(DISPID_IHTMLWINDOW2_TOP)]
4015     HRESULT top([retval, out] IHTMLWindow2 **p);
4016
4017     [propget, id(DISPID_IHTMLWINDOW2_WINDOW)]
4018     HRESULT window([retval, out] IHTMLWindow2 **p);
4019
4020     [id(DISPID_IHTMLWINDOW2_NAVIGATE)]
4021     HRESULT navigate([in] BSTR url);
4022
4023     [propput, id(DISPID_IHTMLWINDOW2_ONFOCUS)]
4024     HRESULT onfocus([in] VARIANT v);
4025
4026     [propget, id(DISPID_IHTMLWINDOW2_ONFOCUS)]
4027     HRESULT onfocus([retval, out] VARIANT *p);
4028
4029     [propput, id(DISPID_IHTMLWINDOW2_ONBLUR)]
4030     HRESULT onblur([in] VARIANT v);
4031
4032     [propget, id(DISPID_IHTMLWINDOW2_ONBLUR)]
4033     HRESULT onblur([retval, out] VARIANT *p);
4034
4035     [propput, id(DISPID_IHTMLWINDOW2_ONLOAD)]
4036     HRESULT onload([in] VARIANT v);
4037
4038     [propget, id(DISPID_IHTMLWINDOW2_ONLOAD)]
4039     HRESULT onload([retval, out] VARIANT *p);
4040
4041     [propput, id(DISPID_IHTMLWINDOW2_ONBEFOREUNLOAD)]
4042     HRESULT onbeforeunload([in] VARIANT v);
4043
4044     [propget, id(DISPID_IHTMLWINDOW2_ONBEFOREUNLOAD)]
4045     HRESULT onbeforeunload([retval, out] VARIANT *p);
4046
4047     [propput, id(DISPID_IHTMLWINDOW2_ONUNLOAD)]
4048     HRESULT onunload([in] VARIANT v);
4049
4050     [propget, id(DISPID_IHTMLWINDOW2_ONUNLOAD)]
4051     HRESULT onunload([retval, out] VARIANT *p);
4052
4053     [propput, id(DISPID_IHTMLWINDOW2_ONHELP)]
4054     HRESULT onhelp([in] VARIANT v);
4055
4056     [propget, id(DISPID_IHTMLWINDOW2_ONHELP)]
4057     HRESULT onhelp([retval, out] VARIANT *p);
4058
4059     [propput, id(DISPID_IHTMLWINDOW2_ONERROR)]
4060     HRESULT onerror([in] VARIANT v);
4061
4062     [propget, id(DISPID_IHTMLWINDOW2_ONERROR)]
4063     HRESULT onerror([retval, out] VARIANT *p);
4064
4065     [propput, id(DISPID_IHTMLWINDOW2_ONRESIZE)]
4066     HRESULT onresize([in] VARIANT v);
4067
4068     [propget, id(DISPID_IHTMLWINDOW2_ONRESIZE)]
4069     HRESULT onresize([retval, out] VARIANT *p);
4070
4071     [propput, id(DISPID_IHTMLWINDOW2_ONSCROLL)]
4072     HRESULT onscroll([in] VARIANT v);
4073
4074     [propget, id(DISPID_IHTMLWINDOW2_ONSCROLL)]
4075     HRESULT onscroll([retval, out] VARIANT *p);
4076
4077     [propget, id(DISPID_IHTMLWINDOW2_DOCUMENT)]
4078     HRESULT document([retval, out] IHTMLDocument2 **p);
4079
4080     [propget, id(DISPID_IHTMLWINDOW2_EVENT)]
4081     HRESULT event([retval, out] IHTMLEventObj **p);
4082
4083     [propget, id(DISPID_IHTMLWINDOW2__NEWENUM)]
4084     HRESULT _newEnum([retval, out] IUnknown **p);
4085
4086     [id(DISPID_IHTMLWINDOW2_SHOWMODALDIALOG)]
4087     HRESULT showModalDialog(
4088         [in] BSTR dialog,
4089         [optional, in] VARIANT *varArgIn,
4090         [optional, in] VARIANT *varOptions,
4091         [retval, out] VARIANT *varArgOut);
4092
4093     [id(DISPID_IHTMLWINDOW2_SHOWHELP)]
4094     HRESULT showHelp(
4095         [in] BSTR helpURL,
4096         [optional, in] VARIANT helpArg,
4097         [defaultvalue(""), in] BSTR features);
4098
4099     [propget, id(DISPID_IHTMLWINDOW2_SCREEN)]
4100     HRESULT screen([retval, out] IHTMLScreen **p);
4101
4102     [propget, id(DISPID_IHTMLWINDOW2_OPTION)]
4103     HRESULT Option([retval, out] IHTMLOptionElementFactory **p);
4104
4105     [id(DISPID_IHTMLWINDOW2_FOCUS)]
4106     HRESULT focus();
4107
4108     [propget, id(DISPID_IHTMLWINDOW2_CLOSED)]
4109     HRESULT closed([retval, out] VARIANT_BOOL *p);
4110
4111     [id(DISPID_IHTMLWINDOW2_BLUR)]
4112     HRESULT blur();
4113
4114     [id(DISPID_IHTMLWINDOW2_SCROLL)]
4115     HRESULT scroll([in] long x, [in] long y);
4116
4117     [propget, id(DISPID_IHTMLWINDOW2_CLIENTINFORMATION)]
4118     HRESULT clientInformation([retval, out] IOmNavigator **p);
4119
4120     [id(DISPID_IHTMLWINDOW2_SETINTERVAL)]
4121     HRESULT setInterval([
4122         in] BSTR expression,
4123         [in] long msec,
4124         [optional, in] VARIANT *language,
4125         [retval, out] long *timerID);
4126
4127     [id(DISPID_IHTMLWINDOW2_CLEARINTERVAL)]
4128     HRESULT clearInterval([in] long timerID);
4129
4130     [propput, id(DISPID_IHTMLWINDOW2_OFFSCREENBUFFERING)]
4131     HRESULT offscreenBuffering([in] VARIANT v);
4132
4133     [propget, id(DISPID_IHTMLWINDOW2_OFFSCREENBUFFERING)]
4134     HRESULT offscreenBuffering([retval, out] VARIANT *p);
4135
4136     [id(DISPID_IHTMLWINDOW2_EXECSCRIPT)]
4137     HRESULT execScript(
4138         [in] BSTR scode,
4139         [defaultvalue("JScript"), in] BSTR language,
4140         [retval, out] VARIANT *pvarRet);
4141
4142     [id(DISPID_IHTMLWINDOW2_TOSTRING)]
4143     HRESULT toString([retval, out] BSTR *String);
4144
4145     [id(DISPID_IHTMLWINDOW2_SCROLLBY)]
4146     HRESULT scrollBy([in] long x, [in] long y);
4147
4148     [id(DISPID_IHTMLWINDOW2_SCROLLTO)]
4149     HRESULT scrollTo([in] long x, [in] long y);
4150
4151     [id(DISPID_IHTMLWINDOW2_MOVETO)]
4152     HRESULT moveTo([in] long x, [in] long y);
4153
4154     [id(DISPID_IHTMLWINDOW2_MOVEBY)]
4155     HRESULT moveBy([in] long x, [in] long y);
4156
4157     [id(DISPID_IHTMLWINDOW2_RESIZETO)]
4158     HRESULT resizeTo([in] long x, [in] long y);
4159
4160     [id(DISPID_IHTMLWINDOW2_RESIZEBY)]
4161     HRESULT resizeBy([in] long x, [in] long y);
4162
4163     [propget, id(DISPID_IHTMLWINDOW2_EXTERNAL)]
4164     HRESULT external([retval, out] IDispatch **p);
4165 }
4166
4167 /*****************************************************************************
4168  *    IHTMLDocument interface
4169  */
4170 [
4171     odl,
4172     oleautomation,
4173     dual,
4174     uuid(626FC520-A41E-11CF-A731-00A0C9082637)
4175 ]
4176 interface IHTMLDocument : IDispatch
4177 {
4178     [propget, id(DISPID_IHTMLDOCUMENT_SCRIPT)]
4179     HRESULT Script([retval, out] IDispatch **p);
4180 }
4181
4182 /*****************************************************************************
4183  *    IHTMLDocument2 interface
4184  */
4185 [
4186     odl,
4187     oleautomation,
4188     dual,
4189     uuid(332C4425-26CB-11D0-B483-00C04FD90119)
4190 ]
4191 interface IHTMLDocument2 : IHTMLDocument
4192 {
4193     [propget, id(DISPID_IHTMLDOCUMENT2_ALL)]
4194     HRESULT all([retval, out] IHTMLElementCollection **p);
4195
4196     [propget, id(DISPID_IHTMLDOCUMENT2_BODY)]
4197     HRESULT body([retval, out] IHTMLElement **p);
4198
4199     [propget, id(DISPID_IHTMLDOCUMENT2_ACTIVEELEMENT)]
4200     HRESULT activeElement([retval, out] IHTMLElement **p);
4201
4202     [propget, id(DISPID_IHTMLDOCUMENT2_IMAGES)]
4203     HRESULT images([retval, out] IHTMLElementCollection **p);
4204
4205     [propget, id(DISPID_IHTMLDOCUMENT2_APPLETS)]
4206     HRESULT applets([retval, out] IHTMLElementCollection **p);
4207
4208     [propget, id(DISPID_IHTMLDOCUMENT2_LINKS)]
4209     HRESULT links([retval, out] IHTMLElementCollection **p);
4210
4211     [propget, id(DISPID_IHTMLDOCUMENT2_FORMS)]
4212     HRESULT forms([retval, out] IHTMLElementCollection **p);
4213
4214     [propget, id(DISPID_IHTMLDOCUMENT2_ANCHORS)]
4215     HRESULT anchors([retval, out] IHTMLElementCollection **p);
4216
4217     [propput, id(DISPID_IHTMLDOCUMENT2_TITLE)]
4218     HRESULT title([in] BSTR v);
4219
4220     [propget, id(DISPID_IHTMLDOCUMENT2_TITLE)]
4221     HRESULT title([retval, out] BSTR *p);
4222
4223     [propget, id(DISPID_IHTMLDOCUMENT2_SCRIPTS)]
4224     HRESULT scripts([retval, out] IHTMLElementCollection **p);
4225
4226     [propput, id(DISPID_IHTMLDOCUMENT2_DESIGNMODE)]
4227     HRESULT designMode([in] BSTR v);
4228
4229     [propget, id(DISPID_IHTMLDOCUMENT2_DESIGNMODE)]
4230     HRESULT designMode([retval, out] BSTR *p);
4231
4232     [propget, id(DISPID_IHTMLDOCUMENT2_SELECTION)]
4233     HRESULT selection([retval, out] IHTMLSelectionObject **p);
4234
4235     [propget, id(DISPID_IHTMLDOCUMENT2_READYSTATE)]
4236      HRESULT readyState([retval, out] BSTR *p);
4237
4238     [propget, id(DISPID_IHTMLDOCUMENT2_FRAMES)]
4239     HRESULT frames([retval, out] IHTMLFramesCollection2 **p);
4240
4241     [propget, id(DISPID_IHTMLDOCUMENT2_EMBEDS)]
4242     HRESULT embeds([retval, out] IHTMLElementCollection **p);
4243
4244     [propget, id(DISPID_IHTMLDOCUMENT2_PLUGINS)]
4245     HRESULT plugins([retval, out] IHTMLElementCollection **p);
4246
4247     [propput, id(DISPID_IHTMLDOCUMENT2_ALINKCOLOR)]
4248     HRESULT alinkColor([in] VARIANT v);
4249
4250     [propget, id(DISPID_IHTMLDOCUMENT2_ALINKCOLOR)]
4251     HRESULT alinkColor([retval, out] VARIANT *p);
4252
4253     [propput, id(DISPID_IHTMLDOCUMENT2_BGCOLOR)]
4254     HRESULT bgColor([in] VARIANT v);
4255
4256     [propget, id(DISPID_IHTMLDOCUMENT2_BGCOLOR)]
4257     HRESULT bgColor([retval, out] VARIANT *p);
4258
4259     [propput, id(DISPID_IHTMLDOCUMENT2_FGCOLOR)]
4260     HRESULT fgColor([in] VARIANT v);
4261
4262     [propget, id(DISPID_IHTMLDOCUMENT2_FGCOLOR)]
4263     HRESULT fgColor([retval, out] VARIANT *p);
4264
4265     [propput, id(DISPID_IHTMLDOCUMENT2_LINKCOLOR)]
4266     HRESULT linkColor([in] VARIANT v);
4267
4268     [propget, id(DISPID_IHTMLDOCUMENT2_LINKCOLOR)]
4269     HRESULT linkColor([retval, out] VARIANT *p);
4270
4271     [propput, id(DISPID_IHTMLDOCUMENT2_VLINKCOLOR)]
4272     HRESULT vlinkColor([in] VARIANT v);
4273
4274     [propget, id(DISPID_IHTMLDOCUMENT2_VLINKCOLOR)]
4275     HRESULT vlinkColor([retval, out] VARIANT *p);
4276
4277     [propget, id(DISPID_IHTMLDOCUMENT2_REFERRER)]
4278     HRESULT referrer([retval, out] BSTR *p);
4279
4280     [propget, id(DISPID_IHTMLDOCUMENT2_LOCATION)]
4281     HRESULT location([retval, out] IHTMLLocation **p);
4282
4283     [propget, id(DISPID_IHTMLDOCUMENT2_LASTMODIFIED)]
4284     HRESULT lastModified([retval, out] BSTR *p);
4285
4286     [propput, id(DISPID_IHTMLDOCUMENT2_URL)]
4287     HRESULT URL([in] BSTR v);
4288
4289     [propget, id(DISPID_IHTMLDOCUMENT2_URL)]
4290     HRESULT URL([retval, out] BSTR *p);
4291
4292     [propput, id(DISPID_IHTMLDOCUMENT2_DOMAIN)]
4293     HRESULT domain([in] BSTR v);
4294
4295     [propget, id(DISPID_IHTMLDOCUMENT2_DOMAIN)]
4296     HRESULT domain([retval, out] BSTR *p);
4297
4298     [propput, id(DISPID_IHTMLDOCUMENT2_COOKIE)]
4299     HRESULT cookie([in] BSTR v);
4300
4301     [propget, id(DISPID_IHTMLDOCUMENT2_COOKIE)]
4302     HRESULT cookie([retval, out] BSTR *p);
4303
4304     [propput, id(DISPID_IHTMLDOCUMENT2_EXPANDO)]
4305     HRESULT expando([in] VARIANT_BOOL v);
4306
4307     [propget, id(DISPID_IHTMLDOCUMENT2_EXPANDO)]
4308     HRESULT expando([retval, out] VARIANT_BOOL *p);
4309
4310     [propput, id(DISPID_IHTMLDOCUMENT2_CHARSET)]
4311      HRESULT charset([in] BSTR v);
4312
4313     [propget, id(DISPID_IHTMLDOCUMENT2_CHARSET)]
4314     HRESULT charset([retval, out] BSTR *p);
4315
4316     [propput, id(DISPID_IHTMLDOCUMENT2_DEFAULTCHARSET)]
4317     HRESULT defaultCharset([in] BSTR v);
4318
4319     [propget, id(DISPID_IHTMLDOCUMENT2_DEFAULTCHARSET)]
4320     HRESULT defaultCharset([retval, out] BSTR *p);
4321
4322     [propget, id(DISPID_IHTMLDOCUMENT2_MIMETYPE)]
4323     HRESULT mimeType([retval, out] BSTR *p);
4324
4325     [propget, id(DISPID_IHTMLDOCUMENT2_FILESIZE)]
4326     HRESULT fileSize([retval, out] BSTR *p);
4327
4328     [propget, id(DISPID_IHTMLDOCUMENT2_FILECREATEDDATE)]
4329     HRESULT fileCreatedDate([retval, out] BSTR *p);
4330
4331     [propget, id(DISPID_IHTMLDOCUMENT2_FILEMODIFIEDDATE)]
4332     HRESULT fileModifiedDate([retval, out] BSTR *p);
4333
4334     [propget, id(DISPID_IHTMLDOCUMENT2_FILEUPDATEDDATE)]
4335     HRESULT fileUpdatedDate([retval, out] BSTR *p);
4336
4337     [propget, id(DISPID_IHTMLDOCUMENT2_SECURITY)]
4338     HRESULT security([retval, out] BSTR *p);
4339
4340     [propget, id(DISPID_IHTMLDOCUMENT2_PROTOCOL)]
4341     HRESULT protocol([retval, out] BSTR *p);
4342
4343     [propget, id(DISPID_IHTMLDOCUMENT2_NAMEPROP)]
4344      HRESULT nameProp([retval, out] BSTR *p);
4345
4346     [vararg, id(DISPID_IHTMLDOCUMENT2_WRITE)]
4347     HRESULT write([in] SAFEARRAY *psarray);
4348
4349     [vararg, id(DISPID_IHTMLDOCUMENT2_WRITELN)]
4350     HRESULT writeln([in] SAFEARRAY *psarray);
4351
4352     [id(DISPID_IHTMLDOCUMENT2_OPEN)]
4353     HRESULT open(
4354         [defaultvalue("text/html"), in] BSTR url,
4355         [optional, in] VARIANT name,
4356         [optional, in] VARIANT features,
4357         [optional, in] VARIANT replace,
4358         [retval, out]  IDispatch **pomWindowResult);
4359
4360     [id(DISPID_IHTMLDOCUMENT2_CLOSE)]
4361     HRESULT close();
4362
4363     [id(DISPID_IHTMLDOCUMENT2_CLEAR)]
4364     HRESULT clear();
4365
4366     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDSUPPORTED)]
4367     HRESULT queryCommandSupported(
4368         [in] BSTR cmdID,
4369         [retval, out] VARIANT_BOOL *pfRet);
4370
4371     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDENABLED)]
4372     HRESULT queryCommandEnabled(
4373         [in] BSTR cmdID,
4374         [retval, out] VARIANT_BOOL *pfRet);
4375
4376     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDSTATE)]
4377     HRESULT queryCommandState(
4378         [in] BSTR cmdID,
4379         [retval, out] VARIANT_BOOL *pfRet);
4380
4381     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDINDETERM)]
4382     HRESULT queryCommandIndeterm(
4383         [in] BSTR cmdID,
4384         [retval, out] VARIANT_BOOL *pfRet);
4385
4386     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDTEXT)]
4387     HRESULT queryCommandText(
4388         [in] BSTR cmdID,
4389         [retval, out] BSTR *pcmdText);
4390
4391     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDVALUE)]
4392     HRESULT queryCommandValue(
4393         [in] BSTR cmdID,
4394         [retval, out] VARIANT *pcmdValue);
4395
4396     [id(DISPID_IHTMLDOCUMENT2_EXECCOMMAND)]
4397     HRESULT execCommand(
4398         [in] BSTR cmdID,
4399         [defaultvalue(0), in] VARIANT_BOOL showUI,
4400         [optional, in] VARIANT value,
4401         [retval, out] VARIANT_BOOL *pfRet);
4402
4403     [id(DISPID_IHTMLDOCUMENT2_EXECCOMMANDSHOWHELP)]
4404     HRESULT execCommandShowHelp(
4405         [in] BSTR cmdID,
4406         [retval, out] VARIANT_BOOL *pfRet);
4407
4408     [id(DISPID_IHTMLDOCUMENT2_CREATEELEMENT)]
4409      HRESULT createElement(
4410         [in] BSTR eTag,
4411         [retval, out] IHTMLElement **newElem);
4412
4413     [propput, id(DISPID_IHTMLDOCUMENT2_ONHELP)]
4414     HRESULT onhelp([in] VARIANT v);
4415
4416     [propget, id(DISPID_IHTMLDOCUMENT2_ONHELP)]
4417     HRESULT onhelp([retval, out] VARIANT *p);
4418
4419     [propput, id(DISPID_IHTMLDOCUMENT2_ONCLICK)]
4420     HRESULT onclick([in] VARIANT v);
4421
4422     [propget, id(DISPID_IHTMLDOCUMENT2_ONCLICK)]
4423     HRESULT onclick([retval, out] VARIANT *p);
4424
4425     [propput, id(DISPID_IHTMLDOCUMENT2_ONDBLCLICK)]
4426     HRESULT ondblclick([in] VARIANT v);
4427
4428     [propget, id(DISPID_IHTMLDOCUMENT2_ONDBLCLICK)]
4429     HRESULT ondblclick([retval, out] VARIANT *p);
4430
4431     [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYUP)]
4432     HRESULT onkeyup([in] VARIANT v);
4433
4434     [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYUP)]
4435     HRESULT onkeyup([retval, out] VARIANT *p);
4436
4437     [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYDOWN)]
4438     HRESULT onkeydown([in] VARIANT v);
4439
4440     [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYDOWN)]
4441     HRESULT onkeydown([retval, out] VARIANT *p);
4442
4443     [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYPRESS)]
4444      HRESULT onkeypress([in] VARIANT v);
4445
4446     [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYPRESS)]
4447     HRESULT onkeypress([retval, out] VARIANT *p);
4448
4449     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEUP)]
4450     HRESULT onmouseup([in] VARIANT v);
4451
4452     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEUP)]
4453     HRESULT onmouseup([retval, out] VARIANT *p);
4454
4455     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEDOWN)]
4456     HRESULT onmousedown([in] VARIANT v);
4457
4458     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEDOWN)]
4459     HRESULT onmousedown([retval, out] VARIANT *p);
4460
4461     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEMOVE)]
4462     HRESULT onmousemove([in] VARIANT v);
4463
4464     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEMOVE)]
4465     HRESULT onmousemove([retval, out] VARIANT *p);
4466
4467     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOUT)]
4468     HRESULT onmouseout([in] VARIANT v);
4469
4470     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOUT)]
4471     HRESULT onmouseout([retval, out] VARIANT *p);
4472
4473     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOVER)]
4474     HRESULT onmouseover([in] VARIANT v);
4475
4476     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOVER)]
4477     HRESULT onmouseover([retval, out] VARIANT *p);
4478
4479     [propput, id(DISPID_IHTMLDOCUMENT2_ONREADYSTATECHANGE)]
4480     HRESULT onreadystatechange([in] VARIANT v);
4481
4482     [propget, id(DISPID_IHTMLDOCUMENT2_ONREADYSTATECHANGE)]
4483     HRESULT onreadystatechange([retval, out] VARIANT *p);
4484
4485     [propput, id(DISPID_IHTMLDOCUMENT2_ONAFTERUPDATE)]
4486     HRESULT onafterupdate([in] VARIANT v);
4487
4488     [propget, id(DISPID_IHTMLDOCUMENT2_ONAFTERUPDATE)]
4489     HRESULT onafterupdate([retval, out] VARIANT *p);
4490
4491     [propput, id(DISPID_IHTMLDOCUMENT2_ONROWEXIT)]
4492     HRESULT onrowexit([in] VARIANT v);
4493
4494     [propget, id(DISPID_IHTMLDOCUMENT2_ONROWEXIT)]
4495     HRESULT onrowexit([retval, out] VARIANT *p);
4496
4497     [propput, id(DISPID_IHTMLDOCUMENT2_ONROWENTER)]
4498     HRESULT onrowenter([in] VARIANT v);
4499
4500     [propget, id(DISPID_IHTMLDOCUMENT2_ONROWENTER)]
4501     HRESULT onrowenter([retval, out] VARIANT *p);
4502
4503     [propput, id(DISPID_IHTMLDOCUMENT2_ONDRAGSTART)]
4504     HRESULT ondragstart([in] VARIANT v);
4505
4506     [propget, id(DISPID_IHTMLDOCUMENT2_ONDRAGSTART)]
4507     HRESULT ondragstart([retval, out] VARIANT *p);
4508
4509     [propput, id(DISPID_IHTMLDOCUMENT2_ONSELECTSTART)]
4510     HRESULT onselectstart([in] VARIANT v);
4511
4512     [propget, id(DISPID_IHTMLDOCUMENT2_ONSELECTSTART)]
4513     HRESULT onselectstart([retval, out] VARIANT *p);
4514
4515     [id(DISPID_IHTMLDOCUMENT2_ELEMENTFROMPOINT)]
4516     HRESULT elementFromPoint(
4517         [in] long x,
4518         [in] long y,
4519         [retval, out] IHTMLElement **elementHit);
4520
4521     [propget, id(DISPID_IHTMLDOCUMENT2_PARENTWINDOW)]
4522     HRESULT parentWindow([retval, out] IHTMLWindow2 **p);
4523
4524     [propget, id(DISPID_IHTMLDOCUMENT2_STYLESHEETS)]
4525     HRESULT styleSheets([retval, out] IHTMLStyleSheetsCollection **p);
4526
4527     [propput, id(DISPID_IHTMLDOCUMENT2_ONBEFOREUPDATE)]
4528     HRESULT onbeforeupdate([in] VARIANT v);
4529
4530     [propget, id(DISPID_IHTMLDOCUMENT2_ONBEFOREUPDATE)]
4531     HRESULT onbeforeupdate([retval, out] VARIANT *p);
4532
4533     [propput, id(DISPID_IHTMLDOCUMENT2_ONERRORUPDATE)]
4534     HRESULT onerrorupdate([in] VARIANT v);
4535
4536     [propget, id(DISPID_IHTMLDOCUMENT2_ONERRORUPDATE)]
4537     HRESULT onerrorupdate([retval, out] VARIANT *p);
4538
4539     [id(DISPID_IHTMLDOCUMENT2_TOSTRING)]
4540     HRESULT toString([retval, out] BSTR *String);
4541
4542     [id(DISPID_IHTMLDOCUMENT2_CREATESTYLESHEET)]
4543     HRESULT createStyleSheet(
4544         [defaultvalue(""), in] BSTR bstrHref,
4545         [defaultvalue(-1), in] long lIndex,
4546         [retval, out] IHTMLStyleSheet **ppnewStyleSheet);
4547 }
4548
4549 /*****************************************************************************
4550  *    IHTMLDocument3 interface
4551  */
4552 [
4553     odl,
4554     oleautomation,
4555     dual,
4556     uuid(3050f485-98b5-11cf-bb82-00aa00bdce0b)
4557 ]
4558 interface IHTMLDocument3 : IDispatch
4559 {
4560     [id(DISPID_IHTMLDOCUMENT3_RELEASECAPTURE)]
4561     HRESULT releaseCapture();
4562
4563     [id(DISPID_IHTMLDOCUMENT3_RECALC)]
4564     HRESULT recalc([defaultvalue(0), in] VARIANT_BOOL fForce);
4565
4566     [id(DISPID_IHTMLDOCUMENT3_CREATETEXTNODE)]
4567     HRESULT createTextNode(
4568         [in] BSTR text,
4569         [retval, out] IHTMLDOMNode **newTextNode);
4570
4571     [propget, id(DISPID_IHTMLDOCUMENT3_DOCUMENTELEMENT)]
4572     HRESULT documentElement([retval, out] IHTMLElement **p);
4573
4574     [propget, id(DISPID_IHTMLDOCUMENT3_UNIQUEID), hidden]
4575     HRESULT uniqueID([retval, out] BSTR *p);
4576     
4577     [id(DISPID_IHTMLDOCUMENT3_ATTACHEVENT)]
4578     HRESULT attachEvent(
4579         [in] BSTR event,
4580         [in] IDispatch* pDisp,
4581         [retval, out] VARIANT_BOOL *pfResult);
4582
4583     [id(DISPID_IHTMLDOCUMENT3_DETACHEVENT)]
4584     HRESULT detachEvent(
4585         [in] BSTR event,
4586         [in] IDispatch *pDisp);
4587
4588     [propput, id(DISPID_IHTMLDOCUMENT3_ONROWSDELETE), displaybind, bindable]
4589     HRESULT onrowsdelete([in] VARIANT v);
4590
4591     [propget, id(DISPID_IHTMLDOCUMENT3_ONROWSDELETE), displaybind, bindable]
4592     HRESULT onrowsdelete([retval, out] VARIANT *p);
4593
4594     [propput, id(DISPID_IHTMLDOCUMENT3_ONROWSINSERTED), displaybind, bindable]
4595     HRESULT onrowsinserted([in] VARIANT v);
4596
4597     [propget, id(DISPID_IHTMLDOCUMENT3_ONROWSINSERTED), displaybind, bindable]
4598     HRESULT onrowsinserted([retval, out] VARIANT *p);
4599
4600     [propput, id(DISPID_IHTMLDOCUMENT3_ONCELLCHANGE), displaybind, bindable]
4601     HRESULT oncellchange([in] VARIANT v);
4602
4603     [propget, id(DISPID_IHTMLDOCUMENT3_ONCELLCHANGE), displaybind, bindable]
4604     HRESULT oncellchange([retval, out] VARIANT *p);
4605
4606     [propput, id(DISPID_IHTMLDOCUMENT3_ONDATASETCHANGED), displaybind, bindable]
4607     HRESULT ondatasetchanged([in] VARIANT v);
4608
4609     [propget, id(DISPID_IHTMLDOCUMENT3_ONDATASETCHANGED), displaybind, bindable]
4610     HRESULT ondatasetchanged([retval, out] VARIANT *p);
4611
4612     [propput, id(DISPID_IHTMLDOCUMENT3_ONDATAAVAILABLE), displaybind, bindable]
4613     HRESULT ondataavailable([in] VARIANT v);
4614
4615     [propget, id(DISPID_IHTMLDOCUMENT3_ONDATAAVAILABLE), displaybind, bindable]
4616     HRESULT ondataavailable([retval, out] VARIANT * p);
4617
4618     [propput, id(DISPID_IHTMLDOCUMENT3_ONDATASETCOMPLETE), displaybind, bindable]
4619     HRESULT ondatasetcomplete([in] VARIANT v);
4620
4621     [propget, id(DISPID_IHTMLDOCUMENT3_ONDATASETCOMPLETE), displaybind, bindable]
4622     HRESULT ondatasetcomplete([retval, out] VARIANT *p);
4623
4624     [propput, id(DISPID_IHTMLDOCUMENT3_ONPROPERTYCHANGE), displaybind, bindable]
4625     HRESULT onpropertychange([in] VARIANT v);
4626
4627     [propget, id(DISPID_IHTMLDOCUMENT3_ONPROPERTYCHANGE), displaybind, bindable]
4628     HRESULT onpropertychange([retval, out] VARIANT *p);
4629
4630     [propput, id(DISPID_IHTMLDOCUMENT3_DIR)]
4631     HRESULT dir([in] BSTR v);
4632
4633     [propget, id(DISPID_IHTMLDOCUMENT3_DIR)]
4634     HRESULT dir([retval, out] BSTR *p);
4635
4636     [propput, id(DISPID_IHTMLDOCUMENT3_ONCONTEXTMENU), displaybind, bindable]
4637     HRESULT oncontextmenu([in] VARIANT v);
4638
4639     [propget, id(DISPID_IHTMLDOCUMENT3_ONCONTEXTMENU), displaybind, bindable]
4640     HRESULT oncontextmenu([retval, out] VARIANT *p);
4641
4642     [propput, id(DISPID_IHTMLDOCUMENT3_ONSTOP), displaybind, bindable]
4643     HRESULT onstop([in] VARIANT v);
4644
4645     [propget, id(DISPID_IHTMLDOCUMENT3_ONSTOP), displaybind, bindable]
4646     HRESULT onstop([retval, out] VARIANT *p);
4647
4648     [id(DISPID_IHTMLDOCUMENT3_CREATEDOCUMENTFRAGMENT)]
4649     HRESULT createDocumentFragment([retval, out] IHTMLDocument2 **pNewDoc);
4650
4651     [propget, id(DISPID_IHTMLDOCUMENT3_PARENTDOCUMENT), hidden, restricted]
4652     HRESULT parentDocument([retval, out] IHTMLDocument2 **p);
4653
4654     [propput, id(DISPID_IHTMLDOCUMENT3_ENABLEDOWNLOAD), hidden, restricted]
4655     HRESULT enableDownload([in] VARIANT_BOOL v);
4656
4657     [propget, id(DISPID_IHTMLDOCUMENT3_ENABLEDOWNLOAD), hidden, restricted]
4658     HRESULT enableDownload([retval, out] VARIANT_BOOL *p);
4659
4660     [propput, id(DISPID_IHTMLDOCUMENT3_BASEURL), hidden, restricted]
4661     HRESULT baseUrl([in] BSTR v);
4662
4663     [propget, id(DISPID_IHTMLDOCUMENT3_BASEURL), hidden, restricted]
4664     HRESULT baseUrl([retval, out] BSTR *p);
4665
4666     [propget, id(DISPID_IHTMLDOCUMENT3_CHILDNODES)]
4667     HRESULT childNodes([retval, out] IDispatch **p);
4668
4669     [propput, id(DISPID_IHTMLDOCUMENT3_INHERITSTYLESHEETS), hidden, restricted]
4670     HRESULT inheritStyleSheets([in] VARIANT_BOOL v);
4671
4672     [propget, id(DISPID_IHTMLDOCUMENT3_INHERITSTYLESHEETS), hidden, restricted]
4673     HRESULT inheritStyleSheets([retval, out] VARIANT_BOOL *p);
4674
4675     [propput, id(DISPID_IHTMLDOCUMENT3_ONBEFOREEDITFOCUS), displaybind, bindable]
4676     HRESULT onbeforeeditfocus([in] VARIANT v);
4677
4678     [propget, id(DISPID_IHTMLDOCUMENT3_ONBEFOREEDITFOCUS), displaybind, bindable]
4679     HRESULT onbeforeeditfocus([retval, out] VARIANT *p);
4680
4681     [id(DISPID_IHTMLDOCUMENT3_GETELEMENTSBYNAME)]
4682     HRESULT getElementsByName(
4683         [in] BSTR v,
4684         [retval, out] IHTMLElementCollection **pelColl);
4685
4686     [id(DISPID_IHTMLDOCUMENT3_GETELEMENTBYID)]
4687     HRESULT getElementById(
4688         [in] BSTR v,
4689         [retval, out] IHTMLElement **pel);
4690
4691     [id(DISPID_IHTMLDOCUMENT3_GETELEMENTSBYTAGNAME)]
4692     HRESULT getElementsByTagName(
4693         [in] BSTR v,
4694         [retval, out] IHTMLElementCollection **pelColl);
4695 }
4696
4697 /*****************************************************************************
4698  *    IHTMLDocument4 interface
4699  */
4700 [
4701     odl,
4702     oleautomation,
4703     dual,
4704     uuid(3050f69a-98b5-11cf-bb82-00aa00bdce0b)
4705 ]
4706 interface IHTMLDocument4 : IDispatch
4707 {
4708     [id(DISPID_IHTMLDOCUMENT4_FOCUS)]
4709     HRESULT focus();
4710
4711     [id(DISPID_IHTMLDOCUMENT4_HASFOCUS)]
4712     HRESULT hasFocus([retval, out] VARIANT_BOOL *pfFocus);
4713
4714     [propput, id(DISPID_IHTMLDOCUMENT4_ONSELECTIONCHANGE), displaybind, bindable]
4715     HRESULT onselectionchange([in] VARIANT v);
4716
4717     [propget, id(DISPID_IHTMLDOCUMENT4_ONSELECTIONCHANGE), displaybind, bindable]
4718     HRESULT onselectionchange([retval, out] VARIANT *p);
4719
4720     [propget, id(DISPID_IHTMLDOCUMENT4_NAMESPACES)]
4721     HRESULT namespaces([retval, out] IDispatch **p);
4722
4723     [id(DISPID_IHTMLDOCUMENT4_CREATEDOCUMENTFROMURL)]
4724     HRESULT createDocumentFromUrl(
4725         [in] BSTR bstrUrl,
4726         [in] BSTR bstrOptions,
4727         [retval, out] IHTMLDocument2 **newDoc);
4728
4729     [propput, id(DISPID_IHTMLDOCUMENT4_MEDIA)]
4730     HRESULT media([in] BSTR v);
4731
4732     [propget, id(DISPID_IHTMLDOCUMENT4_MEDIA)]
4733     HRESULT media([retval, out] BSTR *p);
4734
4735     [id(DISPID_IHTMLDOCUMENT4_CREATEEVENTOBJECT)]
4736     HRESULT createEventObject(
4737         [optional, in] VARIANT *pvarEventObject,
4738         [retval, out] IHTMLEventObj **ppEventObj);
4739
4740     [id(DISPID_IHTMLDOCUMENT4_FIREEVENT)]
4741     HRESULT fireEvent(
4742         [in] BSTR bstrEventName,
4743         [optional, in] VARIANT *pvarEventObject,
4744         [retval, out] VARIANT_BOOL *pfCancelled);
4745
4746     [id(DISPID_IHTMLDOCUMENT4_CREATERENDERSTYLE)]
4747     HRESULT createRenderStyle(
4748         [in] BSTR v,
4749         [retval, out] IHTMLRenderStyle **ppIHTMLRenderStyle);
4750
4751     [propput, id(DISPID_IHTMLDOCUMENT4_ONCONTROLSELECT), displaybind, bindable]
4752     HRESULT oncontrolselect([in] VARIANT v);
4753
4754     [propget, id(DISPID_IHTMLDOCUMENT4_ONCONTROLSELECT), displaybind, bindable]
4755     HRESULT oncontrolselect([retval, out] VARIANT *p);
4756
4757     [propget, id(DISPID_IHTMLDOCUMENT4_URLUNENCODED)]
4758     HRESULT URLUnencoded([retval, out] BSTR *p);
4759 }
4760
4761 /*****************************************************************************
4762  *    IHTMLDocument5 interface
4763  */
4764 [
4765     odl,
4766     oleautomation,
4767     dual,
4768     uuid(3050f80c-98b5-11cf-bb82-00aa00bdce0b)
4769 ]
4770 interface IHTMLDocument5 : IDispatch
4771 {
4772     [propput, id(DISPID_IHTMLDOCUMENT5_ONMOUSEWHEEL), displaybind, bindable]
4773     HRESULT onmousewheel([in] VARIANT v);
4774
4775     [propget, id(DISPID_IHTMLDOCUMENT5_ONMOUSEWHEEL), displaybind, bindable]
4776     HRESULT onmousewheel([retval, out] VARIANT *p);
4777
4778     [propget, id(DISPID_IHTMLDOCUMENT5_DOCTYPE)]
4779     HRESULT doctype([retval, out] IHTMLDOMNode **p);
4780
4781     [propget, id(DISPID_IHTMLDOCUMENT5_IMPLEMENTATION)]
4782     HRESULT implementation([retval, out] IHTMLDOMImplementation **p);
4783
4784     [id(DISPID_IHTMLDOCUMENT5_CREATEATTRIBUTE)]
4785     HRESULT createAttribute(
4786         [in] BSTR bstrattrName,
4787         [retval, out] IHTMLDOMAttribute **ppattribute);
4788
4789     [id(DISPID_IHTMLDOCUMENT5_CREATECOMMENT)]
4790     HRESULT createComment(
4791         [in] BSTR bstrdata,
4792         [retval, out] IHTMLDOMNode **ppRetNode);
4793
4794     [propput, id(DISPID_IHTMLDOCUMENT5_ONFOCUSIN), displaybind, bindable]
4795     HRESULT onfocusin([in] VARIANT v);
4796
4797     [propget, id(DISPID_IHTMLDOCUMENT5_ONFOCUSIN), displaybind, bindable]
4798     HRESULT onfocusin([retval, out] VARIANT *p);
4799
4800     [propput, id(DISPID_IHTMLDOCUMENT5_ONFOCUSOUT), displaybind, bindable]
4801     HRESULT onfocusout([in] VARIANT v);
4802
4803     [propget, id(DISPID_IHTMLDOCUMENT5_ONFOCUSOUT), displaybind, bindable]
4804     HRESULT onfocusout([retval, out] VARIANT *p);
4805
4806     [propput, id(DISPID_IHTMLDOCUMENT5_ONACTIVATE), displaybind, bindable]
4807     HRESULT onactivate([in] VARIANT v);
4808
4809     [propget, id(DISPID_IHTMLDOCUMENT5_ONACTIVATE), displaybind, bindable]
4810     HRESULT onactivate([retval, out] VARIANT *p);
4811
4812     [propput, id(DISPID_IHTMLDOCUMENT5_ONDEACTIVATE), displaybind, bindable]
4813     HRESULT ondeactivate([in] VARIANT v);
4814
4815     [propget, id(DISPID_IHTMLDOCUMENT5_ONDEACTIVATE), displaybind, bindable]
4816     HRESULT ondeactivate([retval, out] VARIANT *p);
4817
4818     [propput, id(DISPID_IHTMLDOCUMENT5_ONBEFOREACTIVATE), displaybind, bindable]
4819     HRESULT onbeforeactivate([in] VARIANT v);
4820
4821     [propget, id(DISPID_IHTMLDOCUMENT5_ONBEFOREACTIVATE), displaybind, bindable]
4822     HRESULT onbeforeactivate([retval, out] VARIANT *p);
4823
4824     [propput, id(DISPID_IHTMLDOCUMENT5_ONBEFOREDEACTIVATE), displaybind, bindable]
4825     HRESULT onbeforedeactivate([in] VARIANT v);
4826
4827     [propget, id(DISPID_IHTMLDOCUMENT5_ONBEFOREDEACTIVATE), displaybind, bindable]
4828     HRESULT onbeforedeactivate([retval, out] VARIANT *p);
4829
4830     [propget, id(DISPID_IHTMLDOCUMENT5_COMPATMODE)]
4831     HRESULT compatMode([retval, out] BSTR *p);
4832 }
4833
4834 /*****************************************************************************
4835  *    HTMLDocument coclass
4836  */
4837 [
4838     uuid(25336920-03F9-11cf-8FD0-00AA00686F13)
4839 ]
4840 coclass HTMLDocument
4841 {
4842     [default]         interface IHTMLDocument2;
4843     [source, default] dispinterface HTMLDocumentEvents;
4844 };
4845
4846 } /* library MSHTML */