indexsvr.h: Fix a typo.
[wine] / include / mshtml.idl
1 /*
2  * Copyright 2004-2006 Jacek Caban for CodeWeavers
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 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  *    IHTMLDOMAttribute interface
1633  */
1634 [
1635     odl,
1636     oleautomation,
1637     dual,
1638     uuid(3050f4b0-98b5-11cf-bb82-00aa00bdce0b)
1639 ]
1640 interface IHTMLDOMAttribute : IDispatch
1641 {
1642     [propget, id(DISPID_IHTMLDOMATTRIBUTE_NODENAME)]
1643     HRESULT nodeName([retval, out] BSTR *p);
1644
1645     [propput, id(DISPID_IHTMLDOMATTRIBUTE_NODEVALUE)]
1646     HRESULT nodeValue([in] VARIANT v);
1647
1648     [propget, id(DISPID_IHTMLDOMATTRIBUTE_NODEVALUE)]
1649     HRESULT nodeValue([retval, out] VARIANT *p);
1650
1651     [propget, id(DISPID_IHTMLDOMATTRIBUTE_SPECIFIED)]
1652     HRESULT specified([retval, out] VARIANT_BOOL *p);
1653 }
1654
1655 /*****************************************************************************
1656  *    IHTMLDOMImplementation interface
1657  */
1658 [
1659     odl,
1660     oleautomation,
1661     dual,
1662     uuid(3050f80d-98b5-11cf-bb82-00aa00bdce0b)
1663 ]
1664 interface IHTMLDOMImplementation : IDispatch
1665 {
1666     [id(DISPID_IHTMLDOMIMPLEMENTATION_HASFEATURE)]
1667     HRESULT hasFeature(
1668         [in] BSTR bstrfeature,
1669         [optional, in] VARIANT version,
1670         [retval, out] VARIANT_BOOL *pfHasFeature);
1671 }
1672
1673 interface IHTMLElementCollection;
1674
1675 /*****************************************************************************
1676  *    IHTMLElement interface
1677  */
1678 [
1679     odl,
1680     dual,
1681     oleautomation,
1682     uuid(3050f1FF-98B5-11CF-BB82-00AA00BDCE0B)
1683 ]
1684 interface IHTMLElement : IDispatch
1685 {
1686     [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)]
1687     HRESULT setAttribute(
1688         [in] BSTR strAttributeName,
1689         [in] VARIANT AttributeValue,
1690         [defaultvalue(1), in] LONG lFlags);
1691
1692     [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)]
1693     HRESULT getAttribute(
1694         [in] BSTR strAttributeName,
1695         [defaultvalue(0), in] LONG lFlags,
1696         [retval, out] VARIANT *AttributeValue);
1697
1698     [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)]
1699     HRESULT removeAttribute(
1700         [in] BSTR strAttributeName,
1701         [defaultvalue(1), in] LONG lFlags,
1702         [retval, out] VARIANT_BOOL *pfSuccess);
1703
1704     [propput, id(DISPID_IHTMLELEMENT_CLASSNAME)]
1705     HRESULT className([in] BSTR v);
1706
1707     [propget, id(DISPID_IHTMLELEMENT_CLASSNAME)]
1708     HRESULT className([retval, out] BSTR *p);
1709
1710     [propput, id(DISPID_IHTMLELEMENT_ID)]
1711     HRESULT id([in] BSTR v);
1712
1713     [propget, id(DISPID_IHTMLELEMENT_ID)]
1714     HRESULT id([retval, out] BSTR *p);
1715
1716     [propget, id(DISPID_IHTMLELEMENT_TAGNAME)]
1717     HRESULT tagName([retval, out] BSTR *p);
1718
1719     [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)]
1720     HRESULT parentElement([retval, out] IHTMLElement **p);
1721
1722     [propget, id(DISPID_IHTMLELEMENT_STYLE)]
1723     HRESULT style([retval, out] IHTMLStyle **p);
1724
1725     [propput, id(DISPID_IHTMLELEMENT_ONHELP)]
1726     HRESULT onhelp([in] VARIANT v);
1727
1728     [propget, id(DISPID_IHTMLELEMENT_ONHELP)]
1729     HRESULT onhelp([retval, out] VARIANT *p);
1730
1731     [propput, id(DISPID_IHTMLELEMENT_ONCLICK)]
1732     HRESULT onclick([in] VARIANT v);
1733
1734     [propget, id(DISPID_IHTMLELEMENT_ONCLICK)]
1735     HRESULT onclick([retval, out] VARIANT *p);
1736
1737     [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK)]
1738     HRESULT ondblclick([in] VARIANT v);
1739
1740     [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK)]
1741     HRESULT ondblclick([retval, out] VARIANT *p);
1742
1743     [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN)]
1744     HRESULT onkeydown([in] VARIANT v);
1745
1746     [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN)]
1747     HRESULT onkeydown([retval, out] VARIANT *p);
1748
1749     [propput, id(DISPID_IHTMLELEMENT_ONKEYUP)]
1750     HRESULT onkeyup([in] VARIANT v);
1751     
1752     [propget, id(DISPID_IHTMLELEMENT_ONKEYUP)]
1753     HRESULT onkeyup([retval, out] VARIANT *p);
1754
1755     [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS)]
1756     HRESULT onkeypress([in] VARIANT v);
1757
1758     [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS)]
1759     HRESULT onkeypress([retval, out] VARIANT *p);
1760
1761     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT)]
1762     HRESULT onmouseout([in] VARIANT v);
1763
1764     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT)]
1765     HRESULT onmouseout([retval, out] VARIANT *p);
1766
1767     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER)]
1768     HRESULT onmouseover([in] VARIANT v);
1769
1770     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER)]
1771     HRESULT onmouseover([retval, out] VARIANT *p);
1772
1773     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE)]
1774     HRESULT onmousemove([in] VARIANT v);
1775
1776     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE)]
1777     HRESULT onmousemove([retval, out] VARIANT *p);
1778
1779     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN)]
1780     HRESULT onmousedown([in] VARIANT v);
1781
1782     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN)]
1783     HRESULT onmousedown([retval, out] VARIANT *p);
1784
1785     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP)]
1786     HRESULT onmouseup([in] VARIANT v);
1787
1788     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP)]
1789     HRESULT onmouseup([retval, out] VARIANT *p);
1790
1791     [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)]
1792     HRESULT document([retval, out] IDispatch **p);
1793
1794     [propput, id(DISPID_IHTMLELEMENT_TITLE)]
1795     HRESULT title([in] BSTR v);
1796
1797     [propget, id(DISPID_IHTMLELEMENT_TITLE)]
1798     HRESULT title([retval, out] BSTR *p);
1799
1800     [propput, id(DISPID_IHTMLELEMENT_LANGUAGE)]
1801     HRESULT language([in] BSTR v);
1802
1803     [propget, id(DISPID_IHTMLELEMENT_LANGUAGE)]
1804     HRESULT language([retval, out] BSTR *p);
1805
1806     [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART)]
1807     HRESULT onselectstart([in] VARIANT v);
1808
1809     [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART)]
1810     HRESULT onselectstart([retval, out] VARIANT *p);
1811
1812     [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)]
1813     HRESULT scrollIntoView([optional, in] VARIANT varargStart);
1814
1815     [id(DISPID_IHTMLELEMENT_CONTAINS)]
1816     HRESULT contains(
1817         [in] IHTMLElement *pChild,
1818         [retval, out] VARIANT_BOOL *pfResult);
1819
1820     [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX)]
1821     HRESULT sourceIndex([retval, out] long *p);
1822
1823     [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)]
1824     HRESULT recordNumber([retval, out] VARIANT *p);
1825
1826     [propput, id(DISPID_IHTMLELEMENT_LANG)]
1827     HRESULT lang([in] BSTR v);
1828
1829     [propget, id(DISPID_IHTMLELEMENT_LANG)]
1830     HRESULT lang([retval, out] BSTR *p);
1831
1832     [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)]
1833     HRESULT offsetLeft([retval, out] long *p);
1834
1835     [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)]
1836     HRESULT offsetTop([retval, out] long *p);
1837
1838     [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)]
1839     HRESULT offsetWidth([retval, out] long *p);
1840
1841     [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)]
1842     HRESULT offsetHeight([retval, out] long *p);
1843
1844     [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)]
1845     HRESULT offsetParent([retval, out] IHTMLElement **p);
1846
1847     [propput, id(DISPID_IHTMLELEMENT_INNERHTML)]
1848     HRESULT innerHTML([in] BSTR v);
1849
1850     [propget, id(DISPID_IHTMLELEMENT_INNERHTML)]
1851     HRESULT innerHTML([retval, out] BSTR *p);
1852
1853     [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)]
1854     HRESULT innerText([in] BSTR v);
1855
1856     [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)]
1857     HRESULT innerText([retval, out] BSTR *p);
1858
1859     [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)]
1860     HRESULT outerHTML([in] BSTR v);
1861
1862     [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)]
1863     HRESULT outerHTML([retval, out] BSTR *p);
1864
1865     [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
1866     HRESULT outerText([in] BSTR v);
1867
1868     [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
1869     HRESULT outerText([retval, out] BSTR *p);
1870
1871     [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)]
1872     HRESULT insertAdjacentHTML([in] BSTR where, [in] BSTR html);
1873
1874     [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)]
1875     HRESULT insertAdjacentText([in] BSTR where, [in] BSTR text);
1876
1877     [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)]
1878     HRESULT parentTextEdit([retval, out] IHTMLElement **p);
1879
1880     [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)]
1881     HRESULT isTextEdit([retval, out] VARIANT_BOOL *p);
1882
1883     [id(DISPID_IHTMLELEMENT_CLICK)]
1884     HRESULT click();
1885
1886     [propget, id(DISPID_IHTMLELEMENT_FILTERS)]
1887     HRESULT filters([retval, out] IHTMLFiltersCollection **p);
1888
1889     [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART)]
1890     HRESULT ondragstart([in] VARIANT v);
1891
1892     [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART)]
1893     HRESULT ondragstart([retval, out] VARIANT *p);
1894
1895     [id(DISPID_IHTMLELEMENT_TOSTRING)]
1896     HRESULT toString([retval, out] BSTR *String);
1897
1898     [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE)]
1899     HRESULT onbeforeupdate([in] VARIANT v);
1900
1901     [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE)]
1902     HRESULT onbeforeupdate([retval, out] VARIANT *p);
1903
1904     [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE)]
1905     HRESULT onafterupdate([in] VARIANT v);
1906
1907     [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE)]
1908     HRESULT onafterupdate([retval, out] VARIANT *p);
1909
1910     [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE)]
1911     HRESULT onerrorupdate([in] VARIANT v);
1912
1913     [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE)]
1914     HRESULT onerrorupdate([retval, out] VARIANT *p);
1915
1916     [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT)]
1917     HRESULT onrowexit([in] VARIANT v);
1918
1919     [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT)]
1920     HRESULT onrowexit([retval, out] VARIANT *p);
1921
1922     [propput, id(DISPID_IHTMLELEMENT_ONROWENTER)]
1923     HRESULT onrowenter([in] VARIANT v);
1924
1925     [propget, id(DISPID_IHTMLELEMENT_ONROWENTER)]
1926     HRESULT onrowenter([retval, out] VARIANT *p);
1927
1928     [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED)]
1929     HRESULT ondatasetchanged([in] VARIANT v);
1930
1931     [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED)]
1932     HRESULT ondatasetchanged([retval, out] VARIANT *p);
1933
1934     [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE)]
1935     HRESULT ondataavailable([in] VARIANT v);
1936
1937     [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE)]
1938     HRESULT ondataavailable([retval, out] VARIANT *p);
1939
1940     [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE)]
1941     HRESULT ondatasetcomplete([in] VARIANT v);
1942
1943     [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE)]
1944     HRESULT ondatasetcomplete([retval, out] VARIANT *p);
1945
1946     [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE)]
1947     HRESULT onfilterchange([in] VARIANT v);
1948
1949     [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE)]
1950     HRESULT onfilterchange([retval, out] VARIANT *p);
1951
1952     [propget, id(DISPID_IHTMLELEMENT_CHILDREN)]
1953     HRESULT children([retval, out] IDispatch **p);
1954
1955     [propget, id(DISPID_IHTMLELEMENT_ALL)]
1956     HRESULT all([retval, out] IDispatch **p);
1957 }
1958
1959 /*****************************************************************************
1960  *    IHTMLElement2 interface
1961  */
1962 [
1963     odl,
1964     oleautomation,
1965     dual,
1966     uuid(3050f434-98b5-11cf-bb82-00aa00bdce0b)
1967 ]
1968 interface IHTMLElement2 : IDispatch
1969 {
1970     [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)]
1971     HRESULT scopeName([retval, out] BSTR *p);
1972
1973     [id(DISPID_IHTMLELEMENT2_SETCAPTURE)]
1974     HRESULT setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
1975
1976     [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)]
1977     HRESULT releaseCapture();
1978
1979     [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
1980     HRESULT onlosecapture([in] VARIANT v);
1981
1982     [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
1983     HRESULT onlosecapture([retval, out] VARIANT *p);
1984
1985     [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)]
1986     HRESULT componentFromPoint(
1987         [in] long x,
1988         [in] long y,
1989         [retval, out] BSTR *component);
1990
1991     [id(DISPID_IHTMLELEMENT2_DOSCROLL)]
1992     HRESULT doScroll([optional, in] VARIANT component);
1993
1994     [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
1995     HRESULT onscroll([in] VARIANT v);
1996
1997     [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
1998     HRESULT onscroll([retval, out] VARIANT *p);
1999
2000     [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
2001     HRESULT ondrag([in] VARIANT v);
2002
2003     [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
2004     HRESULT ondrag([retval, out] VARIANT *p);
2005
2006     [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
2007     HRESULT ondragend([in] VARIANT v);
2008
2009     [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
2010     HRESULT ondragend([retval, out] VARIANT *p);
2011
2012     [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
2013     HRESULT ondragenter([in] VARIANT v);
2014
2015     [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
2016     HRESULT ondragenter([retval, out] VARIANT *p);
2017
2018     [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
2019     HRESULT ondragover([in] VARIANT v);
2020
2021     [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
2022     HRESULT ondragover([retval, out] VARIANT *p);
2023
2024     [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
2025     HRESULT ondragleave([in] VARIANT v);
2026
2027     [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
2028     HRESULT ondragleave([retval, out] VARIANT *p);
2029
2030     [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable]
2031     HRESULT ondrop([in] VARIANT v);
2032
2033     [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable]
2034     HRESULT ondrop([retval, out] VARIANT *p);
2035
2036     [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable]
2037     HRESULT onbeforecut([in] VARIANT v);
2038
2039     [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable]
2040     HRESULT onbeforecut([retval, out] VARIANT *p);
2041
2042     [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable]
2043     HRESULT oncut([in] VARIANT v);
2044
2045     [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable]
2046     HRESULT oncut([retval, out] VARIANT *p);
2047
2048     [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable]
2049     HRESULT onbeforecopy([in] VARIANT v);
2050
2051     [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable]
2052     HRESULT onbeforecopy([retval, out] VARIANT *p);
2053
2054     [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable]
2055     HRESULT oncopy([in] VARIANT v);
2056
2057     [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable]
2058     HRESULT oncopy([retval, out] VARIANT *p);
2059
2060     [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable]
2061     HRESULT onbeforepaste([in] VARIANT v);
2062
2063     [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable]
2064     HRESULT onbeforepaste([retval, out] VARIANT *p);
2065
2066     [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable]
2067     HRESULT onpaste([in] VARIANT v);
2068
2069     [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable]
2070     HRESULT onpaste([retval, out] VARIANT *p);
2071
2072     [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable]
2073     HRESULT currentStyle([retval, out] IHTMLCurrentStyle **p);
2074
2075     [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable]
2076     HRESULT onpropertychange([in] VARIANT v);
2077
2078     [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable]
2079     HRESULT onpropertychange([retval, out] VARIANT *p);
2080
2081     [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)]
2082     HRESULT getClientRects([retval, out] IHTMLRectCollection **pRectCol);
2083
2084     [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)]
2085     HRESULT getBoundingClientRect([retval, out] IHTMLRect **pRect);
2086
2087     [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)]
2088     HRESULT setExpression(
2089         [in] BSTR propname,
2090         [in] BSTR expression,
2091         [defaultvalue(""), in] BSTR language);
2092
2093     [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)]
2094     HRESULT getExpression(
2095         [in] BSTR propname,
2096         [retval, out] VARIANT *expression);
2097
2098     [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)]
2099     HRESULT removeExpression(
2100         [in] BSTR propname,
2101         [retval, out] VARIANT_BOOL *pfSuccess);
2102
2103     [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable]
2104     HRESULT tabIndex([in] short v);
2105
2106     [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable]
2107     HRESULT tabIndex([retval, out] short *p);
2108
2109     [id(DISPID_IHTMLELEMENT2_FOCUS)]
2110     HRESULT focus();
2111
2112     [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable]
2113     HRESULT accessKey([in] BSTR v);
2114
2115     [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable]
2116     HRESULT accessKey([retval, out] BSTR *p);
2117
2118     [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable]
2119     HRESULT onblur([in] VARIANT v);
2120
2121     [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable]
2122     HRESULT onblur([retval, out] VARIANT *p);
2123
2124     [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable]
2125     HRESULT onfocus([in] VARIANT v);
2126
2127     [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable]
2128     HRESULT onfocus([retval, out] VARIANT *p);
2129
2130     [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable]
2131     HRESULT onresize([in] VARIANT v);
2132
2133     [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable]
2134     HRESULT onresize([retval, out] VARIANT *p);
2135
2136     [id(DISPID_IHTMLELEMENT2_BLUR)]
2137     HRESULT blur();
2138
2139     [id(DISPID_IHTMLELEMENT2_ADDFILTER)]
2140     HRESULT addFilter([in] IUnknown *pUnk);
2141
2142     [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)]
2143     HRESULT removeFilter([in] IUnknown *pUnk);
2144
2145     [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable]
2146     HRESULT clientHeight([retval, out] long *p);
2147
2148     [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable]
2149     HRESULT clientWidth([retval, out] long *p);
2150
2151     [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable]
2152     HRESULT clientTop([retval, out] long *p);
2153
2154     [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable]
2155     HRESULT clientLeft([retval, out] long *p);
2156
2157     [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)]
2158     HRESULT attachEvent(
2159         [in] BSTR event,
2160         [in] IDispatch *pDisp,
2161         [retval, out] VARIANT_BOOL *pfResult);
2162
2163     [id(DISPID_IHTMLELEMENT2_DETACHEVENT)]
2164     HRESULT detachEvent(
2165         [in] BSTR event,
2166         [in] IDispatch *pDisp);
2167
2168     [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)]
2169     HRESULT readyState([retval, out] VARIANT *p);
2170
2171     [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable]
2172     HRESULT onreadystatechange([in] VARIANT v);
2173
2174     [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable]
2175     HRESULT onreadystatechange([retval, out] VARIANT *p);
2176
2177     [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable]
2178     HRESULT onrowsdelete([in] VARIANT v);
2179
2180     [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable]
2181     HRESULT onrowsdelete([retval, out] VARIANT *p);
2182
2183     [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable]
2184     HRESULT onrowsinserted([in] VARIANT v);
2185
2186     [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable]
2187     HRESULT onrowsinserted([retval, out] VARIANT *p);
2188
2189     [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable]
2190     HRESULT oncellchange([in] VARIANT v);
2191
2192     [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable]
2193     HRESULT oncellchange([retval, out] VARIANT *p);
2194
2195     [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable]
2196     HRESULT dir([in] BSTR v);
2197
2198     [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable]
2199     HRESULT dir([retval, out] BSTR *p);
2200
2201     [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)]
2202     HRESULT createControlRange([retval, out] IDispatch **range);
2203
2204     [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable]
2205     HRESULT scrollHeight([retval, out] long *p);
2206
2207     [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable]
2208     HRESULT scrollWidth([retval, out] long *p);
2209
2210     [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable]
2211     HRESULT scrollTop([in] long v);
2212
2213     [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable]
2214     HRESULT scrollTop([retval, out] long *p);
2215
2216     [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable]
2217     HRESULT scrollLeft([in] long v);
2218
2219     [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable]
2220     HRESULT scrollLeft([retval, out] long *p);
2221
2222     [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)]
2223     HRESULT clearAttributes();
2224
2225     [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)]
2226     HRESULT mergeAttributes([in] IHTMLElement *mergeThis);
2227
2228     [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable]
2229     HRESULT oncontextmenu([in] VARIANT v);
2230
2231     [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable]
2232     HRESULT oncontextmenu([retval, out] VARIANT *p);
2233
2234     [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)]
2235     HRESULT insertAdjacentElement(
2236         [in] BSTR where,
2237         [in] IHTMLElement *insertedElement,
2238         [retval, out] IHTMLElement **inserted);
2239
2240     [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)]
2241     HRESULT applyElement(
2242         [in] IHTMLElement *apply,
2243         [in] BSTR where,
2244         [retval, out] IHTMLElement **applied);
2245
2246     [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)]
2247     HRESULT getAdjacentText(
2248         [in] BSTR where,
2249         [retval, out] BSTR *text);
2250
2251     [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)]
2252     HRESULT replaceAdjacentText(
2253         [in] BSTR where,
2254         [in] BSTR newText,
2255         [retval, out] BSTR *oldText);
2256
2257     [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)]
2258     HRESULT canHaveChildren([retval, out] VARIANT_BOOL *p);
2259
2260     [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)]
2261     HRESULT addBehavior(
2262         [in] BSTR bstrUrl,
2263         [optional, in] VARIANT *pvarFactory,
2264         [retval, out] long *pCookie);
2265
2266     [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)]
2267     HRESULT removeBehavior(
2268         [in] long cookie,
2269         [retval, out] VARIANT_BOOL *pfResult);
2270
2271     [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable]
2272     HRESULT runtimeStyle([retval, out] IHTMLStyle **p);
2273
2274     [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)]
2275     HRESULT behaviorUrns([retval, out] IDispatch **p);
2276
2277     [propput, id(DISPID_IHTMLELEMENT2_TAGURN)]
2278     HRESULT tagUrn([in] BSTR v);
2279
2280     [propget, id(DISPID_IHTMLELEMENT2_TAGURN)]
2281     HRESULT tagUrn([retval, out] BSTR *p);
2282
2283     [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable]
2284     HRESULT onbeforeeditfocus([in] VARIANT v);
2285
2286     [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable]
2287     HRESULT onbeforeeditfocus([retval, out] VARIANT *p);
2288
2289     [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted]
2290     HRESULT readyStateValue([retval, out] long *p);
2291
2292     [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)]
2293     HRESULT getElementsByTagName(
2294         [in] BSTR v,
2295         [retval, out] IHTMLElementCollection **pelColl);
2296 }
2297
2298 /*****************************************************************************
2299  *    IHTMLStyleSheetRule interface
2300  */
2301 [
2302     odl,
2303     oleautomation,
2304     dual,
2305     uuid(3050F357-98B5-11CF-BB82-00AA00BDCE0B)
2306 ]
2307 interface IHTMLStyleSheetRule : IDispatch
2308 {
2309     [propput, id(DISPID_IHTMLSTYLESHEETRULE_SELECTORTEXT)]
2310     HRESULT selectorText([in] BSTR v);
2311
2312     [propget, id(DISPID_IHTMLSTYLESHEETRULE_SELECTORTEXT)]
2313     HRESULT selectorText([retval, out] BSTR *p);
2314
2315     [propget, id(DISPID_IHTMLSTYLESHEETRULE_STYLE)]
2316     HRESULT style([retval, out] IHTMLRuleStyle **p);
2317
2318     [propget, id(DISPID_IHTMLSTYLESHEETRULE_READONLY)]
2319     HRESULT readOnly([retval, out] VARIANT_BOOL *p);
2320 }
2321
2322 /*****************************************************************************
2323  *    IHTMLStyleSheetRulesCollection interface
2324  */
2325 [
2326     odl,
2327     oleautomation,
2328     dual,
2329     uuid(3050F2E5-98B5-11Cf-BB82-00AA00BDCE0B)
2330 ]
2331 interface IHTMLStyleSheetRulesCollection : IDispatch
2332 {
2333     [propget, id(DISPID_IHTMLSTYLESHEETRULESCOLLECTION_LENGTH)]
2334     HRESULT length([retval, out] long *p);
2335
2336     [id(DISPID_IHTMLSTYLESHEETRULESCOLLECTION_ITEM)]
2337     HRESULT item(
2338         [in] long index,
2339         [retval, out] IHTMLStyleSheetRule **ppHTMLStyleSheetRule);
2340 }
2341
2342 /*****************************************************************************
2343  *    IHTMLStyleSheet interface
2344  */
2345 [
2346     odl,
2347     oleautomation,
2348     dual,
2349     uuid(3050F2E3-98B5-11CF-BB82-00AA00BDCE0B)
2350 ]
2351 interface IHTMLStyleSheet : IDispatch
2352 {
2353     [propput, id(DISPID_IHTMLSTYLESHEET_TITLE)]
2354     HRESULT title([in] BSTR v);
2355
2356     [propget, id(DISPID_IHTMLSTYLESHEET_TITLE)]
2357     HRESULT title([retval, out] BSTR *p);
2358
2359     [propget, id(DISPID_IHTMLSTYLESHEET_PARENTSTYLESHEET)]
2360     HRESULT parentStyleSheet([retval, out] IHTMLStyleSheet **p);
2361
2362     [propget, id(DISPID_IHTMLSTYLESHEET_OWNINGELEMENT)]
2363     HRESULT owningElement([retval, out] IHTMLElement **p);
2364
2365     [propput, id(DISPID_IHTMLSTYLESHEET_DISABLED)]
2366     HRESULT disabled([in] VARIANT_BOOL v);
2367
2368     [propget, id(DISPID_IHTMLSTYLESHEET_DISABLED)]
2369     HRESULT disabled([retval, out] VARIANT_BOOL *p);
2370
2371     [propget, id(DISPID_IHTMLSTYLESHEET_READONLY)]
2372     HRESULT readOnly([retval, out] VARIANT_BOOL *p);
2373
2374     [propget, id(DISPID_IHTMLSTYLESHEET_IMPORTS)]
2375     HRESULT imports([retval, out] IHTMLStyleSheetsCollection **p);
2376
2377     [propput, id(DISPID_IHTMLSTYLESHEET_HREF)]
2378     HRESULT href([in] BSTR v);
2379
2380     [propget, id(DISPID_IHTMLSTYLESHEET_HREF)]
2381     HRESULT href([retval, out] BSTR *p);
2382
2383     [propget, id(DISPID_IHTMLSTYLESHEET_TYPE)]
2384     HRESULT type([retval, out] BSTR *p);
2385
2386     [propget, id(DISPID_IHTMLSTYLESHEET_ID)]
2387     HRESULT id([retval, out] BSTR *p);
2388
2389     [id(DISPID_IHTMLSTYLESHEET_ADDIMPORT)]
2390     HRESULT addImport(
2391         [in] BSTR bstrURL,
2392         [defaultvalue(-1), in] long lIndex,
2393         [retval, out] long *plIndex);
2394
2395     [id(DISPID_IHTMLSTYLESHEET_ADDRULE)]
2396     HRESULT addRule(
2397         [in] BSTR bstrSelector,
2398         [in] BSTR bstrStyle,
2399         [defaultvalue(-1), in] long lIndex,
2400         [retval, out] long *plNewIndex);
2401
2402     [id(DISPID_IHTMLSTYLESHEET_REMOVEIMPORT)]
2403     HRESULT removeImport([in] long lIndex);
2404
2405     [id(DISPID_IHTMLSTYLESHEET_REMOVERULE)]
2406     HRESULT removeRule([in] long lIndex);
2407
2408     [propput, id(DISPID_IHTMLSTYLESHEET_MEDIA)]
2409     HRESULT media([in] BSTR v);
2410
2411     [propget, id(DISPID_IHTMLSTYLESHEET_MEDIA)]
2412     HRESULT media([retval, out] BSTR *p);
2413
2414     [propput, id(DISPID_IHTMLSTYLESHEET_CSSTEXT)]
2415     HRESULT cssText([in] BSTR v);
2416
2417     [propget, id(DISPID_IHTMLSTYLESHEET_CSSTEXT)]
2418     HRESULT cssText([retval, out] BSTR *p);
2419
2420     [propget, id(DISPID_IHTMLSTYLESHEET_RULES)]
2421     HRESULT rules([retval, out] IHTMLStyleSheetRulesCollection **p);
2422 }
2423
2424 /*****************************************************************************
2425  *    IHTMLStyleSheetsCollection interface
2426  */
2427 [
2428     odl,
2429     oleautomation,
2430     dual,
2431     uuid(3050F37E-98B5-11CF-BB82-00AA00BDCE0B)
2432 ]
2433 interface IHTMLStyleSheetsCollection : IDispatch
2434 {
2435     [propget, id(DISPID_IHTMLSTYLESHEETSCOLLECTION_LENGTH)]
2436     HRESULT length([retval, out] long *p);
2437
2438     [propget, id(DISPID_IHTMLSTYLESHEETSCOLLECTION__NEWENUM)]
2439     HRESULT _newEnum([retval, out] IUnknown **p);
2440
2441     [id(DISPID_IHTMLSTYLESHEETSCOLLECTION_ITEM)]
2442     HRESULT item(
2443         [in] VARIANT *pvarIndex,
2444         [retval, out] VARIANT *pvarResult);
2445 }
2446
2447 /*****************************************************************************
2448  *    IHTMLTxtRange interface
2449  */
2450 [
2451     odl,
2452     oleautomation,
2453     dual,
2454     uuid(3050f220-98b5-11cf-bb82-00aa00bdce0b)
2455 ]
2456 interface IHTMLTxtRange : IDispatch
2457 {
2458     [propget, id(DISPID_IHTMLTXTRANGE_HTMLTEXT)]
2459     HRESULT htmlText([retval, out] BSTR *p);
2460
2461     [propput, id(DISPID_IHTMLTXTRANGE_TEXT)]
2462     HRESULT text([in] BSTR v);
2463
2464     [propget, id(DISPID_IHTMLTXTRANGE_TEXT)]
2465     HRESULT text([retval, out] BSTR *p);
2466
2467     [id(DISPID_IHTMLTXTRANGE_PARENTELEMENT)]
2468     HRESULT parentElement([retval, out] IHTMLElement **parent);
2469
2470     [id(DISPID_IHTMLTXTRANGE_DUPLICATE)]
2471     HRESULT duplicate([retval, out] IHTMLTxtRange **Duplicate);
2472
2473     [id(DISPID_IHTMLTXTRANGE_INRANGE)]
2474     HRESULT inRange(
2475         [in] IHTMLTxtRange *Range,
2476         [retval, out] VARIANT_BOOL *InRange);
2477
2478     [id(DISPID_IHTMLTXTRANGE_ISEQUAL)]
2479     HRESULT isEqual(
2480         [in] IHTMLTxtRange *Range,
2481         [retval, out] VARIANT_BOOL *IsEqual);
2482
2483     [id(DISPID_IHTMLTXTRANGE_SCROLLINTOVIEW)]
2484     HRESULT scrollIntoView([defaultvalue(-1), in] VARIANT_BOOL fStart);
2485
2486     [id(DISPID_IHTMLTXTRANGE_COLLAPSE)]
2487     HRESULT collapse([defaultvalue(-1), in] VARIANT_BOOL Start);
2488
2489     [id(DISPID_IHTMLTXTRANGE_EXPAND)]
2490     HRESULT expand(
2491         [in] BSTR Unit,
2492         [retval, out] VARIANT_BOOL *Success);
2493
2494     [id(DISPID_IHTMLTXTRANGE_MOVE)]
2495     HRESULT move(
2496         [in] BSTR Unit,
2497         [defaultvalue(1), in] long Count,
2498         [retval, out] long *ActualCount);
2499
2500     [id(DISPID_IHTMLTXTRANGE_MOVESTART)]
2501     HRESULT moveStart(
2502         [in] BSTR Unit,
2503         [defaultvalue(1), in] long Count,
2504         [retval, out] long *ActualCount);
2505
2506     [id(DISPID_IHTMLTXTRANGE_MOVEEND)]
2507     HRESULT moveEnd(
2508         [in] BSTR Unit,
2509         [defaultvalue(1), in] long Count,
2510         [retval, out] long *ActualCount);
2511
2512     [id(DISPID_IHTMLTXTRANGE_SELECT)]
2513     HRESULT select();
2514
2515     [id(DISPID_IHTMLTXTRANGE_PASTEHTML)]
2516     HRESULT pasteHTML([in] BSTR html);
2517
2518     [id(DISPID_IHTMLTXTRANGE_MOVETOELEMENTTEXT)]
2519     HRESULT moveToElementText([in] IHTMLElement *element);
2520
2521     [id(DISPID_IHTMLTXTRANGE_SETENDPOINT)]
2522     HRESULT setEndPoint(
2523         [in] BSTR how,
2524         [in] IHTMLTxtRange *SourceRange);
2525
2526     [id(DISPID_IHTMLTXTRANGE_COMPAREENDPOINTS)]
2527     HRESULT compareEndPoints(
2528         [in] BSTR how,
2529         [in] IHTMLTxtRange *SourceRange,
2530         [retval, out] long *ret);
2531
2532     [id(DISPID_IHTMLTXTRANGE_FINDTEXT)]
2533     HRESULT findText(
2534         [in] BSTR String,
2535         [defaultvalue(1073741823), in] long count,
2536         [defaultvalue(0), in] long Flags,
2537         [retval, out] VARIANT_BOOL *Success);
2538
2539     [id(DISPID_IHTMLTXTRANGE_MOVETOPOINT)]
2540     HRESULT moveToPoint(
2541         [in] long x,
2542         [in] long y);
2543
2544     [id(DISPID_IHTMLTXTRANGE_GETBOOKMARK)]
2545     HRESULT getBookmark([retval, out] BSTR *Boolmark);
2546
2547     [id(DISPID_IHTMLTXTRANGE_MOVETOBOOKMARK)]
2548     HRESULT moveToBookmark(
2549         [in] BSTR Bookmark,
2550         [retval, out] VARIANT_BOOL *Success);
2551
2552     [id(DISPID_IHTMLTXTRANGE_QUERYCOMMANDSUPPORTED)]
2553     HRESULT queryCommandSupported(
2554         [in] BSTR cmdID,
2555         [retval, out] VARIANT_BOOL *pfRet);
2556
2557     [id(DISPID_IHTMLTXTRANGE_QUERYCOMMANDENABLED)]
2558     HRESULT queryCommandEnabled(
2559         [in] BSTR cmdID,
2560         [retval, out] VARIANT_BOOL *pfRet);
2561
2562     [id(DISPID_IHTMLTXTRANGE_QUERYCOMMANDSTATE)]
2563     HRESULT queryCommandState(
2564         [in] BSTR cmdID,
2565         [retval, out] VARIANT_BOOL *pfRet);
2566
2567     [id(DISPID_IHTMLTXTRANGE_QUERYCOMMANDINDETERM)]
2568     HRESULT queryCommandIndeterm(
2569         [in] BSTR cmdID,
2570         [retval, out] VARIANT_BOOL *pfRet);
2571
2572     [id(DISPID_IHTMLTXTRANGE_QUERYCOMMANDTEXT)]
2573     HRESULT queryCommandText(
2574         [in] BSTR cmdID,
2575         [retval, out] BSTR *pcmdText);
2576
2577     [id(DISPID_IHTMLTXTRANGE_QUERYCOMMANDVALUE)]
2578     HRESULT queryCommandValue(
2579         [in] BSTR cmdID,
2580         [retval, out] VARIANT *pcmdValue);
2581
2582     [id(DISPID_IHTMLTXTRANGE_EXECCOMMAND)]
2583     HRESULT execCommand(
2584         [in] BSTR cmdID,
2585         [defaultvalue(0), in] VARIANT_BOOL showUI,
2586         [optional, in] VARIANT value,
2587         [retval, out] VARIANT_BOOL *pfRet);
2588
2589     [id(DISPID_IHTMLTXTRANGE_EXECCOMMANDSHOWHELP)]
2590     HRESULT execCommandShowHelp(
2591         [in] BSTR cmdID,
2592         [retval, out] VARIANT_BOOL *pfRet);
2593 }
2594
2595 /*****************************************************************************
2596  *    IHTMLFormElement interface
2597  */
2598 [
2599     odl,
2600     oleautomation,
2601     dual,
2602     uuid(3050F1F7-98B5-11CF-BB82-00AA00BDCE0B)
2603 ]
2604 interface IHTMLFormElement : IDispatch
2605 {
2606     [propput, id(DISPID_IHTMLFORMELEMENT_ACTION)]
2607     HRESULT action([in] BSTR v);
2608
2609     [propget, id(DISPID_IHTMLFORMELEMENT_ACTION)]
2610     HRESULT action([retval, out] BSTR *p);
2611
2612     [propput, id(DISPID_IHTMLFORMELEMENT_DIR)]
2613     HRESULT dir([in] BSTR v);
2614
2615     [propget, id(DISPID_IHTMLFORMELEMENT_DIR)]
2616     HRESULT dir([retval, out] BSTR *p);
2617
2618     [propput, id(DISPID_IHTMLFORMELEMENT_ENCODING)]
2619     HRESULT encoding([in] BSTR v);
2620
2621     [propget, id(DISPID_IHTMLFORMELEMENT_ENCODING)]
2622     HRESULT encoding([retval, out] BSTR *p);
2623
2624     [propput, id(DISPID_IHTMLFORMELEMENT_METHOD)]
2625     HRESULT method([in] BSTR v);
2626
2627     [propget, id(DISPID_IHTMLFORMELEMENT_METHOD)]
2628     HRESULT method([retval, out] BSTR *p);
2629
2630     [propget, id(DISPID_IHTMLFORMELEMENT_ELEMENTS)]
2631     HRESULT elements([retval, out] IDispatch **p);
2632
2633     [propput, id(DISPID_IHTMLFORMELEMENT_TARGET)]
2634     HRESULT target([in] BSTR v);
2635
2636     [propget, id(DISPID_IHTMLFORMELEMENT_TARGET)]
2637     HRESULT target([retval, out] BSTR *p);
2638
2639     [propput, id(DISPID_IHTMLFORMELEMENT_NAME)]
2640     HRESULT name([in] BSTR v);
2641
2642     [propget, id(DISPID_IHTMLFORMELEMENT_NAME)]
2643     HRESULT name([retval, out] BSTR *p);
2644
2645     [propput, id(DISPID_IHTMLFORMELEMENT_ONSUBMIT)]
2646     HRESULT onsubmit([in] VARIANT v);
2647
2648     [propget, id(DISPID_IHTMLFORMELEMENT_ONSUBMIT)]
2649     HRESULT onsubmit([retval, out] VARIANT *p);
2650
2651     [propput, id(DISPID_IHTMLFORMELEMENT_ONRESET)]
2652     HRESULT onreset([in] VARIANT v);
2653
2654     [propget, id(DISPID_IHTMLFORMELEMENT_ONRESET)]
2655     HRESULT onreset([retval, out] VARIANT *p);
2656
2657     [id(DISPID_IHTMLFORMELEMENT_SUBMIT)]
2658     HRESULT submit();
2659
2660     [id(DISPID_IHTMLFORMELEMENT_RESET)]
2661     HRESULT reset();
2662
2663     [propput, id(DISPID_IHTMLFORMELEMENT_LENGTH)]
2664     HRESULT length([in] long v);
2665
2666     [propget, id(DISPID_IHTMLFORMELEMENT_LENGTH)]
2667     HRESULT length([retval, out] long *p);
2668
2669     [propget, id(DISPID_IHTMLFORMELEMENT__NEWENUM)]
2670     HRESULT _newEnum([retval, out] IUnknown **p);
2671
2672     [id(DISPID_IHTMLFORMELEMENT_ITEM)]
2673     HRESULT item(
2674         [optional, in] VARIANT name,
2675         [optional, in] VARIANT index,
2676         [retval, out] IDispatch **pdisp);
2677
2678     [id(DISPID_IHTMLFORMELEMENT_TAGS)]
2679     HRESULT tags(
2680         [in] VARIANT tagName,
2681         [retval, out] IDispatch **pdisp);
2682 }
2683
2684 /*****************************************************************************
2685  *    IHTMLTextContainer interface
2686  */
2687 [
2688     odl,
2689     oleautomation,
2690     dual,
2691     uuid(3050f230-98b5-11cf-bb82-00aa00bdce0b)
2692 ]
2693 interface IHTMLTextContainer : IDispatch
2694 {
2695     [id(DISPID_IHTMLTEXTCONTAINER_CREATECONTROLRANGE)]
2696     HRESULT createControlRange([retval, out] IDispatch **range);
2697
2698     [propget, id(DISPID_IHTMLTEXTCONTAINER_SCROLLHEIGHT), displaybind, bindable]
2699     HRESULT scrollHeight([retval, out] long *p);
2700
2701     [propget, id(DISPID_IHTMLTEXTCONTAINER_SCROLLWIDTH), displaybind, bindable]
2702     HRESULT scrollWidth([retval, out] long *p);
2703
2704     [propput, id(DISPID_IHTMLTEXTCONTAINER_SCROLLTOP), displaybind, bindable]
2705     HRESULT scrollTop([in] long v);
2706
2707     [propget, id(DISPID_IHTMLTEXTCONTAINER_SCROLLTOP), displaybind, bindable]
2708     HRESULT scrollTop([retval, out] long *p);
2709
2710     [propput, id(DISPID_IHTMLTEXTCONTAINER_SCROLLLEFT), displaybind, bindable]
2711     HRESULT scrollLeft([in] long v);
2712
2713     [propget, id(DISPID_IHTMLTEXTCONTAINER_SCROLLLEFT), displaybind, bindable]
2714     HRESULT scrollLeft([retval, out] long *p);
2715
2716     [propput, id(DISPID_IHTMLTEXTCONTAINER_ONSCROLL), displaybind, bindable]
2717     HRESULT onscroll([in] VARIANT v);
2718
2719     [propget, id(DISPID_IHTMLTEXTCONTAINER_ONSCROLL), displaybind, bindable]
2720     HRESULT onscroll([retval, out] VARIANT *p);
2721 }
2722
2723 /*****************************************************************************
2724  *    IHTMLImgElement interface
2725  */
2726 [
2727     odl,
2728     oleautomation,
2729     dual,
2730     uuid(3050F240-98B5-11CF-BB82-00AA00BDCE0B)
2731 ]
2732 interface IHTMLImgElement : IDispatch
2733 {
2734     [propput, id(DISPID_IHTMLIMGELEMENT_ISMAP)]
2735     HRESULT isMap([in] VARIANT_BOOL v);
2736
2737     [propget, id(DISPID_IHTMLIMGELEMENT_ISMAP)]
2738     HRESULT isMap([retval, out] VARIANT_BOOL *p);
2739
2740     [propput, id(DISPID_IHTMLIMGELEMENT_USEMAP)]
2741     HRESULT useMap([in] BSTR v);
2742
2743     [propget, id(DISPID_IHTMLIMGELEMENT_USEMAP)]
2744     HRESULT useMap([retval, out] BSTR *p);
2745
2746     [propget, id(DISPID_IHTMLIMGELEMENT_MIMETYPE)]
2747     HRESULT mimeType([retval, out] BSTR *p);
2748
2749     [propget, id(DISPID_IHTMLIMGELEMENT_FILESIZE)]
2750     HRESULT fileSize([retval, out] BSTR *p);
2751
2752     [propget, id(DISPID_IHTMLIMGELEMENT_FILECREATEDDATE)]
2753     HRESULT fileCreatedDate([retval, out] BSTR *p);
2754
2755     [propget, id(DISPID_IHTMLIMGELEMENT_FILEMODIFIEDDATE)]
2756     HRESULT fileModifiedDate([retval, out] BSTR *p);
2757
2758     [propget, id(DISPID_IHTMLIMGELEMENT_FILEUPDATEDDATE)]
2759     HRESULT fileUpdatedDate([retval, out] BSTR *p);
2760
2761     [propget, id(DISPID_IHTMLIMGELEMENT_PROTOCOL)]
2762     HRESULT protocol([retval, out] BSTR *p);
2763
2764     [propget, id(DISPID_IHTMLIMGELEMENT_HREF)]
2765     HRESULT href([retval, out] BSTR *p);
2766
2767     [propget, id(DISPID_IHTMLIMGELEMENT_NAMEPROP)]
2768     HRESULT nameProp([retval, out] BSTR *p);
2769
2770     [propput, id(DISPID_IHTMLIMGELEMENT_BORDER)]
2771     HRESULT border([in] VARIANT v);
2772
2773     [propget, id(DISPID_IHTMLIMGELEMENT_BORDER)]
2774     HRESULT border([retval, out] VARIANT *p);
2775
2776     [propput, id(DISPID_IHTMLIMGELEMENT_VSPACE)]
2777     HRESULT vspace([in] long v);
2778
2779     [propget, id(DISPID_IHTMLIMGELEMENT_VSPACE)]
2780     HRESULT vspace([retval, out] long *p);
2781
2782     [propput, id(DISPID_IHTMLIMGELEMENT_HSPACE)]
2783     HRESULT hspace([in] long v);
2784
2785     [propget, id(DISPID_IHTMLIMGELEMENT_HSPACE)]
2786     HRESULT hspace([retval, out] long *p);
2787
2788     [propput, id(DISPID_IHTMLIMGELEMENT_ALT)]
2789     HRESULT alt([in] BSTR v);
2790
2791     [propget, id(DISPID_IHTMLIMGELEMENT_ALT)]
2792     HRESULT alt([retval, out] BSTR *p);
2793
2794     [propput, id(DISPID_IHTMLIMGELEMENT_SRC)]
2795     HRESULT src([in] BSTR v);
2796
2797     [propget, id(DISPID_IHTMLIMGELEMENT_SRC)]
2798     HRESULT src([retval, out] BSTR *p);
2799
2800     [propput, id(DISPID_IHTMLIMGELEMENT_LOWSRC)]
2801     HRESULT lowsrc([in] BSTR v);
2802
2803     [propget, id(DISPID_IHTMLIMGELEMENT_LOWSRC)]
2804     HRESULT lowsrc([retval, out] BSTR *p);
2805
2806     [propput, id(DISPID_IHTMLIMGELEMENT_VRML)]
2807     HRESULT vrml([in] BSTR v);
2808
2809     [propget, id(DISPID_IHTMLIMGELEMENT_VRML)]
2810     HRESULT vrml([retval, out] BSTR *p);
2811
2812     [propput, id(DISPID_IHTMLIMGELEMENT_DYNSRC)]
2813     HRESULT dynsrc([in] BSTR v);
2814
2815     [propget, id(DISPID_IHTMLIMGELEMENT_DYNSRC)]
2816     HRESULT dynsrc([retval, out] BSTR *p);
2817
2818     [propget, id(DISPID_IHTMLIMGELEMENT_READYSTATE)]
2819     HRESULT readyState([retval, out] BSTR *p);
2820
2821     [propget, id(DISPID_IHTMLIMGELEMENT_COMPLETE)]
2822     HRESULT complete([retval, out] VARIANT_BOOL *p);
2823
2824     [propput, id(DISPID_IHTMLIMGELEMENT_LOOP)]
2825     HRESULT loop([in] VARIANT v);
2826
2827     [propget, id(DISPID_IHTMLIMGELEMENT_LOOP)]
2828     HRESULT loop([retval, out] VARIANT *p);
2829
2830     [propput, id(DISPID_IHTMLIMGELEMENT_ALIGN)]
2831     HRESULT align([in] BSTR v);
2832
2833     [propget, id(DISPID_IHTMLIMGELEMENT_ALIGN)]
2834     HRESULT align([retval, out] BSTR *p);
2835
2836     [propput, id(DISPID_IHTMLIMGELEMENT_ONLOAD)]
2837     HRESULT onload([in] VARIANT v);
2838
2839     [propget, id(DISPID_IHTMLIMGELEMENT_ONLOAD)]
2840     HRESULT onload([retval, out] VARIANT *p);
2841
2842     [propput, id(DISPID_IHTMLIMGELEMENT_ONERROR)]
2843     HRESULT onerror([in] VARIANT v);
2844
2845     [propget, id(DISPID_IHTMLIMGELEMENT_ONERROR)]
2846     HRESULT onerror([retval, out] VARIANT *p);
2847
2848     [propput, id(DISPID_IHTMLIMGELEMENT_ONABORT)]
2849     HRESULT onabort([in] VARIANT v);
2850
2851     [propget, id(DISPID_IHTMLIMGELEMENT_ONABORT)]
2852     HRESULT onabort([retval, out] VARIANT *p);
2853
2854     [propput, id(DISPID_IHTMLIMGELEMENT_NAME)]
2855     HRESULT name([in] BSTR v);
2856
2857     [propget, id(DISPID_IHTMLIMGELEMENT_NAME)]
2858     HRESULT name([retval, out] BSTR *p);
2859
2860     [propput, id(DISPID_IHTMLIMGELEMENT_WIDTH)]
2861     HRESULT width([in] long v);
2862
2863     [propget, id(DISPID_IHTMLIMGELEMENT_WIDTH)]
2864     HRESULT width([retval, out] long *p);
2865
2866     [propput, id(DISPID_IHTMLIMGELEMENT_HEIGHT)]
2867     HRESULT height([in] long v);
2868
2869     [propget, id(DISPID_IHTMLIMGELEMENT_HEIGHT)]
2870     HRESULT height([retval, out] long *p);
2871
2872     [propput, id(DISPID_IHTMLIMGELEMENT_START)]
2873     HRESULT start([in] BSTR v);
2874
2875     [propget, id(DISPID_IHTMLIMGELEMENT_START)]
2876     HRESULT start([retval, out] BSTR *p);
2877 }
2878
2879 /*****************************************************************************
2880  *    IHTMLImageElementFactory interface
2881  */
2882 [
2883     odl,
2884     oleautomation,
2885     dual,
2886     uuid(3050F38E-98B5-11CF-BB82-00AAA0BDCE0B)
2887 ]
2888 interface IHTMLImageElementFactory : IDispatch
2889 {
2890     [id(DISPID_IHTMLIMAGEELEMENTFACTORY_CREATE)]
2891     HRESULT create(
2892         [optional, in] VARIANT width,
2893         [optional, in] VARIANT height,
2894         [retval, out]  IHTMLImgElement **elem);
2895 }
2896
2897 /*****************************************************************************
2898  *    IHTMLBodyElement interface
2899  */
2900 [
2901     odl,
2902     oleautomation,
2903     dual,
2904     uuid(3050f1d8-98b5-11cf-bb82-00aa00bdce0b)
2905 ]
2906 interface IHTMLBodyElement : IDispatch
2907 {
2908     [propput, id(DISPID_IHTMLBODYELEMENT_BACKGROUND), displaybind, bindable]
2909     HRESULT background([in] BSTR v);
2910
2911     [propget, id(DISPID_IHTMLBODYELEMENT_BACKGROUND), displaybind, bindable]
2912     HRESULT background([retval, out] BSTR *p);
2913
2914     [propput, id(DISPID_IHTMLBODYELEMENT_BGPROPERTIES), displaybind, bindable]
2915     HRESULT bgProperties([in] BSTR v);
2916
2917     [propget, id(DISPID_IHTMLBODYELEMENT_BGPROPERTIES), displaybind, bindable]
2918     HRESULT bgProperties([retval, out] BSTR *p);
2919
2920     [propput, id(DISPID_IHTMLBODYELEMENT_LEFTMARGIN), displaybind, bindable]
2921     HRESULT leftMargin([in] VARIANT v);
2922
2923     [propget, id(DISPID_IHTMLBODYELEMENT_LEFTMARGIN), displaybind, bindable]
2924     HRESULT leftMargin([retval, out] VARIANT *p);
2925
2926     [propput, id(DISPID_IHTMLBODYELEMENT_TOPMARGIN), displaybind, bindable]
2927     HRESULT topMargin([in] VARIANT v);
2928
2929     [propget, id(DISPID_IHTMLBODYELEMENT_TOPMARGIN), displaybind, bindable]
2930     HRESULT topMargin([retval, out] VARIANT *p);
2931
2932     [propput, id(DISPID_IHTMLBODYELEMENT_RIGHTMARGIN), displaybind, bindable]
2933     HRESULT rightMargin([in] VARIANT v);
2934
2935     [propget, id(DISPID_IHTMLBODYELEMENT_RIGHTMARGIN), displaybind, bindable]
2936     HRESULT rightMargin([retval, out] VARIANT *p);
2937
2938     [propput, id(DISPID_IHTMLBODYELEMENT_BOTTOMMARGIN), displaybind, bindable]
2939     HRESULT bottomMargin([in] VARIANT v);
2940
2941     [propget, id(DISPID_IHTMLBODYELEMENT_BOTTOMMARGIN), displaybind, bindable]
2942     HRESULT bottomMargin([retval, out] VARIANT *p);
2943
2944     [propput, id(DISPID_IHTMLBODYELEMENT_NOWRAP), displaybind, bindable]
2945     HRESULT noWrap([in] VARIANT_BOOL v);
2946
2947     [propget, id(DISPID_IHTMLBODYELEMENT_NOWRAP), displaybind, bindable]
2948     HRESULT noWrap([retval, out] VARIANT_BOOL *p);
2949
2950     [propput, id(DISPID_IHTMLBODYELEMENT_BGCOLOR), displaybind, bindable]
2951     HRESULT bgColor([in] VARIANT v);
2952
2953     [propget, id(DISPID_IHTMLBODYELEMENT_BGCOLOR), displaybind, bindable]
2954     HRESULT bgColor([retval, out] VARIANT *p);
2955
2956     [propput, id(DISPID_IHTMLBODYELEMENT_TEXT), displaybind, bindable]
2957     HRESULT text([in] VARIANT v);
2958
2959     [propget, id(DISPID_IHTMLBODYELEMENT_TEXT), displaybind, bindable]
2960     HRESULT text([retval, out] VARIANT *p);
2961
2962     [propput, id(DISPID_IHTMLBODYELEMENT_LINK), displaybind, bindable]
2963     HRESULT link([in] VARIANT v);
2964
2965     [propget, id(DISPID_IHTMLBODYELEMENT_LINK), displaybind, bindable]
2966     HRESULT link([retval, out] VARIANT *p);
2967
2968     [propput, id(DISPID_IHTMLBODYELEMENT_VLINK), displaybind, bindable]
2969     HRESULT vLink([in] VARIANT v);
2970
2971     [propget, id(DISPID_IHTMLBODYELEMENT_VLINK), displaybind, bindable]
2972     HRESULT vLink([retval, out] VARIANT *p);
2973
2974     [propput, id(DISPID_IHTMLBODYELEMENT_ALINK), displaybind, bindable]
2975     HRESULT aLink([in] VARIANT v);
2976
2977     [propget, id(DISPID_IHTMLBODYELEMENT_ALINK), displaybind, bindable]
2978     HRESULT aLink([retval, out] VARIANT *p);
2979
2980     [propput, id(DISPID_IHTMLBODYELEMENT_ONLOAD), displaybind, bindable]
2981     HRESULT onload([in] VARIANT v);
2982
2983     [propget, id(DISPID_IHTMLBODYELEMENT_ONLOAD), displaybind, bindable]
2984     HRESULT onload([retval, out] VARIANT *p);
2985
2986     [propput, id(DISPID_IHTMLBODYELEMENT_ONUNLOAD), displaybind, bindable]
2987     HRESULT onunload([in] VARIANT v);
2988
2989     [propget, id(DISPID_IHTMLBODYELEMENT_ONUNLOAD), displaybind, bindable]
2990     HRESULT onunload([retval, out] VARIANT *p);
2991
2992     [propput, id(DISPID_IHTMLBODYELEMENT_SCROLL), displaybind, bindable]
2993     HRESULT scroll([in] BSTR v);
2994
2995     [propget, id(DISPID_IHTMLBODYELEMENT_SCROLL), displaybind, bindable]
2996     HRESULT scroll([retval, out] BSTR *p);
2997
2998     [propput, id(DISPID_IHTMLBODYELEMENT_ONSELECT), displaybind, bindable]
2999     HRESULT onselect([in] VARIANT v);
3000
3001     [propget, id(DISPID_IHTMLBODYELEMENT_ONSELECT), displaybind, bindable]
3002     HRESULT onselect([retval, out] VARIANT *p);
3003
3004     [propput, id(DISPID_IHTMLBODYELEMENT_ONBEFOREUNLOAD), displaybind, bindable]
3005     HRESULT onbeforeunload([in] VARIANT v);
3006
3007     [propget, id(DISPID_IHTMLBODYELEMENT_ONBEFOREUNLOAD), displaybind, bindable]
3008     HRESULT onbeforeunload([retval, out] VARIANT *p);
3009
3010     [id(DISPID_IHTMLBODYELEMENT_CREATETEXTRANGE)]
3011     HRESULT createTextRange([retval, out] IHTMLTxtRange **range);
3012 }
3013
3014 /*****************************************************************************
3015  *    IHTMLBodyElement2 interface
3016  */
3017 [
3018     odl,
3019     oleautomation,
3020     dual,
3021     uuid(3050f5c5-98b5-11cf-bb82-00aa00bdce0b)
3022 ]
3023 interface IHTMLBodyElement2 : IDispatch
3024 {
3025     [propput, id(DISPID_IHTMLBODYELEMENT2_ONBEFOREPRINT), displaybind, bindable]
3026     HRESULT onbeforeprint([in] VARIANT v);
3027
3028     [propget, id(DISPID_IHTMLBODYELEMENT2_ONBEFOREPRINT), displaybind, bindable]
3029     HRESULT onbeforeprint([retval, out] VARIANT *p);
3030
3031     [propput, id(DISPID_IHTMLBODYELEMENT2_ONAFTERPRINT), displaybind, bindable]
3032     HRESULT onafterprint([in] VARIANT v);
3033
3034     [propget, id(DISPID_IHTMLBODYELEMENT2_ONAFTERPRINT), displaybind, bindable]
3035     HRESULT onafterprint([retval, out] VARIANT *p);
3036 }
3037
3038
3039 /*****************************************************************************
3040  *    IHTMLElementCollection interface
3041  */
3042 [
3043     odl,
3044     oleautomation,
3045     dual,
3046     uuid(3050F21F-98B5-11CF-BB82-00AA00BDCE0B)
3047 ]
3048 interface IHTMLElementCollection : IDispatch
3049 {
3050     [id(DISPID_IHTMLELEMENTCOLLECTION_TOSTRING)]
3051     HRESULT toString([retval, out] BSTR *String);
3052
3053     [propput, id(DISPID_IHTMLELEMENTCOLLECTION_LENGTH)]
3054     HRESULT length([in] long v);
3055
3056     [propget, id(DISPID_IHTMLELEMENTCOLLECTION_LENGTH)]
3057     HRESULT length([retval, out] long *p);
3058
3059     [propget, id(DISPID_IHTMLELEMENTCOLLECTION__NEWENUM)]
3060     HRESULT _newEnum([retval, out] IUnknown **p);
3061
3062     [id(DISPID_IHTMLELEMENTCOLLECTION_ITEM)]
3063     HRESULT item(
3064         [optional, in] VARIANT name,
3065         [optional, in] VARIANT index,
3066         [retval,  out] IDispatch **pdisp);
3067
3068     [id(DISPID_IHTMLELEMENTCOLLECTION_TAGS)]
3069     HRESULT tags(
3070         [in] VARIANT tagName,
3071         [retval, out] IDispatch **pdisp);
3072 }
3073
3074 /*****************************************************************************
3075  *    IHTMLSelectElement interface
3076  */
3077 [
3078     odl,
3079     oleautomation,
3080     dual,
3081     uuid(3050f244-98b5-11cf-bb82-00aa00bdce0b)
3082 ]
3083 interface IHTMLSelectElement : IDispatch
3084 {
3085     [propput, id(DISPID_IHTMLSELECTELEMENT_SIZE), displaybind, bindable]
3086     HRESULT size([in] long v);
3087
3088     [propget, id(DISPID_IHTMLSELECTELEMENT_SIZE), displaybind, bindable]
3089     HRESULT size([retval, out] long *p);
3090
3091     [propput, id(DISPID_IHTMLSELECTELEMENT_MULTIPLE), displaybind, bindable]
3092     HRESULT multiple([in] VARIANT_BOOL v);
3093
3094     [propget, id(DISPID_IHTMLSELECTELEMENT_MULTIPLE), displaybind, bindable]
3095     HRESULT multiple([retval, out] VARIANT_BOOL *p);
3096
3097     [propput, id(DISPID_IHTMLSELECTELEMENT_NAME), displaybind, bindable]
3098     HRESULT name([in] BSTR v);
3099
3100     [propget, id(DISPID_IHTMLSELECTELEMENT_NAME), displaybind, bindable]
3101     HRESULT name([retval, out] BSTR *p);
3102
3103     [propget, id(DISPID_IHTMLSELECTELEMENT_OPTIONS)]
3104     HRESULT options([retval, out] IDispatch **p);
3105
3106     [propput, id(DISPID_IHTMLSELECTELEMENT_ONCHANGE), displaybind, bindable]
3107     HRESULT onchange([in] VARIANT v);
3108
3109     [propget, id(DISPID_IHTMLSELECTELEMENT_ONCHANGE), displaybind, bindable]
3110     HRESULT onchange([retval, out] VARIANT *p);
3111
3112     [propput, id(DISPID_IHTMLSELECTELEMENT_SELECTEDINDEX)]
3113     HRESULT selectedIndex([in] long v);
3114
3115     [propget, id(DISPID_IHTMLSELECTELEMENT_SELECTEDINDEX)]
3116     HRESULT selectedIndex([retval, out] long *p);
3117
3118     [propget, id(DISPID_IHTMLSELECTELEMENT_TYPE), displaybind, bindable]
3119     HRESULT type([retval, out] BSTR *p);
3120
3121     [propput, id(DISPID_IHTMLSELECTELEMENT_VALUE), displaybind, bindable]
3122     HRESULT value([in] BSTR v);
3123
3124     [propget, id(DISPID_IHTMLSELECTELEMENT_VALUE), displaybind, bindable]
3125     HRESULT value([retval, out] BSTR *p);
3126
3127     [propput, id(DISPID_IHTMLSELECTELEMENT_DISABLED), displaybind, bindable]
3128     HRESULT disabled([in] VARIANT_BOOL v);
3129
3130     [propget, id(DISPID_IHTMLSELECTELEMENT_DISABLED), displaybind, bindable]
3131     HRESULT disabled([retval, out] VARIANT_BOOL *p);
3132
3133     [propget, id(DISPID_IHTMLSELECTELEMENT_FORM)]
3134     HRESULT form([retval, out] IHTMLFormElement **p);
3135
3136     [id(DISPID_IHTMLSELECTELEMENT_ADD)]
3137     HRESULT add(
3138         [in] IHTMLElement *element,
3139         [optional, in] VARIANT before);
3140
3141     [id(DISPID_IHTMLSELECTELEMENT_REMOVE)]
3142     HRESULT remove([defaultvalue(-1), in] long index);
3143
3144     [propput, id(DISPID_IHTMLSELECTELEMENT_LENGTH)]
3145     HRESULT length([in] long v);
3146
3147     [propget, id(DISPID_IHTMLSELECTELEMENT_LENGTH)]
3148     HRESULT length([retval, out] long *p);
3149
3150     [propget, id(DISPID_IHTMLSELECTELEMENT__NEWENUM), hidden, restricted]
3151     HRESULT _newEnum([retval, out] IUnknown **p);
3152
3153     [id(DISPID_IHTMLSELECTELEMENT_ITEM)]
3154     HRESULT item(
3155         [optional, in] VARIANT name,
3156         [optional, in] VARIANT index,
3157         [retval, out] IDispatch **pdisp);
3158
3159     [id(DISPID_IHTMLSELECTELEMENT_TAGS)]
3160     HRESULT tags(
3161         [in] VARIANT tagName,
3162         [retval, out] IDispatch **pdisp);
3163 }
3164
3165 /*****************************************************************************
3166  *    IHTMLSelectionObject interface
3167  */
3168 [
3169     odl,
3170     oleautomation,
3171     dual,
3172     uuid(3050F25A-98B5-11CF-BB82-00AA00BDCE0B)
3173 ]
3174 interface IHTMLSelectionObject : IDispatch
3175 {
3176     [id(DISPID_IHTMLSELECTIONOBJECT_CREATERANGE)]
3177     HRESULT createRange([retval, out] IDispatch **range);
3178
3179     [id(DISPID_IHTMLSELECTIONOBJECT_EMPTY)]
3180     HRESULT empty();
3181
3182     [id(DISPID_IHTMLSELECTIONOBJECT_CLEAR)]
3183     HRESULT clear();
3184
3185     [propget, id(DISPID_IHTMLSELECTIONOBJECT_TYPE)]
3186     HRESULT type([retval, out] BSTR *p);
3187 }
3188
3189 /*****************************************************************************
3190  *    IHTMLOptionElement interface
3191  */
3192 [
3193     odl,
3194     oleautomation,
3195     dual,
3196     uuid(3050F211-98B5-11CF-BB82-00AA00BDCE0B)
3197 ]
3198 interface IHTMLOptionElement : IDispatch
3199 {
3200     [propput, id(DISPID_IHTMLOPTIONELEMENT_SELECTED)]
3201     HRESULT selected([in] VARIANT_BOOL v);
3202
3203     [propget, id(DISPID_IHTMLOPTIONELEMENT_SELECTED)]
3204     HRESULT selected([retval, out] VARIANT_BOOL *p);
3205
3206     [propput, id(DISPID_IHTMLOPTIONELEMENT_VALUE)]
3207     HRESULT value([in] BSTR v);
3208
3209     [propget, id(DISPID_IHTMLOPTIONELEMENT_VALUE)]
3210     HRESULT value([retval, out] BSTR *p);
3211
3212     [propput, id(DISPID_IHTMLOPTIONELEMENT_DEFAULTSELECTED)]
3213     HRESULT defaultSelected([in] VARIANT_BOOL v);
3214
3215     [propget, id(DISPID_IHTMLOPTIONELEMENT_DEFAULTSELECTED)]
3216     HRESULT defaultSelected([retval, out] VARIANT_BOOL *p);
3217
3218     [propput, id(DISPID_IHTMLOPTIONELEMENT_INDEX)]
3219     HRESULT index([in] LONG v);
3220
3221     [propget, id(DISPID_IHTMLOPTIONELEMENT_INDEX)]
3222     HRESULT index([retval, out] LONG *p);
3223
3224     [propput, id(DISPID_IHTMLOPTIONELEMENT_TEXT)]
3225     HRESULT text([in] BSTR v);
3226
3227     [propget, id(DISPID_IHTMLOPTIONELEMENT_TEXT)]
3228     HRESULT text([retval, out] BSTR *p);
3229
3230     [propget, id(DISPID_IHTMLOPTIONELEMENT_FORM)]
3231     HRESULT form([retval, out] IHTMLFormElement **p);
3232 }
3233
3234 /*****************************************************************************
3235  *    IHTMLOptionElementFactory interface
3236  */
3237 [
3238     odl,
3239     oleautomation,
3240     dual,
3241     uuid(3050F38C-98B5-11Cf-BB82-00AA00BDCE0B)
3242 ]
3243 interface IHTMLOptionElementFactory : IDispatch
3244 {
3245     [id(DISPID_IHTMLOPTIONELEMENTFACTORY_CREATE)]
3246     HRESULT create(
3247         [optional, in] VARIANT text,
3248         [optional, in] VARIANT value,
3249         [optional, in] VARIANT defaultselected,
3250         [optional, in] VARIANT selected,
3251         [retval, out] IHTMLOptionElement **optelem);
3252 }
3253
3254 /*****************************************************************************
3255  *    IHTMLInputElement interface
3256  */
3257 [
3258     odl,
3259     oleautomation,
3260     dual,
3261     uuid(3050f5d2-98b5-11cf-bb82-00aa00bdce0b)
3262 ]
3263 interface IHTMLInputElement : IDispatch
3264 {
3265     [propput, id(DISPID_IHTMLINPUTELEMENT_TYPE)]
3266     HRESULT type([in] BSTR v);
3267
3268     [propget, id(DISPID_IHTMLINPUTELEMENT_TYPE)]
3269     HRESULT type([retval, out] BSTR *p);
3270
3271     [propput, id(DISPID_IHTMLINPUTELEMENT_VALUE), displaybind, bindable]
3272     HRESULT value([in] BSTR v);
3273
3274     [propget, id(DISPID_IHTMLINPUTELEMENT_VALUE), displaybind, bindable]
3275     HRESULT value([retval, out] BSTR *p);
3276
3277     [propput, id(DISPID_IHTMLINPUTELEMENT_NAME), displaybind, bindable]
3278     HRESULT name([in] BSTR v);
3279
3280     [propget, id(DISPID_IHTMLINPUTELEMENT_NAME), displaybind, bindable]
3281     HRESULT name([retval, out] BSTR *p);
3282
3283     [propput, id(DISPID_IHTMLINPUTELEMENT_STATUS)]
3284     HRESULT status([in] VARIANT_BOOL v);
3285
3286     [propget, id(DISPID_IHTMLINPUTELEMENT_STATUS)]
3287     HRESULT status([retval, out] VARIANT_BOOL *p);
3288
3289     [propput, id(DISPID_IHTMLINPUTELEMENT_DISABLED), displaybind, bindable]
3290     HRESULT disabled([in] VARIANT_BOOL v);
3291
3292     [propget, id(DISPID_IHTMLINPUTELEMENT_DISABLED), displaybind, bindable]
3293     HRESULT disabled([retval, out] VARIANT_BOOL *p);
3294
3295     [propget, id(DISPID_IHTMLINPUTELEMENT_FORM)]
3296     HRESULT form([retval, out] IHTMLFormElement **p);
3297
3298     [propput, id(DISPID_IHTMLINPUTELEMENT_SIZE), displaybind, bindable]
3299     HRESULT size([in] long v);
3300
3301     [propget, id(DISPID_IHTMLINPUTELEMENT_SIZE), displaybind, bindable]
3302     HRESULT size([retval, out] long *p);
3303
3304     [propput, id(DISPID_IHTMLINPUTELEMENT_MAXLENGTH), displaybind, bindable]
3305     HRESULT maxLength([in] long v);
3306
3307     [propget, id(DISPID_IHTMLINPUTELEMENT_MAXLENGTH), displaybind, bindable]
3308     HRESULT maxLength([retval, out] long *p);
3309
3310     [id(DISPID_IHTMLINPUTELEMENT_SELECT)]
3311     HRESULT select();
3312
3313     [propput, id(DISPID_IHTMLINPUTELEMENT_ONCHANGE), displaybind, bindable]
3314     HRESULT onchange([in] VARIANT v);
3315
3316     [propget, id(DISPID_IHTMLINPUTELEMENT_ONCHANGE), displaybind, bindable]
3317     HRESULT onchange([retval, out] VARIANT *p);
3318
3319     [propput, id(DISPID_IHTMLINPUTELEMENT_ONSELECT), displaybind, bindable]
3320     HRESULT onselect([in] VARIANT v);
3321
3322     [propget, id(DISPID_IHTMLINPUTELEMENT_ONSELECT), displaybind, bindable]
3323     HRESULT onselect([retval, out] VARIANT *p);
3324
3325     [propput, id(DISPID_IHTMLINPUTELEMENT_DEFAULTVALUE), displaybind, bindable, hidden]
3326     HRESULT defaultValue([in] BSTR v);
3327
3328     [propget, id(DISPID_IHTMLINPUTELEMENT_DEFAULTVALUE), displaybind, bindable, hidden]
3329     HRESULT defaultValue([retval, out] BSTR *p);
3330
3331     [propput, id(DISPID_IHTMLINPUTELEMENT_READONLY), displaybind, bindable]
3332     HRESULT readOnly([in] VARIANT_BOOL v);
3333
3334     [propget, id(DISPID_IHTMLINPUTELEMENT_READONLY), displaybind, bindable]
3335     HRESULT readOnly([retval, out] VARIANT_BOOL *p);
3336
3337     [id(DISPID_IHTMLINPUTELEMENT_CREATETEXTRANGE)]
3338     HRESULT createTextRange([retval, out] IHTMLTxtRange **range);
3339
3340     [propput, id(DISPID_IHTMLINPUTELEMENT_INDETERMINATE), bindable]
3341     HRESULT indeterminate([in] VARIANT_BOOL v);
3342
3343     [propget, id(DISPID_IHTMLINPUTELEMENT_INDETERMINATE), bindable]
3344     HRESULT indeterminate([retval, out] VARIANT_BOOL *p);
3345
3346     [propput, id(DISPID_IHTMLINPUTELEMENT_DEFAULTCHECKED), bindable]
3347     HRESULT defaultChecked([in] VARIANT_BOOL v);
3348
3349     [propget, id(DISPID_IHTMLINPUTELEMENT_DEFAULTCHECKED), bindable]
3350     HRESULT defaultChecked([retval, out] VARIANT_BOOL *p);
3351
3352     [propput, id(DISPID_IHTMLINPUTELEMENT_CHECKED), bindable]
3353     HRESULT checked([in] VARIANT_BOOL v);
3354
3355     [propget, id(DISPID_IHTMLINPUTELEMENT_CHECKED), bindable]
3356     HRESULT checked([retval, out] VARIANT_BOOL *p);
3357
3358     [propput, id(DISPID_IHTMLINPUTELEMENT_BORDER), displaybind, bindable]
3359     HRESULT border([in] VARIANT v);
3360
3361     [propget, id(DISPID_IHTMLINPUTELEMENT_BORDER), displaybind, bindable]
3362     HRESULT border([retval, out] VARIANT *p);
3363
3364     [propput, id(DISPID_IHTMLINPUTELEMENT_VSPACE), displaybind, bindable]
3365     HRESULT vspace([in] long v);
3366
3367     [propget, id(DISPID_IHTMLINPUTELEMENT_VSPACE), displaybind, bindable]
3368     HRESULT vspace([retval, out] long *p);
3369
3370     [propput, id(DISPID_IHTMLINPUTELEMENT_HSPACE), displaybind, bindable]
3371     HRESULT hspace([in] long v);
3372
3373     [propget, id(DISPID_IHTMLINPUTELEMENT_HSPACE), displaybind, bindable]
3374     HRESULT hspace([retval, out] long *p);
3375
3376     [propput, id(DISPID_IHTMLINPUTELEMENT_ALT), displaybind, bindable]
3377     HRESULT alt([in] BSTR v);
3378
3379     [propget, id(DISPID_IHTMLINPUTELEMENT_ALT), displaybind, bindable]
3380     HRESULT alt([retval, out] BSTR *p);
3381
3382     [propput, id(DISPID_IHTMLINPUTELEMENT_SRC), displaybind, bindable]
3383     HRESULT src([in] BSTR v);
3384
3385     [propget, id(DISPID_IHTMLINPUTELEMENT_SRC), displaybind, bindable]
3386     HRESULT src([retval, out] BSTR *p);
3387
3388     [propput, id(DISPID_IHTMLINPUTELEMENT_LOWSRC), displaybind, bindable]
3389     HRESULT lowsrc([in] BSTR v);
3390
3391     [propget, id(DISPID_IHTMLINPUTELEMENT_LOWSRC), displaybind, bindable]
3392     HRESULT lowsrc([retval, out] BSTR *p);
3393
3394     [propput, id(DISPID_IHTMLINPUTELEMENT_VRML), displaybind, bindable]
3395     HRESULT vrml([in] BSTR v);
3396
3397     [propget, id(DISPID_IHTMLINPUTELEMENT_VRML), displaybind, bindable]
3398     HRESULT vrml([retval, out] BSTR *p);
3399
3400     [propput, id(DISPID_IHTMLINPUTELEMENT_DYNSRC), displaybind, bindable]
3401     HRESULT dynsrc([in] BSTR v);
3402
3403     [propget, id(DISPID_IHTMLINPUTELEMENT_DYNSRC), displaybind, bindable]
3404     HRESULT dynsrc([retval, out] BSTR *p);
3405
3406     [propget, id(DISPID_IHTMLINPUTELEMENT_READYSTATE)]
3407     HRESULT readyState([retval, out] BSTR *p);
3408
3409     [propget, id(DISPID_IHTMLINPUTELEMENT_COMPLETE)]
3410     HRESULT complete([retval, out] VARIANT_BOOL *p);
3411
3412     [propput, id(DISPID_IHTMLINPUTELEMENT_LOOP), displaybind, bindable]
3413     HRESULT loop([in] VARIANT v);
3414
3415     [propget, id(DISPID_IHTMLINPUTELEMENT_LOOP), displaybind, bindable]
3416     HRESULT loop([retval, out] VARIANT *p);
3417
3418     [propput, id(DISPID_IHTMLINPUTELEMENT_ALIGN), displaybind, bindable]
3419     HRESULT align([in] BSTR v);
3420
3421     [propget, id(DISPID_IHTMLINPUTELEMENT_ALIGN), displaybind, bindable]
3422     HRESULT align([retval, out] BSTR *p);
3423
3424     [propput, id(DISPID_IHTMLINPUTELEMENT_ONLOAD), displaybind, bindable]
3425     HRESULT onload([in] VARIANT v);
3426
3427     [propget, id(DISPID_IHTMLINPUTELEMENT_ONLOAD), displaybind, bindable]
3428     HRESULT onload([retval, out] VARIANT *p);
3429
3430     [propput, id(DISPID_IHTMLINPUTELEMENT_ONERROR), displaybind, bindable]
3431     HRESULT onerror([in] VARIANT v);
3432
3433     [propget, id(DISPID_IHTMLINPUTELEMENT_ONERROR), displaybind, bindable]
3434     HRESULT onerror([retval, out] VARIANT *p);
3435
3436     [propput, id(DISPID_IHTMLINPUTELEMENT_ONABORT), displaybind, bindable]
3437     HRESULT onabort([in] VARIANT v);
3438
3439     [propget, id(DISPID_IHTMLINPUTELEMENT_ONABORT), displaybind, bindable]
3440     HRESULT onabort([retval, out] VARIANT *p);
3441
3442     [propput, id(DISPID_IHTMLINPUTELEMENT_WIDTH)]
3443     HRESULT width([in] long v);
3444
3445     [propget, id(DISPID_IHTMLINPUTELEMENT_WIDTH)]
3446     HRESULT width([retval, out] long *p);
3447
3448     [propput, id(DISPID_IHTMLINPUTELEMENT_HEIGHT)]
3449     HRESULT height([in] long v);
3450
3451     [propget, id(DISPID_IHTMLINPUTELEMENT_HEIGHT)]
3452     HRESULT height([retval, out] long *p);
3453
3454     [propput, id(DISPID_IHTMLINPUTELEMENT_START), displaybind, bindable]
3455     HRESULT start([in] BSTR v);
3456
3457     [propget, id(DISPID_IHTMLINPUTELEMENT_START), displaybind, bindable]
3458     HRESULT start([retval, out] BSTR *p);
3459 }
3460
3461 /*****************************************************************************
3462  *    IHTMLTextAreaElement interface
3463  */
3464 [
3465     odl,
3466     oleautomation,
3467     dual,
3468     uuid(3050f2aa-98b5-11cf-bb82-00aa00bdce0b)
3469 ]
3470 interface IHTMLTextAreaElement : IDispatch
3471 {
3472     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_TYPE)]
3473     HRESULT type([retval, out] BSTR *p);
3474
3475     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_VALUE), displaybind, bindable]
3476     HRESULT value([in] BSTR v);
3477
3478     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_VALUE), displaybind, bindable]
3479     HRESULT value([retval, out] BSTR *p);
3480
3481     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_NAME), displaybind, bindable]
3482     HRESULT name([in] BSTR v);
3483
3484     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_NAME), displaybind, bindable]
3485     HRESULT name([retval, out] BSTR *p);
3486
3487     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_STATUS)]
3488     HRESULT status([in] VARIANT v);
3489
3490     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_STATUS)]
3491     HRESULT status([retval, out] VARIANT *p);
3492
3493     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_DISABLED), displaybind, bindable]
3494     HRESULT disabled([in] VARIANT_BOOL v);
3495
3496     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_DISABLED), displaybind, bindable]
3497     HRESULT disabled([retval, out] VARIANT_BOOL *p);
3498
3499     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_FORM)]
3500     HRESULT form([retval, out] IHTMLFormElement **p);
3501
3502     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_DEFAULTVALUE), displaybind, bindable, hidden]
3503     HRESULT defaultValue([in] BSTR v);
3504
3505     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_DEFAULTVALUE), displaybind, bindable, hidden]
3506     HRESULT defaultValue([retval, out] BSTR *p);
3507
3508     [id(DISPID_IHTMLTEXTAREAELEMENT_SELECT)]
3509     HRESULT select();
3510
3511     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_ONCHANGE), displaybind, bindable]
3512     HRESULT onchange([in] VARIANT v);
3513
3514     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_ONCHANGE), displaybind, bindable]
3515     HRESULT onchange([retval, out] VARIANT *p);
3516
3517     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_ONSELECT), displaybind, bindable]
3518     HRESULT onselect([in] VARIANT v);
3519
3520     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_ONSELECT), displaybind, bindable]
3521     HRESULT onselect([retval, out] VARIANT *p);
3522
3523     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_READONLY), displaybind, bindable]
3524     HRESULT readOnly([in] VARIANT_BOOL v);
3525
3526     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_READONLY), displaybind, bindable]
3527     HRESULT readOnly([retval, out] VARIANT_BOOL *p);
3528
3529     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_ROWS), displaybind, bindable]
3530     HRESULT rows([in] long v);
3531
3532     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_ROWS), displaybind, bindable]
3533     HRESULT rows([retval, out] long *p);
3534
3535     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_COLS), displaybind, bindable]
3536     HRESULT cols([in] long v);
3537
3538     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_COLS), displaybind, bindable]
3539     HRESULT cols([retval, out] long *p);
3540
3541     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_WRAP), displaybind, bindable]
3542     HRESULT wrap([in] BSTR v);
3543
3544     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_WRAP), displaybind, bindable]
3545     HRESULT wrap([retval, out] BSTR *p);
3546
3547     [id(DISPID_IHTMLTEXTAREAELEMENT_CREATETEXTRANGE)]
3548     HRESULT createTextRange([retval, out] IHTMLTxtRange **range);
3549 }
3550
3551 /*****************************************************************************
3552  *    IOmHistory interface
3553  */
3554 [
3555     odl,
3556     oleautomation,
3557     dual,
3558     uuid(FECEAAA2-8405-11CF-8BA1-00AA00476DA6)
3559 ]
3560 interface IOmHistory : IDispatch
3561 {
3562     [propget, id(DISPID_IOMHISTORY_LENGTH)]
3563     HRESULT length([retval, out] short *p);
3564
3565     [id(DISPID_IOMHISTORY_BACK)]
3566     HRESULT back([optional, in] VARIANT *pvargdistance);
3567
3568     [id(DISPID_IOMHISTORY_FORWARD)]
3569     HRESULT forward([optional, in] VARIANT *pvargdistance);
3570
3571     [id(DISPID_IOMHISTORY_GO)]
3572     HRESULT go([optional, in] VARIANT *pvargdistance);
3573 }
3574
3575 /*****************************************************************************
3576  *    IHTMLMimeTypesCollection interface
3577  */
3578 [
3579     odl,
3580     oleautomation,
3581     dual,
3582     uuid(3050F3FC-98B5-11CF-BB82-00AA00BDCE0B)
3583 ]
3584 interface IHTMLMimeTypesCollection : IDispatch
3585 {
3586     [propget, id(DISPID_IHTMLMIMETYPESCOLLECTION_LENGTH)]
3587     HRESULT length([retval, out] long *p);
3588 }
3589
3590 /*****************************************************************************
3591  *    IHTMLPluginsCollection interface
3592  */
3593 [
3594     odl,
3595     oleautomation,
3596     dual,
3597     uuid(3050F3FD-98B5-11CF-BB82-00AA00BDCE0B)
3598 ]
3599 interface IHTMLPluginsCollection : IDispatch
3600 {
3601     [propget, id(DISPID_IHTMLPLUGINSCOLLECTION_LENGTH)]
3602     HRESULT length([retval, out] long *p);
3603
3604     [id(DISPID_IHTMLPLUGINSCOLLECTION_REFRESH)]
3605     HRESULT refresh([defaultvalue(0), in] VARIANT_BOOL reload);
3606 }
3607
3608 /*****************************************************************************
3609  *    IHTMLOpsProfile interface
3610  */
3611 [
3612     odl,
3613     oleautomation,
3614     dual,
3615     uuid(3050F401-98B5-11CF-BB82-00AA00BDCE0B)
3616 ]
3617 interface IHTMLOpsProfile : IDispatch
3618 {
3619     [id(DISPID_IHTMLOPSPROFILE_ADDREQUEST)]
3620     HRESULT addRequest(
3621         [in] BSTR name,
3622         [optional, in] VARIANT reserved,
3623         [retval, out] VARIANT_BOOL *success);
3624
3625     [id(DISPID_IHTMLOPSPROFILE_CLEARREQUEST)]
3626     HRESULT clearRequest();
3627
3628     [id(DISPID_IHTMLOPSPROFILE_DOREQUEST)]
3629     HRESULT doRequest(
3630         [in] VARIANT usage,
3631         [optional, in] VARIANT fname,
3632         [optional, in] VARIANT domain,
3633         [optional, in] VARIANT path,
3634         [optional, in] VARIANT expire,
3635         [optional, in] VARIANT reserved);
3636
3637     [id(DISPID_IHTMLOPSPROFILE_GETATTRIBUTE)]
3638     HRESULT getAttribute(
3639         [in] BSTR name,
3640         [retval, out] BSTR *value);
3641
3642     [id(DISPID_IHTMLOPSPROFILE_SETATTRIBUTE)]
3643     HRESULT setAttribute(
3644         [in] BSTR name,
3645         [in] BSTR value,
3646         [optional, in] VARIANT prefs,
3647         [retval, out] VARIANT_BOOL *success);
3648
3649     [id(DISPID_IHTMLOPSPROFILE_COMMITCHANGES)]
3650     HRESULT commitChanges([retval, out] VARIANT_BOOL *success);
3651
3652     [id(DISPID_IHTMLOPSPROFILE_ADDREADREQUEST)]
3653     HRESULT addReadRequest(
3654         [in] BSTR name,
3655         [optional, in] VARIANT reserved,
3656         [retval, out] VARIANT_BOOL *success);
3657
3658     [id(DISPID_IHTMLOPSPROFILE_DOREADREQUEST)]
3659     HRESULT doReadRequest(
3660         [in] VARIANT usage,
3661         [optional, in] VARIANT fname,
3662         [optional, in] VARIANT domain,
3663         [optional, in] VARIANT path,
3664         [optional, in] VARIANT expire,
3665         [optional, in] VARIANT reserved);
3666
3667     [id(DISPID_IHTMLOPSPROFILE_DOWRITEREQUEST)]
3668     HRESULT doWriteRequest([retval, out] VARIANT_BOOL *success);
3669 }
3670
3671 /*****************************************************************************
3672  *    IOmNavigator interface
3673  */
3674 [
3675         odl,
3676         oleautomation,
3677         dual,
3678         uuid(FECEAAA5-8405-11CF-8BA1-00AA00476DA6)
3679 ]
3680 interface IOmNavigator : IDispatch
3681 {
3682     [propget, id(DISPID_IOMNAVIGATOR_APPCODENAME)]
3683     HRESULT appCodeName([retval, out] BSTR *p);
3684
3685     [propget, id(DISPID_IOMNAVIGATOR_APPNAME)]
3686     HRESULT appName([retval, out] BSTR *p);
3687
3688     [propget, id(DISPID_IOMNAVIGATOR_APPVERSION)]
3689     HRESULT appVersion([retval, out] BSTR *p);
3690
3691     [propget, id(DISPID_IOMNAVIGATOR_USERAGENT)]
3692     HRESULT userAgent([retval, out] BSTR *p);
3693
3694     [id(DISPID_IOMNAVIGATOR_JAVAENABLED)]
3695     HRESULT javaEnabled([retval, out] VARIANT_BOOL *enabled);
3696
3697     [id(DISPID_IOMNAVIGATOR_TAINTENABLED)]
3698     HRESULT taintEnabled([retval, out] VARIANT_BOOL *enabled);
3699
3700     [propget, id(DISPID_IOMNAVIGATOR_MIMETYPES)]
3701     HRESULT mimeTypes([retval, out] IHTMLMimeTypesCollection **p);
3702
3703     [propget, id(DISPID_IOMNAVIGATOR_PLUGINS)]
3704     HRESULT plugins([retval, out] IHTMLPluginsCollection **p);
3705
3706     [propget, id(DISPID_IOMNAVIGATOR_COOKIEENABLED)]
3707     HRESULT cookieEnabled([retval, out] VARIANT_BOOL *p);
3708
3709     [propget, id(DISPID_IOMNAVIGATOR_OPSPROFILE)]
3710     HRESULT opsProfile([retval, out] IHTMLOpsProfile **p);
3711
3712     [id(DISPID_IOMNAVIGATOR_TOSTRING)]
3713     HRESULT toString([retval, out] BSTR *String);
3714
3715     [propget, id(DISPID_IOMNAVIGATOR_CPUCLASS)]
3716     HRESULT cpuClass([retval, out] BSTR *p);
3717
3718     [propget, id(DISPID_IOMNAVIGATOR_SYSTEMLANGUAGE)]
3719     HRESULT systemLanguage([retval, out] BSTR *p);
3720
3721     [propget, id(DISPID_IOMNAVIGATOR_BROWSERLANGUAGE)]
3722     HRESULT browserLanguage([retval, out] BSTR *p);
3723
3724     [propget, id(DISPID_IOMNAVIGATOR_USERLANGUAGE)]
3725     HRESULT userLanguage([retval, out] BSTR *p);
3726
3727     [propget, id(DISPID_IOMNAVIGATOR_PLATFORM)]
3728     HRESULT platform([retval, out] BSTR *p);
3729
3730     [propget, id(DISPID_IOMNAVIGATOR_APPMINORVERSION)]
3731     HRESULT appMinorVersion([retval, out] BSTR *p);
3732
3733     [propget, id(DISPID_IOMNAVIGATOR_CONNECTIONSPEED)]
3734     HRESULT connectionSpeed([retval, out] long *p);
3735
3736     [propget, id(DISPID_IOMNAVIGATOR_ONLINE)]
3737     HRESULT onLine([retval, out] VARIANT_BOOL *p);
3738
3739     [propget, id(DISPID_IOMNAVIGATOR_USERPROFILE)]
3740     HRESULT userProfile([retval, out] IHTMLOpsProfile **p);
3741 }
3742
3743 /*****************************************************************************
3744  *    IHTMLLocation interface
3745  */
3746 [
3747     odl,
3748     oleautomation,
3749     dual,
3750     uuid(163BB1E0-6E00-11cf-837A-48DC04C10000)
3751 ]
3752 interface IHTMLLocation : IDispatch
3753 {
3754     [propput, id(DISPID_IHTMLLOCATION_HREF)]
3755     HRESULT href([in] BSTR v);
3756
3757     [propget, id(DISPID_IHTMLLOCATION_HREF)]
3758     HRESULT href([retval, out] BSTR *p);
3759
3760     [propput, id(DISPID_IHTMLLOCATION_PROTOCOL)]
3761     HRESULT protocol([in] BSTR v);
3762
3763     [propget, id(DISPID_IHTMLLOCATION_PROTOCOL)]
3764     HRESULT protocol([retval, out] BSTR *p);
3765
3766     [propput, id(DISPID_IHTMLLOCATION_HOST)]
3767     HRESULT host([in] BSTR v);
3768
3769     [propget, id(DISPID_IHTMLLOCATION_HOST)]
3770     HRESULT host([retval, out] BSTR *p);
3771
3772     [propput, id(DISPID_IHTMLLOCATION_HOSTNAME)]
3773     HRESULT hostname([in] BSTR v);
3774
3775     [propget, id(DISPID_IHTMLLOCATION_HOSTNAME)]
3776     HRESULT hostname([retval, out] BSTR *p);
3777
3778     [propput, id(DISPID_IHTMLLOCATION_PORT)]
3779     HRESULT port([in] BSTR v);
3780
3781     [propget, id(DISPID_IHTMLLOCATION_PORT)]
3782     HRESULT port([retval, out] BSTR *p);
3783
3784     [propput, id(DISPID_IHTMLLOCATION_PATHNAME)]
3785     HRESULT pathname([in] BSTR v);
3786
3787     [propget, id(DISPID_IHTMLLOCATION_PATHNAME)]
3788     HRESULT pathname([retval, out] BSTR *p);
3789
3790     [propput, id(DISPID_IHTMLLOCATION_SEARCH)]
3791     HRESULT search([in] BSTR v);
3792
3793     [propget, id(DISPID_IHTMLLOCATION_SEARCH)]
3794     HRESULT search([retval, out] BSTR *p);
3795
3796     [propput, id(DISPID_IHTMLLOCATION_HASH)]
3797     HRESULT hash([in] BSTR v);
3798
3799     [propget, id(DISPID_IHTMLLOCATION_HASH)]
3800     HRESULT hash([retval, out] BSTR *p);
3801
3802     [id(DISPID_IHTMLLOCATION_RELOAD)]
3803     HRESULT reload([defaultvalue(0), in] VARIANT_BOOL flag);
3804
3805     [id(DISPID_IHTMLLOCATION_REPLACE)]
3806     HRESULT replace([in] BSTR bstr);
3807
3808     [id(DISPID_IHTMLLOCATION_ASSIGN)]
3809     HRESULT assign([in] BSTR bstr);
3810
3811     [id(DISPID_IHTMLLOCATION_TOSTRING)]
3812     HRESULT toString([retval, out] BSTR *String);
3813 }
3814
3815 /*****************************************************************************
3816  *    IHTMLEventObj interface
3817  */
3818 [
3819     odl,
3820     oleautomation,
3821     dual,
3822     uuid(3050F32D-98B5-11CF-BB82-00AA00BDCE0B)
3823 ]
3824 interface IHTMLEventObj : IDispatch
3825 {
3826     [propget, id(DISPID_IHTMLEVENTOBJ_SRCELEMENT)]
3827     HRESULT srcElement([retval, out] IHTMLElement **p);
3828
3829     [propget, id(DISPID_IHTMLEVENTOBJ_ALTKEY)]
3830     HRESULT altKey([retval, out] VARIANT_BOOL *p);
3831
3832     [propget, id(DISPID_IHTMLEVENTOBJ_CTRLKEY)]
3833     HRESULT ctrlKey([retval, out] VARIANT_BOOL *p);
3834
3835     [propget, id(DISPID_IHTMLEVENTOBJ_SHIFTKEY)]
3836     HRESULT shiftKey([retval, out] VARIANT_BOOL *p);
3837
3838     [propput, id(DISPID_IHTMLEVENTOBJ_RETURNVALUE)]
3839     HRESULT returnValue([in] VARIANT v);
3840
3841     [propget, id(DISPID_IHTMLEVENTOBJ_RETURNVALUE)]
3842     HRESULT returnValue([retval, out] VARIANT *p);
3843
3844     [propput, id(DISPID_IHTMLEVENTOBJ_CANCELBUBBLE)]
3845     HRESULT cancelBubble([in] VARIANT_BOOL v);
3846
3847     [propget, id(DISPID_IHTMLEVENTOBJ_CANCELBUBBLE)]
3848     HRESULT cancelBubble([retval, out] VARIANT_BOOL *p);
3849
3850     [propget, id(DISPID_IHTMLEVENTOBJ_FROMELEMENT)]
3851     HRESULT fromElement([retval, out] IHTMLElement **p);
3852
3853     [propget, id(DISPID_IHTMLEVENTOBJ_TOELEMENT)]
3854     HRESULT toElement([retval, out] IHTMLElement **p);
3855
3856     [propput, id(DISPID_IHTMLEVENTOBJ_KEYCODE)]
3857     HRESULT keyCode([in] long v);
3858
3859     [propget, id(DISPID_IHTMLEVENTOBJ_KEYCODE)]
3860     HRESULT keyCode([retval, out] long *p);
3861
3862     [propget, id(DISPID_IHTMLEVENTOBJ_BUTTON)]
3863     HRESULT button([retval, out] long *p);
3864
3865     [propget, id(DISPID_IHTMLEVENTOBJ_TYPE)]
3866     HRESULT type([retval, out] BSTR *p);
3867
3868     [propget, id(DISPID_IHTMLEVENTOBJ_QUALIFIER)]
3869     HRESULT qualifier([retval, out] BSTR *p);
3870
3871     [propget, id(DISPID_IHTMLEVENTOBJ_REASON)]
3872     HRESULT reason([retval, out] long *p);
3873
3874     [propget, id(DISPID_IHTMLEVENTOBJ_X)]
3875     HRESULT x([retval, out] long *p);
3876
3877     [propget, id(DISPID_IHTMLEVENTOBJ_Y)]
3878     HRESULT y([retval, out] long *p);
3879
3880     [propget, id(DISPID_IHTMLEVENTOBJ_CLIENTX)]
3881     HRESULT clientX([retval, out] long *p);
3882
3883     [propget, id(DISPID_IHTMLEVENTOBJ_CLIENTY)]
3884     HRESULT clientY([retval, out] long *p);
3885
3886     [propget, id(DISPID_IHTMLEVENTOBJ_OFFSETX)]
3887     HRESULT offsetX([retval, out] long *p);
3888
3889     [propget, id(DISPID_IHTMLEVENTOBJ_OFFSETY)]
3890     HRESULT offsetY([retval, out] long *p);
3891
3892     [propget, id(DISPID_IHTMLEVENTOBJ_SCREENX)]
3893     HRESULT screenX([retval, out] long *p);
3894
3895     [propget, id(DISPID_IHTMLEVENTOBJ_SCREENY)]
3896     HRESULT screenY([retval, out] long *p);
3897
3898     [propget, id(DISPID_IHTMLEVENTOBJ_SRCFILTER)]
3899     HRESULT srcFilter([retval, out] IDispatch **p);
3900 }
3901
3902 /*****************************************************************************
3903  *    IHTMLFramesCollection2 interface
3904  */
3905 [
3906     odl,
3907     oleautomation,
3908     dual,
3909     uuid(332C4426-26CB-11D0-B483-00C04FD90119)
3910 ]
3911 interface IHTMLFramesCollection2 : IDispatch
3912 {
3913     [id(DISPID_IHTMLFRAMESCOLLECTION2_ITEM)]
3914     HRESULT item(
3915         [in] VARIANT *pvarIndex,
3916         [retval, out] VARIANT *pvarResult);
3917
3918     [propget, id(DISPID_IHTMLFRAMESCOLLECTION2_LENGTH)]
3919     HRESULT length([retval, out] long *p);
3920 }
3921
3922 /*****************************************************************************
3923  *    IHTMLScreen interface
3924  */
3925 [
3926     odl,
3927     oleautomation,
3928     dual,
3929     uuid(3050f35C-98B5-11CF-BB82-00AA00BDCE0B)
3930 ]
3931 interface IHTMLScreen : IDispatch
3932 {
3933     [propget, id(DISPID_IHTMLSCREEN_COLORDEPTH)]
3934     HRESULT colorDepth([retval, out] long *p);
3935
3936     [propput, id(DISPID_IHTMLSCREEN_BUFFERDEPTH)]
3937     HRESULT bufferDepth([in] long v);
3938
3939     [propget, id(DISPID_IHTMLSCREEN_BUFFERDEPTH)]
3940     HRESULT bufferDepth([retval, out] long *p);
3941
3942     [propget, id(DISPID_IHTMLSCREEN_WIDTH)]
3943     HRESULT width([retval, out] long *p);
3944
3945     [propget, id(DISPID_IHTMLSCREEN_HEIGHT)]
3946     HRESULT height([retval, out] long *p);
3947
3948     [propput, id(DISPID_IHTMLSCREEN_UPDATEINTERVAL)]
3949     HRESULT updateInterval([in] long v);
3950
3951     [propget, id(DISPID_IHTMLSCREEN_UPDATEINTERVAL)]
3952     HRESULT updateInterval([retval, out] long *p);
3953
3954     [propget, id(DISPID_IHTMLSCREEN_AVAILHEIGHT)]
3955     HRESULT availHeight([retval, out] long *p);
3956
3957     [propget, id(DISPID_IHTMLSCREEN_AVAILWIDTH)]
3958     HRESULT availWidth([retval, out] long *p);
3959
3960     [propget, id(DISPID_IHTMLSCREEN_FONTSMOOTHINGENABLED)]
3961     HRESULT fontSmoothingEnabled([retval, out] VARIANT_BOOL *p);
3962 }
3963
3964 /*****************************************************************************
3965  *    IHTMLWindow2 interface
3966  */
3967 [
3968     odl,
3969     oleautomation,
3970     dual,
3971     uuid(332C4427-26CB-11D0-B483-00C04FD90119)
3972 ]
3973 interface IHTMLWindow2 : IHTMLFramesCollection2
3974 {
3975     [propget, id(DISPID_IHTMLWINDOW2_FRAMES)]
3976     HRESULT frames([retval, out] IHTMLFramesCollection2 **p);
3977
3978     [propput, id(DISPID_IHTMLWINDOW2_DEFAULTSTATUS)]
3979     HRESULT defaultStatus([in] BSTR v);
3980
3981     [propget, id(DISPID_IHTMLWINDOW2_DEFAULTSTATUS)]
3982     HRESULT defaultStatus([retval, out] BSTR *p);
3983
3984     [propput, id(DISPID_IHTMLWINDOW2_STATUS)]
3985     HRESULT status([in] BSTR v);
3986
3987     [propget, id(DISPID_IHTMLWINDOW2_STATUS)]
3988     HRESULT status([retval, out] BSTR *p);
3989
3990     [id(DISPID_IHTMLWINDOW2_SETTIMEOUT)]
3991     HRESULT setTimeout(
3992         [in] BSTR expression,
3993         [in] long msec,
3994         [optional, in] VARIANT *language,
3995         [retval, out] long *timerID);
3996
3997     [id(DISPID_IHTMLWINDOW2_CLEARTIMEOUT)]
3998     HRESULT clearTimeout([in] long timerID);
3999
4000     [id(DISPID_IHTMLWINDOW2_ALERT)]
4001     HRESULT alert([defaultvalue(""), in] BSTR message);
4002
4003     [id(DISPID_IHTMLWINDOW2_CONFIRM)]
4004     HRESULT confirm(
4005         [defaultvalue(""), in] BSTR message,
4006         [retval, out] VARIANT_BOOL *confirmed);
4007
4008     [id(DISPID_IHTMLWINDOW2_PROMPT)]
4009     HRESULT prompt(
4010         [defaultvalue(""), in] BSTR message,
4011         [defaultvalue("undefined"), in] BSTR defstr,
4012         [retval, out] VARIANT *textdata);
4013
4014     [propget, id(DISPID_IHTMLWINDOW2_IMAGE)]
4015     HRESULT Image([retval, out] IHTMLImageElementFactory **p);
4016
4017     [propget, id(DISPID_IHTMLWINDOW2_LOCATION)]
4018     HRESULT location([retval, out] IHTMLLocation **p);
4019
4020     [propget, id(DISPID_IHTMLWINDOW2_HISTORY)]
4021     HRESULT history([retval, out] IOmHistory **p);
4022
4023     [id(DISPID_IHTMLWINDOW2_CLOSE)]
4024     HRESULT close();
4025
4026     [propput, id(DISPID_IHTMLWINDOW2_OPENER)]
4027     HRESULT opener([in] VARIANT v);
4028
4029     [propget, id(DISPID_IHTMLWINDOW2_OPENER)]
4030     HRESULT opener([retval, out] VARIANT *p);
4031
4032     [propget, id(DISPID_IHTMLWINDOW2_NAVIGATOR)]
4033     HRESULT navigator([retval, out] IOmNavigator **p);
4034
4035     [propput, id(DISPID_IHTMLWINDOW2_NAME)]
4036     HRESULT name([in] BSTR v);
4037
4038     [propget, id(DISPID_IHTMLWINDOW2_NAME)]
4039     HRESULT name([retval, out] BSTR *p);
4040
4041     [propget, id(DISPID_IHTMLWINDOW2_PARENT)]
4042     HRESULT parent([retval, out] IHTMLWindow2 **p);
4043
4044     [id(DISPID_IHTMLWINDOW2_OPEN)]
4045     HRESULT open(
4046         [defaultvalue(""), in] BSTR url,
4047         [defaultvalue(""), in] BSTR name,
4048         [defaultvalue(""), in] BSTR features,
4049         [defaultvalue(0), in] VARIANT_BOOL replace,
4050         [retval, out] IHTMLWindow2 **pomWindowResult);
4051
4052     [propget, id(DISPID_IHTMLWINDOW2_SELF)]
4053     HRESULT self([retval, out] IHTMLWindow2 **p);
4054
4055     [propget, id(DISPID_IHTMLWINDOW2_TOP)]
4056     HRESULT top([retval, out] IHTMLWindow2 **p);
4057
4058     [propget, id(DISPID_IHTMLWINDOW2_WINDOW)]
4059     HRESULT window([retval, out] IHTMLWindow2 **p);
4060
4061     [id(DISPID_IHTMLWINDOW2_NAVIGATE)]
4062     HRESULT navigate([in] BSTR url);
4063
4064     [propput, id(DISPID_IHTMLWINDOW2_ONFOCUS)]
4065     HRESULT onfocus([in] VARIANT v);
4066
4067     [propget, id(DISPID_IHTMLWINDOW2_ONFOCUS)]
4068     HRESULT onfocus([retval, out] VARIANT *p);
4069
4070     [propput, id(DISPID_IHTMLWINDOW2_ONBLUR)]
4071     HRESULT onblur([in] VARIANT v);
4072
4073     [propget, id(DISPID_IHTMLWINDOW2_ONBLUR)]
4074     HRESULT onblur([retval, out] VARIANT *p);
4075
4076     [propput, id(DISPID_IHTMLWINDOW2_ONLOAD)]
4077     HRESULT onload([in] VARIANT v);
4078
4079     [propget, id(DISPID_IHTMLWINDOW2_ONLOAD)]
4080     HRESULT onload([retval, out] VARIANT *p);
4081
4082     [propput, id(DISPID_IHTMLWINDOW2_ONBEFOREUNLOAD)]
4083     HRESULT onbeforeunload([in] VARIANT v);
4084
4085     [propget, id(DISPID_IHTMLWINDOW2_ONBEFOREUNLOAD)]
4086     HRESULT onbeforeunload([retval, out] VARIANT *p);
4087
4088     [propput, id(DISPID_IHTMLWINDOW2_ONUNLOAD)]
4089     HRESULT onunload([in] VARIANT v);
4090
4091     [propget, id(DISPID_IHTMLWINDOW2_ONUNLOAD)]
4092     HRESULT onunload([retval, out] VARIANT *p);
4093
4094     [propput, id(DISPID_IHTMLWINDOW2_ONHELP)]
4095     HRESULT onhelp([in] VARIANT v);
4096
4097     [propget, id(DISPID_IHTMLWINDOW2_ONHELP)]
4098     HRESULT onhelp([retval, out] VARIANT *p);
4099
4100     [propput, id(DISPID_IHTMLWINDOW2_ONERROR)]
4101     HRESULT onerror([in] VARIANT v);
4102
4103     [propget, id(DISPID_IHTMLWINDOW2_ONERROR)]
4104     HRESULT onerror([retval, out] VARIANT *p);
4105
4106     [propput, id(DISPID_IHTMLWINDOW2_ONRESIZE)]
4107     HRESULT onresize([in] VARIANT v);
4108
4109     [propget, id(DISPID_IHTMLWINDOW2_ONRESIZE)]
4110     HRESULT onresize([retval, out] VARIANT *p);
4111
4112     [propput, id(DISPID_IHTMLWINDOW2_ONSCROLL)]
4113     HRESULT onscroll([in] VARIANT v);
4114
4115     [propget, id(DISPID_IHTMLWINDOW2_ONSCROLL)]
4116     HRESULT onscroll([retval, out] VARIANT *p);
4117
4118     [propget, id(DISPID_IHTMLWINDOW2_DOCUMENT)]
4119     HRESULT document([retval, out] IHTMLDocument2 **p);
4120
4121     [propget, id(DISPID_IHTMLWINDOW2_EVENT)]
4122     HRESULT event([retval, out] IHTMLEventObj **p);
4123
4124     [propget, id(DISPID_IHTMLWINDOW2__NEWENUM)]
4125     HRESULT _newEnum([retval, out] IUnknown **p);
4126
4127     [id(DISPID_IHTMLWINDOW2_SHOWMODALDIALOG)]
4128     HRESULT showModalDialog(
4129         [in] BSTR dialog,
4130         [optional, in] VARIANT *varArgIn,
4131         [optional, in] VARIANT *varOptions,
4132         [retval, out] VARIANT *varArgOut);
4133
4134     [id(DISPID_IHTMLWINDOW2_SHOWHELP)]
4135     HRESULT showHelp(
4136         [in] BSTR helpURL,
4137         [optional, in] VARIANT helpArg,
4138         [defaultvalue(""), in] BSTR features);
4139
4140     [propget, id(DISPID_IHTMLWINDOW2_SCREEN)]
4141     HRESULT screen([retval, out] IHTMLScreen **p);
4142
4143     [propget, id(DISPID_IHTMLWINDOW2_OPTION)]
4144     HRESULT Option([retval, out] IHTMLOptionElementFactory **p);
4145
4146     [id(DISPID_IHTMLWINDOW2_FOCUS)]
4147     HRESULT focus();
4148
4149     [propget, id(DISPID_IHTMLWINDOW2_CLOSED)]
4150     HRESULT closed([retval, out] VARIANT_BOOL *p);
4151
4152     [id(DISPID_IHTMLWINDOW2_BLUR)]
4153     HRESULT blur();
4154
4155     [id(DISPID_IHTMLWINDOW2_SCROLL)]
4156     HRESULT scroll([in] long x, [in] long y);
4157
4158     [propget, id(DISPID_IHTMLWINDOW2_CLIENTINFORMATION)]
4159     HRESULT clientInformation([retval, out] IOmNavigator **p);
4160
4161     [id(DISPID_IHTMLWINDOW2_SETINTERVAL)]
4162     HRESULT setInterval([
4163         in] BSTR expression,
4164         [in] long msec,
4165         [optional, in] VARIANT *language,
4166         [retval, out] long *timerID);
4167
4168     [id(DISPID_IHTMLWINDOW2_CLEARINTERVAL)]
4169     HRESULT clearInterval([in] long timerID);
4170
4171     [propput, id(DISPID_IHTMLWINDOW2_OFFSCREENBUFFERING)]
4172     HRESULT offscreenBuffering([in] VARIANT v);
4173
4174     [propget, id(DISPID_IHTMLWINDOW2_OFFSCREENBUFFERING)]
4175     HRESULT offscreenBuffering([retval, out] VARIANT *p);
4176
4177     [id(DISPID_IHTMLWINDOW2_EXECSCRIPT)]
4178     HRESULT execScript(
4179         [in] BSTR scode,
4180         [defaultvalue("JScript"), in] BSTR language,
4181         [retval, out] VARIANT *pvarRet);
4182
4183     [id(DISPID_IHTMLWINDOW2_TOSTRING)]
4184     HRESULT toString([retval, out] BSTR *String);
4185
4186     [id(DISPID_IHTMLWINDOW2_SCROLLBY)]
4187     HRESULT scrollBy([in] long x, [in] long y);
4188
4189     [id(DISPID_IHTMLWINDOW2_SCROLLTO)]
4190     HRESULT scrollTo([in] long x, [in] long y);
4191
4192     [id(DISPID_IHTMLWINDOW2_MOVETO)]
4193     HRESULT moveTo([in] long x, [in] long y);
4194
4195     [id(DISPID_IHTMLWINDOW2_MOVEBY)]
4196     HRESULT moveBy([in] long x, [in] long y);
4197
4198     [id(DISPID_IHTMLWINDOW2_RESIZETO)]
4199     HRESULT resizeTo([in] long x, [in] long y);
4200
4201     [id(DISPID_IHTMLWINDOW2_RESIZEBY)]
4202     HRESULT resizeBy([in] long x, [in] long y);
4203
4204     [propget, id(DISPID_IHTMLWINDOW2_EXTERNAL)]
4205     HRESULT external([retval, out] IDispatch **p);
4206 }
4207
4208 /*****************************************************************************
4209  *    HTMLDocumentEvents2 interface
4210  */
4211 [
4212     hidden,
4213     uuid(3050f613-98b5-11cf-bb82-00aa00bdce0b)
4214 ]
4215 dispinterface HTMLDocumentEvents2
4216 {
4217     properties:
4218     methods:
4219     [id(DISPID_HTMLDOCUMENTEVENTS2_ONHELP)]
4220     VARIANT_BOOL onhelp([in] IHTMLEventObj *pEvtObj);
4221
4222     [id(DISPID_HTMLDOCUMENTEVENTS2_ONCLICK)]
4223     VARIANT_BOOL onclick([in] IHTMLEventObj *pEvtObj);
4224
4225     [id(DISPID_HTMLDOCUMENTEVENTS2_ONDBLCLICK)]
4226     VARIANT_BOOL ondblclick([in] IHTMLEventObj *pEvtObj);
4227
4228     [id(DISPID_HTMLDOCUMENTEVENTS2_ONKEYDOWN)]
4229     void onkeydown([in] IHTMLEventObj *pEvtObj);
4230
4231     [id(DISPID_HTMLDOCUMENTEVENTS2_ONKEYUP)]
4232     void onkeyup([in] IHTMLEventObj *pEvtObj);
4233
4234     [id(DISPID_HTMLDOCUMENTEVENTS2_ONKEYPRESS)]
4235     VARIANT_BOOL onkeypress([in] IHTMLEventObj *pEvtObj);
4236
4237     [id(DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEDOWN)]
4238     void onmousedown([in] IHTMLEventObj *pEvtObj);
4239
4240     [id(DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEMOVE)]
4241     void onmousemove([in] IHTMLEventObj *pEvtObj);
4242
4243     [id(DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEUP)]
4244     void onmouseup([in] IHTMLEventObj *pEvtObj);
4245
4246     [id(DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEOUT)]
4247     void onmouseout([in] IHTMLEventObj *pEvtObj);
4248
4249     [id(DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEOVER)]
4250     void onmouseover([in] IHTMLEventObj *pEvtObj);
4251
4252     [id(DISPID_HTMLDOCUMENTEVENTS2_ONREADYSTATECHANGE)]
4253     void onreadystatechange([in] IHTMLEventObj *pEvtObj);
4254
4255     [id(DISPID_HTMLDOCUMENTEVENTS2_ONBEFOREUPDATE)]
4256     VARIANT_BOOL onbeforeupdate([in] IHTMLEventObj *pEvtObj);
4257
4258     [id(DISPID_HTMLDOCUMENTEVENTS2_ONAFTERUPDATE)]
4259     void onafterupdate([in] IHTMLEventObj *pEvtObj);
4260
4261     [id(DISPID_HTMLDOCUMENTEVENTS2_ONROWEXIT)]
4262     VARIANT_BOOL onrowexit([in] IHTMLEventObj *pEvtObj);
4263
4264     [id(DISPID_HTMLDOCUMENTEVENTS2_ONROWENTER)]
4265     void onrowenter([in] IHTMLEventObj *pEvtObj);
4266
4267     [id(DISPID_HTMLDOCUMENTEVENTS2_ONDRAGSTART)]
4268     VARIANT_BOOL ondragstart([in] IHTMLEventObj *pEvtObj);
4269
4270     [id(DISPID_HTMLDOCUMENTEVENTS2_ONSELECTSTART)]
4271     VARIANT_BOOL onselectstart([in] IHTMLEventObj *pEvtObj);
4272
4273     [id(DISPID_HTMLDOCUMENTEVENTS2_ONERRORUPDATE)]
4274     VARIANT_BOOL onerrorupdate([in] IHTMLEventObj *pEvtObj);
4275
4276     [id(DISPID_HTMLDOCUMENTEVENTS2_ONCONTEXTMENU)]
4277     VARIANT_BOOL oncontextmenu([in] IHTMLEventObj *pEvtObj);
4278
4279     [id(DISPID_HTMLDOCUMENTEVENTS2_ONSTOP)]
4280     VARIANT_BOOL onstop([in] IHTMLEventObj *pEvtObj);
4281
4282     [id(DISPID_HTMLDOCUMENTEVENTS2_ONROWSDELETE)]
4283     void onrowsdelete([in] IHTMLEventObj *pEvtObj);
4284
4285     [id(DISPID_HTMLDOCUMENTEVENTS2_ONROWSINSERTED)]
4286     void onrowsinserted([in] IHTMLEventObj *pEvtObj);
4287
4288     [id(DISPID_HTMLDOCUMENTEVENTS2_ONCELLCHANGE)]
4289     void oncellchange([in] IHTMLEventObj *pEvtObj);
4290
4291     [id(DISPID_HTMLDOCUMENTEVENTS2_ONPROPERTYCHANGE)]
4292     void onpropertychange([in] IHTMLEventObj *pEvtObj);
4293
4294     [id(DISPID_HTMLDOCUMENTEVENTS2_ONDATASETCHANGED)]
4295     void ondatasetchanged([in] IHTMLEventObj *pEvtObj);
4296
4297     [id(DISPID_HTMLDOCUMENTEVENTS2_ONDATAAVAILABLE)]
4298     void ondataavailable([in] IHTMLEventObj *pEvtObj);
4299
4300     [id(DISPID_HTMLDOCUMENTEVENTS2_ONDATASETCOMPLETE)]
4301     void ondatasetcomplete([in] IHTMLEventObj *pEvtObj);
4302
4303     [id(DISPID_HTMLDOCUMENTEVENTS2_ONBEFOREEDITFOCUS)]
4304     void onbeforeeditfocus([in] IHTMLEventObj *pEvtObj);
4305
4306     [id(DISPID_HTMLDOCUMENTEVENTS2_ONSELECTIONCHANGE)]
4307     void onselectionchange([in] IHTMLEventObj *pEvtObj);
4308
4309     [id(DISPID_HTMLDOCUMENTEVENTS2_ONCONTROLSELECT)]
4310     VARIANT_BOOL oncontrolselect([in] IHTMLEventObj *pEvtObj);
4311
4312     [id(DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEWHEEL)]
4313     VARIANT_BOOL onmousewheel([in] IHTMLEventObj *pEvtObj);
4314
4315     [id(DISPID_HTMLDOCUMENTEVENTS2_ONFOCUSIN)]
4316     void onfocusin([in] IHTMLEventObj *pEvtObj);
4317
4318     [id(DISPID_HTMLDOCUMENTEVENTS2_ONFOCUSOUT)]
4319     void onfocusout([in] IHTMLEventObj *pEvtObj);
4320
4321     [id(DISPID_HTMLDOCUMENTEVENTS2_ONACTIVATE)]
4322     void onactivate([in] IHTMLEventObj *pEvtObj);
4323
4324     [id(DISPID_HTMLDOCUMENTEVENTS2_ONDEACTIVATE)]
4325     void ondeactivate([in] IHTMLEventObj *pEvtObj);
4326
4327     [id(DISPID_HTMLDOCUMENTEVENTS2_ONBEFOREACTIVATE)]
4328     VARIANT_BOOL onbeforeactivate([in] IHTMLEventObj *pEvtObj);
4329
4330     [id(DISPID_HTMLDOCUMENTEVENTS2_ONBEFOREDEACTIVATE)]
4331     VARIANT_BOOL onbeforedeactivate([in] IHTMLEventObj *pEvtObj);
4332 }
4333
4334 /*****************************************************************************
4335  *    HTMLDocumentEvents interface
4336  */
4337 [
4338     hidden,
4339     uuid(3050f260-98b5-11cf-bb82-00aa00bdce0b)
4340 ]
4341 dispinterface HTMLDocumentEvents
4342 {
4343     properties:
4344     methods:
4345     [id(DISPID_HTMLDOCUMENTEVENTS_ONHELP)]
4346     VARIANT_BOOL onhelp();
4347
4348     [id(DISPID_HTMLDOCUMENTEVENTS_ONCLICK)]
4349     VARIANT_BOOL onclick();
4350
4351     [id(DISPID_HTMLDOCUMENTEVENTS_ONDBLCLICK)]
4352     VARIANT_BOOL ondblclick();
4353
4354     [id(DISPID_HTMLDOCUMENTEVENTS_ONKEYDOWN)]
4355     void onkeydown();
4356
4357     [id(DISPID_HTMLDOCUMENTEVENTS_ONKEYUP)]
4358     void onkeyup();
4359
4360     [id(DISPID_HTMLDOCUMENTEVENTS_ONKEYPRESS)]
4361     VARIANT_BOOL onkeypress();
4362
4363     [id(DISPID_HTMLDOCUMENTEVENTS_ONMOUSEDOWN)]
4364     void onmousedown();
4365
4366     [id(DISPID_HTMLDOCUMENTEVENTS_ONMOUSEMOVE)]
4367     void onmousemove();
4368
4369     [id(DISPID_HTMLDOCUMENTEVENTS_ONMOUSEUP)]
4370     void onmouseup();
4371
4372     [id(DISPID_HTMLDOCUMENTEVENTS_ONMOUSEOUT)]
4373     void onmouseout();
4374
4375     [id(DISPID_HTMLDOCUMENTEVENTS_ONMOUSEOVER)]
4376     void onmouseover();
4377
4378     [id(DISPID_HTMLDOCUMENTEVENTS_ONREADYSTATECHANGE)]
4379     void onreadystatechange();
4380
4381     [id(DISPID_HTMLDOCUMENTEVENTS_ONBEFOREUPDATE)]
4382     VARIANT_BOOL onbeforeupdate();
4383
4384     [id(DISPID_HTMLDOCUMENTEVENTS_ONAFTERUPDATE)]
4385     void onafterupdate();
4386
4387     [id(DISPID_HTMLDOCUMENTEVENTS_ONROWEXIT)]
4388     VARIANT_BOOL onrowexit();
4389
4390     [id(DISPID_HTMLDOCUMENTEVENTS_ONROWENTER)]
4391     void onrowenter();
4392
4393     [id(DISPID_HTMLDOCUMENTEVENTS_ONDRAGSTART)]
4394     VARIANT_BOOL ondragstart();
4395
4396     [id(DISPID_HTMLDOCUMENTEVENTS_ONSELECTSTART)]
4397     VARIANT_BOOL onselectstart();
4398
4399     [id(DISPID_HTMLDOCUMENTEVENTS_ONERRORUPDATE)]
4400     VARIANT_BOOL onerrorupdate();
4401
4402     [id(DISPID_HTMLDOCUMENTEVENTS_ONCONTEXTMENU)]
4403     VARIANT_BOOL oncontextmenu();
4404
4405     [id(DISPID_HTMLDOCUMENTEVENTS_ONSTOP)]
4406     VARIANT_BOOL onstop();
4407
4408     [id(DISPID_HTMLDOCUMENTEVENTS_ONROWSDELETE)]
4409     void onrowsdelete();
4410
4411     [id(DISPID_HTMLDOCUMENTEVENTS_ONROWSINSERTED)]
4412     void onrowsinserted();
4413
4414     [id(DISPID_HTMLDOCUMENTEVENTS_ONCELLCHANGE)]
4415     void oncellchange();
4416
4417     [id(DISPID_HTMLDOCUMENTEVENTS_ONPROPERTYCHANGE)]
4418     void onpropertychange();
4419
4420     [id(DISPID_HTMLDOCUMENTEVENTS_ONDATASETCHANGED)]
4421     void ondatasetchanged();
4422
4423     [id(DISPID_HTMLDOCUMENTEVENTS_ONDATAAVAILABLE)]
4424     void ondataavailable();
4425
4426     [id(DISPID_HTMLDOCUMENTEVENTS_ONDATASETCOMPLETE)]
4427     void ondatasetcomplete();
4428
4429     [id(DISPID_HTMLDOCUMENTEVENTS_ONBEFOREEDITFOCUS)]
4430     void onbeforeeditfocus();
4431
4432     [id(DISPID_HTMLDOCUMENTEVENTS_ONSELECTIONCHANGE)]
4433     void onselectionchange();
4434
4435     [id(DISPID_HTMLDOCUMENTEVENTS_ONCONTROLSELECT)]
4436     VARIANT_BOOL oncontrolselect();
4437
4438     [id(DISPID_HTMLDOCUMENTEVENTS_ONMOUSEWHEEL)]
4439     VARIANT_BOOL onmousewheel();
4440
4441     [id(DISPID_HTMLDOCUMENTEVENTS_ONFOCUSIN)]
4442     void onfocusin();
4443
4444     [id(DISPID_HTMLDOCUMENTEVENTS_ONFOCUSOUT)]
4445     void onfocusout();
4446
4447     [id(DISPID_HTMLDOCUMENTEVENTS_ONACTIVATE)]
4448     void onactivate();
4449
4450     [id(DISPID_HTMLDOCUMENTEVENTS_ONDEACTIVATE)]
4451     void ondeactivate();
4452
4453     [id(DISPID_HTMLDOCUMENTEVENTS_ONBEFOREACTIVATE)]
4454     VARIANT_BOOL onbeforeactivate();
4455
4456     [id(DISPID_HTMLDOCUMENTEVENTS_ONBEFOREDEACTIVATE)]
4457     VARIANT_BOOL onbeforedeactivate();
4458 }
4459
4460 /*****************************************************************************
4461  *    IHTMLDocument interface
4462  */
4463 [
4464     odl,
4465     oleautomation,
4466     dual,
4467     uuid(626FC520-A41E-11CF-A731-00A0C9082637)
4468 ]
4469 interface IHTMLDocument : IDispatch
4470 {
4471     [propget, id(DISPID_IHTMLDOCUMENT_SCRIPT)]
4472     HRESULT Script([retval, out] IDispatch **p);
4473 }
4474
4475 /*****************************************************************************
4476  *    IHTMLDocument2 interface
4477  */
4478 [
4479     odl,
4480     oleautomation,
4481     dual,
4482     uuid(332C4425-26CB-11D0-B483-00C04FD90119)
4483 ]
4484 interface IHTMLDocument2 : IHTMLDocument
4485 {
4486     [propget, id(DISPID_IHTMLDOCUMENT2_ALL)]
4487     HRESULT all([retval, out] IHTMLElementCollection **p);
4488
4489     [propget, id(DISPID_IHTMLDOCUMENT2_BODY)]
4490     HRESULT body([retval, out] IHTMLElement **p);
4491
4492     [propget, id(DISPID_IHTMLDOCUMENT2_ACTIVEELEMENT)]
4493     HRESULT activeElement([retval, out] IHTMLElement **p);
4494
4495     [propget, id(DISPID_IHTMLDOCUMENT2_IMAGES)]
4496     HRESULT images([retval, out] IHTMLElementCollection **p);
4497
4498     [propget, id(DISPID_IHTMLDOCUMENT2_APPLETS)]
4499     HRESULT applets([retval, out] IHTMLElementCollection **p);
4500
4501     [propget, id(DISPID_IHTMLDOCUMENT2_LINKS)]
4502     HRESULT links([retval, out] IHTMLElementCollection **p);
4503
4504     [propget, id(DISPID_IHTMLDOCUMENT2_FORMS)]
4505     HRESULT forms([retval, out] IHTMLElementCollection **p);
4506
4507     [propget, id(DISPID_IHTMLDOCUMENT2_ANCHORS)]
4508     HRESULT anchors([retval, out] IHTMLElementCollection **p);
4509
4510     [propput, id(DISPID_IHTMLDOCUMENT2_TITLE)]
4511     HRESULT title([in] BSTR v);
4512
4513     [propget, id(DISPID_IHTMLDOCUMENT2_TITLE)]
4514     HRESULT title([retval, out] BSTR *p);
4515
4516     [propget, id(DISPID_IHTMLDOCUMENT2_SCRIPTS)]
4517     HRESULT scripts([retval, out] IHTMLElementCollection **p);
4518
4519     [propput, id(DISPID_IHTMLDOCUMENT2_DESIGNMODE)]
4520     HRESULT designMode([in] BSTR v);
4521
4522     [propget, id(DISPID_IHTMLDOCUMENT2_DESIGNMODE)]
4523     HRESULT designMode([retval, out] BSTR *p);
4524
4525     [propget, id(DISPID_IHTMLDOCUMENT2_SELECTION)]
4526     HRESULT selection([retval, out] IHTMLSelectionObject **p);
4527
4528     [propget, id(DISPID_IHTMLDOCUMENT2_READYSTATE)]
4529      HRESULT readyState([retval, out] BSTR *p);
4530
4531     [propget, id(DISPID_IHTMLDOCUMENT2_FRAMES)]
4532     HRESULT frames([retval, out] IHTMLFramesCollection2 **p);
4533
4534     [propget, id(DISPID_IHTMLDOCUMENT2_EMBEDS)]
4535     HRESULT embeds([retval, out] IHTMLElementCollection **p);
4536
4537     [propget, id(DISPID_IHTMLDOCUMENT2_PLUGINS)]
4538     HRESULT plugins([retval, out] IHTMLElementCollection **p);
4539
4540     [propput, id(DISPID_IHTMLDOCUMENT2_ALINKCOLOR)]
4541     HRESULT alinkColor([in] VARIANT v);
4542
4543     [propget, id(DISPID_IHTMLDOCUMENT2_ALINKCOLOR)]
4544     HRESULT alinkColor([retval, out] VARIANT *p);
4545
4546     [propput, id(DISPID_IHTMLDOCUMENT2_BGCOLOR)]
4547     HRESULT bgColor([in] VARIANT v);
4548
4549     [propget, id(DISPID_IHTMLDOCUMENT2_BGCOLOR)]
4550     HRESULT bgColor([retval, out] VARIANT *p);
4551
4552     [propput, id(DISPID_IHTMLDOCUMENT2_FGCOLOR)]
4553     HRESULT fgColor([in] VARIANT v);
4554
4555     [propget, id(DISPID_IHTMLDOCUMENT2_FGCOLOR)]
4556     HRESULT fgColor([retval, out] VARIANT *p);
4557
4558     [propput, id(DISPID_IHTMLDOCUMENT2_LINKCOLOR)]
4559     HRESULT linkColor([in] VARIANT v);
4560
4561     [propget, id(DISPID_IHTMLDOCUMENT2_LINKCOLOR)]
4562     HRESULT linkColor([retval, out] VARIANT *p);
4563
4564     [propput, id(DISPID_IHTMLDOCUMENT2_VLINKCOLOR)]
4565     HRESULT vlinkColor([in] VARIANT v);
4566
4567     [propget, id(DISPID_IHTMLDOCUMENT2_VLINKCOLOR)]
4568     HRESULT vlinkColor([retval, out] VARIANT *p);
4569
4570     [propget, id(DISPID_IHTMLDOCUMENT2_REFERRER)]
4571     HRESULT referrer([retval, out] BSTR *p);
4572
4573     [propget, id(DISPID_IHTMLDOCUMENT2_LOCATION)]
4574     HRESULT location([retval, out] IHTMLLocation **p);
4575
4576     [propget, id(DISPID_IHTMLDOCUMENT2_LASTMODIFIED)]
4577     HRESULT lastModified([retval, out] BSTR *p);
4578
4579     [propput, id(DISPID_IHTMLDOCUMENT2_URL)]
4580     HRESULT URL([in] BSTR v);
4581
4582     [propget, id(DISPID_IHTMLDOCUMENT2_URL)]
4583     HRESULT URL([retval, out] BSTR *p);
4584
4585     [propput, id(DISPID_IHTMLDOCUMENT2_DOMAIN)]
4586     HRESULT domain([in] BSTR v);
4587
4588     [propget, id(DISPID_IHTMLDOCUMENT2_DOMAIN)]
4589     HRESULT domain([retval, out] BSTR *p);
4590
4591     [propput, id(DISPID_IHTMLDOCUMENT2_COOKIE)]
4592     HRESULT cookie([in] BSTR v);
4593
4594     [propget, id(DISPID_IHTMLDOCUMENT2_COOKIE)]
4595     HRESULT cookie([retval, out] BSTR *p);
4596
4597     [propput, id(DISPID_IHTMLDOCUMENT2_EXPANDO)]
4598     HRESULT expando([in] VARIANT_BOOL v);
4599
4600     [propget, id(DISPID_IHTMLDOCUMENT2_EXPANDO)]
4601     HRESULT expando([retval, out] VARIANT_BOOL *p);
4602
4603     [propput, id(DISPID_IHTMLDOCUMENT2_CHARSET)]
4604      HRESULT charset([in] BSTR v);
4605
4606     [propget, id(DISPID_IHTMLDOCUMENT2_CHARSET)]
4607     HRESULT charset([retval, out] BSTR *p);
4608
4609     [propput, id(DISPID_IHTMLDOCUMENT2_DEFAULTCHARSET)]
4610     HRESULT defaultCharset([in] BSTR v);
4611
4612     [propget, id(DISPID_IHTMLDOCUMENT2_DEFAULTCHARSET)]
4613     HRESULT defaultCharset([retval, out] BSTR *p);
4614
4615     [propget, id(DISPID_IHTMLDOCUMENT2_MIMETYPE)]
4616     HRESULT mimeType([retval, out] BSTR *p);
4617
4618     [propget, id(DISPID_IHTMLDOCUMENT2_FILESIZE)]
4619     HRESULT fileSize([retval, out] BSTR *p);
4620
4621     [propget, id(DISPID_IHTMLDOCUMENT2_FILECREATEDDATE)]
4622     HRESULT fileCreatedDate([retval, out] BSTR *p);
4623
4624     [propget, id(DISPID_IHTMLDOCUMENT2_FILEMODIFIEDDATE)]
4625     HRESULT fileModifiedDate([retval, out] BSTR *p);
4626
4627     [propget, id(DISPID_IHTMLDOCUMENT2_FILEUPDATEDDATE)]
4628     HRESULT fileUpdatedDate([retval, out] BSTR *p);
4629
4630     [propget, id(DISPID_IHTMLDOCUMENT2_SECURITY)]
4631     HRESULT security([retval, out] BSTR *p);
4632
4633     [propget, id(DISPID_IHTMLDOCUMENT2_PROTOCOL)]
4634     HRESULT protocol([retval, out] BSTR *p);
4635
4636     [propget, id(DISPID_IHTMLDOCUMENT2_NAMEPROP)]
4637      HRESULT nameProp([retval, out] BSTR *p);
4638
4639     [vararg, id(DISPID_IHTMLDOCUMENT2_WRITE)]
4640     HRESULT write([in] SAFEARRAY *psarray);
4641
4642     [vararg, id(DISPID_IHTMLDOCUMENT2_WRITELN)]
4643     HRESULT writeln([in] SAFEARRAY *psarray);
4644
4645     [id(DISPID_IHTMLDOCUMENT2_OPEN)]
4646     HRESULT open(
4647         [defaultvalue("text/html"), in] BSTR url,
4648         [optional, in] VARIANT name,
4649         [optional, in] VARIANT features,
4650         [optional, in] VARIANT replace,
4651         [retval, out]  IDispatch **pomWindowResult);
4652
4653     [id(DISPID_IHTMLDOCUMENT2_CLOSE)]
4654     HRESULT close();
4655
4656     [id(DISPID_IHTMLDOCUMENT2_CLEAR)]
4657     HRESULT clear();
4658
4659     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDSUPPORTED)]
4660     HRESULT queryCommandSupported(
4661         [in] BSTR cmdID,
4662         [retval, out] VARIANT_BOOL *pfRet);
4663
4664     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDENABLED)]
4665     HRESULT queryCommandEnabled(
4666         [in] BSTR cmdID,
4667         [retval, out] VARIANT_BOOL *pfRet);
4668
4669     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDSTATE)]
4670     HRESULT queryCommandState(
4671         [in] BSTR cmdID,
4672         [retval, out] VARIANT_BOOL *pfRet);
4673
4674     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDINDETERM)]
4675     HRESULT queryCommandIndeterm(
4676         [in] BSTR cmdID,
4677         [retval, out] VARIANT_BOOL *pfRet);
4678
4679     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDTEXT)]
4680     HRESULT queryCommandText(
4681         [in] BSTR cmdID,
4682         [retval, out] BSTR *pcmdText);
4683
4684     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDVALUE)]
4685     HRESULT queryCommandValue(
4686         [in] BSTR cmdID,
4687         [retval, out] VARIANT *pcmdValue);
4688
4689     [id(DISPID_IHTMLDOCUMENT2_EXECCOMMAND)]
4690     HRESULT execCommand(
4691         [in] BSTR cmdID,
4692         [defaultvalue(0), in] VARIANT_BOOL showUI,
4693         [optional, in] VARIANT value,
4694         [retval, out] VARIANT_BOOL *pfRet);
4695
4696     [id(DISPID_IHTMLDOCUMENT2_EXECCOMMANDSHOWHELP)]
4697     HRESULT execCommandShowHelp(
4698         [in] BSTR cmdID,
4699         [retval, out] VARIANT_BOOL *pfRet);
4700
4701     [id(DISPID_IHTMLDOCUMENT2_CREATEELEMENT)]
4702      HRESULT createElement(
4703         [in] BSTR eTag,
4704         [retval, out] IHTMLElement **newElem);
4705
4706     [propput, id(DISPID_IHTMLDOCUMENT2_ONHELP)]
4707     HRESULT onhelp([in] VARIANT v);
4708
4709     [propget, id(DISPID_IHTMLDOCUMENT2_ONHELP)]
4710     HRESULT onhelp([retval, out] VARIANT *p);
4711
4712     [propput, id(DISPID_IHTMLDOCUMENT2_ONCLICK)]
4713     HRESULT onclick([in] VARIANT v);
4714
4715     [propget, id(DISPID_IHTMLDOCUMENT2_ONCLICK)]
4716     HRESULT onclick([retval, out] VARIANT *p);
4717
4718     [propput, id(DISPID_IHTMLDOCUMENT2_ONDBLCLICK)]
4719     HRESULT ondblclick([in] VARIANT v);
4720
4721     [propget, id(DISPID_IHTMLDOCUMENT2_ONDBLCLICK)]
4722     HRESULT ondblclick([retval, out] VARIANT *p);
4723
4724     [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYUP)]
4725     HRESULT onkeyup([in] VARIANT v);
4726
4727     [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYUP)]
4728     HRESULT onkeyup([retval, out] VARIANT *p);
4729
4730     [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYDOWN)]
4731     HRESULT onkeydown([in] VARIANT v);
4732
4733     [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYDOWN)]
4734     HRESULT onkeydown([retval, out] VARIANT *p);
4735
4736     [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYPRESS)]
4737      HRESULT onkeypress([in] VARIANT v);
4738
4739     [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYPRESS)]
4740     HRESULT onkeypress([retval, out] VARIANT *p);
4741
4742     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEUP)]
4743     HRESULT onmouseup([in] VARIANT v);
4744
4745     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEUP)]
4746     HRESULT onmouseup([retval, out] VARIANT *p);
4747
4748     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEDOWN)]
4749     HRESULT onmousedown([in] VARIANT v);
4750
4751     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEDOWN)]
4752     HRESULT onmousedown([retval, out] VARIANT *p);
4753
4754     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEMOVE)]
4755     HRESULT onmousemove([in] VARIANT v);
4756
4757     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEMOVE)]
4758     HRESULT onmousemove([retval, out] VARIANT *p);
4759
4760     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOUT)]
4761     HRESULT onmouseout([in] VARIANT v);
4762
4763     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOUT)]
4764     HRESULT onmouseout([retval, out] VARIANT *p);
4765
4766     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOVER)]
4767     HRESULT onmouseover([in] VARIANT v);
4768
4769     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOVER)]
4770     HRESULT onmouseover([retval, out] VARIANT *p);
4771
4772     [propput, id(DISPID_IHTMLDOCUMENT2_ONREADYSTATECHANGE)]
4773     HRESULT onreadystatechange([in] VARIANT v);
4774
4775     [propget, id(DISPID_IHTMLDOCUMENT2_ONREADYSTATECHANGE)]
4776     HRESULT onreadystatechange([retval, out] VARIANT *p);
4777
4778     [propput, id(DISPID_IHTMLDOCUMENT2_ONAFTERUPDATE)]
4779     HRESULT onafterupdate([in] VARIANT v);
4780
4781     [propget, id(DISPID_IHTMLDOCUMENT2_ONAFTERUPDATE)]
4782     HRESULT onafterupdate([retval, out] VARIANT *p);
4783
4784     [propput, id(DISPID_IHTMLDOCUMENT2_ONROWEXIT)]
4785     HRESULT onrowexit([in] VARIANT v);
4786
4787     [propget, id(DISPID_IHTMLDOCUMENT2_ONROWEXIT)]
4788     HRESULT onrowexit([retval, out] VARIANT *p);
4789
4790     [propput, id(DISPID_IHTMLDOCUMENT2_ONROWENTER)]
4791     HRESULT onrowenter([in] VARIANT v);
4792
4793     [propget, id(DISPID_IHTMLDOCUMENT2_ONROWENTER)]
4794     HRESULT onrowenter([retval, out] VARIANT *p);
4795
4796     [propput, id(DISPID_IHTMLDOCUMENT2_ONDRAGSTART)]
4797     HRESULT ondragstart([in] VARIANT v);
4798
4799     [propget, id(DISPID_IHTMLDOCUMENT2_ONDRAGSTART)]
4800     HRESULT ondragstart([retval, out] VARIANT *p);
4801
4802     [propput, id(DISPID_IHTMLDOCUMENT2_ONSELECTSTART)]
4803     HRESULT onselectstart([in] VARIANT v);
4804
4805     [propget, id(DISPID_IHTMLDOCUMENT2_ONSELECTSTART)]
4806     HRESULT onselectstart([retval, out] VARIANT *p);
4807
4808     [id(DISPID_IHTMLDOCUMENT2_ELEMENTFROMPOINT)]
4809     HRESULT elementFromPoint(
4810         [in] long x,
4811         [in] long y,
4812         [retval, out] IHTMLElement **elementHit);
4813
4814     [propget, id(DISPID_IHTMLDOCUMENT2_PARENTWINDOW)]
4815     HRESULT parentWindow([retval, out] IHTMLWindow2 **p);
4816
4817     [propget, id(DISPID_IHTMLDOCUMENT2_STYLESHEETS)]
4818     HRESULT styleSheets([retval, out] IHTMLStyleSheetsCollection **p);
4819
4820     [propput, id(DISPID_IHTMLDOCUMENT2_ONBEFOREUPDATE)]
4821     HRESULT onbeforeupdate([in] VARIANT v);
4822
4823     [propget, id(DISPID_IHTMLDOCUMENT2_ONBEFOREUPDATE)]
4824     HRESULT onbeforeupdate([retval, out] VARIANT *p);
4825
4826     [propput, id(DISPID_IHTMLDOCUMENT2_ONERRORUPDATE)]
4827     HRESULT onerrorupdate([in] VARIANT v);
4828
4829     [propget, id(DISPID_IHTMLDOCUMENT2_ONERRORUPDATE)]
4830     HRESULT onerrorupdate([retval, out] VARIANT *p);
4831
4832     [id(DISPID_IHTMLDOCUMENT2_TOSTRING)]
4833     HRESULT toString([retval, out] BSTR *String);
4834
4835     [id(DISPID_IHTMLDOCUMENT2_CREATESTYLESHEET)]
4836     HRESULT createStyleSheet(
4837         [defaultvalue(""), in] BSTR bstrHref,
4838         [defaultvalue(-1), in] long lIndex,
4839         [retval, out] IHTMLStyleSheet **ppnewStyleSheet);
4840 }
4841
4842 /*****************************************************************************
4843  *    IHTMLDocument3 interface
4844  */
4845 [
4846     odl,
4847     oleautomation,
4848     dual,
4849     uuid(3050f485-98b5-11cf-bb82-00aa00bdce0b)
4850 ]
4851 interface IHTMLDocument3 : IDispatch
4852 {
4853     [id(DISPID_IHTMLDOCUMENT3_RELEASECAPTURE)]
4854     HRESULT releaseCapture();
4855
4856     [id(DISPID_IHTMLDOCUMENT3_RECALC)]
4857     HRESULT recalc([defaultvalue(0), in] VARIANT_BOOL fForce);
4858
4859     [id(DISPID_IHTMLDOCUMENT3_CREATETEXTNODE)]
4860     HRESULT createTextNode(
4861         [in] BSTR text,
4862         [retval, out] IHTMLDOMNode **newTextNode);
4863
4864     [propget, id(DISPID_IHTMLDOCUMENT3_DOCUMENTELEMENT)]
4865     HRESULT documentElement([retval, out] IHTMLElement **p);
4866
4867     [propget, id(DISPID_IHTMLDOCUMENT3_UNIQUEID), hidden]
4868     HRESULT uniqueID([retval, out] BSTR *p);
4869     
4870     [id(DISPID_IHTMLDOCUMENT3_ATTACHEVENT)]
4871     HRESULT attachEvent(
4872         [in] BSTR event,
4873         [in] IDispatch* pDisp,
4874         [retval, out] VARIANT_BOOL *pfResult);
4875
4876     [id(DISPID_IHTMLDOCUMENT3_DETACHEVENT)]
4877     HRESULT detachEvent(
4878         [in] BSTR event,
4879         [in] IDispatch *pDisp);
4880
4881     [propput, id(DISPID_IHTMLDOCUMENT3_ONROWSDELETE), displaybind, bindable]
4882     HRESULT onrowsdelete([in] VARIANT v);
4883
4884     [propget, id(DISPID_IHTMLDOCUMENT3_ONROWSDELETE), displaybind, bindable]
4885     HRESULT onrowsdelete([retval, out] VARIANT *p);
4886
4887     [propput, id(DISPID_IHTMLDOCUMENT3_ONROWSINSERTED), displaybind, bindable]
4888     HRESULT onrowsinserted([in] VARIANT v);
4889
4890     [propget, id(DISPID_IHTMLDOCUMENT3_ONROWSINSERTED), displaybind, bindable]
4891     HRESULT onrowsinserted([retval, out] VARIANT *p);
4892
4893     [propput, id(DISPID_IHTMLDOCUMENT3_ONCELLCHANGE), displaybind, bindable]
4894     HRESULT oncellchange([in] VARIANT v);
4895
4896     [propget, id(DISPID_IHTMLDOCUMENT3_ONCELLCHANGE), displaybind, bindable]
4897     HRESULT oncellchange([retval, out] VARIANT *p);
4898
4899     [propput, id(DISPID_IHTMLDOCUMENT3_ONDATASETCHANGED), displaybind, bindable]
4900     HRESULT ondatasetchanged([in] VARIANT v);
4901
4902     [propget, id(DISPID_IHTMLDOCUMENT3_ONDATASETCHANGED), displaybind, bindable]
4903     HRESULT ondatasetchanged([retval, out] VARIANT *p);
4904
4905     [propput, id(DISPID_IHTMLDOCUMENT3_ONDATAAVAILABLE), displaybind, bindable]
4906     HRESULT ondataavailable([in] VARIANT v);
4907
4908     [propget, id(DISPID_IHTMLDOCUMENT3_ONDATAAVAILABLE), displaybind, bindable]
4909     HRESULT ondataavailable([retval, out] VARIANT * p);
4910
4911     [propput, id(DISPID_IHTMLDOCUMENT3_ONDATASETCOMPLETE), displaybind, bindable]
4912     HRESULT ondatasetcomplete([in] VARIANT v);
4913
4914     [propget, id(DISPID_IHTMLDOCUMENT3_ONDATASETCOMPLETE), displaybind, bindable]
4915     HRESULT ondatasetcomplete([retval, out] VARIANT *p);
4916
4917     [propput, id(DISPID_IHTMLDOCUMENT3_ONPROPERTYCHANGE), displaybind, bindable]
4918     HRESULT onpropertychange([in] VARIANT v);
4919
4920     [propget, id(DISPID_IHTMLDOCUMENT3_ONPROPERTYCHANGE), displaybind, bindable]
4921     HRESULT onpropertychange([retval, out] VARIANT *p);
4922
4923     [propput, id(DISPID_IHTMLDOCUMENT3_DIR)]
4924     HRESULT dir([in] BSTR v);
4925
4926     [propget, id(DISPID_IHTMLDOCUMENT3_DIR)]
4927     HRESULT dir([retval, out] BSTR *p);
4928
4929     [propput, id(DISPID_IHTMLDOCUMENT3_ONCONTEXTMENU), displaybind, bindable]
4930     HRESULT oncontextmenu([in] VARIANT v);
4931
4932     [propget, id(DISPID_IHTMLDOCUMENT3_ONCONTEXTMENU), displaybind, bindable]
4933     HRESULT oncontextmenu([retval, out] VARIANT *p);
4934
4935     [propput, id(DISPID_IHTMLDOCUMENT3_ONSTOP), displaybind, bindable]
4936     HRESULT onstop([in] VARIANT v);
4937
4938     [propget, id(DISPID_IHTMLDOCUMENT3_ONSTOP), displaybind, bindable]
4939     HRESULT onstop([retval, out] VARIANT *p);
4940
4941     [id(DISPID_IHTMLDOCUMENT3_CREATEDOCUMENTFRAGMENT)]
4942     HRESULT createDocumentFragment([retval, out] IHTMLDocument2 **pNewDoc);
4943
4944     [propget, id(DISPID_IHTMLDOCUMENT3_PARENTDOCUMENT), hidden, restricted]
4945     HRESULT parentDocument([retval, out] IHTMLDocument2 **p);
4946
4947     [propput, id(DISPID_IHTMLDOCUMENT3_ENABLEDOWNLOAD), hidden, restricted]
4948     HRESULT enableDownload([in] VARIANT_BOOL v);
4949
4950     [propget, id(DISPID_IHTMLDOCUMENT3_ENABLEDOWNLOAD), hidden, restricted]
4951     HRESULT enableDownload([retval, out] VARIANT_BOOL *p);
4952
4953     [propput, id(DISPID_IHTMLDOCUMENT3_BASEURL), hidden, restricted]
4954     HRESULT baseUrl([in] BSTR v);
4955
4956     [propget, id(DISPID_IHTMLDOCUMENT3_BASEURL), hidden, restricted]
4957     HRESULT baseUrl([retval, out] BSTR *p);
4958
4959     [propget, id(DISPID_IHTMLDOCUMENT3_CHILDNODES)]
4960     HRESULT childNodes([retval, out] IDispatch **p);
4961
4962     [propput, id(DISPID_IHTMLDOCUMENT3_INHERITSTYLESHEETS), hidden, restricted]
4963     HRESULT inheritStyleSheets([in] VARIANT_BOOL v);
4964
4965     [propget, id(DISPID_IHTMLDOCUMENT3_INHERITSTYLESHEETS), hidden, restricted]
4966     HRESULT inheritStyleSheets([retval, out] VARIANT_BOOL *p);
4967
4968     [propput, id(DISPID_IHTMLDOCUMENT3_ONBEFOREEDITFOCUS), displaybind, bindable]
4969     HRESULT onbeforeeditfocus([in] VARIANT v);
4970
4971     [propget, id(DISPID_IHTMLDOCUMENT3_ONBEFOREEDITFOCUS), displaybind, bindable]
4972     HRESULT onbeforeeditfocus([retval, out] VARIANT *p);
4973
4974     [id(DISPID_IHTMLDOCUMENT3_GETELEMENTSBYNAME)]
4975     HRESULT getElementsByName(
4976         [in] BSTR v,
4977         [retval, out] IHTMLElementCollection **pelColl);
4978
4979     [id(DISPID_IHTMLDOCUMENT3_GETELEMENTBYID)]
4980     HRESULT getElementById(
4981         [in] BSTR v,
4982         [retval, out] IHTMLElement **pel);
4983
4984     [id(DISPID_IHTMLDOCUMENT3_GETELEMENTSBYTAGNAME)]
4985     HRESULT getElementsByTagName(
4986         [in] BSTR v,
4987         [retval, out] IHTMLElementCollection **pelColl);
4988 }
4989
4990 /*****************************************************************************
4991  *    IHTMLDocument4 interface
4992  */
4993 [
4994     odl,
4995     oleautomation,
4996     dual,
4997     uuid(3050f69a-98b5-11cf-bb82-00aa00bdce0b)
4998 ]
4999 interface IHTMLDocument4 : IDispatch
5000 {
5001     [id(DISPID_IHTMLDOCUMENT4_FOCUS)]
5002     HRESULT focus();
5003
5004     [id(DISPID_IHTMLDOCUMENT4_HASFOCUS)]
5005     HRESULT hasFocus([retval, out] VARIANT_BOOL *pfFocus);
5006
5007     [propput, id(DISPID_IHTMLDOCUMENT4_ONSELECTIONCHANGE), displaybind, bindable]
5008     HRESULT onselectionchange([in] VARIANT v);
5009
5010     [propget, id(DISPID_IHTMLDOCUMENT4_ONSELECTIONCHANGE), displaybind, bindable]
5011     HRESULT onselectionchange([retval, out] VARIANT *p);
5012
5013     [propget, id(DISPID_IHTMLDOCUMENT4_NAMESPACES)]
5014     HRESULT namespaces([retval, out] IDispatch **p);
5015
5016     [id(DISPID_IHTMLDOCUMENT4_CREATEDOCUMENTFROMURL)]
5017     HRESULT createDocumentFromUrl(
5018         [in] BSTR bstrUrl,
5019         [in] BSTR bstrOptions,
5020         [retval, out] IHTMLDocument2 **newDoc);
5021
5022     [propput, id(DISPID_IHTMLDOCUMENT4_MEDIA)]
5023     HRESULT media([in] BSTR v);
5024
5025     [propget, id(DISPID_IHTMLDOCUMENT4_MEDIA)]
5026     HRESULT media([retval, out] BSTR *p);
5027
5028     [id(DISPID_IHTMLDOCUMENT4_CREATEEVENTOBJECT)]
5029     HRESULT createEventObject(
5030         [optional, in] VARIANT *pvarEventObject,
5031         [retval, out] IHTMLEventObj **ppEventObj);
5032
5033     [id(DISPID_IHTMLDOCUMENT4_FIREEVENT)]
5034     HRESULT fireEvent(
5035         [in] BSTR bstrEventName,
5036         [optional, in] VARIANT *pvarEventObject,
5037         [retval, out] VARIANT_BOOL *pfCancelled);
5038
5039     [id(DISPID_IHTMLDOCUMENT4_CREATERENDERSTYLE)]
5040     HRESULT createRenderStyle(
5041         [in] BSTR v,
5042         [retval, out] IHTMLRenderStyle **ppIHTMLRenderStyle);
5043
5044     [propput, id(DISPID_IHTMLDOCUMENT4_ONCONTROLSELECT), displaybind, bindable]
5045     HRESULT oncontrolselect([in] VARIANT v);
5046
5047     [propget, id(DISPID_IHTMLDOCUMENT4_ONCONTROLSELECT), displaybind, bindable]
5048     HRESULT oncontrolselect([retval, out] VARIANT *p);
5049
5050     [propget, id(DISPID_IHTMLDOCUMENT4_URLUNENCODED)]
5051     HRESULT URLUnencoded([retval, out] BSTR *p);
5052 }
5053
5054 /*****************************************************************************
5055  *    IHTMLDocument5 interface
5056  */
5057 [
5058     odl,
5059     oleautomation,
5060     dual,
5061     uuid(3050f80c-98b5-11cf-bb82-00aa00bdce0b)
5062 ]
5063 interface IHTMLDocument5 : IDispatch
5064 {
5065     [propput, id(DISPID_IHTMLDOCUMENT5_ONMOUSEWHEEL), displaybind, bindable]
5066     HRESULT onmousewheel([in] VARIANT v);
5067
5068     [propget, id(DISPID_IHTMLDOCUMENT5_ONMOUSEWHEEL), displaybind, bindable]
5069     HRESULT onmousewheel([retval, out] VARIANT *p);
5070
5071     [propget, id(DISPID_IHTMLDOCUMENT5_DOCTYPE)]
5072     HRESULT doctype([retval, out] IHTMLDOMNode **p);
5073
5074     [propget, id(DISPID_IHTMLDOCUMENT5_IMPLEMENTATION)]
5075     HRESULT implementation([retval, out] IHTMLDOMImplementation **p);
5076
5077     [id(DISPID_IHTMLDOCUMENT5_CREATEATTRIBUTE)]
5078     HRESULT createAttribute(
5079         [in] BSTR bstrattrName,
5080         [retval, out] IHTMLDOMAttribute **ppattribute);
5081
5082     [id(DISPID_IHTMLDOCUMENT5_CREATECOMMENT)]
5083     HRESULT createComment(
5084         [in] BSTR bstrdata,
5085         [retval, out] IHTMLDOMNode **ppRetNode);
5086
5087     [propput, id(DISPID_IHTMLDOCUMENT5_ONFOCUSIN), displaybind, bindable]
5088     HRESULT onfocusin([in] VARIANT v);
5089
5090     [propget, id(DISPID_IHTMLDOCUMENT5_ONFOCUSIN), displaybind, bindable]
5091     HRESULT onfocusin([retval, out] VARIANT *p);
5092
5093     [propput, id(DISPID_IHTMLDOCUMENT5_ONFOCUSOUT), displaybind, bindable]
5094     HRESULT onfocusout([in] VARIANT v);
5095
5096     [propget, id(DISPID_IHTMLDOCUMENT5_ONFOCUSOUT), displaybind, bindable]
5097     HRESULT onfocusout([retval, out] VARIANT *p);
5098
5099     [propput, id(DISPID_IHTMLDOCUMENT5_ONACTIVATE), displaybind, bindable]
5100     HRESULT onactivate([in] VARIANT v);
5101
5102     [propget, id(DISPID_IHTMLDOCUMENT5_ONACTIVATE), displaybind, bindable]
5103     HRESULT onactivate([retval, out] VARIANT *p);
5104
5105     [propput, id(DISPID_IHTMLDOCUMENT5_ONDEACTIVATE), displaybind, bindable]
5106     HRESULT ondeactivate([in] VARIANT v);
5107
5108     [propget, id(DISPID_IHTMLDOCUMENT5_ONDEACTIVATE), displaybind, bindable]
5109     HRESULT ondeactivate([retval, out] VARIANT *p);
5110
5111     [propput, id(DISPID_IHTMLDOCUMENT5_ONBEFOREACTIVATE), displaybind, bindable]
5112     HRESULT onbeforeactivate([in] VARIANT v);
5113
5114     [propget, id(DISPID_IHTMLDOCUMENT5_ONBEFOREACTIVATE), displaybind, bindable]
5115     HRESULT onbeforeactivate([retval, out] VARIANT *p);
5116
5117     [propput, id(DISPID_IHTMLDOCUMENT5_ONBEFOREDEACTIVATE), displaybind, bindable]
5118     HRESULT onbeforedeactivate([in] VARIANT v);
5119
5120     [propget, id(DISPID_IHTMLDOCUMENT5_ONBEFOREDEACTIVATE), displaybind, bindable]
5121     HRESULT onbeforedeactivate([retval, out] VARIANT *p);
5122
5123     [propget, id(DISPID_IHTMLDOCUMENT5_COMPATMODE)]
5124     HRESULT compatMode([retval, out] BSTR *p);
5125 }
5126
5127 /*****************************************************************************
5128  *    HTMLDocument coclass
5129  */
5130 [
5131     uuid(25336920-03F9-11cf-8FD0-00AA00686F13)
5132 ]
5133 coclass HTMLDocument
5134 {
5135     [default]         interface IHTMLDocument2;
5136     [source, default] dispinterface HTMLDocumentEvents;
5137     [source]          dispinterface HTMLDocumentEvents2;
5138 };
5139
5140 } /* library MSHTML */