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