Added declaration of IHTMLDocument3 and more DISPIDs.
[wine] / include / mshtml.idl
1 /*
2  * Copyright 2004 Jacek Caban
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17  */
18
19 #include <mshtmdid.h>
20 /* #include <mshtmcid.h> */
21 #include <olectl.h>
22
23 import "ocidl.idl";
24 /* import "dimm.idl"; */
25
26 cpp_quote("#include <olectl.h>")
27
28 interface IHTMLElement;
29 interface IHTMLDocument2;
30 interface IHTMLStyleSheetsCollection;
31
32 /*****************************************************************************
33  *    IHTMLFiltersCollection interface
34  */
35 [
36     odl,
37     oleautomation,
38     dual,
39     uuid(3050F3EE-98B5-11Cf-BB82-00AA00BDCE0B)
40 ]
41 interface IHTMLFiltersCollection : IDispatch
42 {
43     [propget, id(DISPID_IHTMLFILTERSCOLLECTION_LENGTH)]
44     HRESULT length([retval, out] long *p);
45
46     [propget, id(DISPID_IHTMLFILTERSCOLLECTION__NEWENUM)]
47     HRESULT _newEnum([retval, out] IUnknown **p);
48
49     [id(DISPID_IHTMLFILTERSCOLLECTION_ITEM)]
50     HRESULT item(
51             [in] VARIANT *pvarIndex,
52             [retval, out] VARIANT *pvarResult);
53 }
54
55 [
56     uuid(3050F1C5-98B5-11CF-BB82-00AA00BDCE0B)
57 ]
58 library MSHTML
59 {
60
61 /*****************************************************************************
62  *    IHTMLStyle interface
63  */
64 [
65     odl,
66     oleautomation,
67     dual,
68     uuid(3050F25E-98B5-11CF-BB82-00AA00BDCE0B)
69 ]
70 interface IHTMLStyle : IDispatch
71 {
72     [propput, id(DISPID_IHTMLSTYLE_FONTFAMILY)]
73     HRESULT fontFamily([in] BSTR v);
74
75     [propget, id(DISPID_IHTMLSTYLE_FONTFAMILY)]
76     HRESULT fontFamily([retval, out] BSTR *p);
77
78     [propput, id(DISPID_IHTMLSTYLE_FONTSTYLE)]
79     HRESULT fontStyle([in] BSTR v);
80
81     [propget, id(DISPID_IHTMLSTYLE_FONTSTYLE)]
82     HRESULT fontStyle([retval, out] BSTR *p);
83
84     [propput, id(DISPID_IHTMLSTYLE_FONTVARIANT)]
85     HRESULT fontVariant([in] BSTR v);
86
87     [propget, id(DISPID_IHTMLSTYLE_FONTVARIANT)]
88     HRESULT fontVariant([retval, out] BSTR *p);
89
90     [propput, id(DISPID_IHTMLSTYLE_FONTWEIGHT)]
91     HRESULT fontWeight([in] BSTR v);
92
93     [propget, id(DISPID_IHTMLSTYLE_FONTWEIGHT)]
94     HRESULT fontWeight([retval, out] BSTR *p);
95
96     [propput, id(DISPID_IHTMLSTYLE_FONTSIZE)]
97     HRESULT fontSize([in] VARIANT v);
98
99     [propget, id(DISPID_IHTMLSTYLE_FONTSIZE)]
100     HRESULT fontSize([retval, out] VARIANT *p);
101
102     [propput, id(DISPID_IHTMLSTYLE_FONT)]
103     HRESULT font([in] BSTR v);
104
105     [propget, id(DISPID_IHTMLSTYLE_FONT)]
106     HRESULT font([retval, out] BSTR *p);
107
108     [propput, id(DISPID_IHTMLSTYLE_COLOR)]
109     HRESULT color([in] VARIANT v);
110
111     [propget, id(DISPID_IHTMLSTYLE_COLOR)]
112     HRESULT color([retval, out] VARIANT *p);
113
114     [propput, id(DISPID_IHTMLSTYLE_BACKGROUND)]
115     HRESULT background([in] BSTR v);
116
117     [propget, id(DISPID_IHTMLSTYLE_BACKGROUND)]
118     HRESULT background([retval, out] BSTR *p);
119
120     [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDCOLOR)]
121     HRESULT backgroundColor([in] VARIANT v);
122
123     [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDCOLOR)]
124     HRESULT backgroundColor([retval, out] VARIANT *p);
125
126     [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDIMAGE)]
127     HRESULT backgroundImage([in] BSTR v);
128
129     [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDIMAGE)]
130     HRESULT backgroundImage([retval, out] BSTR *p);
131
132     [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDREPEAT)]
133     HRESULT backgroundRepeat([in] BSTR v);
134
135     [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDREPEAT)]
136     HRESULT backgroundRepeat([retval, out] BSTR *p);
137
138     [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDATTACHMENT)]
139     HRESULT backgroundAttachment([in] BSTR v);
140
141     [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDATTACHMENT)]
142     HRESULT backgroundAttachment([retval, out] BSTR *p);
143
144     [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDPOSITION)]
145     HRESULT backgroundPosition([in] BSTR v);
146
147     [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDPOSITION)]
148     HRESULT backgroundPosition([retval, out] BSTR *p);
149
150     [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDPOSITIONX)]
151     HRESULT backgroundPositionX([in] VARIANT v);
152
153     [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDPOSITIONX)]
154     HRESULT backgroundPositionX([retval, out] VARIANT *p);
155
156     [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDPOSITIONY)]
157     HRESULT backgroundPositionY([in] VARIANT v);
158
159     [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDPOSITIONY)]
160     HRESULT backgroundPositionY([retval, out] VARIANT *p);
161
162     [propput, id(DISPID_IHTMLSTYLE_WORDSPACING)]
163     HRESULT wordSpacing([in] VARIANT v);
164
165     [propget, id(DISPID_IHTMLSTYLE_WORDSPACING)]
166     HRESULT wordSpacing([retval, out] VARIANT *p);
167
168     [propput, id(DISPID_IHTMLSTYLE_LETTERSPACING)]
169     HRESULT letterSpacing([in] VARIANT v);
170
171     [propget, id(DISPID_IHTMLSTYLE_LETTERSPACING)]
172     HRESULT letterSpacing([retval, out] VARIANT *p);
173
174     [propput, id(DISPID_IHTMLSTYLE_TEXTDECORATION)]
175     HRESULT textDecoration([in] BSTR v);
176
177     [propget, id(DISPID_IHTMLSTYLE_TEXTDECORATION)]
178     HRESULT textDecoration([retval, out] BSTR *p);
179
180     [propput, id(DISPID_IHTMLSTYLE_TEXTDECORATIONNONE)]
181     HRESULT textDecorationNone([in] VARIANT_BOOL v);
182
183     [propget, id(DISPID_IHTMLSTYLE_TEXTDECORATIONNONE)]
184     HRESULT textDecorationNone([retval, out] VARIANT_BOOL *p);
185
186     [propput, id(DISPID_IHTMLSTYLE_TEXTDECORATIONUNDERLINE)]
187     HRESULT textDecorationUnderline([in] VARIANT_BOOL v);
188
189     [propget, id(DISPID_IHTMLSTYLE_TEXTDECORATIONUNDERLINE)]
190     HRESULT textDecorationUnderline([retval, out] VARIANT_BOOL *p);
191
192     [propput, id(DISPID_IHTMLSTYLE_TEXTDECORATIONOVERLINE)]
193     HRESULT textDecorationOverline([in] VARIANT_BOOL v);
194
195     [propget, id(DISPID_IHTMLSTYLE_TEXTDECORATIONOVERLINE)]
196     HRESULT textDecorationOverline([retval, out] VARIANT_BOOL *p);
197
198     [propput, id(DISPID_IHTMLSTYLE_TEXTDECORATIONLINETHROUGH)]
199     HRESULT textDecorationLineThrough([in] VARIANT_BOOL v);
200
201     [propget, id(DISPID_IHTMLSTYLE_TEXTDECORATIONLINETHROUGH)]
202     HRESULT textDecorationLineThrough([retval, out] VARIANT_BOOL *p);
203
204     [propput, id(DISPID_IHTMLSTYLE_TEXTDECORATIONBLINK)]
205     HRESULT textDecorationBlink([in] VARIANT_BOOL v);
206
207     [propget, id(DISPID_IHTMLSTYLE_TEXTDECORATIONBLINK)]
208     HRESULT textDecorationBlink([retval, out] VARIANT_BOOL *p);
209
210     [propput, id(DISPID_IHTMLSTYLE_VERTICALALIGN)]
211     HRESULT verticalAlign([in] VARIANT v);
212
213     [propget, id(DISPID_IHTMLSTYLE_VERTICALALIGN)]
214     HRESULT verticalAlign([retval, out] VARIANT *p);
215
216     [propput, id(DISPID_IHTMLSTYLE_TEXTTRANSFORM)]
217     HRESULT textTransform([in] BSTR v);
218
219     [propget, id(DISPID_IHTMLSTYLE_TEXTTRANSFORM)]
220     HRESULT textTransform([retval, out] BSTR *p);
221
222     [propput, id(DISPID_IHTMLSTYLE_TEXTALIGN)]
223     HRESULT textAlign([in] BSTR v);
224
225     [propget, id(DISPID_IHTMLSTYLE_TEXTALIGN)]
226     HRESULT textAlign([retval, out] BSTR *p);
227
228     [propput, id(DISPID_IHTMLSTYLE_TEXTINDENT)]
229     HRESULT textIndent([in] VARIANT v);
230
231     [propget, id(DISPID_IHTMLSTYLE_TEXTINDENT)]
232     HRESULT textIndent([retval, out] VARIANT *p);
233
234     [propput, id(DISPID_IHTMLSTYLE_LINEHEIGHT)]
235     HRESULT lineHeight([in] VARIANT v);
236
237     [propget, id(DISPID_IHTMLSTYLE_LINEHEIGHT)]
238     HRESULT lineHeight([retval, out] VARIANT *p);
239
240     [propput, id(DISPID_IHTMLSTYLE_MARGINTOP)]
241     HRESULT marginTop([in] VARIANT v);
242
243     [propget, id(DISPID_IHTMLSTYLE_MARGINTOP)]
244     HRESULT marginTop([retval, out] VARIANT *p);
245
246     [propput, id(DISPID_IHTMLSTYLE_MARGINRIGHT)]
247     HRESULT marginRight([in] VARIANT v);
248
249     [propget, id(DISPID_IHTMLSTYLE_MARGINRIGHT)]
250     HRESULT marginRight([retval, out] VARIANT *p);
251
252     [propput, id(DISPID_IHTMLSTYLE_MARGINBOTTOM)]
253     HRESULT marginBottom([in] VARIANT v);
254
255     [propget, id(DISPID_IHTMLSTYLE_MARGINBOTTOM)]
256     HRESULT marginBottom([retval, out] VARIANT *p);
257
258     [propput, id(DISPID_IHTMLSTYLE_MARGINLEFT)]
259     HRESULT marginLeft([in] VARIANT v);
260
261     [propget, id(DISPID_IHTMLSTYLE_MARGINLEFT)]
262     HRESULT marginLeft([retval, out] VARIANT *p);
263
264     [propput, id(DISPID_IHTMLSTYLE_MARGIN)]
265     HRESULT margin([in] BSTR v);
266
267     [propget, id(DISPID_IHTMLSTYLE_MARGIN)]
268     HRESULT margin([retval, out] BSTR *p);
269
270     [propput, id(DISPID_IHTMLSTYLE_PADDINGTOP)]
271     HRESULT paddingTop([in] VARIANT v);
272
273     [propget, id(DISPID_IHTMLSTYLE_PADDINGTOP)]
274     HRESULT paddingTop([retval, out] VARIANT *p);
275
276     [propput, id(DISPID_IHTMLSTYLE_PADDINGRIGHT)]
277     HRESULT paddingRight([in] VARIANT v);
278
279     [propget, id(DISPID_IHTMLSTYLE_PADDINGRIGHT)]
280     HRESULT paddingRight([retval, out] VARIANT *p);
281
282     [propput, id(DISPID_IHTMLSTYLE_PADDINGBOTTOM)]
283     HRESULT paddingBottom([in] VARIANT v);
284
285     [propget, id(DISPID_IHTMLSTYLE_PADDINGBOTTOM)]
286     HRESULT paddingBottom([retval, out] VARIANT *p);
287
288     [propput, id(DISPID_IHTMLSTYLE_PADDINGLEFT)]
289     HRESULT paddingLeft([in] VARIANT v);
290
291     [propget, id(DISPID_IHTMLSTYLE_PADDINGLEFT)]
292     HRESULT paddingLeft([retval, out] VARIANT *p);
293
294     [propput, id(DISPID_IHTMLSTYLE_PADDING)]
295     HRESULT padding([in] BSTR v);
296
297     [propget, id(DISPID_IHTMLSTYLE_PADDING)]
298     HRESULT padding([retval, out] BSTR *p);
299
300     [propput, id(DISPID_IHTMLSTYLE_BORDER)]
301     HRESULT border([in] BSTR v);
302
303     [propget, id(DISPID_IHTMLSTYLE_BORDER)]
304     HRESULT border([retval, out] BSTR *p);
305
306     [propput, id(DISPID_IHTMLSTYLE_BORDERTOP)]
307     HRESULT borderTop([in] BSTR v);
308
309     [propget, id(DISPID_IHTMLSTYLE_BORDERTOP)]
310     HRESULT borderTop([retval, out] BSTR *p);
311
312     [propput, id(DISPID_IHTMLSTYLE_BORDERRIGHT)]
313     HRESULT borderRight([in] BSTR v);
314
315     [propget, id(DISPID_IHTMLSTYLE_BORDERRIGHT)]
316     HRESULT borderRight([retval, out] BSTR *p);
317
318     [propput, id(DISPID_IHTMLSTYLE_BORDERBOTTOM)]
319     HRESULT borderBottom([in] BSTR v);
320
321     [propget, id(DISPID_IHTMLSTYLE_BORDERBOTTOM)]
322     HRESULT borderBottom([retval, out] BSTR *p);
323
324     [propput, id(DISPID_IHTMLSTYLE_BORDERLEFT)]
325     HRESULT borderLeft([in] BSTR v);
326
327     [propget, id(DISPID_IHTMLSTYLE_BORDERLEFT)]
328     HRESULT borderLeft([retval, out] BSTR *p);
329
330     [propput, id(DISPID_IHTMLSTYLE_BORDERCOLOR)]
331     HRESULT borderColor([in] BSTR v);
332
333     [propget, id(DISPID_IHTMLSTYLE_BORDERCOLOR)]
334     HRESULT borderColor([retval, out] BSTR *p);
335
336     [propput, id(DISPID_IHTMLSTYLE_BORDERTOPCOLOR)]
337     HRESULT borderTopColor([in] VARIANT v);
338
339     [propget, id(DISPID_IHTMLSTYLE_BORDERTOPCOLOR)]
340     HRESULT borderTopColor([retval, out] VARIANT *p);
341
342     [propput, id(DISPID_IHTMLSTYLE_BORDERRIGHTCOLOR)]
343     HRESULT borderRightColor([in] VARIANT v);
344
345     [propget, id(DISPID_IHTMLSTYLE_BORDERRIGHTCOLOR)]
346     HRESULT borderRightColor([retval, out] VARIANT *p);
347
348     [propput, id(DISPID_IHTMLSTYLE_BORDERBOTTOMCOLOR)]
349     HRESULT borderBottomColor([in] VARIANT v);
350
351     [propget, id(DISPID_IHTMLSTYLE_BORDERBOTTOMCOLOR)]
352     HRESULT borderBottomColor([retval, out] VARIANT *p);
353
354     [propput, id(DISPID_IHTMLSTYLE_BORDERLEFTCOLOR)]
355     HRESULT borderLeftColor([in] VARIANT v);
356
357     [propget, id(DISPID_IHTMLSTYLE_BORDERLEFTCOLOR)]
358     HRESULT borderLeftColor([retval, out] VARIANT *p);
359
360     [propput, id(DISPID_IHTMLSTYLE_BORDERWIDTH)]
361     HRESULT borderWidth([in] BSTR v);
362
363     [propget, id(DISPID_IHTMLSTYLE_BORDERWIDTH)]
364     HRESULT borderWidth([retval, out] BSTR *p);
365
366     [propput, id(DISPID_IHTMLSTYLE_BORDERTOPWIDTH)]
367     HRESULT borderTopWidth([in] VARIANT v);
368
369     [propget, id(DISPID_IHTMLSTYLE_BORDERTOPWIDTH)]
370     HRESULT borderTopWidth([retval, out] VARIANT *p);
371
372     [propput, id(DISPID_IHTMLSTYLE_BORDERRIGHTWIDTH)]
373     HRESULT borderRightWidth([in] VARIANT v);
374
375     [propget, id(DISPID_IHTMLSTYLE_BORDERRIGHTWIDTH)]
376     HRESULT borderRightWidth([retval, out] VARIANT *p);
377
378     [propput, id(DISPID_IHTMLSTYLE_BORDERBOTTOMWIDTH)]
379     HRESULT borderBottomWidth([in] VARIANT v);
380
381     [propget, id(DISPID_IHTMLSTYLE_BORDERBOTTOMWIDTH)]
382     HRESULT borderBottomWidth([retval, out] VARIANT *p);
383
384     [propput, id(DISPID_IHTMLSTYLE_BORDERLEFTWIDTH)]
385     HRESULT borderLeftWidth([in] VARIANT v);
386
387     [propget, id(DISPID_IHTMLSTYLE_BORDERLEFTWIDTH)]
388     HRESULT borderLeftWidth([retval, out] VARIANT *p);
389
390     [propput, id(DISPID_IHTMLSTYLE_BORDERSTYLE)]
391     HRESULT borderStyle([in] BSTR v);
392
393     [propget, id(DISPID_IHTMLSTYLE_BORDERSTYLE)]
394     HRESULT borderStyle([retval, out] BSTR *p);
395
396     [propput, id(DISPID_IHTMLSTYLE_BORDERTOPSTYLE)]
397     HRESULT borderTopStyle([in] BSTR v);
398
399     [propget, id(DISPID_IHTMLSTYLE_BORDERTOPSTYLE)]
400     HRESULT borderTopStyle([retval, out] BSTR *p);
401
402     [propput, id(DISPID_IHTMLSTYLE_BORDERRIGHTSTYLE)]
403     HRESULT borderRightStyle([in] BSTR v);
404
405     [propget, id(DISPID_IHTMLSTYLE_BORDERRIGHTSTYLE)]
406     HRESULT borderRightStyle([retval, out] BSTR *p);
407
408     [propput, id(DISPID_IHTMLSTYLE_BORDERBOTTOMSTYLE)]
409     HRESULT borderBottomStyle([in] BSTR v);
410
411     [propget, id(DISPID_IHTMLSTYLE_BORDERBOTTOMSTYLE)]
412     HRESULT borderBottomStyle([retval, out] BSTR *p);
413
414     [propput, id(DISPID_IHTMLSTYLE_BORDERLEFTSTYLE)]
415     HRESULT borderLeftStyle([in] BSTR v);
416
417     [propget, id(DISPID_IHTMLSTYLE_BORDERLEFTSTYLE)]
418     HRESULT borderLeftStyle([retval, out] BSTR *p);
419
420     [propput, id(DISPID_IHTMLSTYLE_WIDTH)]
421     HRESULT width([in] VARIANT v);
422
423     [propget, id(DISPID_IHTMLSTYLE_WIDTH)]
424     HRESULT width([retval, out] VARIANT *p);
425
426     [propput, id(DISPID_IHTMLSTYLE_HEIGHT)]
427     HRESULT height([in] VARIANT v);
428
429     [propget, id(DISPID_IHTMLSTYLE_HEIGHT)]
430     HRESULT height([retval, out] VARIANT *p);
431
432     [propput, id(DISPID_IHTMLSTYLE_STYLEFLOAT)]
433     HRESULT styleFloat([in] BSTR v);
434
435     [propget, id(DISPID_IHTMLSTYLE_STYLEFLOAT)]
436     HRESULT styleFloat([retval, out] BSTR *p);
437
438     [propput, id(DISPID_IHTMLSTYLE_CLEAR)]
439     HRESULT clear([in] BSTR v);
440
441     [propget, id(DISPID_IHTMLSTYLE_CLEAR)]
442     HRESULT clear([retval, out] BSTR *p);
443
444     [propput, id(DISPID_IHTMLSTYLE_DISPLAY)]
445     HRESULT display([in] BSTR v);
446
447     [propget, id(DISPID_IHTMLSTYLE_DISPLAY)]
448     HRESULT display([retval, out] BSTR *p);
449
450     [propput, id(DISPID_IHTMLSTYLE_VISIBILITY)]
451     HRESULT visibility([in] BSTR v);
452
453     [propget, id(DISPID_IHTMLSTYLE_VISIBILITY)]
454     HRESULT visibility([retval, out] BSTR *p);
455
456     [propput, id(DISPID_IHTMLSTYLE_LISTSTYLETYPE)]
457     HRESULT listStyleType([in] BSTR v);
458
459     [propget, id(DISPID_IHTMLSTYLE_LISTSTYLETYPE)]
460     HRESULT listStyleType([retval, out] BSTR *p);
461
462     [propput, id(DISPID_IHTMLSTYLE_LISTSTYLEPOSITION)]
463     HRESULT listStylePosition([in] BSTR v);
464
465     [propget, id(DISPID_IHTMLSTYLE_LISTSTYLEPOSITION)]
466     HRESULT listStylePosition([retval, out] BSTR *p);
467
468     [propput, id(DISPID_IHTMLSTYLE_LISTSTYLEIMAGE)]
469     HRESULT listStyleImage([in] BSTR v);
470
471     [propget, id(DISPID_IHTMLSTYLE_LISTSTYLEIMAGE)]
472     HRESULT listStyleImage([retval, out] BSTR *p);
473
474     [propput, id(DISPID_IHTMLSTYLE_LISTSTYLE)]
475     HRESULT listStyle([in] BSTR v);
476
477     [propget, id(DISPID_IHTMLSTYLE_LISTSTYLE)]
478     HRESULT listStyle([retval, out] BSTR *p);
479
480     [propput, id(DISPID_IHTMLSTYLE_WHITESPACE)]
481     HRESULT whiteSpace([in] BSTR v);
482
483     [propget, id(DISPID_IHTMLSTYLE_WHITESPACE)]
484     HRESULT whiteSpace([retval, out] BSTR *p);
485
486     [propput, id(DISPID_IHTMLSTYLE_TOP)]
487     HRESULT top([in] VARIANT v);
488
489     [propget, id(DISPID_IHTMLSTYLE_TOP)]
490     HRESULT top([retval, out] VARIANT *p);
491
492     [propput, id(DISPID_IHTMLSTYLE_LEFT)]
493     HRESULT left([in] VARIANT v);
494
495     [propget, id(DISPID_IHTMLSTYLE_LEFT)]
496     HRESULT left([retval, out] VARIANT *p);
497
498     [propget, id(DISPID_IHTMLSTYLE_POSITION)]
499     HRESULT position([retval, out] BSTR *p);
500
501     [propput, id(DISPID_IHTMLSTYLE_ZINDEX)]
502     HRESULT zIndex([in] VARIANT v);
503
504     [propget, id(DISPID_IHTMLSTYLE_ZINDEX)]
505     HRESULT zIndex([retval, out] VARIANT *p);
506
507     [propput, id(DISPID_IHTMLSTYLE_OVERFLOW)]
508     HRESULT overflow([in] BSTR v);
509
510     [propget, id(DISPID_IHTMLSTYLE_OVERFLOW)]
511     HRESULT overflow([retval, out] BSTR *p);
512
513     [propput, id(DISPID_IHTMLSTYLE_PAGEBREAKBEFORE)]
514     HRESULT pageBreakBefore([in] BSTR v);
515
516     [propget, id(DISPID_IHTMLSTYLE_PAGEBREAKBEFORE)]
517     HRESULT pageBreakBefore([retval, out] BSTR *p);
518
519     [propput, id(DISPID_IHTMLSTYLE_PAGEBREAKAFTER)]
520     HRESULT pageBreakAfter([in] BSTR v);
521
522     [propget, id(DISPID_IHTMLSTYLE_PAGEBREAKAFTER)]
523     HRESULT pageBreakAfter([retval, out] BSTR *p);
524
525     [propput, id(DISPID_IHTMLSTYLE_CSSTEXT)]
526     HRESULT cssText([in] BSTR v);
527
528     [propget, id(DISPID_IHTMLSTYLE_CSSTEXT)]
529     HRESULT cssText([retval, out] BSTR *p);
530
531     [propput, id(DISPID_IHTMLSTYLE_PIXELTOP)]
532     HRESULT pixelTop([in] long v);
533
534     [propget, id(DISPID_IHTMLSTYLE_PIXELTOP)]
535     HRESULT pixelTop([retval, out] long *p);
536
537     [propput, id(DISPID_IHTMLSTYLE_PIXELLEFT)]
538     HRESULT pixelLeft([in] long v);
539
540     [propget, id(DISPID_IHTMLSTYLE_PIXELLEFT)]
541     HRESULT pixelLeft([retval, out] long *p);
542
543     [propput, id(DISPID_IHTMLSTYLE_PIXELWIDTH)]
544     HRESULT pixelWidth([in] long v);
545
546     [propget, id(DISPID_IHTMLSTYLE_PIXELWIDTH)]
547     HRESULT pixelWidth([retval, out] long *p);
548
549     [propput, id(DISPID_IHTMLSTYLE_PIXELHEIGHT)]
550     HRESULT pixelHeight([in] long v);
551
552     [propget, id(DISPID_IHTMLSTYLE_PIXELHEIGHT)]
553     HRESULT pixelHeight([retval, out] long *p);
554
555     [propput, id(DISPID_IHTMLSTYLE_POSTOP)]
556     HRESULT posTop([in] float v);
557
558     [propget, id(DISPID_IHTMLSTYLE_POSTOP)]
559     HRESULT posTop([retval, out] float *p);
560
561     [propput, id(DISPID_IHTMLSTYLE_POSLEFT)]
562     HRESULT posLeft([in] float v);
563
564     [propget, id(DISPID_IHTMLSTYLE_POSLEFT)]
565     HRESULT posLeft([retval, out] float *p);
566
567     [propput, id(DISPID_IHTMLSTYLE_POSWIDTH)]
568     HRESULT posWidth([in] float v);
569
570     [propget, id(DISPID_IHTMLSTYLE_POSWIDTH)]
571     HRESULT posWidth([retval, out] float *p);
572
573     [propput, id(DISPID_IHTMLSTYLE_POSHEIGHT)]
574     HRESULT posHeight([in] float v);
575
576     [propget, id(DISPID_IHTMLSTYLE_POSHEIGHT)]
577     HRESULT posHeight([retval, out] float *p);
578
579     [propput, id(DISPID_IHTMLSTYLE_CURSOR)]
580     HRESULT cursor([in] BSTR v);
581
582     [propget, id(DISPID_IHTMLSTYLE_CURSOR)]
583     HRESULT cursor([retval, out] BSTR *p);
584
585     [propput, id(DISPID_IHTMLSTYLE_CLIP)]
586     HRESULT clip([in] BSTR v);
587
588     [propget, id(DISPID_IHTMLSTYLE_CLIP)]
589     HRESULT clip([retval, out] BSTR *p);
590
591     [propput, id(DISPID_IHTMLSTYLE_FILTER)]
592     HRESULT filter([in] BSTR v);
593
594     [propget, id(DISPID_IHTMLSTYLE_FILTER)]
595     HRESULT filter([retval, out] BSTR *p);
596
597     [id(DISPID_IHTMLSTYLE_SETATTRIBUTE)]
598     HRESULT setAttribute(
599         [in] BSTR strAttributeName,
600         [in] VARIANT AttributeValue,
601         [defaultvalue(1), in] LONG lFlags);
602
603     [id(DISPID_IHTMLSTYLE_GETATTRIBUTE)]
604     HRESULT getAttribute(
605         [in] BSTR strAttributeName,
606         [defaultvalue(0), in] LONG lFlags,
607         [retval, out] VARIANT *AttributeValue);
608
609     [id(DISPID_IHTMLSTYLE_REMOVEATTRIBUTE)]
610     HRESULT removeAttribute(
611         [in] BSTR strAttributeName,
612         [defaultvalue(1), in]
613         LONG lFlags,
614         [retval, out] VARIANT_BOOL *pfSuccess);
615
616     [id(DISPID_IHTMLSTYLE_TOSTRING)]
617     HRESULT toString([retval, out] BSTR *String);
618 }
619
620 /*****************************************************************************
621  *    IHTMLRuleStyle interface
622  */
623 [
624         odl,
625         oleautomation,
626         dual,
627         uuid(3050F3CF-98B5-11CF-BB82-00AA00BDCE0B)
628 ]
629 interface IHTMLRuleStyle : IDispatch
630 {
631     [propput, id(DISPID_IHTMLRULESTYLE_FONTFAMILY)]
632     HRESULT fontFamily([in] BSTR v);
633
634     [propget, id(DISPID_IHTMLRULESTYLE_FONTFAMILY)]
635     HRESULT fontFamily([retval, out] BSTR *p);
636
637     [propput, id(DISPID_IHTMLRULESTYLE_FONTSTYLE)]
638     HRESULT fontStyle([in] BSTR v);
639
640     [propget, id(DISPID_IHTMLRULESTYLE_FONTSTYLE)]
641     HRESULT fontStyle([retval, out] BSTR *p);
642
643     [propput, id(DISPID_IHTMLRULESTYLE_FONTVARIANT)]
644     HRESULT fontVariant([in] BSTR v);
645
646     [propget, id(DISPID_IHTMLRULESTYLE_FONTVARIANT)]
647     HRESULT fontVariant([retval, out] BSTR *p);
648
649     [propput, id(DISPID_IHTMLRULESTYLE_FONTWEIGHT)]
650     HRESULT fontWeight([in] BSTR v);
651
652     [propget, id(DISPID_IHTMLRULESTYLE_FONTWEIGHT)]
653     HRESULT fontWeight([retval, out] BSTR *p);
654
655     [propput, id(DISPID_IHTMLRULESTYLE_FONTSIZE)]
656     HRESULT fontSize([in] VARIANT v);
657
658     [propget, id(DISPID_IHTMLRULESTYLE_FONTSIZE)]
659     HRESULT fontSize([retval, out] VARIANT *p);
660
661     [propput, id(DISPID_IHTMLRULESTYLE_FONT)]
662     HRESULT font([in] BSTR v);
663
664     [propget, id(DISPID_IHTMLRULESTYLE_FONT)]
665     HRESULT font([retval, out] BSTR *p);
666
667     [propput, id(DISPID_IHTMLRULESTYLE_COLOR)]
668     HRESULT color([in] VARIANT v);
669
670     [propget, id(DISPID_IHTMLRULESTYLE_COLOR)]
671     HRESULT color([retval, out] VARIANT *p);
672
673     [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUND)]
674     HRESULT background([in] BSTR v);
675
676     [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUND)]
677     HRESULT background([retval, out] BSTR *p);
678
679     [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDCOLOR)]
680     HRESULT backgroundColor([in] VARIANT v);
681
682     [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDCOLOR)]
683     HRESULT backgroundColor([retval, out] VARIANT *p);
684
685     [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDIMAGE)]
686     HRESULT backgroundImage([in] BSTR v);
687
688     [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDIMAGE)]
689     HRESULT backgroundImage([retval, out] BSTR *p);
690
691     [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDREPEAT)]
692     HRESULT backgroundRepeat([in] BSTR v);
693
694     [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDREPEAT)]
695     HRESULT backgroundRepeat([retval, out] BSTR *p);
696
697     [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDATTACHMENT)]
698     HRESULT backgroundAttachment([in] BSTR v);
699
700     [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDATTACHMENT)]
701     HRESULT backgroundAttachment([retval, out] BSTR *p);
702
703     [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITION)]
704     HRESULT backgroundPosition([in] BSTR v);
705
706     [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITION)]
707     HRESULT backgroundPosition([retval, out] BSTR *p);
708
709     [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITIONX)]
710     HRESULT backgroundPositionX([in] VARIANT v);
711
712     [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITIONX)]
713     HRESULT backgroundPositionX([retval, out] VARIANT *p);
714
715     [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITIONY)]
716     HRESULT backgroundPositionY([in] VARIANT v);
717
718     [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITIONY)]
719     HRESULT backgroundPositionY([retval, out] VARIANT *p);
720
721     [propput, id(DISPID_IHTMLRULESTYLE_WORDSPACING)]
722     HRESULT wordSpacing([in] VARIANT v);
723
724     [propget, id(DISPID_IHTMLRULESTYLE_WORDSPACING)]
725     HRESULT wordSpacing([retval, out] VARIANT *p);
726
727     [propput, id(DISPID_IHTMLRULESTYLE_LETTERSPACING)]
728     HRESULT letterSpacing([in] VARIANT v);
729
730     [propget, id(DISPID_IHTMLRULESTYLE_LETTERSPACING)]
731     HRESULT letterSpacing([retval, out] VARIANT *p);
732
733     [propput, id(DISPID_IHTMLRULESTYLE_TEXTDECORATION)]
734     HRESULT textDecoration([in] BSTR v);
735
736     [propget, id(DISPID_IHTMLRULESTYLE_TEXTDECORATION)]
737     HRESULT textDecoration([retval, out] BSTR *p);
738
739     [propput, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONNONE)]
740     HRESULT textDecorationNone([in] VARIANT_BOOL v);
741
742     [propget, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONNONE)]
743     HRESULT textDecorationNone([retval, out] VARIANT_BOOL *p);
744
745     [propput, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONUNDERLINE)]
746     HRESULT textDecorationUnderline([in] VARIANT_BOOL v);
747
748     [propget, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONUNDERLINE)]
749     HRESULT textDecorationUnderline([retval, out] VARIANT_BOOL *p);
750
751     [propput, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONOVERLINE)]
752     HRESULT textDecorationOverline([in] VARIANT_BOOL v);
753
754     [propget, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONOVERLINE)]
755     HRESULT textDecorationOverline([retval, out] VARIANT_BOOL *p);
756
757     [propput, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONLINETHROUGH)]
758     HRESULT textDecorationLineThrough([in] VARIANT_BOOL v);
759
760     [propget, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONLINETHROUGH)]
761     HRESULT textDecorationLineThrough([retval, out] VARIANT_BOOL *p);
762
763     [propput, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONBLINK)]
764     HRESULT textDecorationBlink([in] VARIANT_BOOL v);
765
766     [propget, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONBLINK)]
767     HRESULT textDecorationBlink([retval, out] VARIANT_BOOL *p);
768
769     [propput, id(DISPID_IHTMLRULESTYLE_VERTICALALIGN)]
770     HRESULT verticalAlign([in] VARIANT v);
771
772     [propget, id(DISPID_IHTMLRULESTYLE_VERTICALALIGN)]
773     HRESULT verticalAlign([retval, out] VARIANT *p);
774
775     [propput, id(DISPID_IHTMLRULESTYLE_TEXTTRANSFORM)]
776     HRESULT textTransform([in] BSTR v);
777
778     [propget, id(DISPID_IHTMLRULESTYLE_TEXTTRANSFORM)]
779     HRESULT textTransform([retval, out] BSTR *p);
780
781     [propput, id(DISPID_IHTMLRULESTYLE_TEXTALIGN)]
782     HRESULT textAlign([in] BSTR v);
783
784     [propget, id(DISPID_IHTMLRULESTYLE_TEXTALIGN)]
785     HRESULT textAlign([retval, out] BSTR *p);
786
787     [propput, id(DISPID_IHTMLRULESTYLE_TEXTINDENT)]
788     HRESULT textIndent([in] VARIANT v);
789
790     [propget, id(DISPID_IHTMLRULESTYLE_TEXTINDENT)]
791     HRESULT textIndent([retval, out] VARIANT *p);
792
793     [propput, id(DISPID_IHTMLRULESTYLE_LINEHEIGHT)]
794     HRESULT lineHeight([in] VARIANT v);
795
796     [propget, id(DISPID_IHTMLRULESTYLE_LINEHEIGHT)]
797     HRESULT lineHeight([retval, out] VARIANT *p);
798
799     [propput, id(DISPID_IHTMLRULESTYLE_MARGINTOP)]
800     HRESULT marginTop([in] VARIANT v);
801
802     [propget, id(DISPID_IHTMLRULESTYLE_MARGINTOP)]
803     HRESULT marginTop([retval, out] VARIANT *p);
804
805     [propput, id(DISPID_IHTMLRULESTYLE_MARGINRIGHT)]
806     HRESULT marginRight([in] VARIANT v);
807
808     [propget, id(DISPID_IHTMLRULESTYLE_MARGINRIGHT)]
809     HRESULT marginRight([retval, out] VARIANT *p);
810
811     [propput, id(DISPID_IHTMLRULESTYLE_MARGINBOTTOM)]
812     HRESULT marginBottom([in] VARIANT v);
813
814     [propget, id(DISPID_IHTMLRULESTYLE_MARGINBOTTOM)]
815     HRESULT marginBottom([retval, out] VARIANT *p);
816
817     [propput, id(DISPID_IHTMLRULESTYLE_MARGINLEFT)]
818     HRESULT marginLeft([in] VARIANT v);
819
820     [propget, id(DISPID_IHTMLRULESTYLE_MARGINLEFT)]
821     HRESULT marginLeft([retval, out] VARIANT *p);
822
823     [propput, id(DISPID_IHTMLRULESTYLE_MARGIN)]
824     HRESULT margin([in] BSTR v);
825
826     [propget, id(DISPID_IHTMLRULESTYLE_MARGIN)]
827     HRESULT margin([retval, out] BSTR *p);
828
829     [propput, id(DISPID_IHTMLRULESTYLE_PADDINGTOP)]
830     HRESULT paddingTop([in] VARIANT v);
831
832     [propget, id(DISPID_IHTMLRULESTYLE_PADDINGTOP)]
833     HRESULT paddingTop([retval, out] VARIANT *p);
834
835     [propput, id(DISPID_IHTMLRULESTYLE_PADDINGRIGHT)]
836     HRESULT paddingRight([in] VARIANT v);
837
838     [propget, id(DISPID_IHTMLRULESTYLE_PADDINGRIGHT)]
839     HRESULT paddingRight([retval, out] VARIANT *p);
840
841     [propput, id(DISPID_IHTMLRULESTYLE_PADDINGBOTTOM)]
842     HRESULT paddingBottom([in] VARIANT v);
843
844     [propget, id(DISPID_IHTMLRULESTYLE_PADDINGBOTTOM)]
845     HRESULT paddingBottom([retval, out] VARIANT *p);
846
847     [propput, id(DISPID_IHTMLRULESTYLE_PADDINGLEFT)]
848     HRESULT paddingLeft([in] VARIANT v);
849
850     [propget, id(DISPID_IHTMLRULESTYLE_PADDINGLEFT)]
851     HRESULT paddingLeft([retval, out] VARIANT *p);
852
853     [propput, id(DISPID_IHTMLRULESTYLE_PADDING)]
854     HRESULT padding([in] BSTR v);
855
856     [propget, id(DISPID_IHTMLRULESTYLE_PADDING)]
857     HRESULT padding([retval, out] BSTR *p);
858
859     [propput, id(DISPID_IHTMLRULESTYLE_BORDER)]
860     HRESULT border([in] BSTR v);
861
862     [propget, id(DISPID_IHTMLRULESTYLE_BORDER)]
863     HRESULT border([retval, out] BSTR *p);
864
865     [propput, id(DISPID_IHTMLRULESTYLE_BORDERTOP)]
866     HRESULT borderTop([in] BSTR v);
867
868     [propget, id(DISPID_IHTMLRULESTYLE_BORDERTOP)]
869     HRESULT borderTop([retval, out] BSTR *p);
870
871     [propput, id(DISPID_IHTMLRULESTYLE_BORDERRIGHT)]
872     HRESULT borderRight([in] BSTR v);
873
874     [propget, id(DISPID_IHTMLRULESTYLE_BORDERRIGHT)]
875     HRESULT borderRight([retval, out] BSTR *p);
876
877     [propput, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOM)]
878     HRESULT borderBottom([in] BSTR v);
879
880     [propget, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOM)]
881     HRESULT borderBottom([retval, out] BSTR *p);
882
883     [propput, id(DISPID_IHTMLRULESTYLE_BORDERLEFT)]
884     HRESULT borderLeft([in] BSTR v);
885
886     [propget, id(DISPID_IHTMLRULESTYLE_BORDERLEFT)]
887     HRESULT borderLeft([retval, out] BSTR *p);
888
889     [propput, id(DISPID_IHTMLRULESTYLE_BORDERCOLOR)]
890     HRESULT borderColor([in] BSTR v);
891
892     [propget, id(DISPID_IHTMLRULESTYLE_BORDERCOLOR)]
893     HRESULT borderColor([retval, out] BSTR *p);
894
895     [propput, id(DISPID_IHTMLRULESTYLE_BORDERTOPCOLOR)]
896     HRESULT borderTopColor([in] VARIANT v);
897
898     [propget, id(DISPID_IHTMLRULESTYLE_BORDERTOPCOLOR)]
899     HRESULT borderTopColor([retval, out] VARIANT *p);
900
901     [propput, id(DISPID_IHTMLRULESTYLE_BORDERRIGHTCOLOR)]
902     HRESULT borderRightColor([in] VARIANT v);
903
904     [propget, id(DISPID_IHTMLRULESTYLE_BORDERRIGHTCOLOR)]
905     HRESULT borderRightColor([retval, out] VARIANT *p);
906
907     [propput, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOMCOLOR)]
908     HRESULT borderBottomColor([in] VARIANT v);
909
910     [propget, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOMCOLOR)]
911     HRESULT borderBottomColor([retval, out] VARIANT *p);
912
913     [propput, id(DISPID_IHTMLRULESTYLE_BORDERLEFTCOLOR)]
914     HRESULT borderLeftColor([in] VARIANT v);
915
916     [propget, id(DISPID_IHTMLRULESTYLE_BORDERLEFTCOLOR)]
917     HRESULT borderLeftColor([retval, out] VARIANT *p);
918
919     [propput, id(DISPID_IHTMLRULESTYLE_BORDERWIDTH)]
920     HRESULT borderWidth([in] BSTR v);
921
922     [propget, id(DISPID_IHTMLRULESTYLE_BORDERWIDTH)]
923     HRESULT borderWidth([retval, out] BSTR *p);
924
925     [propput, id(DISPID_IHTMLRULESTYLE_BORDERTOPWIDTH)]
926     HRESULT borderTopWidth([in] VARIANT v);
927
928     [propget, id(DISPID_IHTMLRULESTYLE_BORDERTOPWIDTH)]
929     HRESULT borderTopWidth([retval, out] VARIANT *p);
930
931     [propput, id(DISPID_IHTMLRULESTYLE_BORDERRIGHTWIDTH)]
932     HRESULT borderRightWidth([in] VARIANT v);
933
934     [propget, id(DISPID_IHTMLRULESTYLE_BORDERRIGHTWIDTH)]
935     HRESULT borderRightWidth([retval, out] VARIANT *p);
936
937     [propput, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOMWIDTH)]
938     HRESULT borderBottomWidth([in] VARIANT v);
939
940     [propget, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOMWIDTH)]
941     HRESULT borderBottomWidth([retval, out] VARIANT *p);
942
943     [propput, id(DISPID_IHTMLRULESTYLE_BORDERLEFTWIDTH)]
944     HRESULT borderLeftWidth([in] VARIANT v);
945
946     [propget, id(DISPID_IHTMLRULESTYLE_BORDERLEFTWIDTH)]
947     HRESULT borderLeftWidth([retval, out] VARIANT *p);
948
949     [propput, id(DISPID_IHTMLRULESTYLE_BORDERSTYLE)]
950     HRESULT borderStyle([in] BSTR v);
951
952     [propget, id(DISPID_IHTMLRULESTYLE_BORDERSTYLE)]
953     HRESULT borderStyle([retval, out] BSTR *p);
954
955     [propput, id(DISPID_IHTMLRULESTYLE_BORDERTOPSTYLE)]
956     HRESULT borderTopStyle([in] BSTR v);
957
958     [propget, id(DISPID_IHTMLRULESTYLE_BORDERTOPSTYLE)]
959     HRESULT borderTopStyle([retval, out] BSTR *p);
960
961     [propput, id(DISPID_IHTMLRULESTYLE_BORDERRIGHTSTYLE)]
962     HRESULT borderRightStyle([in] BSTR v);
963
964     [propget, id(DISPID_IHTMLRULESTYLE_BORDERRIGHTSTYLE)]
965     HRESULT borderRightStyle([retval, out] BSTR *p);
966
967     [propput, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOMSTYLE)]
968     HRESULT borderBottomStyle([in] BSTR v);
969
970     [propget, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOMSTYLE)]
971     HRESULT borderBottomStyle([retval, out] BSTR *p);
972
973     [propput, id(DISPID_IHTMLRULESTYLE_BORDERLEFTSTYLE)]
974     HRESULT borderLeftStyle([in] BSTR v);
975
976     [propget, id(DISPID_IHTMLRULESTYLE_BORDERLEFTSTYLE)]
977     HRESULT borderLeftStyle([retval, out] BSTR *p);
978
979     [propput, id(DISPID_IHTMLRULESTYLE_WIDTH)]
980     HRESULT width([in] VARIANT v);
981
982     [propget, id(DISPID_IHTMLRULESTYLE_WIDTH)]
983     HRESULT width([retval, out] VARIANT *p);
984
985     [propput, id(DISPID_IHTMLRULESTYLE_HEIGHT)]
986     HRESULT height([in] VARIANT v);
987
988     [propget, id(DISPID_IHTMLRULESTYLE_HEIGHT)]
989     HRESULT height([retval, out] VARIANT *p);
990
991     [propput, id(DISPID_IHTMLRULESTYLE_STYLEFLOAT)]
992     HRESULT styleFloat([in] BSTR v);
993
994     [propget, id(DISPID_IHTMLRULESTYLE_STYLEFLOAT)]
995     HRESULT styleFloat([retval, out] BSTR *p);
996
997     [propput, id(DISPID_IHTMLRULESTYLE_CLEAR)]
998     HRESULT clear([in] BSTR v);
999
1000     [propget, id(DISPID_IHTMLRULESTYLE_CLEAR)]
1001     HRESULT clear([retval, out] BSTR *p);
1002
1003     [propput, id(DISPID_IHTMLRULESTYLE_DISPLAY)]
1004     HRESULT display([in] BSTR v);
1005
1006     [propget, id(DISPID_IHTMLRULESTYLE_DISPLAY)]
1007     HRESULT display([retval, out] BSTR *p);
1008
1009     [propput, id(DISPID_IHTMLRULESTYLE_VISIBILITY)]
1010     HRESULT visibility([in] BSTR v);
1011
1012     [propget, id(DISPID_IHTMLRULESTYLE_VISIBILITY)]
1013     HRESULT visibility([retval, out] BSTR *p);
1014
1015     [propput, id(DISPID_IHTMLRULESTYLE_LISTSTYLETYPE)]
1016     HRESULT listStyleType([in] BSTR v);
1017
1018     [propget, id(DISPID_IHTMLRULESTYLE_LISTSTYLETYPE)]
1019     HRESULT listStyleType([retval, out] BSTR *p);
1020
1021     [propput, id(DISPID_IHTMLRULESTYLE_LISTSTYLEPOSITION)]
1022     HRESULT listStylePosition([in] BSTR v);
1023
1024     [propget, id(DISPID_IHTMLRULESTYLE_LISTSTYLEPOSITION)]
1025     HRESULT listStylePosition([retval, out] BSTR *p);
1026
1027     [propput, id(DISPID_IHTMLRULESTYLE_LISTSTYLEIMAGE)]
1028     HRESULT listStyleImage([in] BSTR v);
1029
1030     [propget, id(DISPID_IHTMLRULESTYLE_LISTSTYLEIMAGE)]
1031     HRESULT listStyleImage([retval, out] BSTR *p);
1032
1033     [propput, id(DISPID_IHTMLRULESTYLE_LISTSTYLE)]
1034     HRESULT listStyle([in] BSTR v);
1035
1036     [propget, id(DISPID_IHTMLRULESTYLE_LISTSTYLE)]
1037     HRESULT listStyle([retval, out] BSTR *p);
1038
1039     [propput, id(DISPID_IHTMLRULESTYLE_WHITESPACE)]
1040     HRESULT whiteSpace([in] BSTR v);
1041
1042     [propget, id(DISPID_IHTMLRULESTYLE_WHITESPACE)]
1043     HRESULT whiteSpace([retval, out] BSTR *p);
1044
1045     [propput, id(DISPID_IHTMLRULESTYLE_TOP)]
1046     HRESULT top([in] VARIANT v);
1047
1048     [propget, id(DISPID_IHTMLRULESTYLE_TOP)]
1049     HRESULT top([retval, out] VARIANT *p);
1050
1051     [propput, id(DISPID_IHTMLRULESTYLE_LEFT)]
1052     HRESULT left([in] VARIANT v);
1053
1054     [propget, id(DISPID_IHTMLRULESTYLE_LEFT)]
1055     HRESULT left([retval, out] VARIANT *p);
1056
1057     [propget, id(DISPID_IHTMLRULESTYLE_POSITION)]
1058     HRESULT position([retval, out] BSTR *p);
1059
1060     [propput, id(DISPID_IHTMLRULESTYLE_ZINDEX)]
1061     HRESULT zIndex([in] VARIANT v);
1062
1063     [propget, id(DISPID_IHTMLRULESTYLE_ZINDEX)]
1064     HRESULT zIndex([retval, out] VARIANT *p);
1065
1066     [propput, id(DISPID_IHTMLRULESTYLE_OVERFLOW)]
1067     HRESULT overflow([in] BSTR v);
1068
1069     [propget, id(DISPID_IHTMLRULESTYLE_OVERFLOW)]
1070     HRESULT overflow([retval, out] BSTR *p);
1071
1072     [propput, id(DISPID_IHTMLRULESTYLE_PAGEBREAKBEFORE)]
1073     HRESULT pageBreakBefore([in] BSTR v);
1074
1075     [propget, id(DISPID_IHTMLRULESTYLE_PAGEBREAKBEFORE)]
1076     HRESULT pageBreakBefore([retval, out] BSTR *p);
1077
1078     [propput, id(DISPID_IHTMLRULESTYLE_PAGEBREAKAFTER)]
1079     HRESULT pageBreakAfter([in] BSTR v);
1080
1081     [propget, id(DISPID_IHTMLRULESTYLE_PAGEBREAKAFTER)]
1082     HRESULT pageBreakAfter([retval, out] BSTR *p);
1083
1084     [propput, id(DISPID_IHTMLRULESTYLE_CSSTEXT)]
1085     HRESULT cssText([in] BSTR v);
1086
1087     [propget, id(DISPID_IHTMLRULESTYLE_CSSTEXT)]
1088     HRESULT cssText([retval, out] BSTR *p);
1089
1090     [propput, id(DISPID_IHTMLRULESTYLE_CURSOR)]
1091     HRESULT cursor([in] BSTR v);
1092
1093     [propget, id(DISPID_IHTMLRULESTYLE_CURSOR)]
1094     HRESULT cursor([retval, out] BSTR *p);
1095
1096     [propput, id(DISPID_IHTMLRULESTYLE_CLIP)]
1097     HRESULT clip([in] BSTR v);
1098
1099     [propget, id(DISPID_IHTMLRULESTYLE_CLIP)]
1100     HRESULT clip([retval, out] BSTR *p);
1101
1102     [propput, id(DISPID_IHTMLRULESTYLE_FILTER)]
1103     HRESULT filter([in] BSTR v);
1104
1105     [propget, id(DISPID_IHTMLRULESTYLE_FILTER)]
1106     HRESULT filter([retval, out] BSTR *p);
1107
1108     [id(DISPID_IHTMLRULESTYLE_SETATTRIBUTE)]
1109     HRESULT setAttribute(
1110         [in] BSTR strAttributeName,
1111         [in] VARIANT AttributeValue,
1112         [defaultvalue(1), in] LONG lFlags);
1113
1114     [id(DISPID_IHTMLRULESTYLE_GETATTRIBUTE)]
1115     HRESULT getAttribute(
1116         [in] BSTR strAttributeName,
1117         [defaultvalue(0), in] LONG lFlags,
1118         [retval, out] VARIANT *AttributeValue);
1119
1120     [id(DISPID_IHTMLRULESTYLE_REMOVEATTRIBUTE)]
1121     HRESULT removeAttribute(
1122         [in] BSTR strAttributeName,
1123         [defaultvalue(1), in] LONG lFlags,
1124         [retval, out] VARIANT_BOOL *pfSuccess);
1125 }
1126
1127 /*****************************************************************************
1128  *    IHTMLDOMNode interface
1129  */
1130 [
1131     odl,
1132     oleautomation,
1133     dual,
1134     uuid(3050f5da-98b5-11cf-bb82-00aa00bdce0b)
1135 ]
1136 interface IHTMLDOMNode : IDispatch
1137 {
1138     [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)]
1139     HRESULT nodeType([retval, out] long *p);
1140
1141     [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)]
1142     HRESULT parentNode([retval, out] IHTMLDOMNode **p);
1143
1144     [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)]
1145     HRESULT hasChildNodes([retval, out] VARIANT_BOOL *fChildren);
1146
1147     [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)]
1148     HRESULT childNodes([retval, out] IDispatch **p);
1149
1150     [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)]
1151     HRESULT attributes([retval, out] IDispatch **p);
1152
1153     [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)]
1154     HRESULT insertBefore([in] IHTMLDOMNode *newChild,
1155                          [optional, in] VARIANT refChild,
1156                          [retval, out] IHTMLDOMNode **node);
1157
1158     [id(DISPID_IHTMLDOMNODE_REMOVECHILD)]
1159     HRESULT removeChild([in] IHTMLDOMNode *oldChild,
1160                         [retval, out] IHTMLDOMNode **node);
1161
1162     [id(DISPID_IHTMLDOMNODE_REPLACECHILD)]
1163     HRESULT replaceChild([in] IHTMLDOMNode *newChild,
1164                          [in] IHTMLDOMNode* oldChild,
1165                          [retval, out] IHTMLDOMNode **node);
1166
1167     [id(DISPID_IHTMLDOMNODE_CLONENODE)]
1168     HRESULT cloneNode([in] VARIANT_BOOL fDeep,
1169                       [retval, out] IHTMLDOMNode **clonedNode);
1170
1171     [id(DISPID_IHTMLDOMNODE_REMOVENODE)]
1172     HRESULT removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep,
1173                        [retval, out] IHTMLDOMNode **removed);
1174
1175     [id(DISPID_IHTMLDOMNODE_SWAPNODE)]
1176     HRESULT swapNode([in] IHTMLDOMNode *otherNode,
1177                      [retval, out] IHTMLDOMNode **swappedNode);
1178
1179     [id(DISPID_IHTMLDOMNODE_REPLACENODE)]
1180     HRESULT replaceNode([in] IHTMLDOMNode *replacement,
1181                         [retval, out] IHTMLDOMNode **replaced);
1182
1183     [id(DISPID_IHTMLDOMNODE_APPENDCHILD)]
1184     HRESULT appendChild([in] IHTMLDOMNode *newChild,
1185                         [retval, out] IHTMLDOMNode **node);
1186
1187     [propget, id(DISPID_IHTMLDOMNODE_NODENAME)]
1188     HRESULT nodeName([retval, out] BSTR *p);
1189
1190     [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)]
1191     HRESULT nodeValue([in] VARIANT v);
1192
1193     [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)]
1194     HRESULT nodeValue([retval, out] VARIANT *p);
1195
1196     [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)]
1197     HRESULT firstChild([retval, out] IHTMLDOMNode **p);
1198
1199     [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)]
1200     HRESULT lastChild([retval, out] IHTMLDOMNode **p);
1201
1202     [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)]
1203     HRESULT previousSibling([retval, out] IHTMLDOMNode **p);
1204
1205     [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)]
1206     HRESULT nextSibling([retval, out] IHTMLDOMNode **p);
1207 }
1208
1209 /*****************************************************************************
1210  *    IHTMLElement interface
1211  */
1212 [
1213     odl,
1214     dual,
1215     oleautomation,
1216     uuid(3050f1FF-98B5-11CF-BB82-00AA00BDCE0B)
1217 ]
1218 interface IHTMLElement : IDispatch
1219 {
1220     [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)]
1221     HRESULT setAttribute(
1222         [in] BSTR strAttributeName,
1223         [in] VARIANT AttributeValue,
1224         [defaultvalue(1), in] LONG lFlags);
1225
1226     [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)]
1227     HRESULT getAttribute(
1228         [in] BSTR strAttributeName,
1229         [defaultvalue(0), in] LONG lFlags,
1230         [retval, out] VARIANT AttributeValue);
1231
1232     [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)]
1233     HRESULT removeAttribute(
1234         [in] BSTR strAttributeName,
1235         [defaultvalue(1), in] LONG lFlags,
1236         [retval, out] VARIANT_BOOL *pfSuccess);
1237
1238     [propput, id(DISPID_IHTMLELEMENT_CLASSNAME)]
1239     HRESULT className([in] BSTR v);
1240
1241     [propget, id(DISPID_IHTMLELEMENT_CLASSNAME)]
1242     HRESULT className([retval, out] BSTR *p);
1243
1244     [propput, id(DISPID_IHTMLELEMENT_ID)]
1245     HRESULT id([in] BSTR v);
1246
1247     [propget, id(DISPID_IHTMLELEMENT_ID)]
1248     HRESULT id([retval, out] BSTR *p);
1249
1250     [propget, id(DISPID_IHTMLELEMENT_TAGNAME)]
1251     HRESULT tagName([retval, out] BSTR *p);
1252
1253     [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)]
1254     HRESULT parentElement([retval, out] IHTMLElement **p);
1255
1256     [propget, id(DISPID_IHTMLELEMENT_STYLE)]
1257     HRESULT style([retval, out] IHTMLStyle **p);
1258
1259     [propput, id(DISPID_IHTMLELEMENT_ONHELP)]
1260     HRESULT onhelp([in] VARIANT v);
1261
1262     [propget, id(DISPID_IHTMLELEMENT_ONHELP)]
1263     HRESULT onhelp([retval, out] VARIANT *p);
1264
1265     [propput, id(DISPID_IHTMLELEMENT_ONCLICK)]
1266     HRESULT onclick([in] VARIANT v);
1267
1268     [propget, id(DISPID_IHTMLELEMENT_ONCLICK)]
1269     HRESULT onclick([retval, out] VARIANT *p);
1270
1271     [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK)]
1272     HRESULT ondblclick([in] VARIANT v);
1273
1274     [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK)]
1275     HRESULT ondblclick([retval, out] VARIANT *p);
1276
1277     [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN)]
1278     HRESULT onkeydown([in] VARIANT v);
1279
1280     [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN)]
1281     HRESULT onkeydown([retval, out] VARIANT *p);
1282
1283     [propput, id(DISPID_IHTMLELEMENT_ONKEYUP)]
1284     HRESULT onkeyup([in] VARIANT v);
1285     
1286     [propget, id(DISPID_IHTMLELEMENT_ONKEYUP)]
1287     HRESULT onkeyup([retval, out] VARIANT *p);
1288
1289     [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS)]
1290     HRESULT onkeypress([in] VARIANT v);
1291
1292     [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS)]
1293     HRESULT onkeypress([retval, out] VARIANT *p);
1294
1295     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT)]
1296     HRESULT onmouseout([in] VARIANT v);
1297
1298     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT)]
1299     HRESULT onmouseout([retval, out] VARIANT *p);
1300
1301     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER)]
1302     HRESULT onmouseover([in] VARIANT v);
1303
1304     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER)]
1305     HRESULT onmouseover([retval, out] VARIANT *p);
1306
1307     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE)]
1308     HRESULT onmousemove([in] VARIANT v);
1309
1310     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE)]
1311     HRESULT onmousemove([retval, out] VARIANT *p);
1312
1313     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN)]
1314     HRESULT onmousedown([in] VARIANT v);
1315
1316     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN)]
1317     HRESULT onmousedown([retval, out] VARIANT *p);
1318
1319     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP)]
1320     HRESULT onmouseup([in] VARIANT v);
1321
1322     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP)]
1323     HRESULT onmouseup([retval, out] VARIANT *p);
1324
1325     [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)]
1326     HRESULT document([retval, out] IDispatch **p);
1327
1328     [propput, id(DISPID_IHTMLELEMENT_TITLE)]
1329     HRESULT title([in] BSTR v);
1330
1331     [propget, id(DISPID_IHTMLELEMENT_TITLE)]
1332     HRESULT title([retval, out] BSTR *p);
1333
1334     [propput, id(DISPID_IHTMLELEMENT_LANGUAGE)]
1335     HRESULT language([in] BSTR v);
1336
1337     [propget, id(DISPID_IHTMLELEMENT_LANGUAGE)]
1338     HRESULT language([retval, out] BSTR *p);
1339
1340     [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART)]
1341     HRESULT onselectstart([in] VARIANT v);
1342
1343     [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART)]
1344     HRESULT onselectstart([retval, out] VARIANT *p);
1345
1346     [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)]
1347     HRESULT scrollIntoView([optional, in] VARIANT varargStart);
1348
1349     [id(DISPID_IHTMLELEMENT_CONTAINS)]
1350     HRESULT contains(
1351         [in] IHTMLElement *pChild,
1352         [retval, out] VARIANT_BOOL *pfResult);
1353
1354     [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX)]
1355     HRESULT sourceIndex([retval, out] long *p);
1356
1357     [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)]
1358     HRESULT recordNumber([retval, out] VARIANT *p);
1359
1360     [propput, id(DISPID_IHTMLELEMENT_LANG)]
1361     HRESULT lang([in] BSTR v);
1362
1363     [propget, id(DISPID_IHTMLELEMENT_LANG)]
1364     HRESULT lang([retval, out] BSTR *p);
1365
1366     [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)]
1367     HRESULT offsetLeft([retval, out] long *p);
1368
1369     [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)]
1370     HRESULT offsetTop([retval, out] long *p);
1371
1372     [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)]
1373     HRESULT offsetWidth([retval, out] long *p);
1374
1375     [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)]
1376     HRESULT offsetHeight([retval, out] long *p);
1377
1378     [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)]
1379     HRESULT offsetParent([retval, out] IHTMLElement **p);
1380
1381     [propput, id(DISPID_IHTMLELEMENT_INNERHTML)]
1382     HRESULT innerHTML([in] BSTR v);
1383
1384     [propget, id(DISPID_IHTMLELEMENT_INNERHTML)]
1385     HRESULT innerHTML([retval, out] BSTR *p);
1386
1387     [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)]
1388     HRESULT innerText([in] BSTR v);
1389
1390     [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)]
1391     HRESULT innerText([retval, out] BSTR *p);
1392
1393     [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)]
1394     HRESULT outerHTML([in] BSTR v);
1395
1396     [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)]
1397     HRESULT outerHTML([retval, out] BSTR *p);
1398
1399     [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
1400     HRESULT outerText([in] BSTR v);
1401
1402     [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
1403     HRESULT outerText([retval, out] BSTR *p);
1404
1405     [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)]
1406     HRESULT insertAdjacentHTML([in] BSTR where, [in] BSTR html);
1407
1408     [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)]
1409     HRESULT insertAdjacentText([in] BSTR where, [in] BSTR text);
1410
1411     [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)]
1412     HRESULT parentTextEdit([retval, out] IHTMLElement **p);
1413
1414     [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)]
1415     HRESULT isTextEdit([retval, out] VARIANT_BOOL *p);
1416
1417     [id(DISPID_IHTMLELEMENT_CLICK)]
1418     HRESULT click();
1419
1420     [propget, id(DISPID_IHTMLELEMENT_FILTERS)]
1421     HRESULT filters([retval, out] IHTMLFiltersCollection **p);
1422
1423     [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART)]
1424     HRESULT ondragstart([in] VARIANT v);
1425
1426     [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART)]
1427     HRESULT ondragstart([retval, out] VARIANT *p);
1428
1429     [id(DISPID_IHTMLELEMENT_TOSTRING)]
1430     HRESULT toString([retval, out] BSTR *String);
1431
1432     [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE)]
1433     HRESULT onbeforeupdate([in] VARIANT v);
1434
1435     [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE)]
1436     HRESULT onbeforeupdate([retval, out] VARIANT *p);
1437
1438     [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE)]
1439     HRESULT onafterupdate([in] VARIANT v);
1440
1441     [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE)]
1442     HRESULT onafterupdate([retval, out] VARIANT *p);
1443
1444     [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE)]
1445     HRESULT onerrorupdate([in] VARIANT v);
1446
1447     [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE)]
1448     HRESULT onerrorupdate([retval, out] VARIANT *p);
1449
1450     [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT)]
1451     HRESULT onrowexit([in] VARIANT v);
1452
1453     [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT)]
1454     HRESULT onrowexit([retval, out] VARIANT *p);
1455
1456     [propput, id(DISPID_IHTMLELEMENT_ONROWENTER)]
1457     HRESULT onrowenter([in] VARIANT v);
1458
1459     [propget, id(DISPID_IHTMLELEMENT_ONROWENTER)]
1460     HRESULT onrowenter([retval, out] VARIANT *p);
1461
1462     [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED)]
1463     HRESULT ondatasetchanged([in] VARIANT v);
1464
1465     [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED)]
1466     HRESULT ondatasetchanged([retval, out] VARIANT *p);
1467
1468     [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE)]
1469     HRESULT ondataavailable([in] VARIANT v);
1470
1471     [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE)]
1472     HRESULT ondataavailable([retval, out] VARIANT *p);
1473
1474     [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE)]
1475     HRESULT ondatasetcomplete([in] VARIANT v);
1476
1477     [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE)]
1478     HRESULT ondatasetcomplete([retval, out] VARIANT *p);
1479
1480     [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE)]
1481     HRESULT onfilterchange([in] VARIANT v);
1482
1483     [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE)]
1484     HRESULT onfilterchange([retval, out] VARIANT *p);
1485
1486     [propget, id(DISPID_IHTMLELEMENT_CHILDREN)]
1487     HRESULT children([retval, out] IDispatch **p);
1488
1489     [propget, id(DISPID_IHTMLELEMENT_ALL)]
1490     HRESULT all([retval, out] IDispatch **p);
1491 }
1492
1493 /*****************************************************************************
1494  *    IHTMLStyleSheetRule interface
1495  */
1496 [
1497     odl,
1498     oleautomation,
1499     dual,
1500     uuid(3050F357-98B5-11CF-BB82-00AA00BDCE0B)
1501 ]
1502 interface IHTMLStyleSheetRule : IDispatch
1503 {
1504     [propput, id(DISPID_IHTMLSTYLESHEETRULE_SELECTORTEXT)]
1505     HRESULT selectorText([in] BSTR v);
1506
1507     [propget, id(DISPID_IHTMLSTYLESHEETRULE_SELECTORTEXT)]
1508     HRESULT selectorText([retval, out] BSTR *p);
1509
1510     [propget, id(DISPID_IHTMLSTYLESHEETRULE_STYLE)]
1511     HRESULT style([retval, out] IHTMLRuleStyle **p);
1512
1513     [propget, id(DISPID_IHTMLSTYLESHEETRULE_READONLY)]
1514     HRESULT readOnly([retval, out] VARIANT_BOOL *p);
1515 }
1516
1517 /*****************************************************************************
1518  *    IHTMLStyleSheetRulesCollection interface
1519  */
1520 [
1521     odl,
1522     oleautomation,
1523     dual,
1524     uuid(3050F2E5-98B5-11Cf-BB82-00AA00BDCE0B)
1525 ]
1526 interface IHTMLStyleSheetRulesCollection : IDispatch
1527 {
1528     [propget, id(DISPID_IHTMLSTYLESHEETRULESCOLLECTION_LENGTH)]
1529     HRESULT length([retval, out] long *p);
1530
1531     [id(DISPID_IHTMLSTYLESHEETRULESCOLLECTION_ITEM)]
1532     HRESULT item(
1533         [in] long index,
1534         [retval, out] IHTMLStyleSheetRule **ppHTMLStyleSheetRule);
1535 }
1536
1537 /*****************************************************************************
1538  *    IHTMLStyleSheet interface
1539  */
1540 [
1541     odl,
1542     oleautomation,
1543     dual,
1544     uuid(3050F2E3-98B5-11CF-BB82-00AA00BDCE0B)
1545 ]
1546 interface IHTMLStyleSheet : IDispatch
1547 {
1548     [propput, id(DISPID_IHTMLSTYLESHEET_TITLE)]
1549     HRESULT title([in] BSTR v);
1550
1551     [propget, id(DISPID_IHTMLSTYLESHEET_TITLE)]
1552     HRESULT title([retval, out] BSTR *p);
1553
1554     [propget, id(DISPID_IHTMLSTYLESHEET_PARENTSTYLESHEET)]
1555     HRESULT parentStyleSheet([retval, out] IHTMLStyleSheet **p);
1556
1557     [propget, id(DISPID_IHTMLSTYLESHEET_OWNINGELEMENT)]
1558     HRESULT owningElement([retval, out] IHTMLElement **p);
1559
1560     [propput, id(DISPID_IHTMLSTYLESHEET_DISABLED)]
1561     HRESULT disabled([in] VARIANT_BOOL v);
1562
1563     [propget, id(DISPID_IHTMLSTYLESHEET_DISABLED)]
1564     HRESULT disabled([retval, out] VARIANT_BOOL *p);
1565
1566     [propget, id(DISPID_IHTMLSTYLESHEET_READONLY)]
1567     HRESULT readOnly([retval, out] VARIANT_BOOL *p);
1568
1569     [propget, id(DISPID_IHTMLSTYLESHEET_IMPORTS)]
1570     HRESULT imports([retval, out] IHTMLStyleSheetsCollection **p);
1571
1572     [propput, id(DISPID_IHTMLSTYLESHEET_HREF)]
1573     HRESULT href([in] BSTR v);
1574
1575     [propget, id(DISPID_IHTMLSTYLESHEET_HREF)]
1576     HRESULT href([retval, out] BSTR *p);
1577
1578     [propget, id(DISPID_IHTMLSTYLESHEET_TYPE)]
1579     HRESULT type([retval, out] BSTR *p);
1580
1581     [propget, id(DISPID_IHTMLSTYLESHEET_ID)]
1582     HRESULT id([retval, out] BSTR *p);
1583
1584     [id(DISPID_IHTMLSTYLESHEET_ADDIMPORT)]
1585     HRESULT addImport(
1586         [in] BSTR bstrURL,
1587         [defaultvalue(-1), in] long lIndex,
1588         [retval, out] long *plIndex);
1589
1590     [id(DISPID_IHTMLSTYLESHEET_ADDRULE)]
1591     HRESULT addRule(
1592         [in] BSTR bstrSelector,
1593         [in] BSTR bstrStyle,
1594         [defaultvalue(-1), in] long lIndex,
1595         [retval, out] long *plNewIndex);
1596
1597     [id(DISPID_IHTMLSTYLESHEET_REMOVEIMPORT)]
1598     HRESULT removeImport([in] long lIndex);
1599
1600     [id(DISPID_IHTMLSTYLESHEET_REMOVERULE)]
1601     HRESULT removeRule([in] long lIndex);
1602
1603     [propput, id(DISPID_IHTMLSTYLESHEET_MEDIA)]
1604     HRESULT media([in] BSTR v);
1605
1606     [propget, id(DISPID_IHTMLSTYLESHEET_MEDIA)]
1607     HRESULT media([retval, out] BSTR *p);
1608
1609     [propput, id(DISPID_IHTMLSTYLESHEET_CSSTEXT)]
1610     HRESULT cssText([in] BSTR v);
1611
1612     [propget, id(DISPID_IHTMLSTYLESHEET_CSSTEXT)]
1613     HRESULT cssText([retval, out] BSTR *p);
1614
1615     [propget, id(DISPID_IHTMLSTYLESHEET_RULES)]
1616     HRESULT rules([retval, out] IHTMLStyleSheetRulesCollection **p);
1617 }
1618
1619 /*****************************************************************************
1620  *    IHTMLStyleSheetsCollection interface
1621  */
1622 [
1623     odl,
1624     oleautomation,
1625     dual,
1626     uuid(3050F37E-98B5-11CF-BB82-00AA00BDCE0B)
1627 ]
1628 interface IHTMLStyleSheetsCollection : IDispatch
1629 {
1630     [propget, id(DISPID_IHTMLSTYLESHEETSCOLLECTION_LENGTH)]
1631     HRESULT length([retval, out] long *p);
1632
1633     [propget, id(DISPID_IHTMLSTYLESHEETSCOLLECTION__NEWENUM)]
1634     HRESULT _newEnum([retval, out] IUnknown **p);
1635
1636     [id(DISPID_IHTMLSTYLESHEETSCOLLECTION_ITEM)]
1637     HRESULT item(
1638         [in] VARIANT *pvarIndex,
1639         [retval, out] VARIANT *pvarResult);
1640 }
1641
1642 /*****************************************************************************
1643  *    IHTMLFormElement interface
1644  */
1645 [
1646     odl,
1647     oleautomation,
1648     dual,
1649     uuid(3050F1F7-98B5-11CF-BB82-00AA00BDCE0B)
1650 ]
1651 interface IHTMLFormElement : IDispatch
1652 {
1653     [propput, id(DISPID_IHTMLFORMELEMENT_ACTION)]
1654     HRESULT action([in] BSTR v);
1655
1656     [propget, id(DISPID_IHTMLFORMELEMENT_ACTION)]
1657     HRESULT action([retval, out] BSTR *p);
1658
1659     [propput, id(DISPID_IHTMLFORMELEMENT_DIR)]
1660     HRESULT dir([in] BSTR v);
1661
1662     [propget, id(DISPID_IHTMLFORMELEMENT_DIR)]
1663     HRESULT dir([retval, out] BSTR *p);
1664
1665     [propput, id(DISPID_IHTMLFORMELEMENT_ENCODING)]
1666     HRESULT encoding([in] BSTR v);
1667
1668     [propget, id(DISPID_IHTMLFORMELEMENT_ENCODING)]
1669     HRESULT encoding([retval, out] BSTR *p);
1670
1671     [propput, id(DISPID_IHTMLFORMELEMENT_METHOD)]
1672     HRESULT method([in] BSTR v);
1673
1674     [propget, id(DISPID_IHTMLFORMELEMENT_METHOD)]
1675     HRESULT method([retval, out] BSTR *p);
1676
1677     [propget, id(DISPID_IHTMLFORMELEMENT_ELEMENTS)]
1678     HRESULT elements([retval, out] IDispatch **p);
1679
1680     [propput, id(DISPID_IHTMLFORMELEMENT_TARGET)]
1681     HRESULT target([in] BSTR v);
1682
1683     [propget, id(DISPID_IHTMLFORMELEMENT_TARGET)]
1684     HRESULT target([retval, out] BSTR *p);
1685
1686     [propput, id(DISPID_IHTMLFORMELEMENT_NAME)]
1687     HRESULT name([in] BSTR v);
1688
1689     [propget, id(DISPID_IHTMLFORMELEMENT_NAME)]
1690     HRESULT name([retval, out] BSTR *p);
1691
1692     [propput, id(DISPID_IHTMLFORMELEMENT_ONSUBMIT)]
1693     HRESULT onsubmit([in] VARIANT v);
1694
1695     [propget, id(DISPID_IHTMLFORMELEMENT_ONSUBMIT)]
1696     HRESULT onsubmit([retval, out] VARIANT *p);
1697
1698     [propput, id(DISPID_IHTMLFORMELEMENT_ONRESET)]
1699     HRESULT onreset([in] VARIANT v);
1700
1701     [propget, id(DISPID_IHTMLFORMELEMENT_ONRESET)]
1702     HRESULT onreset([retval, out] VARIANT *p);
1703
1704     [id(DISPID_IHTMLFORMELEMENT_SUBMIT)]
1705     HRESULT submit();
1706
1707     [id(DISPID_IHTMLFORMELEMENT_RESET)]
1708     HRESULT reset();
1709
1710     [propput, id(DISPID_IHTMLFORMELEMENT_LENGTH)]
1711     HRESULT length([in] long v);
1712
1713     [propget, id(DISPID_IHTMLFORMELEMENT_LENGTH)]
1714     HRESULT length([retval, out] long *p);
1715
1716     [propget, id(DISPID_IHTMLFORMELEMENT__NEWENUM)]
1717     HRESULT _newEnum([retval, out] IUnknown **p);
1718
1719     [id(DISPID_IHTMLFORMELEMENT_ITEM)]
1720     HRESULT item(
1721         [optional, in] VARIANT name,
1722         [optional, in] VARIANT index,
1723         [retval, out] IDispatch **pdisp);
1724
1725     [id(DISPID_IHTMLFORMELEMENT_TAGS)]
1726     HRESULT tags(
1727         [in] VARIANT tagName,
1728         [retval, out] IDispatch **pdisp);
1729 }
1730
1731 /*****************************************************************************
1732  *    IHTMLImgElement interface
1733  */
1734 [
1735     odl,
1736     oleautomation,
1737     dual,
1738     uuid(3050F240-98B5-11CF-BB82-00AA00BDCE0B)
1739 ]
1740 interface IHTMLImgElement : IDispatch
1741 {
1742     [propput, id(DISPID_IHTMLIMGELEMENT_ISMAP)]
1743     HRESULT isMap([in] VARIANT_BOOL v);
1744
1745     [propget, id(DISPID_IHTMLIMGELEMENT_ISMAP)]
1746     HRESULT isMap([retval, out] VARIANT_BOOL *p);
1747
1748     [propput, id(DISPID_IHTMLIMGELEMENT_USEMAP)]
1749     HRESULT useMap([in] BSTR v);
1750
1751     [propget, id(DISPID_IHTMLIMGELEMENT_USEMAP)]
1752     HRESULT useMap([retval, out] BSTR *p);
1753
1754     [propget, id(DISPID_IHTMLIMGELEMENT_MIMETYPE)]
1755     HRESULT mimeType([retval, out] BSTR *p);
1756
1757     [propget, id(DISPID_IHTMLIMGELEMENT_FILESIZE)]
1758     HRESULT fileSize([retval, out] BSTR *p);
1759
1760     [propget, id(DISPID_IHTMLIMGELEMENT_FILECREATEDDATE)]
1761     HRESULT fileCreatedDate([retval, out] BSTR *p);
1762
1763     [propget, id(DISPID_IHTMLIMGELEMENT_FILEMODIFIEDDATE)]
1764     HRESULT fileModifiedDate([retval, out] BSTR *p);
1765
1766     [propget, id(DISPID_IHTMLIMGELEMENT_FILEUPDATEDDATE)]
1767     HRESULT fileUpdatedDate([retval, out] BSTR *p);
1768
1769     [propget, id(DISPID_IHTMLIMGELEMENT_PROTOCOL)]
1770     HRESULT protocol([retval, out] BSTR *p);
1771
1772     [propget, id(DISPID_IHTMLIMGELEMENT_HREF)]
1773     HRESULT href([retval, out] BSTR *p);
1774
1775     [propget, id(DISPID_IHTMLIMGELEMENT_NAMEPROP)]
1776     HRESULT nameProp([retval, out] BSTR *p);
1777
1778     [propput, id(DISPID_IHTMLIMGELEMENT_BORDER)]
1779     HRESULT border([in] VARIANT v);
1780
1781     [propget, id(DISPID_IHTMLIMGELEMENT_BORDER)]
1782     HRESULT border([retval, out] VARIANT *p);
1783
1784     [propput, id(DISPID_IHTMLIMGELEMENT_VSPACE)]
1785     HRESULT vspace([in] long v);
1786
1787     [propget, id(DISPID_IHTMLIMGELEMENT_VSPACE)]
1788     HRESULT vspace([retval, out] long *p);
1789
1790     [propput, id(DISPID_IHTMLIMGELEMENT_HSPACE)]
1791     HRESULT hspace([in] long v);
1792
1793     [propget, id(DISPID_IHTMLIMGELEMENT_HSPACE)]
1794     HRESULT hspace([retval, out] long *p);
1795
1796     [propput, id(DISPID_IHTMLIMGELEMENT_ALT)]
1797     HRESULT alt([in] BSTR v);
1798
1799     [propget, id(DISPID_IHTMLIMGELEMENT_ALT)]
1800     HRESULT alt([retval, out] BSTR *p);
1801
1802     [propput, id(DISPID_IHTMLIMGELEMENT_SRC)]
1803     HRESULT src([in] BSTR v);
1804
1805     [propget, id(DISPID_IHTMLIMGELEMENT_SRC)]
1806     HRESULT src([retval, out] BSTR *p);
1807
1808     [propput, id(DISPID_IHTMLIMGELEMENT_LOWSRC)]
1809     HRESULT lowsrc([in] BSTR v);
1810
1811     [propget, id(DISPID_IHTMLIMGELEMENT_LOWSRC)]
1812     HRESULT lowsrc([retval, out] BSTR *p);
1813
1814     [propput, id(DISPID_IHTMLIMGELEMENT_VRML)]
1815     HRESULT vrml([in] BSTR v);
1816
1817     [propget, id(DISPID_IHTMLIMGELEMENT_VRML)]
1818     HRESULT vrml([retval, out] BSTR *p);
1819
1820     [propput, id(DISPID_IHTMLIMGELEMENT_DYNSRC)]
1821     HRESULT dynsrc([in] BSTR v);
1822
1823     [propget, id(DISPID_IHTMLIMGELEMENT_DYNSRC)]
1824     HRESULT dynsrc([retval, out] BSTR *p);
1825
1826     [propget, id(DISPID_IHTMLIMGELEMENT_READYSTATE)]
1827     HRESULT readyState([retval, out] BSTR *p);
1828
1829     [propget, id(DISPID_IHTMLIMGELEMENT_COMPLETE)]
1830     HRESULT complete([retval, out] VARIANT_BOOL *p);
1831
1832     [propput, id(DISPID_IHTMLIMGELEMENT_LOOP)]
1833     HRESULT loop([in] VARIANT v);
1834
1835     [propget, id(DISPID_IHTMLIMGELEMENT_LOOP)]
1836     HRESULT loop([retval, out] VARIANT *p);
1837
1838     [propput, id(DISPID_IHTMLIMGELEMENT_ALIGN)]
1839     HRESULT align([in] BSTR v);
1840
1841     [propget, id(DISPID_IHTMLIMGELEMENT_ALIGN)]
1842     HRESULT align([retval, out] BSTR *p);
1843
1844     [propput, id(DISPID_IHTMLIMGELEMENT_ONLOAD)]
1845     HRESULT onload([in] VARIANT v);
1846
1847     [propget, id(DISPID_IHTMLIMGELEMENT_ONLOAD)]
1848     HRESULT onload([retval, out] VARIANT *p);
1849
1850     [propput, id(DISPID_IHTMLIMGELEMENT_ONERROR)]
1851     HRESULT onerror([in] VARIANT v);
1852
1853     [propget, id(DISPID_IHTMLIMGELEMENT_ONERROR)]
1854     HRESULT onerror([retval, out] VARIANT *p);
1855
1856     [propput, id(DISPID_IHTMLIMGELEMENT_ONABORT)]
1857     HRESULT onabort([in] VARIANT v);
1858
1859     [propget, id(DISPID_IHTMLIMGELEMENT_ONABORT)]
1860     HRESULT onabort([retval, out] VARIANT *p);
1861
1862     [propput, id(DISPID_IHTMLIMGELEMENT_NAME)]
1863     HRESULT name([in] BSTR v);
1864
1865     [propget, id(DISPID_IHTMLIMGELEMENT_NAME)]
1866     HRESULT name([retval, out] BSTR *p);
1867
1868     [propput, id(DISPID_IHTMLIMGELEMENT_WIDTH)]
1869     HRESULT width([in] long v);
1870
1871     [propget, id(DISPID_IHTMLIMGELEMENT_WIDTH)]
1872     HRESULT width([retval, out] long *p);
1873
1874     [propput, id(DISPID_IHTMLIMGELEMENT_HEIGHT)]
1875     HRESULT height([in] long v);
1876
1877     [propget, id(DISPID_IHTMLIMGELEMENT_HEIGHT)]
1878     HRESULT height([retval, out] long *p);
1879
1880     [propput, id(DISPID_IHTMLIMGELEMENT_START)]
1881     HRESULT start([in] BSTR v);
1882
1883     [propget, id(DISPID_IHTMLIMGELEMENT_START)]
1884     HRESULT start([retval, out] BSTR *p);
1885 }
1886
1887 /*****************************************************************************
1888  *    IHTMLImageElementFactory interface
1889  */
1890 [
1891     odl,
1892     oleautomation,
1893     dual,
1894     uuid(3050F38E-98B5-11CF-BB82-00AAA0BDCE0B)
1895 ]
1896 interface IHTMLImageElementFactory : IDispatch
1897 {
1898     [id(DISPID_IHTMLIMAGEELEMENTFACTORY_CREATE)]
1899     HRESULT create(
1900         [optional, in] VARIANT width,
1901         [optional, in] VARIANT height,
1902         [retval, out]  IHTMLImgElement **elem);
1903 }
1904
1905 /*****************************************************************************
1906  *    IHTMLElementCollection interface
1907  */
1908 [
1909     odl,
1910     oleautomation,
1911     dual,
1912     uuid(3050F21F-98B5-11CF-BB82-00AA00BDCE0B)
1913 ]
1914 interface IHTMLElementCollection : IDispatch
1915 {
1916     [id(DISPID_IHTMLELEMENTCOLLECTION_TOSTRING)]
1917     HRESULT toString([retval, out] BSTR *String);
1918
1919     [propput, id(DISPID_IHTMLELEMENTCOLLECTION_LENGTH)]
1920     HRESULT length([in] long v);
1921
1922     [propget, id(DISPID_IHTMLELEMENTCOLLECTION_LENGTH)]
1923     HRESULT length([retval, out] long *p);
1924
1925     [propget, id(DISPID_IHTMLELEMENTCOLLECTION__NEWENUM)]
1926     HRESULT _newEnum([retval, out] IUnknown **p);
1927
1928     [id(DISPID_IHTMLELEMENTCOLLECTION_ITEM)]
1929     HRESULT item(
1930         [optional, in] VARIANT name,
1931         [optional, in] VARIANT index,
1932         [retval,  out] IDispatch **pdisp);
1933
1934     [id(DISPID_IHTMLELEMENTCOLLECTION_TAGS)]
1935     HRESULT tags(
1936         [in] VARIANT tagName,
1937         [retval, out] IDispatch **pdisp);
1938 }
1939
1940 /*****************************************************************************
1941  *    IHTMLSelectionObject interface
1942  */
1943 [
1944     odl,
1945     oleautomation,
1946     dual,
1947     uuid(3050F25A-98B5-11CF-BB82-00AA00BDCE0B)
1948 ]
1949 interface IHTMLSelectionObject : IDispatch
1950 {
1951     [id(DISPID_IHTMLSELECTIONOBJECT_CREATERANGE)]
1952     HRESULT createRange([retval, out] IDispatch **range);
1953
1954     [id(DISPID_IHTMLSELECTIONOBJECT_EMPTY)]
1955     HRESULT empty();
1956
1957     [id(DISPID_IHTMLSELECTIONOBJECT_CLEAR)]
1958     HRESULT clear();
1959
1960     [propget, id(DISPID_IHTMLSELECTIONOBJECT_TYPE)]
1961     HRESULT type([retval, out] BSTR *p);
1962 }
1963
1964 /*****************************************************************************
1965  *    IHTMLOptionElement interface
1966  */
1967 [
1968     odl,
1969     oleautomation,
1970     dual,
1971     uuid(3050F211-98B5-11CF-BB82-00AA00BDCE0B)
1972 ]
1973 interface IHTMLOptionElement : IDispatch
1974 {
1975     [propput, id(DISPID_IHTMLOPTIONELEMENT_SELECTED)]
1976     HRESULT selected([in] VARIANT_BOOL v);
1977
1978     [propget, id(DISPID_IHTMLOPTIONELEMENT_SELECTED)]
1979     HRESULT selected([retval, out] VARIANT_BOOL *p);
1980
1981     [propput, id(DISPID_IHTMLOPTIONELEMENT_VALUE)]
1982     HRESULT value([in] BSTR v);
1983
1984     [propget, id(DISPID_IHTMLOPTIONELEMENT_VALUE)]
1985     HRESULT value([retval, out] BSTR *p);
1986
1987     [propput, id(DISPID_IHTMLOPTIONELEMENT_DEFAULTSELECTED)]
1988     HRESULT defaultSelected([in] VARIANT_BOOL v);
1989
1990     [propget, id(DISPID_IHTMLOPTIONELEMENT_DEFAULTSELECTED)]
1991     HRESULT defaultSelected([retval, out] VARIANT_BOOL *p);
1992
1993     [propput, id(DISPID_IHTMLOPTIONELEMENT_INDEX)]
1994     HRESULT index([in] LONG v);
1995
1996     [propget, id(DISPID_IHTMLOPTIONELEMENT_INDEX)]
1997     HRESULT index([retval, out] LONG *p);
1998
1999     [propput, id(DISPID_IHTMLOPTIONELEMENT_TEXT)]
2000     HRESULT text([in] BSTR v);
2001
2002     [propget, id(DISPID_IHTMLOPTIONELEMENT_TEXT)]
2003     HRESULT text([retval, out] BSTR *p);
2004
2005     [propget, id(DISPID_IHTMLOPTIONELEMENT_FORM)]
2006     HRESULT form([retval, out] IHTMLFormElement **p);
2007 }
2008
2009 /*****************************************************************************
2010  *    IHTMLOptionElementFactory interface
2011  */
2012 [
2013     odl,
2014     oleautomation,
2015     dual,
2016     uuid(3050F38C-98B5-11Cf-BB82-00AA00BDCE0B)
2017 ]
2018 interface IHTMLOptionElementFactory : IDispatch
2019 {
2020     [id(DISPID_IHTMLOPTIONELEMENTFACTORY_CREATE)]
2021     HRESULT create(
2022         [optional, in] VARIANT text,
2023         [optional, in] VARIANT value,
2024         [optional, in] VARIANT defaultselected,
2025         [optional, in] VARIANT selected,
2026         [retval, out] IHTMLOptionElement **optelem);
2027 }
2028
2029 /*****************************************************************************
2030  *    IOmHistory interface
2031  */
2032 [
2033     odl,
2034     oleautomation,
2035     dual,
2036     uuid(FECEAAA2-8405-11CF-8BA1-00AA00476DA6)
2037 ]
2038 interface IOmHistory : IDispatch
2039 {
2040     [propget, id(DISPID_IOMHISTORY_LENGTH)]
2041     HRESULT length([retval, out] short *p);
2042
2043     [id(DISPID_IOMHISTORY_BACK)]
2044     HRESULT back([optional, in] VARIANT *pvargdistance);
2045
2046     [id(DISPID_IOMHISTORY_FORWARD)]
2047     HRESULT forward([optional, in] VARIANT *pvargdistance);
2048
2049     [id(DISPID_IOMHISTORY_GO)]
2050     HRESULT go([optional, in] VARIANT *pvargdistance);
2051 }
2052
2053 /*****************************************************************************
2054  *    IHTMLMimeTypesCollection interface
2055  */
2056 [
2057     odl,
2058     oleautomation,
2059     dual,
2060     uuid(3050F3FC-98B5-11CF-BB82-00AA00BDCE0B)
2061 ]
2062 interface IHTMLMimeTypesCollection : IDispatch
2063 {
2064     [propget, id(DISPID_IHTMLMIMETYPESCOLLECTION_LENGTH)]
2065     HRESULT length([retval, out] long *p);
2066 }
2067
2068 /*****************************************************************************
2069  *    IHTMLPluginsCollection interface
2070  */
2071 [
2072     odl,
2073     oleautomation,
2074     dual,
2075     uuid(3050F3FD-98B5-11CF-BB82-00AA00BDCE0B)
2076 ]
2077 interface IHTMLPluginsCollection : IDispatch
2078 {
2079     [propget, id(DISPID_IHTMLPLUGINSCOLLECTION_LENGTH)]
2080     HRESULT length([retval, out] long *p);
2081
2082     [id(DISPID_IHTMLPLUGINSCOLLECTION_REFRESH)]
2083     HRESULT refresh([defaultvalue(0), in] VARIANT_BOOL reload);
2084 }
2085
2086 /*****************************************************************************
2087  *    IHTMLOpsProfile interface
2088  */
2089 [
2090     odl,
2091     oleautomation,
2092     dual,
2093     uuid(3050F401-98B5-11CF-BB82-00AA00BDCE0B)
2094 ]
2095 interface IHTMLOpsProfile : IDispatch
2096 {
2097     [id(DISPID_IHTMLOPSPROFILE_ADDREQUEST)]
2098     HRESULT addRequest(
2099         [in] BSTR name,
2100         [optional, in] VARIANT reserved,
2101         [retval, out] VARIANT_BOOL *success);
2102
2103     [id(DISPID_IHTMLOPSPROFILE_CLEARREQUEST)]
2104     HRESULT clearRequest();
2105
2106     [id(DISPID_IHTMLOPSPROFILE_DOREQUEST)]
2107     HRESULT doRequest(
2108         [in] VARIANT usage,
2109         [optional, in] VARIANT fname,
2110         [optional, in] VARIANT domain,
2111         [optional, in] VARIANT path,
2112         [optional, in] VARIANT expire,
2113         [optional, in] VARIANT reserved);
2114
2115     [id(DISPID_IHTMLOPSPROFILE_GETATTRIBUTE)]
2116     HRESULT getAttribute(
2117         [in] BSTR name,
2118         [retval, out] BSTR *value);
2119
2120     [id(DISPID_IHTMLOPSPROFILE_SETATTRIBUTE)]
2121     HRESULT setAttribute(
2122         [in] BSTR name,
2123         [in] BSTR value,
2124         [optional, in] VARIANT prefs,
2125         [retval, out] VARIANT_BOOL *success);
2126
2127     [id(DISPID_IHTMLOPSPROFILE_COMMITCHANGES)]
2128     HRESULT commitChanges([retval, out] VARIANT_BOOL *success);
2129
2130     [id(DISPID_IHTMLOPSPROFILE_ADDREADREQUEST)]
2131     HRESULT addReadRequest(
2132         [in] BSTR name,
2133         [optional, in] VARIANT reserved,
2134         [retval, out] VARIANT_BOOL *success);
2135
2136     [id(DISPID_IHTMLOPSPROFILE_DOREADREQUEST)]
2137     HRESULT doReadRequest(
2138         [in] VARIANT usage,
2139         [optional, in] VARIANT fname,
2140         [optional, in] VARIANT domain,
2141         [optional, in] VARIANT path,
2142         [optional, in] VARIANT expire,
2143         [optional, in] VARIANT reserved);
2144
2145     [id(DISPID_IHTMLOPSPROFILE_DOWRITEREQUEST)]
2146     HRESULT doWriteRequest([retval, out] VARIANT_BOOL *success);
2147 }
2148
2149 /*****************************************************************************
2150  *    IOmNavigator interface
2151  */
2152 [
2153         odl,
2154         oleautomation,
2155         dual,
2156         uuid(FECEAAA5-8405-11CF-8BA1-00AA00476DA6)
2157 ]
2158 interface IOmNavigator : IDispatch
2159 {
2160     [propget, id(DISPID_IOMNAVIGATOR_APPCODENAME)]
2161     HRESULT appCodeName([retval, out] BSTR *p);
2162
2163     [propget, id(DISPID_IOMNAVIGATOR_APPNAME)]
2164     HRESULT appName([retval, out] BSTR *p);
2165
2166     [propget, id(DISPID_IOMNAVIGATOR_APPVERSION)]
2167     HRESULT appVersion([retval, out] BSTR *p);
2168
2169     [propget, id(DISPID_IOMNAVIGATOR_USERAGENT)]
2170     HRESULT userAgent([retval, out] BSTR *p);
2171
2172     [id(DISPID_IOMNAVIGATOR_JAVAENABLED)]
2173     HRESULT javaEnabled([retval, out] VARIANT_BOOL *enabled);
2174
2175     [id(DISPID_IOMNAVIGATOR_TAINTENABLED)]
2176     HRESULT taintEnabled([retval, out] VARIANT_BOOL *enabled);
2177
2178     [propget, id(DISPID_IOMNAVIGATOR_MIMETYPES)]
2179     HRESULT mimeTypes([retval, out] IHTMLMimeTypesCollection **p);
2180
2181     [propget, id(DISPID_IOMNAVIGATOR_PLUGINS)]
2182     HRESULT plugins([retval, out] IHTMLPluginsCollection **p);
2183
2184     [propget, id(DISPID_IOMNAVIGATOR_COOKIEENABLED)]
2185     HRESULT cookieEnabled([retval, out] VARIANT_BOOL *p);
2186
2187     [propget, id(DISPID_IOMNAVIGATOR_OPSPROFILE)]
2188     HRESULT opsProfile([retval, out] IHTMLOpsProfile **p);
2189
2190     [id(DISPID_IOMNAVIGATOR_TOSTRING)]
2191     HRESULT toString([retval, out] BSTR *String);
2192
2193     [propget, id(DISPID_IOMNAVIGATOR_CPUCLASS)]
2194     HRESULT cpuClass([retval, out] BSTR *p);
2195
2196     [propget, id(DISPID_IOMNAVIGATOR_SYSTEMLANGUAGE)]
2197     HRESULT systemLanguage([retval, out] BSTR *p);
2198
2199     [propget, id(DISPID_IOMNAVIGATOR_BROWSERLANGUAGE)]
2200     HRESULT browserLanguage([retval, out] BSTR *p);
2201
2202     [propget, id(DISPID_IOMNAVIGATOR_USERLANGUAGE)]
2203     HRESULT userLanguage([retval, out] BSTR *p);
2204
2205     [propget, id(DISPID_IOMNAVIGATOR_PLATFORM)]
2206     HRESULT platform([retval, out] BSTR *p);
2207
2208     [propget, id(DISPID_IOMNAVIGATOR_APPMINORVERSION)]
2209     HRESULT appMinorVersion([retval, out] BSTR *p);
2210
2211     [propget, id(DISPID_IOMNAVIGATOR_CONNECTIONSPEED)]
2212     HRESULT connectionSpeed([retval, out] long *p);
2213
2214     [propget, id(DISPID_IOMNAVIGATOR_ONLINE)]
2215     HRESULT onLine([retval, out] VARIANT_BOOL *p);
2216
2217     [propget, id(DISPID_IOMNAVIGATOR_USERPROFILE)]
2218     HRESULT userProfile([retval, out] IHTMLOpsProfile **p);
2219 }
2220
2221 /*****************************************************************************
2222  *    IHTMLLocation interface
2223  */
2224 [
2225     odl,
2226     oleautomation,
2227     dual,
2228     uuid(163BB1E0-6E00-11cf-837A-48DC04C10000)
2229 ]
2230 interface IHTMLLocation : IDispatch
2231 {
2232     [propput, id(DISPID_IHTMLLOCATION_HREF)]
2233     HRESULT href([in] BSTR v);
2234
2235     [propget, id(DISPID_IHTMLLOCATION_HREF)]
2236     HRESULT href([retval, out] BSTR *p);
2237
2238     [propput, id(DISPID_IHTMLLOCATION_PROTOCOL)]
2239     HRESULT protocol([in] BSTR v);
2240
2241     [propget, id(DISPID_IHTMLLOCATION_PROTOCOL)]
2242     HRESULT protocol([retval, out] BSTR *p);
2243
2244     [propput, id(DISPID_IHTMLLOCATION_HOST)]
2245     HRESULT host([in] BSTR v);
2246
2247     [propget, id(DISPID_IHTMLLOCATION_HOST)]
2248     HRESULT host([retval, out] BSTR *p);
2249
2250     [propput, id(DISPID_IHTMLLOCATION_HOSTNAME)]
2251     HRESULT hostname([in] BSTR v);
2252
2253     [propget, id(DISPID_IHTMLLOCATION_HOSTNAME)]
2254     HRESULT hostname([retval, out] BSTR *p);
2255
2256     [propput, id(DISPID_IHTMLLOCATION_PORT)]
2257     HRESULT port([in] BSTR v);
2258
2259     [propget, id(DISPID_IHTMLLOCATION_PORT)]
2260     HRESULT port([retval, out] BSTR *p);
2261
2262     [propput, id(DISPID_IHTMLLOCATION_PATHNAME)]
2263     HRESULT pathname([in] BSTR v);
2264
2265     [propget, id(DISPID_IHTMLLOCATION_PATHNAME)]
2266     HRESULT pathname([retval, out] BSTR *p);
2267
2268     [propput, id(DISPID_IHTMLLOCATION_SEARCH)]
2269     HRESULT search([in] BSTR v);
2270
2271     [propget, id(DISPID_IHTMLLOCATION_SEARCH)]
2272     HRESULT search([retval, out] BSTR *p);
2273
2274     [propput, id(DISPID_IHTMLLOCATION_HASH)]
2275     HRESULT hash([in] BSTR v);
2276
2277     [propget, id(DISPID_IHTMLLOCATION_HASH)]
2278     HRESULT hash([retval, out] BSTR *p);
2279
2280     [id(DISPID_IHTMLLOCATION_RELOAD)]
2281     HRESULT reload([defaultvalue(0), in] VARIANT_BOOL flag);
2282
2283     [id(DISPID_IHTMLLOCATION_REPLACE)]
2284     HRESULT replace([in] BSTR bstr);
2285
2286     [id(DISPID_IHTMLLOCATION_ASSIGN)]
2287     HRESULT assign([in] BSTR bstr);
2288
2289     [id(DISPID_IHTMLLOCATION_TOSTRING)]
2290     HRESULT toString([retval, out] BSTR *String);
2291 }
2292
2293 /*****************************************************************************
2294  *    IHTMLEventObj interface
2295  */
2296 [
2297     odl,
2298     oleautomation,
2299     dual,
2300     uuid(3050F32D-98B5-11CF-BB82-00AA00BDCE0B)
2301 ]
2302 interface IHTMLEventObj : IDispatch
2303 {
2304     [propget, id(DISPID_IHTMLEVENTOBJ_SRCELEMENT)]
2305     HRESULT srcElement([retval, out] IHTMLElement **p);
2306
2307     [propget, id(DISPID_IHTMLEVENTOBJ_ALTKEY)]
2308     HRESULT altKey([retval, out] VARIANT_BOOL *p);
2309
2310     [propget, id(DISPID_IHTMLEVENTOBJ_CTRLKEY)]
2311     HRESULT ctrlKey([retval, out] VARIANT_BOOL *p);
2312
2313     [propget, id(DISPID_IHTMLEVENTOBJ_SHIFTKEY)]
2314     HRESULT shiftKey([retval, out] VARIANT_BOOL *p);
2315
2316     [propput, id(DISPID_IHTMLEVENTOBJ_RETURNVALUE)]
2317     HRESULT returnValue([in] VARIANT v);
2318
2319     [propget, id(DISPID_IHTMLEVENTOBJ_RETURNVALUE)]
2320     HRESULT returnValue([retval, out] VARIANT *p);
2321
2322     [propput, id(DISPID_IHTMLEVENTOBJ_CANCELBUBBLE)]
2323     HRESULT cancelBubble([in] VARIANT_BOOL v);
2324
2325     [propget, id(DISPID_IHTMLEVENTOBJ_CANCELBUBBLE)]
2326     HRESULT cancelBubble([retval, out] VARIANT_BOOL *p);
2327
2328     [propget, id(DISPID_IHTMLEVENTOBJ_FROMELEMENT)]
2329     HRESULT fromElement([retval, out] IHTMLElement **p);
2330
2331     [propget, id(DISPID_IHTMLEVENTOBJ_TOELEMENT)]
2332     HRESULT toElement([retval, out] IHTMLElement **p);
2333
2334     [propput, id(DISPID_IHTMLEVENTOBJ_KEYCODE)]
2335     HRESULT keyCode([in] long v);
2336
2337     [propget, id(DISPID_IHTMLEVENTOBJ_KEYCODE)]
2338     HRESULT keyCode([retval, out] long *p);
2339
2340     [propget, id(DISPID_IHTMLEVENTOBJ_BUTTON)]
2341     HRESULT button([retval, out] long *p);
2342
2343     [propget, id(DISPID_IHTMLEVENTOBJ_TYPE)]
2344     HRESULT type([retval, out] BSTR *p);
2345
2346     [propget, id(DISPID_IHTMLEVENTOBJ_QUALIFIER)]
2347     HRESULT qualifier([retval, out] BSTR *p);
2348
2349     [propget, id(DISPID_IHTMLEVENTOBJ_REASON)]
2350     HRESULT reason([retval, out] long *p);
2351
2352     [propget, id(DISPID_IHTMLEVENTOBJ_X)]
2353     HRESULT x([retval, out] long *p);
2354
2355     [propget, id(DISPID_IHTMLEVENTOBJ_Y)]
2356     HRESULT y([retval, out] long *p);
2357
2358     [propget, id(DISPID_IHTMLEVENTOBJ_CLIENTX)]
2359     HRESULT clientX([retval, out] long *p);
2360
2361     [propget, id(DISPID_IHTMLEVENTOBJ_CLIENTY)]
2362     HRESULT clientY([retval, out] long *p);
2363
2364     [propget, id(DISPID_IHTMLEVENTOBJ_OFFSETX)]
2365     HRESULT offsetX([retval, out] long *p);
2366
2367     [propget, id(DISPID_IHTMLEVENTOBJ_OFFSETY)]
2368     HRESULT offsetY([retval, out] long *p);
2369
2370     [propget, id(DISPID_IHTMLEVENTOBJ_SCREENX)]
2371     HRESULT screenX([retval, out] long *p);
2372
2373     [propget, id(DISPID_IHTMLEVENTOBJ_SCREENY)]
2374     HRESULT screenY([retval, out] long *p);
2375
2376     [propget, id(DISPID_IHTMLEVENTOBJ_SRCFILTER)]
2377     HRESULT srcFilter([retval, out] IDispatch **p);
2378 }
2379
2380 /*****************************************************************************
2381  *    IHTMLFramesCollection2 interface
2382  */
2383 [
2384     odl,
2385     oleautomation,
2386     dual,
2387     uuid(332C4426-26CB-11D0-B483-00C04FD90119)
2388 ]
2389 interface IHTMLFramesCollection2 : IDispatch
2390 {
2391     [id(DISPID_IHTMLFRAMESCOLLECTION2_ITEM)]
2392     HRESULT item(
2393         [in] VARIANT *pvarIndex,
2394         [retval, out] VARIANT *pvarResult);
2395
2396     [propget, id(DISPID_IHTMLFRAMESCOLLECTION2_LENGTH)]
2397     HRESULT length([retval, out] long *p);
2398 }
2399
2400 /*****************************************************************************
2401  *    IHTMLScreen interface
2402  */
2403 [
2404     odl,
2405     oleautomation,
2406     dual,
2407     uuid(3050f35C-98B5-11CF-BB82-00AA00BDCE0B)
2408 ]
2409 interface IHTMLScreen : IDispatch
2410 {
2411     [propget, id(DISPID_IHTMLSCREEN_COLORDEPTH)]
2412     HRESULT colorDepth([retval, out] long *p);
2413
2414     [propput, id(DISPID_IHTMLSCREEN_BUFFERDEPTH)]
2415     HRESULT bufferDepth([in] long v);
2416
2417     [propget, id(DISPID_IHTMLSCREEN_BUFFERDEPTH)]
2418     HRESULT bufferDepth([retval, out] long *p);
2419
2420     [propget, id(DISPID_IHTMLSCREEN_WIDTH)]
2421     HRESULT width([retval, out] long *p);
2422
2423     [propget, id(DISPID_IHTMLSCREEN_HEIGHT)]
2424     HRESULT height([retval, out] long *p);
2425
2426     [propput, id(DISPID_IHTMLSCREEN_UPDATEINTERVAL)]
2427     HRESULT updateInterval([in] long v);
2428
2429     [propget, id(DISPID_IHTMLSCREEN_UPDATEINTERVAL)]
2430     HRESULT updateInterval([retval, out] long *p);
2431
2432     [propget, id(DISPID_IHTMLSCREEN_AVAILHEIGHT)]
2433     HRESULT availHeight([retval, out] long *p);
2434
2435     [propget, id(DISPID_IHTMLSCREEN_AVAILWIDTH)]
2436     HRESULT availWidth([retval, out] long *p);
2437
2438     [propget, id(DISPID_IHTMLSCREEN_FONTSMOOTHINGENABLED)]
2439     HRESULT fontSmoothingEnabled([retval, out] VARIANT_BOOL *p);
2440 }
2441
2442 /*****************************************************************************
2443  *    IHTMLWindow2 interface
2444  */
2445 [
2446     odl,
2447     oleautomation,
2448     dual,
2449     uuid(332C4427-26CB-11D0-B483-00C04FD90119)
2450 ]
2451 interface IHTMLWindow2 : IHTMLFramesCollection2
2452 {
2453     [propget, id(DISPID_IHTMLWINDOW2_FRAMES)]
2454     HRESULT frames([retval, out] IHTMLFramesCollection2 **p);
2455
2456     [propput, id(DISPID_IHTMLWINDOW2_DEFAULTSTATUS)]
2457     HRESULT defaultStatus([in] BSTR v);
2458
2459     [propget, id(DISPID_IHTMLWINDOW2_DEFAULTSTATUS)]
2460     HRESULT defaultStatus([retval, out] BSTR *p);
2461
2462     [propput, id(DISPID_IHTMLWINDOW2_STATUS)]
2463     HRESULT status([in] BSTR v);
2464
2465     [propget, id(DISPID_IHTMLWINDOW2_STATUS)]
2466     HRESULT status([retval, out] BSTR *p);
2467
2468     [id(DISPID_IHTMLWINDOW2_SETTIMEOUT)]
2469     HRESULT setTimeout(
2470         [in] BSTR expression,
2471         [in] long msec,
2472         [optional, in] VARIANT *language,
2473         [retval, out] long *timerID);
2474
2475     [id(DISPID_IHTMLWINDOW2_CLEARTIMEOUT)]
2476     HRESULT clearTimeout([in] long timerID);
2477
2478     [id(DISPID_IHTMLWINDOW2_ALERT)]
2479     HRESULT alert([defaultvalue(""), in] BSTR message);
2480
2481     [id(DISPID_IHTMLWINDOW2_CONFIRM)]
2482     HRESULT confirm(
2483         [defaultvalue(""), in] BSTR message,
2484         [retval, out] VARIANT_BOOL *confirmed);
2485
2486     [id(DISPID_IHTMLWINDOW2_PROMPT)]
2487     HRESULT prompt(
2488         [defaultvalue(""), in] BSTR message,
2489         [defaultvalue("undefined"), in] BSTR defstr,
2490         [retval, out] VARIANT *textdata);
2491
2492     [propget, id(DISPID_IHTMLWINDOW2_IMAGE)]
2493     HRESULT Image([retval, out] IHTMLImageElementFactory **p);
2494
2495     [propget, id(DISPID_IHTMLWINDOW2_LOCATION)]
2496     HRESULT location([retval, out] IHTMLLocation **p);
2497
2498     [propget, id(DISPID_IHTMLWINDOW2_HISTORY)]
2499     HRESULT history([retval, out] IOmHistory **p);
2500
2501     [id(DISPID_IHTMLWINDOW2_CLOSE)]
2502     HRESULT close();
2503
2504     [propput, id(DISPID_IHTMLWINDOW2_OPENER)]
2505     HRESULT opener([in] VARIANT v);
2506
2507     [propget, id(DISPID_IHTMLWINDOW2_OPENER)]
2508     HRESULT opener([retval, out] VARIANT *p);
2509
2510     [propget, id(DISPID_IHTMLWINDOW2_NAVIGATOR)]
2511     HRESULT navigator([retval, out] IOmNavigator **p);
2512
2513     [propput, id(DISPID_IHTMLWINDOW2_NAME)]
2514     HRESULT name([in] BSTR v);
2515
2516     [propget, id(DISPID_IHTMLWINDOW2_NAME)]
2517     HRESULT name([retval, out] BSTR *p);
2518
2519     [propget, id(DISPID_IHTMLWINDOW2_PARENT)]
2520     HRESULT parent([retval, out] IHTMLWindow2 **p);
2521
2522     [id(DISPID_IHTMLWINDOW2_OPEN)]
2523     HRESULT open(
2524         [defaultvalue(""), in] BSTR url,
2525         [defaultvalue(""), in] BSTR name,
2526         [defaultvalue(""), in] BSTR features,
2527         [defaultvalue(0), in] VARIANT_BOOL replace,
2528         [retval, out] IHTMLWindow2 **pomWindowResult);
2529
2530     [propget, id(DISPID_IHTMLWINDOW2_SELF)]
2531     HRESULT self([retval, out] IHTMLWindow2 **p);
2532
2533     [propget, id(DISPID_IHTMLWINDOW2_TOP)]
2534     HRESULT top([retval, out] IHTMLWindow2 **p);
2535
2536     [propget, id(DISPID_IHTMLWINDOW2_WINDOW)]
2537     HRESULT window([retval, out] IHTMLWindow2 **p);
2538
2539     [id(DISPID_IHTMLWINDOW2_NAVIGATE)]
2540     HRESULT navigate([in] BSTR url);
2541
2542     [propput, id(DISPID_IHTMLWINDOW2_ONFOCUS)]
2543     HRESULT onfocus([in] VARIANT v);
2544
2545     [propget, id(DISPID_IHTMLWINDOW2_ONFOCUS)]
2546     HRESULT onfocus([retval, out] VARIANT *p);
2547
2548     [propput, id(DISPID_IHTMLWINDOW2_ONBLUR)]
2549     HRESULT onblur([in] VARIANT v);
2550
2551     [propget, id(DISPID_IHTMLWINDOW2_ONBLUR)]
2552     HRESULT onblur([retval, out] VARIANT *p);
2553
2554     [propput, id(DISPID_IHTMLWINDOW2_ONLOAD)]
2555     HRESULT onload([in] VARIANT v);
2556
2557     [propget, id(DISPID_IHTMLWINDOW2_ONLOAD)]
2558     HRESULT onload([retval, out] VARIANT *p);
2559
2560     [propput, id(DISPID_IHTMLWINDOW2_ONBEFOREUNLOAD)]
2561     HRESULT onbeforeunload([in] VARIANT v);
2562
2563     [propget, id(DISPID_IHTMLWINDOW2_ONBEFOREUNLOAD)]
2564     HRESULT onbeforeunload([retval, out] VARIANT *p);
2565
2566     [propput, id(DISPID_IHTMLWINDOW2_ONUNLOAD)]
2567     HRESULT onunload([in] VARIANT v);
2568
2569     [propget, id(DISPID_IHTMLWINDOW2_ONUNLOAD)]
2570     HRESULT onunload([retval, out] VARIANT *p);
2571
2572     [propput, id(DISPID_IHTMLWINDOW2_ONHELP)]
2573     HRESULT onhelp([in] VARIANT v);
2574
2575     [propget, id(DISPID_IHTMLWINDOW2_ONHELP)]
2576     HRESULT onhelp([retval, out] VARIANT *p);
2577
2578     [propput, id(DISPID_IHTMLWINDOW2_ONERROR)]
2579     HRESULT onerror([in] VARIANT v);
2580
2581     [propget, id(DISPID_IHTMLWINDOW2_ONERROR)]
2582     HRESULT onerror([retval, out] VARIANT *p);
2583
2584     [propput, id(DISPID_IHTMLWINDOW2_ONRESIZE)]
2585     HRESULT onresize([in] VARIANT v);
2586
2587     [propget, id(DISPID_IHTMLWINDOW2_ONRESIZE)]
2588     HRESULT onresize([retval, out] VARIANT *p);
2589
2590     [propput, id(DISPID_IHTMLWINDOW2_ONSCROLL)]
2591     HRESULT onscroll([in] VARIANT v);
2592
2593     [propget, id(DISPID_IHTMLWINDOW2_ONSCROLL)]
2594     HRESULT onscroll([retval, out] VARIANT *p);
2595
2596     [propget, id(DISPID_IHTMLWINDOW2_DOCUMENT)]
2597     HRESULT document([retval, out] IHTMLDocument2 **p);
2598
2599     [propget, id(DISPID_IHTMLWINDOW2_EVENT)]
2600     HRESULT event([retval, out] IHTMLEventObj **p);
2601
2602     [propget, id(DISPID_IHTMLWINDOW2__NEWENUM)]
2603     HRESULT _newEnum([retval, out] IUnknown **p);
2604
2605     [id(DISPID_IHTMLWINDOW2_SHOWMODALDIALOG)]
2606     HRESULT showModalDialog(
2607         [in] BSTR dialog,
2608         [optional, in] VARIANT *varArgIn,
2609         [optional, in] VARIANT *varOptions,
2610         [retval, out] VARIANT *varArgOut);
2611
2612     [id(DISPID_IHTMLWINDOW2_SHOWHELP)]
2613     HRESULT showHelp(
2614         [in] BSTR helpURL,
2615         [optional, in] VARIANT helpArg,
2616         [defaultvalue(""), in] BSTR features);
2617
2618     [propget, id(DISPID_IHTMLWINDOW2_SCREEN)]
2619     HRESULT screen([retval, out] IHTMLScreen **p);
2620
2621     [propget, id(DISPID_IHTMLWINDOW2_OPTION)]
2622     HRESULT Option([retval, out] IHTMLOptionElementFactory **p);
2623
2624     [id(DISPID_IHTMLWINDOW2_FOCUS)]
2625     HRESULT focus();
2626
2627     [propget, id(DISPID_IHTMLWINDOW2_CLOSED)]
2628     HRESULT closed([retval, out] VARIANT_BOOL *p);
2629
2630     [id(DISPID_IHTMLWINDOW2_BLUR)]
2631     HRESULT blur();
2632
2633     [id(DISPID_IHTMLWINDOW2_SCROLL)]
2634     HRESULT scroll([in] long x, [in] long y);
2635
2636     [propget, id(DISPID_IHTMLWINDOW2_CLIENTINFORMATION)]
2637     HRESULT clientInformation([retval, out] IOmNavigator **p);
2638
2639     [id(DISPID_IHTMLWINDOW2_SETINTERVAL)]
2640     HRESULT setInterval([
2641         in] BSTR expression,
2642         [in] long msec,
2643         [optional, in] VARIANT *language,
2644         [retval, out] long *timerID);
2645
2646     [id(DISPID_IHTMLWINDOW2_CLEARINTERVAL)]
2647     HRESULT clearInterval([in] long timerID);
2648
2649     [propput, id(DISPID_IHTMLWINDOW2_OFFSCREENBUFFERING)]
2650     HRESULT offscreenBuffering([in] VARIANT v);
2651
2652     [propget, id(DISPID_IHTMLWINDOW2_OFFSCREENBUFFERING)]
2653     HRESULT offscreenBuffering([retval, out] VARIANT *p);
2654
2655     [id(DISPID_IHTMLWINDOW2_EXECSCRIPT)]
2656     HRESULT execScript(
2657         [in] BSTR scode,
2658         [defaultvalue("JScript"), in] BSTR language,
2659         [retval, out] VARIANT *pvarRet);
2660
2661     [id(DISPID_IHTMLWINDOW2_TOSTRING)]
2662     HRESULT toString([retval, out] BSTR *String);
2663
2664     [id(DISPID_IHTMLWINDOW2_SCROLLBY)]
2665     HRESULT scrollBy([in] long x, [in] long y);
2666
2667     [id(DISPID_IHTMLWINDOW2_SCROLLTO)]
2668     HRESULT scrollTo([in] long x, [in] long y);
2669
2670     [id(DISPID_IHTMLWINDOW2_MOVETO)]
2671     HRESULT moveTo([in] long x, [in] long y);
2672
2673     [id(DISPID_IHTMLWINDOW2_MOVEBY)]
2674     HRESULT moveBy([in] long x, [in] long y);
2675
2676     [id(DISPID_IHTMLWINDOW2_RESIZETO)]
2677     HRESULT resizeTo([in] long x, [in] long y);
2678
2679     [id(DISPID_IHTMLWINDOW2_RESIZEBY)]
2680     HRESULT resizeBy([in] long x, [in] long y);
2681
2682     [propget, id(DISPID_IHTMLWINDOW2_EXTERNAL)]
2683     HRESULT external([retval, out] IDispatch **p);
2684 }
2685
2686 /*****************************************************************************
2687  *    IHTMLDocument interface
2688  */
2689 [
2690     odl,
2691     oleautomation,
2692     dual,
2693     uuid(626FC520-A41E-11CF-A731-00A0C9082637)
2694 ]
2695 interface IHTMLDocument : IDispatch
2696 {
2697     [propget, id(DISPID_IHTMLDOCUMENT_SCRIPT)]
2698     HRESULT Script([retval, out] IDispatch **p);
2699 }
2700
2701 /*****************************************************************************
2702  *    IHTMLDocument2 interface
2703  */
2704 [
2705     odl,
2706     oleautomation,
2707     dual,
2708     uuid(332C4425-26CB-11D0-B483-00C04FD90119)
2709 ]
2710 interface IHTMLDocument2 : IHTMLDocument
2711 {
2712     [propget, id(DISPID_IHTMLDOCUMENT2_ALL)]
2713     HRESULT all([retval, out] IHTMLElementCollection **p);
2714
2715     [propget, id(DISPID_IHTMLDOCUMENT2_BODY)]
2716     HRESULT body([retval, out] IHTMLElement **p);
2717
2718     [propget, id(DISPID_IHTMLDOCUMENT2_ACTIVEELEMENT)]
2719     HRESULT activeElement([retval, out] IHTMLElement **p);
2720
2721     [propget, id(DISPID_IHTMLDOCUMENT2_IMAGES)]
2722     HRESULT images([retval, out] IHTMLElementCollection **p);
2723
2724     [propget, id(DISPID_IHTMLDOCUMENT2_APPLETS)]
2725     HRESULT applets([retval, out] IHTMLElementCollection **p);
2726
2727     [propget, id(DISPID_IHTMLDOCUMENT2_LINKS)]
2728     HRESULT links([retval, out] IHTMLElementCollection **p);
2729
2730     [propget, id(DISPID_IHTMLDOCUMENT2_FORMS)]
2731     HRESULT forms([retval, out] IHTMLElementCollection **p);
2732
2733     [propget, id(DISPID_IHTMLDOCUMENT2_ANCHORS)]
2734     HRESULT anchors([retval, out] IHTMLElementCollection **p);
2735
2736     [propput, id(DISPID_IHTMLDOCUMENT2_TITLE)]
2737     HRESULT title([in] BSTR v);
2738
2739     [propget, id(DISPID_IHTMLDOCUMENT2_TITLE)]
2740     HRESULT title([retval, out] BSTR *p);
2741
2742     [propget, id(DISPID_IHTMLDOCUMENT2_SCRIPTS)]
2743     HRESULT scripts([retval, out] IHTMLElementCollection **p);
2744
2745     [propput, id(DISPID_IHTMLDOCUMENT2_DESIGNMODE)]
2746     HRESULT designMode([in] BSTR v);
2747
2748     [propget, id(DISPID_IHTMLDOCUMENT2_DESIGNMODE)]
2749     HRESULT designMode([retval, out] BSTR *p);
2750
2751     [propget, id(DISPID_IHTMLDOCUMENT2_SELECTION)]
2752     HRESULT selection([retval, out] IHTMLSelectionObject **p);
2753
2754     [propget, id(DISPID_IHTMLDOCUMENT2_READYSTATE)]
2755      HRESULT readyState([retval, out] BSTR *p);
2756
2757     [propget, id(DISPID_IHTMLDOCUMENT2_FRAMES)]
2758     HRESULT frames([retval, out] IHTMLFramesCollection2 **p);
2759
2760     [propget, id(DISPID_IHTMLDOCUMENT2_EMBEDS)]
2761     HRESULT embeds([retval, out] IHTMLElementCollection **p);
2762
2763     [propget, id(DISPID_IHTMLDOCUMENT2_PLUGINS)]
2764     HRESULT plugins([retval, out] IHTMLElementCollection **p);
2765
2766     [propput, id(DISPID_IHTMLDOCUMENT2_ALINKCOLOR)]
2767     HRESULT alinkColor([in] VARIANT v);
2768
2769     [propget, id(DISPID_IHTMLDOCUMENT2_ALINKCOLOR)]
2770     HRESULT alinkColor([retval, out] VARIANT *p);
2771
2772     [propput, id(DISPID_IHTMLDOCUMENT2_BGCOLOR)]
2773     HRESULT bgColor([in] VARIANT v);
2774
2775     [propget, id(DISPID_IHTMLDOCUMENT2_BGCOLOR)]
2776     HRESULT bgColor([retval, out] VARIANT *p);
2777
2778     [propput, id(DISPID_IHTMLDOCUMENT2_FGCOLOR)]
2779     HRESULT fgColor([in] VARIANT v);
2780
2781     [propget, id(DISPID_IHTMLDOCUMENT2_FGCOLOR)]
2782     HRESULT fgColor([retval, out] VARIANT *p);
2783
2784     [propput, id(DISPID_IHTMLDOCUMENT2_LINKCOLOR)]
2785     HRESULT linkColor([in] VARIANT v);
2786
2787     [propget, id(DISPID_IHTMLDOCUMENT2_LINKCOLOR)]
2788     HRESULT linkColor([retval, out] VARIANT *p);
2789
2790     [propput, id(DISPID_IHTMLDOCUMENT2_VLINKCOLOR)]
2791     HRESULT vlinkColor([in] VARIANT v);
2792
2793     [propget, id(DISPID_IHTMLDOCUMENT2_VLINKCOLOR)]
2794     HRESULT vlinkColor([retval, out] VARIANT *p);
2795
2796     [propget, id(DISPID_IHTMLDOCUMENT2_REFERRER)]
2797     HRESULT referrer([retval, out] BSTR *p);
2798
2799     [propget, id(DISPID_IHTMLDOCUMENT2_LOCATION)]
2800     HRESULT location([retval, out] IHTMLLocation **p);
2801
2802     [propget, id(DISPID_IHTMLDOCUMENT2_LASTMODIFIED)]
2803     HRESULT lastModified([retval, out] BSTR *p);
2804
2805     [propput, id(DISPID_IHTMLDOCUMENT2_URL)]
2806     HRESULT URL([in] BSTR v);
2807
2808     [propget, id(DISPID_IHTMLDOCUMENT2_URL)]
2809     HRESULT URL([retval, out] BSTR *p);
2810
2811     [propput, id(DISPID_IHTMLDOCUMENT2_DOMAIN)]
2812     HRESULT domain([in] BSTR v);
2813
2814     [propget, id(DISPID_IHTMLDOCUMENT2_DOMAIN)]
2815     HRESULT domain([retval, out] BSTR *p);
2816
2817     [propput, id(DISPID_IHTMLDOCUMENT2_COOKIE)]
2818     HRESULT cookie([in] BSTR v);
2819
2820     [propget, id(DISPID_IHTMLDOCUMENT2_COOKIE)]
2821     HRESULT cookie([retval, out] BSTR *p);
2822
2823     [propput, id(DISPID_IHTMLDOCUMENT2_EXPANDO)]
2824     HRESULT expando([in] VARIANT_BOOL v);
2825
2826     [propget, id(DISPID_IHTMLDOCUMENT2_EXPANDO)]
2827     HRESULT expando([retval, out] VARIANT_BOOL *p);
2828
2829     [propput, id(DISPID_IHTMLDOCUMENT2_CHARSET)]
2830      HRESULT charset([in] BSTR v);
2831
2832     [propget, id(DISPID_IHTMLDOCUMENT2_CHARSET)]
2833     HRESULT charset([retval, out] BSTR *p);
2834
2835     [propput, id(DISPID_IHTMLDOCUMENT2_DEFAULTCHARSET)]
2836     HRESULT defaultCharset([in] BSTR v);
2837
2838     [propget, id(DISPID_IHTMLDOCUMENT2_DEFAULTCHARSET)]
2839     HRESULT defaultCharset([retval, out] BSTR *p);
2840
2841     [propget, id(DISPID_IHTMLDOCUMENT2_MIMETYPE)]
2842     HRESULT mimeType([retval, out] BSTR *p);
2843
2844     [propget, id(DISPID_IHTMLDOCUMENT2_FILESIZE)]
2845     HRESULT fileSize([retval, out] BSTR *p);
2846
2847     [propget, id(DISPID_IHTMLDOCUMENT2_FILECREATEDDATE)]
2848     HRESULT fileCreatedDate([retval, out] BSTR *p);
2849
2850     [propget, id(DISPID_IHTMLDOCUMENT2_FILEMODIFIEDDATE)]
2851     HRESULT fileModifiedDate([retval, out] BSTR *p);
2852
2853     [propget, id(DISPID_IHTMLDOCUMENT2_FILEUPDATEDDATE)]
2854     HRESULT fileUpdatedDate([retval, out] BSTR *p);
2855
2856     [propget, id(DISPID_IHTMLDOCUMENT2_SECURITY)]
2857     HRESULT security([retval, out] BSTR *p);
2858
2859     [propget, id(DISPID_IHTMLDOCUMENT2_PROTOCOL)]
2860     HRESULT protocol([retval, out] BSTR *p);
2861
2862     [propget, id(DISPID_IHTMLDOCUMENT2_NAMEPROP)]
2863      HRESULT nameProp([retval, out] BSTR *p);
2864
2865     [vararg, id(DISPID_IHTMLDOCUMENT2_WRITE)]
2866     HRESULT write([in] SAFEARRAY *psarray);
2867
2868     [vararg, id(DISPID_IHTMLDOCUMENT2_WRITELN)]
2869     HRESULT writeln([in] SAFEARRAY *psarray);
2870
2871     [id(DISPID_IHTMLDOCUMENT2_OPEN)]
2872     HRESULT open(
2873         [defaultvalue("text/html"), in] BSTR url,
2874         [optional, in] VARIANT name,
2875         [optional, in] VARIANT features,
2876         [optional, in] VARIANT replace,
2877         [retval, out]  IDispatch **pomWindowResult);
2878
2879     [id(DISPID_IHTMLDOCUMENT2_CLOSE)]
2880     HRESULT close();
2881
2882     [id(DISPID_IHTMLDOCUMENT2_CLEAR)]
2883     HRESULT clear();
2884
2885     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDSUPPORTED)]
2886     HRESULT queryCommandSupported(
2887         [in] BSTR cmdID,
2888         [retval, out] VARIANT_BOOL *pfRet);
2889
2890     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDENABLED)]
2891     HRESULT queryCommandEnabled(
2892         [in] BSTR cmdID,
2893         [retval, out] VARIANT_BOOL *pfRet);
2894
2895     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDSTATE)]
2896     HRESULT queryCommandState(
2897         [in] BSTR cmdID,
2898         [retval, out] VARIANT_BOOL *pfRet);
2899
2900     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDINDETERM)]
2901     HRESULT queryCommandIndeterm(
2902         [in] BSTR cmdID,
2903         [retval, out] VARIANT_BOOL *pfRet);
2904
2905     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDTEXT)]
2906     HRESULT queryCommandText(
2907         [in] BSTR cmdID,
2908         [retval, out] BSTR *pcmdText);
2909
2910     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDVALUE)]
2911     HRESULT queryCommandValue(
2912         [in] BSTR cmdID,
2913         [retval, out] VARIANT *pcmdValue);
2914
2915     [id(DISPID_IHTMLDOCUMENT2_EXECCOMMAND)]
2916     HRESULT execCommand(
2917         [in] BSTR cmdID,
2918         [defaultvalue(0), in] VARIANT_BOOL showUI,
2919         [optional, in] VARIANT value,
2920         [retval, out] VARIANT_BOOL *pfRet);
2921
2922     [id(DISPID_IHTMLDOCUMENT2_EXECCOMMANDSHOWHELP)]
2923     HRESULT execCommandShowHelp(
2924         [in] BSTR cmdID,
2925         [retval, out] VARIANT_BOOL *pfRet);
2926
2927     [id(DISPID_IHTMLDOCUMENT2_CREATEELEMENT)]
2928      HRESULT createElement(
2929         [in] BSTR eTag,
2930         [retval, out] IHTMLElement **newElem);
2931
2932     [propput, id(DISPID_IHTMLDOCUMENT2_ONHELP)]
2933     HRESULT onhelp([in] VARIANT v);
2934
2935     [propget, id(DISPID_IHTMLDOCUMENT2_ONHELP)]
2936     HRESULT onhelp([retval, out] VARIANT *p);
2937
2938     [propput, id(DISPID_IHTMLDOCUMENT2_ONCLICK)]
2939     HRESULT onclick([in] VARIANT v);
2940
2941     [propget, id(DISPID_IHTMLDOCUMENT2_ONCLICK)]
2942     HRESULT onclick([retval, out] VARIANT *p);
2943
2944     [propput, id(DISPID_IHTMLDOCUMENT2_ONDBLCLICK)]
2945     HRESULT ondblclick([in] VARIANT v);
2946
2947     [propget, id(DISPID_IHTMLDOCUMENT2_ONDBLCLICK)]
2948     HRESULT ondblclick([retval, out] VARIANT *p);
2949
2950     [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYUP)]
2951     HRESULT onkeyup([in] VARIANT v);
2952
2953     [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYUP)]
2954     HRESULT onkeyup([retval, out] VARIANT *p);
2955
2956     [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYDOWN)]
2957     HRESULT onkeydown([in] VARIANT v);
2958
2959     [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYDOWN)]
2960     HRESULT onkeydown([retval, out] VARIANT *p);
2961
2962     [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYPRESS)]
2963      HRESULT onkeypress([in] VARIANT v);
2964
2965     [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYPRESS)]
2966     HRESULT onkeypress([retval, out] VARIANT *p);
2967
2968     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEUP)]
2969     HRESULT onmouseup([in] VARIANT v);
2970
2971     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEUP)]
2972     HRESULT onmouseup([retval, out] VARIANT *p);
2973
2974     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEDOWN)]
2975     HRESULT onmousedown([in] VARIANT v);
2976
2977     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEDOWN)]
2978     HRESULT onmousedown([retval, out] VARIANT *p);
2979
2980     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEMOVE)]
2981     HRESULT onmousemove([in] VARIANT v);
2982
2983     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEMOVE)]
2984     HRESULT onmousemove([retval, out] VARIANT *p);
2985
2986     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOUT)]
2987     HRESULT onmouseout([in] VARIANT v);
2988
2989     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOUT)]
2990     HRESULT onmouseout([retval, out] VARIANT *p);
2991
2992     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOVER)]
2993     HRESULT onmouseover([in] VARIANT v);
2994
2995     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOVER)]
2996     HRESULT onmouseover([retval, out] VARIANT *p);
2997
2998     [propput, id(DISPID_IHTMLDOCUMENT2_ONREADYSTATECHANGE)]
2999     HRESULT onreadystatechange([in] VARIANT v);
3000
3001     [propget, id(DISPID_IHTMLDOCUMENT2_ONREADYSTATECHANGE)]
3002     HRESULT onreadystatechange([retval, out] VARIANT *p);
3003
3004     [propput, id(DISPID_IHTMLDOCUMENT2_ONAFTERUPDATE)]
3005     HRESULT onafterupdate([in] VARIANT v);
3006
3007     [propget, id(DISPID_IHTMLDOCUMENT2_ONAFTERUPDATE)]
3008     HRESULT onafterupdate([retval, out] VARIANT *p);
3009
3010     [propput, id(DISPID_IHTMLDOCUMENT2_ONROWEXIT)]
3011     HRESULT onrowexit([in] VARIANT v);
3012
3013     [propget, id(DISPID_IHTMLDOCUMENT2_ONROWEXIT)]
3014     HRESULT onrowexit([retval, out] VARIANT *p);
3015
3016     [propput, id(DISPID_IHTMLDOCUMENT2_ONROWENTER)]
3017     HRESULT onrowenter([in] VARIANT v);
3018
3019     [propget, id(DISPID_IHTMLDOCUMENT2_ONROWENTER)]
3020     HRESULT onrowenter([retval, out] VARIANT *p);
3021
3022     [propput, id(DISPID_IHTMLDOCUMENT2_ONDRAGSTART)]
3023     HRESULT ondragstart([in] VARIANT v);
3024
3025     [propget, id(DISPID_IHTMLDOCUMENT2_ONDRAGSTART)]
3026     HRESULT ondragstart([retval, out] VARIANT *p);
3027
3028     [propput, id(DISPID_IHTMLDOCUMENT2_ONSELECTSTART)]
3029     HRESULT onselectstart([in] VARIANT v);
3030
3031     [propget, id(DISPID_IHTMLDOCUMENT2_ONSELECTSTART)]
3032     HRESULT onselectstart([retval, out] VARIANT *p);
3033
3034     [id(DISPID_IHTMLDOCUMENT2_ELEMENTFROMPOINT)]
3035     HRESULT elementFromPoint(
3036         [in] long x,
3037         [in] long y,
3038         [retval, out] IHTMLElement **elementHit);
3039
3040     [propget, id(DISPID_IHTMLDOCUMENT2_PARENTWINDOW)]
3041     HRESULT parentWindow([retval, out] IHTMLWindow2 **p);
3042
3043     [propget, id(DISPID_IHTMLDOCUMENT2_STYLESHEETS)]
3044     HRESULT styleSheets([retval, out] IHTMLStyleSheetsCollection **p);
3045
3046     [propput, id(DISPID_IHTMLDOCUMENT2_ONBEFOREUPDATE)]
3047     HRESULT onbeforeupdate([in] VARIANT v);
3048
3049     [propget, id(DISPID_IHTMLDOCUMENT2_ONBEFOREUPDATE)]
3050     HRESULT onbeforeupdate([retval, out] VARIANT *p);
3051
3052     [propput, id(DISPID_IHTMLDOCUMENT2_ONERRORUPDATE)]
3053     HRESULT onerrorupdate([in] VARIANT v);
3054
3055     [propget, id(DISPID_IHTMLDOCUMENT2_ONERRORUPDATE)]
3056     HRESULT onerrorupdate([retval, out] VARIANT *p);
3057
3058     [id(DISPID_IHTMLDOCUMENT2_TOSTRING)]
3059     HRESULT toString([retval, out] BSTR *String);
3060
3061     [id(DISPID_IHTMLDOCUMENT2_CREATESTYLESHEET)]
3062     HRESULT createStyleSheet(
3063         [defaultvalue(""), in] BSTR bstrHref,
3064         [defaultvalue(-1), in] long lIndex,
3065         [retval, out] IHTMLStyleSheet **ppnewStyleSheet);
3066 }
3067
3068 /*****************************************************************************
3069  *    IHTMLDocument3 interface
3070  */
3071 [
3072     odl,
3073     oleautomation,
3074     dual,
3075     uuid(3050f485-98b5-11cf-bb82-00aa00bdce0b)
3076 ]
3077 interface IHTMLDocument3 : IDispatch
3078 {
3079     [id(DISPID_IHTMLDOCUMENT3_RELEASECAPTURE)]
3080     HRESULT releaseCapture();
3081
3082     [id(DISPID_IHTMLDOCUMENT3_RECALC)]
3083     HRESULT recalc([defaultvalue(0), in] VARIANT_BOOL fForce);
3084
3085     [id(DISPID_IHTMLDOCUMENT3_CREATETEXTNODE)]
3086     HRESULT createTextNode([in] BSTR text,
3087                            [retval, out] IHTMLDOMNode **newTextNode);
3088
3089     [propget, id(DISPID_IHTMLDOCUMENT3_DOCUMENTELEMENT)]
3090     HRESULT documentElement([retval, out] IHTMLElement **p);
3091
3092     [propget, id(DISPID_IHTMLDOCUMENT3_UNIQUEID), hidden]
3093     HRESULT uniqueID([retval, out] BSTR *p);
3094     
3095     [id(DISPID_IHTMLDOCUMENT3_ATTACHEVENT)]
3096     HRESULT attachEvent([in] BSTR event,
3097                         [in] IDispatch* pDisp,
3098                         [retval, out] VARIANT_BOOL *pfResult);
3099
3100     [id(DISPID_IHTMLDOCUMENT3_DETACHEVENT)]
3101     HRESULT detachEvent([in] BSTR event,
3102                         [in] IDispatch *pDisp);
3103
3104     [propput, id(DISPID_IHTMLDOCUMENT3_ONROWSDELETE)/*, displaybind, bindable*/]
3105     HRESULT onrowsdelete([in] VARIANT v);
3106
3107     [propget, id(DISPID_IHTMLDOCUMENT3_ONROWSDELETE)/*, displaybind, bindable*/]
3108     HRESULT onrowsdelete([retval, out] VARIANT *p);
3109
3110     [propput, id(DISPID_IHTMLDOCUMENT3_ONROWSINSERTED)/*, displaybind, bindable*/]
3111     HRESULT onrowsinserted([in] VARIANT v);
3112
3113     [propget, id(DISPID_IHTMLDOCUMENT3_ONROWSINSERTED)/*, displaybind, bindable*/]
3114     HRESULT onrowsinserted([retval, out] VARIANT *p);
3115
3116     [propput, id(DISPID_IHTMLDOCUMENT3_ONCELLCHANGE)/*, displaybind, bindable*/]
3117     HRESULT oncellchange([in] VARIANT v);
3118
3119     [propget, id(DISPID_IHTMLDOCUMENT3_ONCELLCHANGE)/*, displaybind, bindable*/]
3120     HRESULT oncellchange([retval, out] VARIANT *p);
3121
3122     [propput, id(DISPID_IHTMLDOCUMENT3_ONDATASETCHANGED)/*, displaybind, bindable*/]
3123     HRESULT ondatasetchanged([in] VARIANT v);
3124
3125     [propget, id(DISPID_IHTMLDOCUMENT3_ONDATASETCHANGED)/*, displaybind, bindable*/]
3126     HRESULT ondatasetchanged([retval, out] VARIANT *p);
3127
3128     [propput, id(DISPID_IHTMLDOCUMENT3_ONDATAAVAILABLE)/*, displaybind, bindable*/]
3129     HRESULT ondataavailable([in] VARIANT v);
3130
3131     [propget, id(DISPID_IHTMLDOCUMENT3_ONDATAAVAILABLE)/*, displaybind, bindable*/]
3132     HRESULT ondataavailable([retval, out] VARIANT * p);
3133
3134     [propput, id(DISPID_IHTMLDOCUMENT3_ONDATASETCOMPLETE)/*, displaybind, bindable*/]
3135     HRESULT ondatasetcomplete([in] VARIANT v);
3136
3137     [propget, id(DISPID_IHTMLDOCUMENT3_ONDATASETCOMPLETE)/*, displaybind, bindable*/]
3138     HRESULT ondatasetcomplete([retval, out] VARIANT *p);
3139
3140     [propput, id(DISPID_IHTMLDOCUMENT3_ONPROPERTYCHANGE)/*, displaybind, bindable*/]
3141     HRESULT onpropertychange([in] VARIANT v);
3142
3143     [propget, id(DISPID_IHTMLDOCUMENT3_ONPROPERTYCHANGE)/*, displaybind, bindable*/]
3144     HRESULT onpropertychange([retval, out] VARIANT *p);
3145
3146     [propput, id(DISPID_IHTMLDOCUMENT3_DIR)]
3147     HRESULT dir([in] BSTR v);
3148
3149     [propget, id(DISPID_IHTMLDOCUMENT3_DIR)]
3150     HRESULT dir([retval, out] BSTR *p);
3151
3152     [propput, id(DISPID_IHTMLDOCUMENT3_ONCONTEXTMENU)/*, displaybind, bindable*/]
3153     HRESULT oncontextmenu([in] VARIANT v);
3154
3155     [propget, id(DISPID_IHTMLDOCUMENT3_ONCONTEXTMENU)/*, displaybind, bindable*/]
3156     HRESULT oncontextmenu([retval, out] VARIANT *p);
3157
3158     [propput, id(DISPID_IHTMLDOCUMENT3_ONSTOP)/*, displaybind, bindable*/]
3159     HRESULT onstop([in] VARIANT v);
3160
3161     [propget, id(DISPID_IHTMLDOCUMENT3_ONSTOP)/*, displaybind, bindable*/]
3162     HRESULT onstop([retval, out] VARIANT *p);
3163
3164     [id(DISPID_IHTMLDOCUMENT3_CREATEDOCUMENTFRAGMENT)]
3165     HRESULT createDocumentFragment([retval, out] IHTMLDocument2 **pNewDoc);
3166
3167     [propget, id(DISPID_IHTMLDOCUMENT3_PARENTDOCUMENT), hidden, restricted]
3168     HRESULT parentDocument([retval, out] IHTMLDocument2 **p);
3169
3170     [propput, id(DISPID_IHTMLDOCUMENT3_ENABLEDOWNLOAD), hidden, restricted]
3171     HRESULT enableDownload([in] VARIANT_BOOL v);
3172
3173     [propget, id(DISPID_IHTMLDOCUMENT3_ENABLEDOWNLOAD), hidden, restricted]
3174     HRESULT enableDownload([retval, out] VARIANT_BOOL *p);
3175
3176     [propput, id(DISPID_IHTMLDOCUMENT3_BASEURL), hidden, restricted]
3177     HRESULT baseUrl([in] BSTR v);
3178
3179     [propget, id(DISPID_IHTMLDOCUMENT3_BASEURL), hidden, restricted]
3180     HRESULT baseUrl([retval, out] BSTR *p);
3181
3182     [propget, id(DISPID_IHTMLDOCUMENT3_CHILDNODES)]
3183     HRESULT childNodes([retval, out] IDispatch **p);
3184
3185     [propput, id(DISPID_IHTMLDOCUMENT3_INHERITSTYLESHEETS), hidden, restricted]
3186     HRESULT inheritStyleSheets([in] VARIANT_BOOL v);
3187
3188     [propget, id(DISPID_IHTMLDOCUMENT3_INHERITSTYLESHEETS), hidden, restricted]
3189     HRESULT inheritStyleSheets([retval, out] VARIANT_BOOL *p);
3190
3191     [propput, id(DISPID_IHTMLDOCUMENT3_ONBEFOREEDITFOCUS)/*, displaybind, bindable*/]
3192     HRESULT onbeforeeditfocus([in] VARIANT v);
3193
3194     [propget, id(DISPID_IHTMLDOCUMENT3_ONBEFOREEDITFOCUS)/*, displaybind, bindable*/]
3195     HRESULT onbeforeeditfocus([retval, out] VARIANT *p);
3196
3197     [id(DISPID_IHTMLDOCUMENT3_GETELEMENTSBYNAME)]
3198     HRESULT getElementsByName([in] BSTR v,
3199                               [retval, out] IHTMLElementCollection **pelColl);
3200
3201     [id(DISPID_IHTMLDOCUMENT3_GETELEMENTBYID)]
3202     HRESULT getElementById([in] BSTR v,
3203                            [retval, out] IHTMLElement **pel);
3204
3205     [id(DISPID_IHTMLDOCUMENT3_GETELEMENTSBYTAGNAME)]
3206     HRESULT getElementsByTagName([in] BSTR v,
3207                                  [retval, out] IHTMLElementCollection **pelColl);
3208 }
3209
3210
3211 /*****************************************************************************
3212  *    HTMLDocument coclass
3213  */
3214 [
3215     uuid(25336920-03F9-11cf-8FD0-00AA00686F13)
3216 ]
3217 coclass HTMLDocument
3218 {
3219     [default]         interface IHTMLDocument2;
3220     [source, default] dispinterface HTMLDocumentEvents;
3221 };
3222
3223 } /* library MSHTML */