Added some declarations to mshtml.idl.
[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  *    IHTMLRenderStyle interface
1129  */
1130 [
1131     odl,
1132     oleautomation,
1133     dual,
1134     uuid(3050f6ae-98b5-11cf-bb82-00aa00bdce0b)
1135 ]
1136 interface IHTMLRenderStyle : IDispatch
1137 {
1138     [propput, id(DISPID_IHTMLRENDERSTYLE_TEXTLINETHROUGHSTYLE), displaybind, bindable]
1139     HRESULT textLineThroughStyle([in] BSTR v);
1140
1141     [propget, id(DISPID_IHTMLRENDERSTYLE_TEXTLINETHROUGHSTYLE), displaybind, bindable]
1142     HRESULT textLineThroughStyle([retval, out] BSTR *p);
1143
1144     [propput, id(DISPID_IHTMLRENDERSTYLE_TEXTUNDERLINESTYLE), displaybind, bindable]
1145     HRESULT textUnderlineStyle([in] BSTR v);
1146
1147     [propget, id(DISPID_IHTMLRENDERSTYLE_TEXTUNDERLINESTYLE), displaybind, bindable]
1148     HRESULT textUnderlineStyle([retval, out] BSTR *p);
1149
1150     [propput, id(DISPID_IHTMLRENDERSTYLE_TEXTEFFECT), displaybind, bindable]
1151     HRESULT textEffect([in] BSTR v);
1152
1153     [propget, id(DISPID_IHTMLRENDERSTYLE_TEXTEFFECT), displaybind, bindable]
1154     HRESULT textEffect([retval, out] BSTR *p);
1155
1156     [propput, id(DISPID_IHTMLRENDERSTYLE_TEXTCOLOR), displaybind, bindable]
1157     HRESULT textColor([in] VARIANT v);
1158
1159     [propget, id(DISPID_IHTMLRENDERSTYLE_TEXTCOLOR), displaybind, bindable]
1160     HRESULT textColor([retval, out] VARIANT *p);
1161
1162     [propput, id(DISPID_IHTMLRENDERSTYLE_TEXTBACKGROUNDCOLOR), displaybind, bindable]
1163     HRESULT textBackgroundColor([in] VARIANT v);
1164
1165     [propget, id(DISPID_IHTMLRENDERSTYLE_TEXTBACKGROUNDCOLOR), displaybind, bindable]
1166     HRESULT textBackgroundColor([retval, out] VARIANT *p);
1167
1168     [propput, id(DISPID_IHTMLRENDERSTYLE_TEXTDECORATIONCOLOR), displaybind, bindable]
1169     HRESULT textDecorationColor([in] VARIANT v);
1170
1171     [propget, id(DISPID_IHTMLRENDERSTYLE_TEXTDECORATIONCOLOR), displaybind, bindable]
1172     HRESULT textDecorationColor([retval, out] VARIANT *p);
1173
1174     [propput, id(DISPID_IHTMLRENDERSTYLE_RENDERINGPRIORITY), displaybind, bindable]
1175     HRESULT renderingPriority([in] long v);
1176
1177     [propget, id(DISPID_IHTMLRENDERSTYLE_RENDERINGPRIORITY), displaybind, bindable]
1178     HRESULT renderingPriority([retval, out] long *p);
1179
1180     [propput, id(DISPID_IHTMLRENDERSTYLE_DEFAULTTEXTSELECTION), displaybind, bindable]
1181     HRESULT defaultTextSelection([in] BSTR v);
1182
1183     [propget, id(DISPID_IHTMLRENDERSTYLE_DEFAULTTEXTSELECTION), displaybind, bindable]
1184     HRESULT defaultTextSelection([retval, out] BSTR *p);
1185
1186     [propput, id(DISPID_IHTMLRENDERSTYLE_TEXTDECORATION), displaybind, bindable]
1187     HRESULT textDecoration([in] BSTR v);
1188
1189     [propget, id(DISPID_IHTMLRENDERSTYLE_TEXTDECORATION), displaybind, bindable]
1190     HRESULT textDecoration([retval, out] BSTR *p);
1191 }
1192
1193 /*****************************************************************************
1194  *    IHTMLDOMNode interface
1195  */
1196 [
1197     odl,
1198     oleautomation,
1199     dual,
1200     uuid(3050f5da-98b5-11cf-bb82-00aa00bdce0b)
1201 ]
1202 interface IHTMLDOMNode : IDispatch
1203 {
1204     [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)]
1205     HRESULT nodeType([retval, out] long *p);
1206
1207     [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)]
1208     HRESULT parentNode([retval, out] IHTMLDOMNode **p);
1209
1210     [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)]
1211     HRESULT hasChildNodes([retval, out] VARIANT_BOOL *fChildren);
1212
1213     [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)]
1214     HRESULT childNodes([retval, out] IDispatch **p);
1215
1216     [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)]
1217     HRESULT attributes([retval, out] IDispatch **p);
1218
1219     [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)]
1220     HRESULT insertBefore([in] IHTMLDOMNode *newChild,
1221                          [optional, in] VARIANT refChild,
1222                          [retval, out] IHTMLDOMNode **node);
1223
1224     [id(DISPID_IHTMLDOMNODE_REMOVECHILD)]
1225     HRESULT removeChild([in] IHTMLDOMNode *oldChild,
1226                         [retval, out] IHTMLDOMNode **node);
1227
1228     [id(DISPID_IHTMLDOMNODE_REPLACECHILD)]
1229     HRESULT replaceChild([in] IHTMLDOMNode *newChild,
1230                          [in] IHTMLDOMNode* oldChild,
1231                          [retval, out] IHTMLDOMNode **node);
1232
1233     [id(DISPID_IHTMLDOMNODE_CLONENODE)]
1234     HRESULT cloneNode([in] VARIANT_BOOL fDeep,
1235                       [retval, out] IHTMLDOMNode **clonedNode);
1236
1237     [id(DISPID_IHTMLDOMNODE_REMOVENODE)]
1238     HRESULT removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep,
1239                        [retval, out] IHTMLDOMNode **removed);
1240
1241     [id(DISPID_IHTMLDOMNODE_SWAPNODE)]
1242     HRESULT swapNode([in] IHTMLDOMNode *otherNode,
1243                      [retval, out] IHTMLDOMNode **swappedNode);
1244
1245     [id(DISPID_IHTMLDOMNODE_REPLACENODE)]
1246     HRESULT replaceNode([in] IHTMLDOMNode *replacement,
1247                         [retval, out] IHTMLDOMNode **replaced);
1248
1249     [id(DISPID_IHTMLDOMNODE_APPENDCHILD)]
1250     HRESULT appendChild([in] IHTMLDOMNode *newChild,
1251                         [retval, out] IHTMLDOMNode **node);
1252
1253     [propget, id(DISPID_IHTMLDOMNODE_NODENAME)]
1254     HRESULT nodeName([retval, out] BSTR *p);
1255
1256     [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)]
1257     HRESULT nodeValue([in] VARIANT v);
1258
1259     [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)]
1260     HRESULT nodeValue([retval, out] VARIANT *p);
1261
1262     [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)]
1263     HRESULT firstChild([retval, out] IHTMLDOMNode **p);
1264
1265     [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)]
1266     HRESULT lastChild([retval, out] IHTMLDOMNode **p);
1267
1268     [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)]
1269     HRESULT previousSibling([retval, out] IHTMLDOMNode **p);
1270
1271     [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)]
1272     HRESULT nextSibling([retval, out] IHTMLDOMNode **p);
1273 }
1274
1275 /*****************************************************************************
1276  *    IHTMLDOMAttribute interface
1277  */
1278 [
1279     odl,
1280     oleautomation,
1281     dual,
1282     uuid(3050f4b0-98b5-11cf-bb82-00aa00bdce0b)
1283 ]
1284 interface IHTMLDOMAttribute : IDispatch
1285 {
1286     [propget, id(DISPID_IHTMLDOMATTRIBUTE_NODENAME)]
1287     HRESULT nodeName([retval, out] BSTR *p);
1288
1289     [propput, id(DISPID_IHTMLDOMATTRIBUTE_NODEVALUE)]
1290     HRESULT nodeValue([in] VARIANT v);
1291
1292     [propget, id(DISPID_IHTMLDOMATTRIBUTE_NODEVALUE)]
1293     HRESULT nodeValue([retval, out] VARIANT *p);
1294
1295     [propget, id(DISPID_IHTMLDOMATTRIBUTE_SPECIFIED)]
1296     HRESULT specified([retval, out] VARIANT_BOOL *p);
1297 }
1298
1299 /*****************************************************************************
1300  *    IHTMLDOMImplementation interface
1301  */
1302 [
1303     odl,
1304     oleautomation,
1305     dual,
1306     uuid(3050f80d-98b5-11cf-bb82-00aa00bdce0b)
1307 ]
1308 interface IHTMLDOMImplementation : IDispatch
1309 {
1310     [id(DISPID_IHTMLDOMIMPLEMENTATION_HASFEATURE)]
1311     HRESULT hasFeature([in] BSTR bstrfeature,
1312                        [optional, in] VARIANT version,
1313                        [retval, out] VARIANT_BOOL *pfHasFeature);
1314 }
1315
1316 /*****************************************************************************
1317  *    IHTMLElement interface
1318  */
1319 [
1320     odl,
1321     dual,
1322     oleautomation,
1323     uuid(3050f1FF-98B5-11CF-BB82-00AA00BDCE0B)
1324 ]
1325 interface IHTMLElement : IDispatch
1326 {
1327     [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)]
1328     HRESULT setAttribute(
1329         [in] BSTR strAttributeName,
1330         [in] VARIANT AttributeValue,
1331         [defaultvalue(1), in] LONG lFlags);
1332
1333     [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)]
1334     HRESULT getAttribute(
1335         [in] BSTR strAttributeName,
1336         [defaultvalue(0), in] LONG lFlags,
1337         [retval, out] VARIANT *AttributeValue);
1338
1339     [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)]
1340     HRESULT removeAttribute(
1341         [in] BSTR strAttributeName,
1342         [defaultvalue(1), in] LONG lFlags,
1343         [retval, out] VARIANT_BOOL *pfSuccess);
1344
1345     [propput, id(DISPID_IHTMLELEMENT_CLASSNAME)]
1346     HRESULT className([in] BSTR v);
1347
1348     [propget, id(DISPID_IHTMLELEMENT_CLASSNAME)]
1349     HRESULT className([retval, out] BSTR *p);
1350
1351     [propput, id(DISPID_IHTMLELEMENT_ID)]
1352     HRESULT id([in] BSTR v);
1353
1354     [propget, id(DISPID_IHTMLELEMENT_ID)]
1355     HRESULT id([retval, out] BSTR *p);
1356
1357     [propget, id(DISPID_IHTMLELEMENT_TAGNAME)]
1358     HRESULT tagName([retval, out] BSTR *p);
1359
1360     [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)]
1361     HRESULT parentElement([retval, out] IHTMLElement **p);
1362
1363     [propget, id(DISPID_IHTMLELEMENT_STYLE)]
1364     HRESULT style([retval, out] IHTMLStyle **p);
1365
1366     [propput, id(DISPID_IHTMLELEMENT_ONHELP)]
1367     HRESULT onhelp([in] VARIANT v);
1368
1369     [propget, id(DISPID_IHTMLELEMENT_ONHELP)]
1370     HRESULT onhelp([retval, out] VARIANT *p);
1371
1372     [propput, id(DISPID_IHTMLELEMENT_ONCLICK)]
1373     HRESULT onclick([in] VARIANT v);
1374
1375     [propget, id(DISPID_IHTMLELEMENT_ONCLICK)]
1376     HRESULT onclick([retval, out] VARIANT *p);
1377
1378     [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK)]
1379     HRESULT ondblclick([in] VARIANT v);
1380
1381     [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK)]
1382     HRESULT ondblclick([retval, out] VARIANT *p);
1383
1384     [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN)]
1385     HRESULT onkeydown([in] VARIANT v);
1386
1387     [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN)]
1388     HRESULT onkeydown([retval, out] VARIANT *p);
1389
1390     [propput, id(DISPID_IHTMLELEMENT_ONKEYUP)]
1391     HRESULT onkeyup([in] VARIANT v);
1392     
1393     [propget, id(DISPID_IHTMLELEMENT_ONKEYUP)]
1394     HRESULT onkeyup([retval, out] VARIANT *p);
1395
1396     [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS)]
1397     HRESULT onkeypress([in] VARIANT v);
1398
1399     [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS)]
1400     HRESULT onkeypress([retval, out] VARIANT *p);
1401
1402     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT)]
1403     HRESULT onmouseout([in] VARIANT v);
1404
1405     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT)]
1406     HRESULT onmouseout([retval, out] VARIANT *p);
1407
1408     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER)]
1409     HRESULT onmouseover([in] VARIANT v);
1410
1411     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER)]
1412     HRESULT onmouseover([retval, out] VARIANT *p);
1413
1414     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE)]
1415     HRESULT onmousemove([in] VARIANT v);
1416
1417     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE)]
1418     HRESULT onmousemove([retval, out] VARIANT *p);
1419
1420     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN)]
1421     HRESULT onmousedown([in] VARIANT v);
1422
1423     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN)]
1424     HRESULT onmousedown([retval, out] VARIANT *p);
1425
1426     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP)]
1427     HRESULT onmouseup([in] VARIANT v);
1428
1429     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP)]
1430     HRESULT onmouseup([retval, out] VARIANT *p);
1431
1432     [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)]
1433     HRESULT document([retval, out] IDispatch **p);
1434
1435     [propput, id(DISPID_IHTMLELEMENT_TITLE)]
1436     HRESULT title([in] BSTR v);
1437
1438     [propget, id(DISPID_IHTMLELEMENT_TITLE)]
1439     HRESULT title([retval, out] BSTR *p);
1440
1441     [propput, id(DISPID_IHTMLELEMENT_LANGUAGE)]
1442     HRESULT language([in] BSTR v);
1443
1444     [propget, id(DISPID_IHTMLELEMENT_LANGUAGE)]
1445     HRESULT language([retval, out] BSTR *p);
1446
1447     [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART)]
1448     HRESULT onselectstart([in] VARIANT v);
1449
1450     [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART)]
1451     HRESULT onselectstart([retval, out] VARIANT *p);
1452
1453     [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)]
1454     HRESULT scrollIntoView([optional, in] VARIANT varargStart);
1455
1456     [id(DISPID_IHTMLELEMENT_CONTAINS)]
1457     HRESULT contains(
1458         [in] IHTMLElement *pChild,
1459         [retval, out] VARIANT_BOOL *pfResult);
1460
1461     [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX)]
1462     HRESULT sourceIndex([retval, out] long *p);
1463
1464     [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)]
1465     HRESULT recordNumber([retval, out] VARIANT *p);
1466
1467     [propput, id(DISPID_IHTMLELEMENT_LANG)]
1468     HRESULT lang([in] BSTR v);
1469
1470     [propget, id(DISPID_IHTMLELEMENT_LANG)]
1471     HRESULT lang([retval, out] BSTR *p);
1472
1473     [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)]
1474     HRESULT offsetLeft([retval, out] long *p);
1475
1476     [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)]
1477     HRESULT offsetTop([retval, out] long *p);
1478
1479     [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)]
1480     HRESULT offsetWidth([retval, out] long *p);
1481
1482     [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)]
1483     HRESULT offsetHeight([retval, out] long *p);
1484
1485     [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)]
1486     HRESULT offsetParent([retval, out] IHTMLElement **p);
1487
1488     [propput, id(DISPID_IHTMLELEMENT_INNERHTML)]
1489     HRESULT innerHTML([in] BSTR v);
1490
1491     [propget, id(DISPID_IHTMLELEMENT_INNERHTML)]
1492     HRESULT innerHTML([retval, out] BSTR *p);
1493
1494     [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)]
1495     HRESULT innerText([in] BSTR v);
1496
1497     [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)]
1498     HRESULT innerText([retval, out] BSTR *p);
1499
1500     [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)]
1501     HRESULT outerHTML([in] BSTR v);
1502
1503     [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)]
1504     HRESULT outerHTML([retval, out] BSTR *p);
1505
1506     [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
1507     HRESULT outerText([in] BSTR v);
1508
1509     [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
1510     HRESULT outerText([retval, out] BSTR *p);
1511
1512     [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)]
1513     HRESULT insertAdjacentHTML([in] BSTR where, [in] BSTR html);
1514
1515     [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)]
1516     HRESULT insertAdjacentText([in] BSTR where, [in] BSTR text);
1517
1518     [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)]
1519     HRESULT parentTextEdit([retval, out] IHTMLElement **p);
1520
1521     [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)]
1522     HRESULT isTextEdit([retval, out] VARIANT_BOOL *p);
1523
1524     [id(DISPID_IHTMLELEMENT_CLICK)]
1525     HRESULT click();
1526
1527     [propget, id(DISPID_IHTMLELEMENT_FILTERS)]
1528     HRESULT filters([retval, out] IHTMLFiltersCollection **p);
1529
1530     [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART)]
1531     HRESULT ondragstart([in] VARIANT v);
1532
1533     [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART)]
1534     HRESULT ondragstart([retval, out] VARIANT *p);
1535
1536     [id(DISPID_IHTMLELEMENT_TOSTRING)]
1537     HRESULT toString([retval, out] BSTR *String);
1538
1539     [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE)]
1540     HRESULT onbeforeupdate([in] VARIANT v);
1541
1542     [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE)]
1543     HRESULT onbeforeupdate([retval, out] VARIANT *p);
1544
1545     [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE)]
1546     HRESULT onafterupdate([in] VARIANT v);
1547
1548     [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE)]
1549     HRESULT onafterupdate([retval, out] VARIANT *p);
1550
1551     [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE)]
1552     HRESULT onerrorupdate([in] VARIANT v);
1553
1554     [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE)]
1555     HRESULT onerrorupdate([retval, out] VARIANT *p);
1556
1557     [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT)]
1558     HRESULT onrowexit([in] VARIANT v);
1559
1560     [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT)]
1561     HRESULT onrowexit([retval, out] VARIANT *p);
1562
1563     [propput, id(DISPID_IHTMLELEMENT_ONROWENTER)]
1564     HRESULT onrowenter([in] VARIANT v);
1565
1566     [propget, id(DISPID_IHTMLELEMENT_ONROWENTER)]
1567     HRESULT onrowenter([retval, out] VARIANT *p);
1568
1569     [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED)]
1570     HRESULT ondatasetchanged([in] VARIANT v);
1571
1572     [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED)]
1573     HRESULT ondatasetchanged([retval, out] VARIANT *p);
1574
1575     [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE)]
1576     HRESULT ondataavailable([in] VARIANT v);
1577
1578     [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE)]
1579     HRESULT ondataavailable([retval, out] VARIANT *p);
1580
1581     [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE)]
1582     HRESULT ondatasetcomplete([in] VARIANT v);
1583
1584     [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE)]
1585     HRESULT ondatasetcomplete([retval, out] VARIANT *p);
1586
1587     [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE)]
1588     HRESULT onfilterchange([in] VARIANT v);
1589
1590     [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE)]
1591     HRESULT onfilterchange([retval, out] VARIANT *p);
1592
1593     [propget, id(DISPID_IHTMLELEMENT_CHILDREN)]
1594     HRESULT children([retval, out] IDispatch **p);
1595
1596     [propget, id(DISPID_IHTMLELEMENT_ALL)]
1597     HRESULT all([retval, out] IDispatch **p);
1598 }
1599
1600 /*****************************************************************************
1601  *    IHTMLStyleSheetRule interface
1602  */
1603 [
1604     odl,
1605     oleautomation,
1606     dual,
1607     uuid(3050F357-98B5-11CF-BB82-00AA00BDCE0B)
1608 ]
1609 interface IHTMLStyleSheetRule : IDispatch
1610 {
1611     [propput, id(DISPID_IHTMLSTYLESHEETRULE_SELECTORTEXT)]
1612     HRESULT selectorText([in] BSTR v);
1613
1614     [propget, id(DISPID_IHTMLSTYLESHEETRULE_SELECTORTEXT)]
1615     HRESULT selectorText([retval, out] BSTR *p);
1616
1617     [propget, id(DISPID_IHTMLSTYLESHEETRULE_STYLE)]
1618     HRESULT style([retval, out] IHTMLRuleStyle **p);
1619
1620     [propget, id(DISPID_IHTMLSTYLESHEETRULE_READONLY)]
1621     HRESULT readOnly([retval, out] VARIANT_BOOL *p);
1622 }
1623
1624 /*****************************************************************************
1625  *    IHTMLStyleSheetRulesCollection interface
1626  */
1627 [
1628     odl,
1629     oleautomation,
1630     dual,
1631     uuid(3050F2E5-98B5-11Cf-BB82-00AA00BDCE0B)
1632 ]
1633 interface IHTMLStyleSheetRulesCollection : IDispatch
1634 {
1635     [propget, id(DISPID_IHTMLSTYLESHEETRULESCOLLECTION_LENGTH)]
1636     HRESULT length([retval, out] long *p);
1637
1638     [id(DISPID_IHTMLSTYLESHEETRULESCOLLECTION_ITEM)]
1639     HRESULT item(
1640         [in] long index,
1641         [retval, out] IHTMLStyleSheetRule **ppHTMLStyleSheetRule);
1642 }
1643
1644 /*****************************************************************************
1645  *    IHTMLStyleSheet interface
1646  */
1647 [
1648     odl,
1649     oleautomation,
1650     dual,
1651     uuid(3050F2E3-98B5-11CF-BB82-00AA00BDCE0B)
1652 ]
1653 interface IHTMLStyleSheet : IDispatch
1654 {
1655     [propput, id(DISPID_IHTMLSTYLESHEET_TITLE)]
1656     HRESULT title([in] BSTR v);
1657
1658     [propget, id(DISPID_IHTMLSTYLESHEET_TITLE)]
1659     HRESULT title([retval, out] BSTR *p);
1660
1661     [propget, id(DISPID_IHTMLSTYLESHEET_PARENTSTYLESHEET)]
1662     HRESULT parentStyleSheet([retval, out] IHTMLStyleSheet **p);
1663
1664     [propget, id(DISPID_IHTMLSTYLESHEET_OWNINGELEMENT)]
1665     HRESULT owningElement([retval, out] IHTMLElement **p);
1666
1667     [propput, id(DISPID_IHTMLSTYLESHEET_DISABLED)]
1668     HRESULT disabled([in] VARIANT_BOOL v);
1669
1670     [propget, id(DISPID_IHTMLSTYLESHEET_DISABLED)]
1671     HRESULT disabled([retval, out] VARIANT_BOOL *p);
1672
1673     [propget, id(DISPID_IHTMLSTYLESHEET_READONLY)]
1674     HRESULT readOnly([retval, out] VARIANT_BOOL *p);
1675
1676     [propget, id(DISPID_IHTMLSTYLESHEET_IMPORTS)]
1677     HRESULT imports([retval, out] IHTMLStyleSheetsCollection **p);
1678
1679     [propput, id(DISPID_IHTMLSTYLESHEET_HREF)]
1680     HRESULT href([in] BSTR v);
1681
1682     [propget, id(DISPID_IHTMLSTYLESHEET_HREF)]
1683     HRESULT href([retval, out] BSTR *p);
1684
1685     [propget, id(DISPID_IHTMLSTYLESHEET_TYPE)]
1686     HRESULT type([retval, out] BSTR *p);
1687
1688     [propget, id(DISPID_IHTMLSTYLESHEET_ID)]
1689     HRESULT id([retval, out] BSTR *p);
1690
1691     [id(DISPID_IHTMLSTYLESHEET_ADDIMPORT)]
1692     HRESULT addImport(
1693         [in] BSTR bstrURL,
1694         [defaultvalue(-1), in] long lIndex,
1695         [retval, out] long *plIndex);
1696
1697     [id(DISPID_IHTMLSTYLESHEET_ADDRULE)]
1698     HRESULT addRule(
1699         [in] BSTR bstrSelector,
1700         [in] BSTR bstrStyle,
1701         [defaultvalue(-1), in] long lIndex,
1702         [retval, out] long *plNewIndex);
1703
1704     [id(DISPID_IHTMLSTYLESHEET_REMOVEIMPORT)]
1705     HRESULT removeImport([in] long lIndex);
1706
1707     [id(DISPID_IHTMLSTYLESHEET_REMOVERULE)]
1708     HRESULT removeRule([in] long lIndex);
1709
1710     [propput, id(DISPID_IHTMLSTYLESHEET_MEDIA)]
1711     HRESULT media([in] BSTR v);
1712
1713     [propget, id(DISPID_IHTMLSTYLESHEET_MEDIA)]
1714     HRESULT media([retval, out] BSTR *p);
1715
1716     [propput, id(DISPID_IHTMLSTYLESHEET_CSSTEXT)]
1717     HRESULT cssText([in] BSTR v);
1718
1719     [propget, id(DISPID_IHTMLSTYLESHEET_CSSTEXT)]
1720     HRESULT cssText([retval, out] BSTR *p);
1721
1722     [propget, id(DISPID_IHTMLSTYLESHEET_RULES)]
1723     HRESULT rules([retval, out] IHTMLStyleSheetRulesCollection **p);
1724 }
1725
1726 /*****************************************************************************
1727  *    IHTMLStyleSheetsCollection interface
1728  */
1729 [
1730     odl,
1731     oleautomation,
1732     dual,
1733     uuid(3050F37E-98B5-11CF-BB82-00AA00BDCE0B)
1734 ]
1735 interface IHTMLStyleSheetsCollection : IDispatch
1736 {
1737     [propget, id(DISPID_IHTMLSTYLESHEETSCOLLECTION_LENGTH)]
1738     HRESULT length([retval, out] long *p);
1739
1740     [propget, id(DISPID_IHTMLSTYLESHEETSCOLLECTION__NEWENUM)]
1741     HRESULT _newEnum([retval, out] IUnknown **p);
1742
1743     [id(DISPID_IHTMLSTYLESHEETSCOLLECTION_ITEM)]
1744     HRESULT item(
1745         [in] VARIANT *pvarIndex,
1746         [retval, out] VARIANT *pvarResult);
1747 }
1748
1749 /*****************************************************************************
1750  *    IHTMLFormElement interface
1751  */
1752 [
1753     odl,
1754     oleautomation,
1755     dual,
1756     uuid(3050F1F7-98B5-11CF-BB82-00AA00BDCE0B)
1757 ]
1758 interface IHTMLFormElement : IDispatch
1759 {
1760     [propput, id(DISPID_IHTMLFORMELEMENT_ACTION)]
1761     HRESULT action([in] BSTR v);
1762
1763     [propget, id(DISPID_IHTMLFORMELEMENT_ACTION)]
1764     HRESULT action([retval, out] BSTR *p);
1765
1766     [propput, id(DISPID_IHTMLFORMELEMENT_DIR)]
1767     HRESULT dir([in] BSTR v);
1768
1769     [propget, id(DISPID_IHTMLFORMELEMENT_DIR)]
1770     HRESULT dir([retval, out] BSTR *p);
1771
1772     [propput, id(DISPID_IHTMLFORMELEMENT_ENCODING)]
1773     HRESULT encoding([in] BSTR v);
1774
1775     [propget, id(DISPID_IHTMLFORMELEMENT_ENCODING)]
1776     HRESULT encoding([retval, out] BSTR *p);
1777
1778     [propput, id(DISPID_IHTMLFORMELEMENT_METHOD)]
1779     HRESULT method([in] BSTR v);
1780
1781     [propget, id(DISPID_IHTMLFORMELEMENT_METHOD)]
1782     HRESULT method([retval, out] BSTR *p);
1783
1784     [propget, id(DISPID_IHTMLFORMELEMENT_ELEMENTS)]
1785     HRESULT elements([retval, out] IDispatch **p);
1786
1787     [propput, id(DISPID_IHTMLFORMELEMENT_TARGET)]
1788     HRESULT target([in] BSTR v);
1789
1790     [propget, id(DISPID_IHTMLFORMELEMENT_TARGET)]
1791     HRESULT target([retval, out] BSTR *p);
1792
1793     [propput, id(DISPID_IHTMLFORMELEMENT_NAME)]
1794     HRESULT name([in] BSTR v);
1795
1796     [propget, id(DISPID_IHTMLFORMELEMENT_NAME)]
1797     HRESULT name([retval, out] BSTR *p);
1798
1799     [propput, id(DISPID_IHTMLFORMELEMENT_ONSUBMIT)]
1800     HRESULT onsubmit([in] VARIANT v);
1801
1802     [propget, id(DISPID_IHTMLFORMELEMENT_ONSUBMIT)]
1803     HRESULT onsubmit([retval, out] VARIANT *p);
1804
1805     [propput, id(DISPID_IHTMLFORMELEMENT_ONRESET)]
1806     HRESULT onreset([in] VARIANT v);
1807
1808     [propget, id(DISPID_IHTMLFORMELEMENT_ONRESET)]
1809     HRESULT onreset([retval, out] VARIANT *p);
1810
1811     [id(DISPID_IHTMLFORMELEMENT_SUBMIT)]
1812     HRESULT submit();
1813
1814     [id(DISPID_IHTMLFORMELEMENT_RESET)]
1815     HRESULT reset();
1816
1817     [propput, id(DISPID_IHTMLFORMELEMENT_LENGTH)]
1818     HRESULT length([in] long v);
1819
1820     [propget, id(DISPID_IHTMLFORMELEMENT_LENGTH)]
1821     HRESULT length([retval, out] long *p);
1822
1823     [propget, id(DISPID_IHTMLFORMELEMENT__NEWENUM)]
1824     HRESULT _newEnum([retval, out] IUnknown **p);
1825
1826     [id(DISPID_IHTMLFORMELEMENT_ITEM)]
1827     HRESULT item(
1828         [optional, in] VARIANT name,
1829         [optional, in] VARIANT index,
1830         [retval, out] IDispatch **pdisp);
1831
1832     [id(DISPID_IHTMLFORMELEMENT_TAGS)]
1833     HRESULT tags(
1834         [in] VARIANT tagName,
1835         [retval, out] IDispatch **pdisp);
1836 }
1837
1838 /*****************************************************************************
1839  *    IHTMLImgElement interface
1840  */
1841 [
1842     odl,
1843     oleautomation,
1844     dual,
1845     uuid(3050F240-98B5-11CF-BB82-00AA00BDCE0B)
1846 ]
1847 interface IHTMLImgElement : IDispatch
1848 {
1849     [propput, id(DISPID_IHTMLIMGELEMENT_ISMAP)]
1850     HRESULT isMap([in] VARIANT_BOOL v);
1851
1852     [propget, id(DISPID_IHTMLIMGELEMENT_ISMAP)]
1853     HRESULT isMap([retval, out] VARIANT_BOOL *p);
1854
1855     [propput, id(DISPID_IHTMLIMGELEMENT_USEMAP)]
1856     HRESULT useMap([in] BSTR v);
1857
1858     [propget, id(DISPID_IHTMLIMGELEMENT_USEMAP)]
1859     HRESULT useMap([retval, out] BSTR *p);
1860
1861     [propget, id(DISPID_IHTMLIMGELEMENT_MIMETYPE)]
1862     HRESULT mimeType([retval, out] BSTR *p);
1863
1864     [propget, id(DISPID_IHTMLIMGELEMENT_FILESIZE)]
1865     HRESULT fileSize([retval, out] BSTR *p);
1866
1867     [propget, id(DISPID_IHTMLIMGELEMENT_FILECREATEDDATE)]
1868     HRESULT fileCreatedDate([retval, out] BSTR *p);
1869
1870     [propget, id(DISPID_IHTMLIMGELEMENT_FILEMODIFIEDDATE)]
1871     HRESULT fileModifiedDate([retval, out] BSTR *p);
1872
1873     [propget, id(DISPID_IHTMLIMGELEMENT_FILEUPDATEDDATE)]
1874     HRESULT fileUpdatedDate([retval, out] BSTR *p);
1875
1876     [propget, id(DISPID_IHTMLIMGELEMENT_PROTOCOL)]
1877     HRESULT protocol([retval, out] BSTR *p);
1878
1879     [propget, id(DISPID_IHTMLIMGELEMENT_HREF)]
1880     HRESULT href([retval, out] BSTR *p);
1881
1882     [propget, id(DISPID_IHTMLIMGELEMENT_NAMEPROP)]
1883     HRESULT nameProp([retval, out] BSTR *p);
1884
1885     [propput, id(DISPID_IHTMLIMGELEMENT_BORDER)]
1886     HRESULT border([in] VARIANT v);
1887
1888     [propget, id(DISPID_IHTMLIMGELEMENT_BORDER)]
1889     HRESULT border([retval, out] VARIANT *p);
1890
1891     [propput, id(DISPID_IHTMLIMGELEMENT_VSPACE)]
1892     HRESULT vspace([in] long v);
1893
1894     [propget, id(DISPID_IHTMLIMGELEMENT_VSPACE)]
1895     HRESULT vspace([retval, out] long *p);
1896
1897     [propput, id(DISPID_IHTMLIMGELEMENT_HSPACE)]
1898     HRESULT hspace([in] long v);
1899
1900     [propget, id(DISPID_IHTMLIMGELEMENT_HSPACE)]
1901     HRESULT hspace([retval, out] long *p);
1902
1903     [propput, id(DISPID_IHTMLIMGELEMENT_ALT)]
1904     HRESULT alt([in] BSTR v);
1905
1906     [propget, id(DISPID_IHTMLIMGELEMENT_ALT)]
1907     HRESULT alt([retval, out] BSTR *p);
1908
1909     [propput, id(DISPID_IHTMLIMGELEMENT_SRC)]
1910     HRESULT src([in] BSTR v);
1911
1912     [propget, id(DISPID_IHTMLIMGELEMENT_SRC)]
1913     HRESULT src([retval, out] BSTR *p);
1914
1915     [propput, id(DISPID_IHTMLIMGELEMENT_LOWSRC)]
1916     HRESULT lowsrc([in] BSTR v);
1917
1918     [propget, id(DISPID_IHTMLIMGELEMENT_LOWSRC)]
1919     HRESULT lowsrc([retval, out] BSTR *p);
1920
1921     [propput, id(DISPID_IHTMLIMGELEMENT_VRML)]
1922     HRESULT vrml([in] BSTR v);
1923
1924     [propget, id(DISPID_IHTMLIMGELEMENT_VRML)]
1925     HRESULT vrml([retval, out] BSTR *p);
1926
1927     [propput, id(DISPID_IHTMLIMGELEMENT_DYNSRC)]
1928     HRESULT dynsrc([in] BSTR v);
1929
1930     [propget, id(DISPID_IHTMLIMGELEMENT_DYNSRC)]
1931     HRESULT dynsrc([retval, out] BSTR *p);
1932
1933     [propget, id(DISPID_IHTMLIMGELEMENT_READYSTATE)]
1934     HRESULT readyState([retval, out] BSTR *p);
1935
1936     [propget, id(DISPID_IHTMLIMGELEMENT_COMPLETE)]
1937     HRESULT complete([retval, out] VARIANT_BOOL *p);
1938
1939     [propput, id(DISPID_IHTMLIMGELEMENT_LOOP)]
1940     HRESULT loop([in] VARIANT v);
1941
1942     [propget, id(DISPID_IHTMLIMGELEMENT_LOOP)]
1943     HRESULT loop([retval, out] VARIANT *p);
1944
1945     [propput, id(DISPID_IHTMLIMGELEMENT_ALIGN)]
1946     HRESULT align([in] BSTR v);
1947
1948     [propget, id(DISPID_IHTMLIMGELEMENT_ALIGN)]
1949     HRESULT align([retval, out] BSTR *p);
1950
1951     [propput, id(DISPID_IHTMLIMGELEMENT_ONLOAD)]
1952     HRESULT onload([in] VARIANT v);
1953
1954     [propget, id(DISPID_IHTMLIMGELEMENT_ONLOAD)]
1955     HRESULT onload([retval, out] VARIANT *p);
1956
1957     [propput, id(DISPID_IHTMLIMGELEMENT_ONERROR)]
1958     HRESULT onerror([in] VARIANT v);
1959
1960     [propget, id(DISPID_IHTMLIMGELEMENT_ONERROR)]
1961     HRESULT onerror([retval, out] VARIANT *p);
1962
1963     [propput, id(DISPID_IHTMLIMGELEMENT_ONABORT)]
1964     HRESULT onabort([in] VARIANT v);
1965
1966     [propget, id(DISPID_IHTMLIMGELEMENT_ONABORT)]
1967     HRESULT onabort([retval, out] VARIANT *p);
1968
1969     [propput, id(DISPID_IHTMLIMGELEMENT_NAME)]
1970     HRESULT name([in] BSTR v);
1971
1972     [propget, id(DISPID_IHTMLIMGELEMENT_NAME)]
1973     HRESULT name([retval, out] BSTR *p);
1974
1975     [propput, id(DISPID_IHTMLIMGELEMENT_WIDTH)]
1976     HRESULT width([in] long v);
1977
1978     [propget, id(DISPID_IHTMLIMGELEMENT_WIDTH)]
1979     HRESULT width([retval, out] long *p);
1980
1981     [propput, id(DISPID_IHTMLIMGELEMENT_HEIGHT)]
1982     HRESULT height([in] long v);
1983
1984     [propget, id(DISPID_IHTMLIMGELEMENT_HEIGHT)]
1985     HRESULT height([retval, out] long *p);
1986
1987     [propput, id(DISPID_IHTMLIMGELEMENT_START)]
1988     HRESULT start([in] BSTR v);
1989
1990     [propget, id(DISPID_IHTMLIMGELEMENT_START)]
1991     HRESULT start([retval, out] BSTR *p);
1992 }
1993
1994 /*****************************************************************************
1995  *    IHTMLImageElementFactory interface
1996  */
1997 [
1998     odl,
1999     oleautomation,
2000     dual,
2001     uuid(3050F38E-98B5-11CF-BB82-00AAA0BDCE0B)
2002 ]
2003 interface IHTMLImageElementFactory : IDispatch
2004 {
2005     [id(DISPID_IHTMLIMAGEELEMENTFACTORY_CREATE)]
2006     HRESULT create(
2007         [optional, in] VARIANT width,
2008         [optional, in] VARIANT height,
2009         [retval, out]  IHTMLImgElement **elem);
2010 }
2011
2012 /*****************************************************************************
2013  *    IHTMLElementCollection interface
2014  */
2015 [
2016     odl,
2017     oleautomation,
2018     dual,
2019     uuid(3050F21F-98B5-11CF-BB82-00AA00BDCE0B)
2020 ]
2021 interface IHTMLElementCollection : IDispatch
2022 {
2023     [id(DISPID_IHTMLELEMENTCOLLECTION_TOSTRING)]
2024     HRESULT toString([retval, out] BSTR *String);
2025
2026     [propput, id(DISPID_IHTMLELEMENTCOLLECTION_LENGTH)]
2027     HRESULT length([in] long v);
2028
2029     [propget, id(DISPID_IHTMLELEMENTCOLLECTION_LENGTH)]
2030     HRESULT length([retval, out] long *p);
2031
2032     [propget, id(DISPID_IHTMLELEMENTCOLLECTION__NEWENUM)]
2033     HRESULT _newEnum([retval, out] IUnknown **p);
2034
2035     [id(DISPID_IHTMLELEMENTCOLLECTION_ITEM)]
2036     HRESULT item(
2037         [optional, in] VARIANT name,
2038         [optional, in] VARIANT index,
2039         [retval,  out] IDispatch **pdisp);
2040
2041     [id(DISPID_IHTMLELEMENTCOLLECTION_TAGS)]
2042     HRESULT tags(
2043         [in] VARIANT tagName,
2044         [retval, out] IDispatch **pdisp);
2045 }
2046
2047 /*****************************************************************************
2048  *    IHTMLSelectionObject interface
2049  */
2050 [
2051     odl,
2052     oleautomation,
2053     dual,
2054     uuid(3050F25A-98B5-11CF-BB82-00AA00BDCE0B)
2055 ]
2056 interface IHTMLSelectionObject : IDispatch
2057 {
2058     [id(DISPID_IHTMLSELECTIONOBJECT_CREATERANGE)]
2059     HRESULT createRange([retval, out] IDispatch **range);
2060
2061     [id(DISPID_IHTMLSELECTIONOBJECT_EMPTY)]
2062     HRESULT empty();
2063
2064     [id(DISPID_IHTMLSELECTIONOBJECT_CLEAR)]
2065     HRESULT clear();
2066
2067     [propget, id(DISPID_IHTMLSELECTIONOBJECT_TYPE)]
2068     HRESULT type([retval, out] BSTR *p);
2069 }
2070
2071 /*****************************************************************************
2072  *    IHTMLOptionElement interface
2073  */
2074 [
2075     odl,
2076     oleautomation,
2077     dual,
2078     uuid(3050F211-98B5-11CF-BB82-00AA00BDCE0B)
2079 ]
2080 interface IHTMLOptionElement : IDispatch
2081 {
2082     [propput, id(DISPID_IHTMLOPTIONELEMENT_SELECTED)]
2083     HRESULT selected([in] VARIANT_BOOL v);
2084
2085     [propget, id(DISPID_IHTMLOPTIONELEMENT_SELECTED)]
2086     HRESULT selected([retval, out] VARIANT_BOOL *p);
2087
2088     [propput, id(DISPID_IHTMLOPTIONELEMENT_VALUE)]
2089     HRESULT value([in] BSTR v);
2090
2091     [propget, id(DISPID_IHTMLOPTIONELEMENT_VALUE)]
2092     HRESULT value([retval, out] BSTR *p);
2093
2094     [propput, id(DISPID_IHTMLOPTIONELEMENT_DEFAULTSELECTED)]
2095     HRESULT defaultSelected([in] VARIANT_BOOL v);
2096
2097     [propget, id(DISPID_IHTMLOPTIONELEMENT_DEFAULTSELECTED)]
2098     HRESULT defaultSelected([retval, out] VARIANT_BOOL *p);
2099
2100     [propput, id(DISPID_IHTMLOPTIONELEMENT_INDEX)]
2101     HRESULT index([in] LONG v);
2102
2103     [propget, id(DISPID_IHTMLOPTIONELEMENT_INDEX)]
2104     HRESULT index([retval, out] LONG *p);
2105
2106     [propput, id(DISPID_IHTMLOPTIONELEMENT_TEXT)]
2107     HRESULT text([in] BSTR v);
2108
2109     [propget, id(DISPID_IHTMLOPTIONELEMENT_TEXT)]
2110     HRESULT text([retval, out] BSTR *p);
2111
2112     [propget, id(DISPID_IHTMLOPTIONELEMENT_FORM)]
2113     HRESULT form([retval, out] IHTMLFormElement **p);
2114 }
2115
2116 /*****************************************************************************
2117  *    IHTMLOptionElementFactory interface
2118  */
2119 [
2120     odl,
2121     oleautomation,
2122     dual,
2123     uuid(3050F38C-98B5-11Cf-BB82-00AA00BDCE0B)
2124 ]
2125 interface IHTMLOptionElementFactory : IDispatch
2126 {
2127     [id(DISPID_IHTMLOPTIONELEMENTFACTORY_CREATE)]
2128     HRESULT create(
2129         [optional, in] VARIANT text,
2130         [optional, in] VARIANT value,
2131         [optional, in] VARIANT defaultselected,
2132         [optional, in] VARIANT selected,
2133         [retval, out] IHTMLOptionElement **optelem);
2134 }
2135
2136 /*****************************************************************************
2137  *    IOmHistory interface
2138  */
2139 [
2140     odl,
2141     oleautomation,
2142     dual,
2143     uuid(FECEAAA2-8405-11CF-8BA1-00AA00476DA6)
2144 ]
2145 interface IOmHistory : IDispatch
2146 {
2147     [propget, id(DISPID_IOMHISTORY_LENGTH)]
2148     HRESULT length([retval, out] short *p);
2149
2150     [id(DISPID_IOMHISTORY_BACK)]
2151     HRESULT back([optional, in] VARIANT *pvargdistance);
2152
2153     [id(DISPID_IOMHISTORY_FORWARD)]
2154     HRESULT forward([optional, in] VARIANT *pvargdistance);
2155
2156     [id(DISPID_IOMHISTORY_GO)]
2157     HRESULT go([optional, in] VARIANT *pvargdistance);
2158 }
2159
2160 /*****************************************************************************
2161  *    IHTMLMimeTypesCollection interface
2162  */
2163 [
2164     odl,
2165     oleautomation,
2166     dual,
2167     uuid(3050F3FC-98B5-11CF-BB82-00AA00BDCE0B)
2168 ]
2169 interface IHTMLMimeTypesCollection : IDispatch
2170 {
2171     [propget, id(DISPID_IHTMLMIMETYPESCOLLECTION_LENGTH)]
2172     HRESULT length([retval, out] long *p);
2173 }
2174
2175 /*****************************************************************************
2176  *    IHTMLPluginsCollection interface
2177  */
2178 [
2179     odl,
2180     oleautomation,
2181     dual,
2182     uuid(3050F3FD-98B5-11CF-BB82-00AA00BDCE0B)
2183 ]
2184 interface IHTMLPluginsCollection : IDispatch
2185 {
2186     [propget, id(DISPID_IHTMLPLUGINSCOLLECTION_LENGTH)]
2187     HRESULT length([retval, out] long *p);
2188
2189     [id(DISPID_IHTMLPLUGINSCOLLECTION_REFRESH)]
2190     HRESULT refresh([defaultvalue(0), in] VARIANT_BOOL reload);
2191 }
2192
2193 /*****************************************************************************
2194  *    IHTMLOpsProfile interface
2195  */
2196 [
2197     odl,
2198     oleautomation,
2199     dual,
2200     uuid(3050F401-98B5-11CF-BB82-00AA00BDCE0B)
2201 ]
2202 interface IHTMLOpsProfile : IDispatch
2203 {
2204     [id(DISPID_IHTMLOPSPROFILE_ADDREQUEST)]
2205     HRESULT addRequest(
2206         [in] BSTR name,
2207         [optional, in] VARIANT reserved,
2208         [retval, out] VARIANT_BOOL *success);
2209
2210     [id(DISPID_IHTMLOPSPROFILE_CLEARREQUEST)]
2211     HRESULT clearRequest();
2212
2213     [id(DISPID_IHTMLOPSPROFILE_DOREQUEST)]
2214     HRESULT doRequest(
2215         [in] VARIANT usage,
2216         [optional, in] VARIANT fname,
2217         [optional, in] VARIANT domain,
2218         [optional, in] VARIANT path,
2219         [optional, in] VARIANT expire,
2220         [optional, in] VARIANT reserved);
2221
2222     [id(DISPID_IHTMLOPSPROFILE_GETATTRIBUTE)]
2223     HRESULT getAttribute(
2224         [in] BSTR name,
2225         [retval, out] BSTR *value);
2226
2227     [id(DISPID_IHTMLOPSPROFILE_SETATTRIBUTE)]
2228     HRESULT setAttribute(
2229         [in] BSTR name,
2230         [in] BSTR value,
2231         [optional, in] VARIANT prefs,
2232         [retval, out] VARIANT_BOOL *success);
2233
2234     [id(DISPID_IHTMLOPSPROFILE_COMMITCHANGES)]
2235     HRESULT commitChanges([retval, out] VARIANT_BOOL *success);
2236
2237     [id(DISPID_IHTMLOPSPROFILE_ADDREADREQUEST)]
2238     HRESULT addReadRequest(
2239         [in] BSTR name,
2240         [optional, in] VARIANT reserved,
2241         [retval, out] VARIANT_BOOL *success);
2242
2243     [id(DISPID_IHTMLOPSPROFILE_DOREADREQUEST)]
2244     HRESULT doReadRequest(
2245         [in] VARIANT usage,
2246         [optional, in] VARIANT fname,
2247         [optional, in] VARIANT domain,
2248         [optional, in] VARIANT path,
2249         [optional, in] VARIANT expire,
2250         [optional, in] VARIANT reserved);
2251
2252     [id(DISPID_IHTMLOPSPROFILE_DOWRITEREQUEST)]
2253     HRESULT doWriteRequest([retval, out] VARIANT_BOOL *success);
2254 }
2255
2256 /*****************************************************************************
2257  *    IOmNavigator interface
2258  */
2259 [
2260         odl,
2261         oleautomation,
2262         dual,
2263         uuid(FECEAAA5-8405-11CF-8BA1-00AA00476DA6)
2264 ]
2265 interface IOmNavigator : IDispatch
2266 {
2267     [propget, id(DISPID_IOMNAVIGATOR_APPCODENAME)]
2268     HRESULT appCodeName([retval, out] BSTR *p);
2269
2270     [propget, id(DISPID_IOMNAVIGATOR_APPNAME)]
2271     HRESULT appName([retval, out] BSTR *p);
2272
2273     [propget, id(DISPID_IOMNAVIGATOR_APPVERSION)]
2274     HRESULT appVersion([retval, out] BSTR *p);
2275
2276     [propget, id(DISPID_IOMNAVIGATOR_USERAGENT)]
2277     HRESULT userAgent([retval, out] BSTR *p);
2278
2279     [id(DISPID_IOMNAVIGATOR_JAVAENABLED)]
2280     HRESULT javaEnabled([retval, out] VARIANT_BOOL *enabled);
2281
2282     [id(DISPID_IOMNAVIGATOR_TAINTENABLED)]
2283     HRESULT taintEnabled([retval, out] VARIANT_BOOL *enabled);
2284
2285     [propget, id(DISPID_IOMNAVIGATOR_MIMETYPES)]
2286     HRESULT mimeTypes([retval, out] IHTMLMimeTypesCollection **p);
2287
2288     [propget, id(DISPID_IOMNAVIGATOR_PLUGINS)]
2289     HRESULT plugins([retval, out] IHTMLPluginsCollection **p);
2290
2291     [propget, id(DISPID_IOMNAVIGATOR_COOKIEENABLED)]
2292     HRESULT cookieEnabled([retval, out] VARIANT_BOOL *p);
2293
2294     [propget, id(DISPID_IOMNAVIGATOR_OPSPROFILE)]
2295     HRESULT opsProfile([retval, out] IHTMLOpsProfile **p);
2296
2297     [id(DISPID_IOMNAVIGATOR_TOSTRING)]
2298     HRESULT toString([retval, out] BSTR *String);
2299
2300     [propget, id(DISPID_IOMNAVIGATOR_CPUCLASS)]
2301     HRESULT cpuClass([retval, out] BSTR *p);
2302
2303     [propget, id(DISPID_IOMNAVIGATOR_SYSTEMLANGUAGE)]
2304     HRESULT systemLanguage([retval, out] BSTR *p);
2305
2306     [propget, id(DISPID_IOMNAVIGATOR_BROWSERLANGUAGE)]
2307     HRESULT browserLanguage([retval, out] BSTR *p);
2308
2309     [propget, id(DISPID_IOMNAVIGATOR_USERLANGUAGE)]
2310     HRESULT userLanguage([retval, out] BSTR *p);
2311
2312     [propget, id(DISPID_IOMNAVIGATOR_PLATFORM)]
2313     HRESULT platform([retval, out] BSTR *p);
2314
2315     [propget, id(DISPID_IOMNAVIGATOR_APPMINORVERSION)]
2316     HRESULT appMinorVersion([retval, out] BSTR *p);
2317
2318     [propget, id(DISPID_IOMNAVIGATOR_CONNECTIONSPEED)]
2319     HRESULT connectionSpeed([retval, out] long *p);
2320
2321     [propget, id(DISPID_IOMNAVIGATOR_ONLINE)]
2322     HRESULT onLine([retval, out] VARIANT_BOOL *p);
2323
2324     [propget, id(DISPID_IOMNAVIGATOR_USERPROFILE)]
2325     HRESULT userProfile([retval, out] IHTMLOpsProfile **p);
2326 }
2327
2328 /*****************************************************************************
2329  *    IHTMLLocation interface
2330  */
2331 [
2332     odl,
2333     oleautomation,
2334     dual,
2335     uuid(163BB1E0-6E00-11cf-837A-48DC04C10000)
2336 ]
2337 interface IHTMLLocation : IDispatch
2338 {
2339     [propput, id(DISPID_IHTMLLOCATION_HREF)]
2340     HRESULT href([in] BSTR v);
2341
2342     [propget, id(DISPID_IHTMLLOCATION_HREF)]
2343     HRESULT href([retval, out] BSTR *p);
2344
2345     [propput, id(DISPID_IHTMLLOCATION_PROTOCOL)]
2346     HRESULT protocol([in] BSTR v);
2347
2348     [propget, id(DISPID_IHTMLLOCATION_PROTOCOL)]
2349     HRESULT protocol([retval, out] BSTR *p);
2350
2351     [propput, id(DISPID_IHTMLLOCATION_HOST)]
2352     HRESULT host([in] BSTR v);
2353
2354     [propget, id(DISPID_IHTMLLOCATION_HOST)]
2355     HRESULT host([retval, out] BSTR *p);
2356
2357     [propput, id(DISPID_IHTMLLOCATION_HOSTNAME)]
2358     HRESULT hostname([in] BSTR v);
2359
2360     [propget, id(DISPID_IHTMLLOCATION_HOSTNAME)]
2361     HRESULT hostname([retval, out] BSTR *p);
2362
2363     [propput, id(DISPID_IHTMLLOCATION_PORT)]
2364     HRESULT port([in] BSTR v);
2365
2366     [propget, id(DISPID_IHTMLLOCATION_PORT)]
2367     HRESULT port([retval, out] BSTR *p);
2368
2369     [propput, id(DISPID_IHTMLLOCATION_PATHNAME)]
2370     HRESULT pathname([in] BSTR v);
2371
2372     [propget, id(DISPID_IHTMLLOCATION_PATHNAME)]
2373     HRESULT pathname([retval, out] BSTR *p);
2374
2375     [propput, id(DISPID_IHTMLLOCATION_SEARCH)]
2376     HRESULT search([in] BSTR v);
2377
2378     [propget, id(DISPID_IHTMLLOCATION_SEARCH)]
2379     HRESULT search([retval, out] BSTR *p);
2380
2381     [propput, id(DISPID_IHTMLLOCATION_HASH)]
2382     HRESULT hash([in] BSTR v);
2383
2384     [propget, id(DISPID_IHTMLLOCATION_HASH)]
2385     HRESULT hash([retval, out] BSTR *p);
2386
2387     [id(DISPID_IHTMLLOCATION_RELOAD)]
2388     HRESULT reload([defaultvalue(0), in] VARIANT_BOOL flag);
2389
2390     [id(DISPID_IHTMLLOCATION_REPLACE)]
2391     HRESULT replace([in] BSTR bstr);
2392
2393     [id(DISPID_IHTMLLOCATION_ASSIGN)]
2394     HRESULT assign([in] BSTR bstr);
2395
2396     [id(DISPID_IHTMLLOCATION_TOSTRING)]
2397     HRESULT toString([retval, out] BSTR *String);
2398 }
2399
2400 /*****************************************************************************
2401  *    IHTMLEventObj interface
2402  */
2403 [
2404     odl,
2405     oleautomation,
2406     dual,
2407     uuid(3050F32D-98B5-11CF-BB82-00AA00BDCE0B)
2408 ]
2409 interface IHTMLEventObj : IDispatch
2410 {
2411     [propget, id(DISPID_IHTMLEVENTOBJ_SRCELEMENT)]
2412     HRESULT srcElement([retval, out] IHTMLElement **p);
2413
2414     [propget, id(DISPID_IHTMLEVENTOBJ_ALTKEY)]
2415     HRESULT altKey([retval, out] VARIANT_BOOL *p);
2416
2417     [propget, id(DISPID_IHTMLEVENTOBJ_CTRLKEY)]
2418     HRESULT ctrlKey([retval, out] VARIANT_BOOL *p);
2419
2420     [propget, id(DISPID_IHTMLEVENTOBJ_SHIFTKEY)]
2421     HRESULT shiftKey([retval, out] VARIANT_BOOL *p);
2422
2423     [propput, id(DISPID_IHTMLEVENTOBJ_RETURNVALUE)]
2424     HRESULT returnValue([in] VARIANT v);
2425
2426     [propget, id(DISPID_IHTMLEVENTOBJ_RETURNVALUE)]
2427     HRESULT returnValue([retval, out] VARIANT *p);
2428
2429     [propput, id(DISPID_IHTMLEVENTOBJ_CANCELBUBBLE)]
2430     HRESULT cancelBubble([in] VARIANT_BOOL v);
2431
2432     [propget, id(DISPID_IHTMLEVENTOBJ_CANCELBUBBLE)]
2433     HRESULT cancelBubble([retval, out] VARIANT_BOOL *p);
2434
2435     [propget, id(DISPID_IHTMLEVENTOBJ_FROMELEMENT)]
2436     HRESULT fromElement([retval, out] IHTMLElement **p);
2437
2438     [propget, id(DISPID_IHTMLEVENTOBJ_TOELEMENT)]
2439     HRESULT toElement([retval, out] IHTMLElement **p);
2440
2441     [propput, id(DISPID_IHTMLEVENTOBJ_KEYCODE)]
2442     HRESULT keyCode([in] long v);
2443
2444     [propget, id(DISPID_IHTMLEVENTOBJ_KEYCODE)]
2445     HRESULT keyCode([retval, out] long *p);
2446
2447     [propget, id(DISPID_IHTMLEVENTOBJ_BUTTON)]
2448     HRESULT button([retval, out] long *p);
2449
2450     [propget, id(DISPID_IHTMLEVENTOBJ_TYPE)]
2451     HRESULT type([retval, out] BSTR *p);
2452
2453     [propget, id(DISPID_IHTMLEVENTOBJ_QUALIFIER)]
2454     HRESULT qualifier([retval, out] BSTR *p);
2455
2456     [propget, id(DISPID_IHTMLEVENTOBJ_REASON)]
2457     HRESULT reason([retval, out] long *p);
2458
2459     [propget, id(DISPID_IHTMLEVENTOBJ_X)]
2460     HRESULT x([retval, out] long *p);
2461
2462     [propget, id(DISPID_IHTMLEVENTOBJ_Y)]
2463     HRESULT y([retval, out] long *p);
2464
2465     [propget, id(DISPID_IHTMLEVENTOBJ_CLIENTX)]
2466     HRESULT clientX([retval, out] long *p);
2467
2468     [propget, id(DISPID_IHTMLEVENTOBJ_CLIENTY)]
2469     HRESULT clientY([retval, out] long *p);
2470
2471     [propget, id(DISPID_IHTMLEVENTOBJ_OFFSETX)]
2472     HRESULT offsetX([retval, out] long *p);
2473
2474     [propget, id(DISPID_IHTMLEVENTOBJ_OFFSETY)]
2475     HRESULT offsetY([retval, out] long *p);
2476
2477     [propget, id(DISPID_IHTMLEVENTOBJ_SCREENX)]
2478     HRESULT screenX([retval, out] long *p);
2479
2480     [propget, id(DISPID_IHTMLEVENTOBJ_SCREENY)]
2481     HRESULT screenY([retval, out] long *p);
2482
2483     [propget, id(DISPID_IHTMLEVENTOBJ_SRCFILTER)]
2484     HRESULT srcFilter([retval, out] IDispatch **p);
2485 }
2486
2487 /*****************************************************************************
2488  *    IHTMLFramesCollection2 interface
2489  */
2490 [
2491     odl,
2492     oleautomation,
2493     dual,
2494     uuid(332C4426-26CB-11D0-B483-00C04FD90119)
2495 ]
2496 interface IHTMLFramesCollection2 : IDispatch
2497 {
2498     [id(DISPID_IHTMLFRAMESCOLLECTION2_ITEM)]
2499     HRESULT item(
2500         [in] VARIANT *pvarIndex,
2501         [retval, out] VARIANT *pvarResult);
2502
2503     [propget, id(DISPID_IHTMLFRAMESCOLLECTION2_LENGTH)]
2504     HRESULT length([retval, out] long *p);
2505 }
2506
2507 /*****************************************************************************
2508  *    IHTMLScreen interface
2509  */
2510 [
2511     odl,
2512     oleautomation,
2513     dual,
2514     uuid(3050f35C-98B5-11CF-BB82-00AA00BDCE0B)
2515 ]
2516 interface IHTMLScreen : IDispatch
2517 {
2518     [propget, id(DISPID_IHTMLSCREEN_COLORDEPTH)]
2519     HRESULT colorDepth([retval, out] long *p);
2520
2521     [propput, id(DISPID_IHTMLSCREEN_BUFFERDEPTH)]
2522     HRESULT bufferDepth([in] long v);
2523
2524     [propget, id(DISPID_IHTMLSCREEN_BUFFERDEPTH)]
2525     HRESULT bufferDepth([retval, out] long *p);
2526
2527     [propget, id(DISPID_IHTMLSCREEN_WIDTH)]
2528     HRESULT width([retval, out] long *p);
2529
2530     [propget, id(DISPID_IHTMLSCREEN_HEIGHT)]
2531     HRESULT height([retval, out] long *p);
2532
2533     [propput, id(DISPID_IHTMLSCREEN_UPDATEINTERVAL)]
2534     HRESULT updateInterval([in] long v);
2535
2536     [propget, id(DISPID_IHTMLSCREEN_UPDATEINTERVAL)]
2537     HRESULT updateInterval([retval, out] long *p);
2538
2539     [propget, id(DISPID_IHTMLSCREEN_AVAILHEIGHT)]
2540     HRESULT availHeight([retval, out] long *p);
2541
2542     [propget, id(DISPID_IHTMLSCREEN_AVAILWIDTH)]
2543     HRESULT availWidth([retval, out] long *p);
2544
2545     [propget, id(DISPID_IHTMLSCREEN_FONTSMOOTHINGENABLED)]
2546     HRESULT fontSmoothingEnabled([retval, out] VARIANT_BOOL *p);
2547 }
2548
2549 /*****************************************************************************
2550  *    IHTMLWindow2 interface
2551  */
2552 [
2553     odl,
2554     oleautomation,
2555     dual,
2556     uuid(332C4427-26CB-11D0-B483-00C04FD90119)
2557 ]
2558 interface IHTMLWindow2 : IHTMLFramesCollection2
2559 {
2560     [propget, id(DISPID_IHTMLWINDOW2_FRAMES)]
2561     HRESULT frames([retval, out] IHTMLFramesCollection2 **p);
2562
2563     [propput, id(DISPID_IHTMLWINDOW2_DEFAULTSTATUS)]
2564     HRESULT defaultStatus([in] BSTR v);
2565
2566     [propget, id(DISPID_IHTMLWINDOW2_DEFAULTSTATUS)]
2567     HRESULT defaultStatus([retval, out] BSTR *p);
2568
2569     [propput, id(DISPID_IHTMLWINDOW2_STATUS)]
2570     HRESULT status([in] BSTR v);
2571
2572     [propget, id(DISPID_IHTMLWINDOW2_STATUS)]
2573     HRESULT status([retval, out] BSTR *p);
2574
2575     [id(DISPID_IHTMLWINDOW2_SETTIMEOUT)]
2576     HRESULT setTimeout(
2577         [in] BSTR expression,
2578         [in] long msec,
2579         [optional, in] VARIANT *language,
2580         [retval, out] long *timerID);
2581
2582     [id(DISPID_IHTMLWINDOW2_CLEARTIMEOUT)]
2583     HRESULT clearTimeout([in] long timerID);
2584
2585     [id(DISPID_IHTMLWINDOW2_ALERT)]
2586     HRESULT alert([defaultvalue(""), in] BSTR message);
2587
2588     [id(DISPID_IHTMLWINDOW2_CONFIRM)]
2589     HRESULT confirm(
2590         [defaultvalue(""), in] BSTR message,
2591         [retval, out] VARIANT_BOOL *confirmed);
2592
2593     [id(DISPID_IHTMLWINDOW2_PROMPT)]
2594     HRESULT prompt(
2595         [defaultvalue(""), in] BSTR message,
2596         [defaultvalue("undefined"), in] BSTR defstr,
2597         [retval, out] VARIANT *textdata);
2598
2599     [propget, id(DISPID_IHTMLWINDOW2_IMAGE)]
2600     HRESULT Image([retval, out] IHTMLImageElementFactory **p);
2601
2602     [propget, id(DISPID_IHTMLWINDOW2_LOCATION)]
2603     HRESULT location([retval, out] IHTMLLocation **p);
2604
2605     [propget, id(DISPID_IHTMLWINDOW2_HISTORY)]
2606     HRESULT history([retval, out] IOmHistory **p);
2607
2608     [id(DISPID_IHTMLWINDOW2_CLOSE)]
2609     HRESULT close();
2610
2611     [propput, id(DISPID_IHTMLWINDOW2_OPENER)]
2612     HRESULT opener([in] VARIANT v);
2613
2614     [propget, id(DISPID_IHTMLWINDOW2_OPENER)]
2615     HRESULT opener([retval, out] VARIANT *p);
2616
2617     [propget, id(DISPID_IHTMLWINDOW2_NAVIGATOR)]
2618     HRESULT navigator([retval, out] IOmNavigator **p);
2619
2620     [propput, id(DISPID_IHTMLWINDOW2_NAME)]
2621     HRESULT name([in] BSTR v);
2622
2623     [propget, id(DISPID_IHTMLWINDOW2_NAME)]
2624     HRESULT name([retval, out] BSTR *p);
2625
2626     [propget, id(DISPID_IHTMLWINDOW2_PARENT)]
2627     HRESULT parent([retval, out] IHTMLWindow2 **p);
2628
2629     [id(DISPID_IHTMLWINDOW2_OPEN)]
2630     HRESULT open(
2631         [defaultvalue(""), in] BSTR url,
2632         [defaultvalue(""), in] BSTR name,
2633         [defaultvalue(""), in] BSTR features,
2634         [defaultvalue(0), in] VARIANT_BOOL replace,
2635         [retval, out] IHTMLWindow2 **pomWindowResult);
2636
2637     [propget, id(DISPID_IHTMLWINDOW2_SELF)]
2638     HRESULT self([retval, out] IHTMLWindow2 **p);
2639
2640     [propget, id(DISPID_IHTMLWINDOW2_TOP)]
2641     HRESULT top([retval, out] IHTMLWindow2 **p);
2642
2643     [propget, id(DISPID_IHTMLWINDOW2_WINDOW)]
2644     HRESULT window([retval, out] IHTMLWindow2 **p);
2645
2646     [id(DISPID_IHTMLWINDOW2_NAVIGATE)]
2647     HRESULT navigate([in] BSTR url);
2648
2649     [propput, id(DISPID_IHTMLWINDOW2_ONFOCUS)]
2650     HRESULT onfocus([in] VARIANT v);
2651
2652     [propget, id(DISPID_IHTMLWINDOW2_ONFOCUS)]
2653     HRESULT onfocus([retval, out] VARIANT *p);
2654
2655     [propput, id(DISPID_IHTMLWINDOW2_ONBLUR)]
2656     HRESULT onblur([in] VARIANT v);
2657
2658     [propget, id(DISPID_IHTMLWINDOW2_ONBLUR)]
2659     HRESULT onblur([retval, out] VARIANT *p);
2660
2661     [propput, id(DISPID_IHTMLWINDOW2_ONLOAD)]
2662     HRESULT onload([in] VARIANT v);
2663
2664     [propget, id(DISPID_IHTMLWINDOW2_ONLOAD)]
2665     HRESULT onload([retval, out] VARIANT *p);
2666
2667     [propput, id(DISPID_IHTMLWINDOW2_ONBEFOREUNLOAD)]
2668     HRESULT onbeforeunload([in] VARIANT v);
2669
2670     [propget, id(DISPID_IHTMLWINDOW2_ONBEFOREUNLOAD)]
2671     HRESULT onbeforeunload([retval, out] VARIANT *p);
2672
2673     [propput, id(DISPID_IHTMLWINDOW2_ONUNLOAD)]
2674     HRESULT onunload([in] VARIANT v);
2675
2676     [propget, id(DISPID_IHTMLWINDOW2_ONUNLOAD)]
2677     HRESULT onunload([retval, out] VARIANT *p);
2678
2679     [propput, id(DISPID_IHTMLWINDOW2_ONHELP)]
2680     HRESULT onhelp([in] VARIANT v);
2681
2682     [propget, id(DISPID_IHTMLWINDOW2_ONHELP)]
2683     HRESULT onhelp([retval, out] VARIANT *p);
2684
2685     [propput, id(DISPID_IHTMLWINDOW2_ONERROR)]
2686     HRESULT onerror([in] VARIANT v);
2687
2688     [propget, id(DISPID_IHTMLWINDOW2_ONERROR)]
2689     HRESULT onerror([retval, out] VARIANT *p);
2690
2691     [propput, id(DISPID_IHTMLWINDOW2_ONRESIZE)]
2692     HRESULT onresize([in] VARIANT v);
2693
2694     [propget, id(DISPID_IHTMLWINDOW2_ONRESIZE)]
2695     HRESULT onresize([retval, out] VARIANT *p);
2696
2697     [propput, id(DISPID_IHTMLWINDOW2_ONSCROLL)]
2698     HRESULT onscroll([in] VARIANT v);
2699
2700     [propget, id(DISPID_IHTMLWINDOW2_ONSCROLL)]
2701     HRESULT onscroll([retval, out] VARIANT *p);
2702
2703     [propget, id(DISPID_IHTMLWINDOW2_DOCUMENT)]
2704     HRESULT document([retval, out] IHTMLDocument2 **p);
2705
2706     [propget, id(DISPID_IHTMLWINDOW2_EVENT)]
2707     HRESULT event([retval, out] IHTMLEventObj **p);
2708
2709     [propget, id(DISPID_IHTMLWINDOW2__NEWENUM)]
2710     HRESULT _newEnum([retval, out] IUnknown **p);
2711
2712     [id(DISPID_IHTMLWINDOW2_SHOWMODALDIALOG)]
2713     HRESULT showModalDialog(
2714         [in] BSTR dialog,
2715         [optional, in] VARIANT *varArgIn,
2716         [optional, in] VARIANT *varOptions,
2717         [retval, out] VARIANT *varArgOut);
2718
2719     [id(DISPID_IHTMLWINDOW2_SHOWHELP)]
2720     HRESULT showHelp(
2721         [in] BSTR helpURL,
2722         [optional, in] VARIANT helpArg,
2723         [defaultvalue(""), in] BSTR features);
2724
2725     [propget, id(DISPID_IHTMLWINDOW2_SCREEN)]
2726     HRESULT screen([retval, out] IHTMLScreen **p);
2727
2728     [propget, id(DISPID_IHTMLWINDOW2_OPTION)]
2729     HRESULT Option([retval, out] IHTMLOptionElementFactory **p);
2730
2731     [id(DISPID_IHTMLWINDOW2_FOCUS)]
2732     HRESULT focus();
2733
2734     [propget, id(DISPID_IHTMLWINDOW2_CLOSED)]
2735     HRESULT closed([retval, out] VARIANT_BOOL *p);
2736
2737     [id(DISPID_IHTMLWINDOW2_BLUR)]
2738     HRESULT blur();
2739
2740     [id(DISPID_IHTMLWINDOW2_SCROLL)]
2741     HRESULT scroll([in] long x, [in] long y);
2742
2743     [propget, id(DISPID_IHTMLWINDOW2_CLIENTINFORMATION)]
2744     HRESULT clientInformation([retval, out] IOmNavigator **p);
2745
2746     [id(DISPID_IHTMLWINDOW2_SETINTERVAL)]
2747     HRESULT setInterval([
2748         in] BSTR expression,
2749         [in] long msec,
2750         [optional, in] VARIANT *language,
2751         [retval, out] long *timerID);
2752
2753     [id(DISPID_IHTMLWINDOW2_CLEARINTERVAL)]
2754     HRESULT clearInterval([in] long timerID);
2755
2756     [propput, id(DISPID_IHTMLWINDOW2_OFFSCREENBUFFERING)]
2757     HRESULT offscreenBuffering([in] VARIANT v);
2758
2759     [propget, id(DISPID_IHTMLWINDOW2_OFFSCREENBUFFERING)]
2760     HRESULT offscreenBuffering([retval, out] VARIANT *p);
2761
2762     [id(DISPID_IHTMLWINDOW2_EXECSCRIPT)]
2763     HRESULT execScript(
2764         [in] BSTR scode,
2765         [defaultvalue("JScript"), in] BSTR language,
2766         [retval, out] VARIANT *pvarRet);
2767
2768     [id(DISPID_IHTMLWINDOW2_TOSTRING)]
2769     HRESULT toString([retval, out] BSTR *String);
2770
2771     [id(DISPID_IHTMLWINDOW2_SCROLLBY)]
2772     HRESULT scrollBy([in] long x, [in] long y);
2773
2774     [id(DISPID_IHTMLWINDOW2_SCROLLTO)]
2775     HRESULT scrollTo([in] long x, [in] long y);
2776
2777     [id(DISPID_IHTMLWINDOW2_MOVETO)]
2778     HRESULT moveTo([in] long x, [in] long y);
2779
2780     [id(DISPID_IHTMLWINDOW2_MOVEBY)]
2781     HRESULT moveBy([in] long x, [in] long y);
2782
2783     [id(DISPID_IHTMLWINDOW2_RESIZETO)]
2784     HRESULT resizeTo([in] long x, [in] long y);
2785
2786     [id(DISPID_IHTMLWINDOW2_RESIZEBY)]
2787     HRESULT resizeBy([in] long x, [in] long y);
2788
2789     [propget, id(DISPID_IHTMLWINDOW2_EXTERNAL)]
2790     HRESULT external([retval, out] IDispatch **p);
2791 }
2792
2793 /*****************************************************************************
2794  *    IHTMLDocument interface
2795  */
2796 [
2797     odl,
2798     oleautomation,
2799     dual,
2800     uuid(626FC520-A41E-11CF-A731-00A0C9082637)
2801 ]
2802 interface IHTMLDocument : IDispatch
2803 {
2804     [propget, id(DISPID_IHTMLDOCUMENT_SCRIPT)]
2805     HRESULT Script([retval, out] IDispatch **p);
2806 }
2807
2808 /*****************************************************************************
2809  *    IHTMLDocument2 interface
2810  */
2811 [
2812     odl,
2813     oleautomation,
2814     dual,
2815     uuid(332C4425-26CB-11D0-B483-00C04FD90119)
2816 ]
2817 interface IHTMLDocument2 : IHTMLDocument
2818 {
2819     [propget, id(DISPID_IHTMLDOCUMENT2_ALL)]
2820     HRESULT all([retval, out] IHTMLElementCollection **p);
2821
2822     [propget, id(DISPID_IHTMLDOCUMENT2_BODY)]
2823     HRESULT body([retval, out] IHTMLElement **p);
2824
2825     [propget, id(DISPID_IHTMLDOCUMENT2_ACTIVEELEMENT)]
2826     HRESULT activeElement([retval, out] IHTMLElement **p);
2827
2828     [propget, id(DISPID_IHTMLDOCUMENT2_IMAGES)]
2829     HRESULT images([retval, out] IHTMLElementCollection **p);
2830
2831     [propget, id(DISPID_IHTMLDOCUMENT2_APPLETS)]
2832     HRESULT applets([retval, out] IHTMLElementCollection **p);
2833
2834     [propget, id(DISPID_IHTMLDOCUMENT2_LINKS)]
2835     HRESULT links([retval, out] IHTMLElementCollection **p);
2836
2837     [propget, id(DISPID_IHTMLDOCUMENT2_FORMS)]
2838     HRESULT forms([retval, out] IHTMLElementCollection **p);
2839
2840     [propget, id(DISPID_IHTMLDOCUMENT2_ANCHORS)]
2841     HRESULT anchors([retval, out] IHTMLElementCollection **p);
2842
2843     [propput, id(DISPID_IHTMLDOCUMENT2_TITLE)]
2844     HRESULT title([in] BSTR v);
2845
2846     [propget, id(DISPID_IHTMLDOCUMENT2_TITLE)]
2847     HRESULT title([retval, out] BSTR *p);
2848
2849     [propget, id(DISPID_IHTMLDOCUMENT2_SCRIPTS)]
2850     HRESULT scripts([retval, out] IHTMLElementCollection **p);
2851
2852     [propput, id(DISPID_IHTMLDOCUMENT2_DESIGNMODE)]
2853     HRESULT designMode([in] BSTR v);
2854
2855     [propget, id(DISPID_IHTMLDOCUMENT2_DESIGNMODE)]
2856     HRESULT designMode([retval, out] BSTR *p);
2857
2858     [propget, id(DISPID_IHTMLDOCUMENT2_SELECTION)]
2859     HRESULT selection([retval, out] IHTMLSelectionObject **p);
2860
2861     [propget, id(DISPID_IHTMLDOCUMENT2_READYSTATE)]
2862      HRESULT readyState([retval, out] BSTR *p);
2863
2864     [propget, id(DISPID_IHTMLDOCUMENT2_FRAMES)]
2865     HRESULT frames([retval, out] IHTMLFramesCollection2 **p);
2866
2867     [propget, id(DISPID_IHTMLDOCUMENT2_EMBEDS)]
2868     HRESULT embeds([retval, out] IHTMLElementCollection **p);
2869
2870     [propget, id(DISPID_IHTMLDOCUMENT2_PLUGINS)]
2871     HRESULT plugins([retval, out] IHTMLElementCollection **p);
2872
2873     [propput, id(DISPID_IHTMLDOCUMENT2_ALINKCOLOR)]
2874     HRESULT alinkColor([in] VARIANT v);
2875
2876     [propget, id(DISPID_IHTMLDOCUMENT2_ALINKCOLOR)]
2877     HRESULT alinkColor([retval, out] VARIANT *p);
2878
2879     [propput, id(DISPID_IHTMLDOCUMENT2_BGCOLOR)]
2880     HRESULT bgColor([in] VARIANT v);
2881
2882     [propget, id(DISPID_IHTMLDOCUMENT2_BGCOLOR)]
2883     HRESULT bgColor([retval, out] VARIANT *p);
2884
2885     [propput, id(DISPID_IHTMLDOCUMENT2_FGCOLOR)]
2886     HRESULT fgColor([in] VARIANT v);
2887
2888     [propget, id(DISPID_IHTMLDOCUMENT2_FGCOLOR)]
2889     HRESULT fgColor([retval, out] VARIANT *p);
2890
2891     [propput, id(DISPID_IHTMLDOCUMENT2_LINKCOLOR)]
2892     HRESULT linkColor([in] VARIANT v);
2893
2894     [propget, id(DISPID_IHTMLDOCUMENT2_LINKCOLOR)]
2895     HRESULT linkColor([retval, out] VARIANT *p);
2896
2897     [propput, id(DISPID_IHTMLDOCUMENT2_VLINKCOLOR)]
2898     HRESULT vlinkColor([in] VARIANT v);
2899
2900     [propget, id(DISPID_IHTMLDOCUMENT2_VLINKCOLOR)]
2901     HRESULT vlinkColor([retval, out] VARIANT *p);
2902
2903     [propget, id(DISPID_IHTMLDOCUMENT2_REFERRER)]
2904     HRESULT referrer([retval, out] BSTR *p);
2905
2906     [propget, id(DISPID_IHTMLDOCUMENT2_LOCATION)]
2907     HRESULT location([retval, out] IHTMLLocation **p);
2908
2909     [propget, id(DISPID_IHTMLDOCUMENT2_LASTMODIFIED)]
2910     HRESULT lastModified([retval, out] BSTR *p);
2911
2912     [propput, id(DISPID_IHTMLDOCUMENT2_URL)]
2913     HRESULT URL([in] BSTR v);
2914
2915     [propget, id(DISPID_IHTMLDOCUMENT2_URL)]
2916     HRESULT URL([retval, out] BSTR *p);
2917
2918     [propput, id(DISPID_IHTMLDOCUMENT2_DOMAIN)]
2919     HRESULT domain([in] BSTR v);
2920
2921     [propget, id(DISPID_IHTMLDOCUMENT2_DOMAIN)]
2922     HRESULT domain([retval, out] BSTR *p);
2923
2924     [propput, id(DISPID_IHTMLDOCUMENT2_COOKIE)]
2925     HRESULT cookie([in] BSTR v);
2926
2927     [propget, id(DISPID_IHTMLDOCUMENT2_COOKIE)]
2928     HRESULT cookie([retval, out] BSTR *p);
2929
2930     [propput, id(DISPID_IHTMLDOCUMENT2_EXPANDO)]
2931     HRESULT expando([in] VARIANT_BOOL v);
2932
2933     [propget, id(DISPID_IHTMLDOCUMENT2_EXPANDO)]
2934     HRESULT expando([retval, out] VARIANT_BOOL *p);
2935
2936     [propput, id(DISPID_IHTMLDOCUMENT2_CHARSET)]
2937      HRESULT charset([in] BSTR v);
2938
2939     [propget, id(DISPID_IHTMLDOCUMENT2_CHARSET)]
2940     HRESULT charset([retval, out] BSTR *p);
2941
2942     [propput, id(DISPID_IHTMLDOCUMENT2_DEFAULTCHARSET)]
2943     HRESULT defaultCharset([in] BSTR v);
2944
2945     [propget, id(DISPID_IHTMLDOCUMENT2_DEFAULTCHARSET)]
2946     HRESULT defaultCharset([retval, out] BSTR *p);
2947
2948     [propget, id(DISPID_IHTMLDOCUMENT2_MIMETYPE)]
2949     HRESULT mimeType([retval, out] BSTR *p);
2950
2951     [propget, id(DISPID_IHTMLDOCUMENT2_FILESIZE)]
2952     HRESULT fileSize([retval, out] BSTR *p);
2953
2954     [propget, id(DISPID_IHTMLDOCUMENT2_FILECREATEDDATE)]
2955     HRESULT fileCreatedDate([retval, out] BSTR *p);
2956
2957     [propget, id(DISPID_IHTMLDOCUMENT2_FILEMODIFIEDDATE)]
2958     HRESULT fileModifiedDate([retval, out] BSTR *p);
2959
2960     [propget, id(DISPID_IHTMLDOCUMENT2_FILEUPDATEDDATE)]
2961     HRESULT fileUpdatedDate([retval, out] BSTR *p);
2962
2963     [propget, id(DISPID_IHTMLDOCUMENT2_SECURITY)]
2964     HRESULT security([retval, out] BSTR *p);
2965
2966     [propget, id(DISPID_IHTMLDOCUMENT2_PROTOCOL)]
2967     HRESULT protocol([retval, out] BSTR *p);
2968
2969     [propget, id(DISPID_IHTMLDOCUMENT2_NAMEPROP)]
2970      HRESULT nameProp([retval, out] BSTR *p);
2971
2972     [vararg, id(DISPID_IHTMLDOCUMENT2_WRITE)]
2973     HRESULT write([in] SAFEARRAY *psarray);
2974
2975     [vararg, id(DISPID_IHTMLDOCUMENT2_WRITELN)]
2976     HRESULT writeln([in] SAFEARRAY *psarray);
2977
2978     [id(DISPID_IHTMLDOCUMENT2_OPEN)]
2979     HRESULT open(
2980         [defaultvalue("text/html"), in] BSTR url,
2981         [optional, in] VARIANT name,
2982         [optional, in] VARIANT features,
2983         [optional, in] VARIANT replace,
2984         [retval, out]  IDispatch **pomWindowResult);
2985
2986     [id(DISPID_IHTMLDOCUMENT2_CLOSE)]
2987     HRESULT close();
2988
2989     [id(DISPID_IHTMLDOCUMENT2_CLEAR)]
2990     HRESULT clear();
2991
2992     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDSUPPORTED)]
2993     HRESULT queryCommandSupported(
2994         [in] BSTR cmdID,
2995         [retval, out] VARIANT_BOOL *pfRet);
2996
2997     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDENABLED)]
2998     HRESULT queryCommandEnabled(
2999         [in] BSTR cmdID,
3000         [retval, out] VARIANT_BOOL *pfRet);
3001
3002     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDSTATE)]
3003     HRESULT queryCommandState(
3004         [in] BSTR cmdID,
3005         [retval, out] VARIANT_BOOL *pfRet);
3006
3007     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDINDETERM)]
3008     HRESULT queryCommandIndeterm(
3009         [in] BSTR cmdID,
3010         [retval, out] VARIANT_BOOL *pfRet);
3011
3012     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDTEXT)]
3013     HRESULT queryCommandText(
3014         [in] BSTR cmdID,
3015         [retval, out] BSTR *pcmdText);
3016
3017     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDVALUE)]
3018     HRESULT queryCommandValue(
3019         [in] BSTR cmdID,
3020         [retval, out] VARIANT *pcmdValue);
3021
3022     [id(DISPID_IHTMLDOCUMENT2_EXECCOMMAND)]
3023     HRESULT execCommand(
3024         [in] BSTR cmdID,
3025         [defaultvalue(0), in] VARIANT_BOOL showUI,
3026         [optional, in] VARIANT value,
3027         [retval, out] VARIANT_BOOL *pfRet);
3028
3029     [id(DISPID_IHTMLDOCUMENT2_EXECCOMMANDSHOWHELP)]
3030     HRESULT execCommandShowHelp(
3031         [in] BSTR cmdID,
3032         [retval, out] VARIANT_BOOL *pfRet);
3033
3034     [id(DISPID_IHTMLDOCUMENT2_CREATEELEMENT)]
3035      HRESULT createElement(
3036         [in] BSTR eTag,
3037         [retval, out] IHTMLElement **newElem);
3038
3039     [propput, id(DISPID_IHTMLDOCUMENT2_ONHELP)]
3040     HRESULT onhelp([in] VARIANT v);
3041
3042     [propget, id(DISPID_IHTMLDOCUMENT2_ONHELP)]
3043     HRESULT onhelp([retval, out] VARIANT *p);
3044
3045     [propput, id(DISPID_IHTMLDOCUMENT2_ONCLICK)]
3046     HRESULT onclick([in] VARIANT v);
3047
3048     [propget, id(DISPID_IHTMLDOCUMENT2_ONCLICK)]
3049     HRESULT onclick([retval, out] VARIANT *p);
3050
3051     [propput, id(DISPID_IHTMLDOCUMENT2_ONDBLCLICK)]
3052     HRESULT ondblclick([in] VARIANT v);
3053
3054     [propget, id(DISPID_IHTMLDOCUMENT2_ONDBLCLICK)]
3055     HRESULT ondblclick([retval, out] VARIANT *p);
3056
3057     [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYUP)]
3058     HRESULT onkeyup([in] VARIANT v);
3059
3060     [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYUP)]
3061     HRESULT onkeyup([retval, out] VARIANT *p);
3062
3063     [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYDOWN)]
3064     HRESULT onkeydown([in] VARIANT v);
3065
3066     [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYDOWN)]
3067     HRESULT onkeydown([retval, out] VARIANT *p);
3068
3069     [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYPRESS)]
3070      HRESULT onkeypress([in] VARIANT v);
3071
3072     [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYPRESS)]
3073     HRESULT onkeypress([retval, out] VARIANT *p);
3074
3075     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEUP)]
3076     HRESULT onmouseup([in] VARIANT v);
3077
3078     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEUP)]
3079     HRESULT onmouseup([retval, out] VARIANT *p);
3080
3081     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEDOWN)]
3082     HRESULT onmousedown([in] VARIANT v);
3083
3084     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEDOWN)]
3085     HRESULT onmousedown([retval, out] VARIANT *p);
3086
3087     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEMOVE)]
3088     HRESULT onmousemove([in] VARIANT v);
3089
3090     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEMOVE)]
3091     HRESULT onmousemove([retval, out] VARIANT *p);
3092
3093     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOUT)]
3094     HRESULT onmouseout([in] VARIANT v);
3095
3096     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOUT)]
3097     HRESULT onmouseout([retval, out] VARIANT *p);
3098
3099     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOVER)]
3100     HRESULT onmouseover([in] VARIANT v);
3101
3102     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOVER)]
3103     HRESULT onmouseover([retval, out] VARIANT *p);
3104
3105     [propput, id(DISPID_IHTMLDOCUMENT2_ONREADYSTATECHANGE)]
3106     HRESULT onreadystatechange([in] VARIANT v);
3107
3108     [propget, id(DISPID_IHTMLDOCUMENT2_ONREADYSTATECHANGE)]
3109     HRESULT onreadystatechange([retval, out] VARIANT *p);
3110
3111     [propput, id(DISPID_IHTMLDOCUMENT2_ONAFTERUPDATE)]
3112     HRESULT onafterupdate([in] VARIANT v);
3113
3114     [propget, id(DISPID_IHTMLDOCUMENT2_ONAFTERUPDATE)]
3115     HRESULT onafterupdate([retval, out] VARIANT *p);
3116
3117     [propput, id(DISPID_IHTMLDOCUMENT2_ONROWEXIT)]
3118     HRESULT onrowexit([in] VARIANT v);
3119
3120     [propget, id(DISPID_IHTMLDOCUMENT2_ONROWEXIT)]
3121     HRESULT onrowexit([retval, out] VARIANT *p);
3122
3123     [propput, id(DISPID_IHTMLDOCUMENT2_ONROWENTER)]
3124     HRESULT onrowenter([in] VARIANT v);
3125
3126     [propget, id(DISPID_IHTMLDOCUMENT2_ONROWENTER)]
3127     HRESULT onrowenter([retval, out] VARIANT *p);
3128
3129     [propput, id(DISPID_IHTMLDOCUMENT2_ONDRAGSTART)]
3130     HRESULT ondragstart([in] VARIANT v);
3131
3132     [propget, id(DISPID_IHTMLDOCUMENT2_ONDRAGSTART)]
3133     HRESULT ondragstart([retval, out] VARIANT *p);
3134
3135     [propput, id(DISPID_IHTMLDOCUMENT2_ONSELECTSTART)]
3136     HRESULT onselectstart([in] VARIANT v);
3137
3138     [propget, id(DISPID_IHTMLDOCUMENT2_ONSELECTSTART)]
3139     HRESULT onselectstart([retval, out] VARIANT *p);
3140
3141     [id(DISPID_IHTMLDOCUMENT2_ELEMENTFROMPOINT)]
3142     HRESULT elementFromPoint(
3143         [in] long x,
3144         [in] long y,
3145         [retval, out] IHTMLElement **elementHit);
3146
3147     [propget, id(DISPID_IHTMLDOCUMENT2_PARENTWINDOW)]
3148     HRESULT parentWindow([retval, out] IHTMLWindow2 **p);
3149
3150     [propget, id(DISPID_IHTMLDOCUMENT2_STYLESHEETS)]
3151     HRESULT styleSheets([retval, out] IHTMLStyleSheetsCollection **p);
3152
3153     [propput, id(DISPID_IHTMLDOCUMENT2_ONBEFOREUPDATE)]
3154     HRESULT onbeforeupdate([in] VARIANT v);
3155
3156     [propget, id(DISPID_IHTMLDOCUMENT2_ONBEFOREUPDATE)]
3157     HRESULT onbeforeupdate([retval, out] VARIANT *p);
3158
3159     [propput, id(DISPID_IHTMLDOCUMENT2_ONERRORUPDATE)]
3160     HRESULT onerrorupdate([in] VARIANT v);
3161
3162     [propget, id(DISPID_IHTMLDOCUMENT2_ONERRORUPDATE)]
3163     HRESULT onerrorupdate([retval, out] VARIANT *p);
3164
3165     [id(DISPID_IHTMLDOCUMENT2_TOSTRING)]
3166     HRESULT toString([retval, out] BSTR *String);
3167
3168     [id(DISPID_IHTMLDOCUMENT2_CREATESTYLESHEET)]
3169     HRESULT createStyleSheet(
3170         [defaultvalue(""), in] BSTR bstrHref,
3171         [defaultvalue(-1), in] long lIndex,
3172         [retval, out] IHTMLStyleSheet **ppnewStyleSheet);
3173 }
3174
3175 /*****************************************************************************
3176  *    IHTMLDocument3 interface
3177  */
3178 [
3179     odl,
3180     oleautomation,
3181     dual,
3182     uuid(3050f485-98b5-11cf-bb82-00aa00bdce0b)
3183 ]
3184 interface IHTMLDocument3 : IDispatch
3185 {
3186     [id(DISPID_IHTMLDOCUMENT3_RELEASECAPTURE)]
3187     HRESULT releaseCapture();
3188
3189     [id(DISPID_IHTMLDOCUMENT3_RECALC)]
3190     HRESULT recalc([defaultvalue(0), in] VARIANT_BOOL fForce);
3191
3192     [id(DISPID_IHTMLDOCUMENT3_CREATETEXTNODE)]
3193     HRESULT createTextNode([in] BSTR text,
3194                            [retval, out] IHTMLDOMNode **newTextNode);
3195
3196     [propget, id(DISPID_IHTMLDOCUMENT3_DOCUMENTELEMENT)]
3197     HRESULT documentElement([retval, out] IHTMLElement **p);
3198
3199     [propget, id(DISPID_IHTMLDOCUMENT3_UNIQUEID), hidden]
3200     HRESULT uniqueID([retval, out] BSTR *p);
3201     
3202     [id(DISPID_IHTMLDOCUMENT3_ATTACHEVENT)]
3203     HRESULT attachEvent([in] BSTR event,
3204                         [in] IDispatch* pDisp,
3205                         [retval, out] VARIANT_BOOL *pfResult);
3206
3207     [id(DISPID_IHTMLDOCUMENT3_DETACHEVENT)]
3208     HRESULT detachEvent([in] BSTR event,
3209                         [in] IDispatch *pDisp);
3210
3211     [propput, id(DISPID_IHTMLDOCUMENT3_ONROWSDELETE), displaybind, bindable]
3212     HRESULT onrowsdelete([in] VARIANT v);
3213
3214     [propget, id(DISPID_IHTMLDOCUMENT3_ONROWSDELETE), displaybind, bindable]
3215     HRESULT onrowsdelete([retval, out] VARIANT *p);
3216
3217     [propput, id(DISPID_IHTMLDOCUMENT3_ONROWSINSERTED), displaybind, bindable]
3218     HRESULT onrowsinserted([in] VARIANT v);
3219
3220     [propget, id(DISPID_IHTMLDOCUMENT3_ONROWSINSERTED), displaybind, bindable]
3221     HRESULT onrowsinserted([retval, out] VARIANT *p);
3222
3223     [propput, id(DISPID_IHTMLDOCUMENT3_ONCELLCHANGE), displaybind, bindable]
3224     HRESULT oncellchange([in] VARIANT v);
3225
3226     [propget, id(DISPID_IHTMLDOCUMENT3_ONCELLCHANGE), displaybind, bindable]
3227     HRESULT oncellchange([retval, out] VARIANT *p);
3228
3229     [propput, id(DISPID_IHTMLDOCUMENT3_ONDATASETCHANGED), displaybind, bindable]
3230     HRESULT ondatasetchanged([in] VARIANT v);
3231
3232     [propget, id(DISPID_IHTMLDOCUMENT3_ONDATASETCHANGED), displaybind, bindable]
3233     HRESULT ondatasetchanged([retval, out] VARIANT *p);
3234
3235     [propput, id(DISPID_IHTMLDOCUMENT3_ONDATAAVAILABLE), displaybind, bindable]
3236     HRESULT ondataavailable([in] VARIANT v);
3237
3238     [propget, id(DISPID_IHTMLDOCUMENT3_ONDATAAVAILABLE), displaybind, bindable]
3239     HRESULT ondataavailable([retval, out] VARIANT * p);
3240
3241     [propput, id(DISPID_IHTMLDOCUMENT3_ONDATASETCOMPLETE), displaybind, bindable]
3242     HRESULT ondatasetcomplete([in] VARIANT v);
3243
3244     [propget, id(DISPID_IHTMLDOCUMENT3_ONDATASETCOMPLETE), displaybind, bindable]
3245     HRESULT ondatasetcomplete([retval, out] VARIANT *p);
3246
3247     [propput, id(DISPID_IHTMLDOCUMENT3_ONPROPERTYCHANGE), displaybind, bindable]
3248     HRESULT onpropertychange([in] VARIANT v);
3249
3250     [propget, id(DISPID_IHTMLDOCUMENT3_ONPROPERTYCHANGE), displaybind, bindable]
3251     HRESULT onpropertychange([retval, out] VARIANT *p);
3252
3253     [propput, id(DISPID_IHTMLDOCUMENT3_DIR)]
3254     HRESULT dir([in] BSTR v);
3255
3256     [propget, id(DISPID_IHTMLDOCUMENT3_DIR)]
3257     HRESULT dir([retval, out] BSTR *p);
3258
3259     [propput, id(DISPID_IHTMLDOCUMENT3_ONCONTEXTMENU), displaybind, bindable]
3260     HRESULT oncontextmenu([in] VARIANT v);
3261
3262     [propget, id(DISPID_IHTMLDOCUMENT3_ONCONTEXTMENU), displaybind, bindable]
3263     HRESULT oncontextmenu([retval, out] VARIANT *p);
3264
3265     [propput, id(DISPID_IHTMLDOCUMENT3_ONSTOP), displaybind, bindable]
3266     HRESULT onstop([in] VARIANT v);
3267
3268     [propget, id(DISPID_IHTMLDOCUMENT3_ONSTOP), displaybind, bindable]
3269     HRESULT onstop([retval, out] VARIANT *p);
3270
3271     [id(DISPID_IHTMLDOCUMENT3_CREATEDOCUMENTFRAGMENT)]
3272     HRESULT createDocumentFragment([retval, out] IHTMLDocument2 **pNewDoc);
3273
3274     [propget, id(DISPID_IHTMLDOCUMENT3_PARENTDOCUMENT), hidden, restricted]
3275     HRESULT parentDocument([retval, out] IHTMLDocument2 **p);
3276
3277     [propput, id(DISPID_IHTMLDOCUMENT3_ENABLEDOWNLOAD), hidden, restricted]
3278     HRESULT enableDownload([in] VARIANT_BOOL v);
3279
3280     [propget, id(DISPID_IHTMLDOCUMENT3_ENABLEDOWNLOAD), hidden, restricted]
3281     HRESULT enableDownload([retval, out] VARIANT_BOOL *p);
3282
3283     [propput, id(DISPID_IHTMLDOCUMENT3_BASEURL), hidden, restricted]
3284     HRESULT baseUrl([in] BSTR v);
3285
3286     [propget, id(DISPID_IHTMLDOCUMENT3_BASEURL), hidden, restricted]
3287     HRESULT baseUrl([retval, out] BSTR *p);
3288
3289     [propget, id(DISPID_IHTMLDOCUMENT3_CHILDNODES)]
3290     HRESULT childNodes([retval, out] IDispatch **p);
3291
3292     [propput, id(DISPID_IHTMLDOCUMENT3_INHERITSTYLESHEETS), hidden, restricted]
3293     HRESULT inheritStyleSheets([in] VARIANT_BOOL v);
3294
3295     [propget, id(DISPID_IHTMLDOCUMENT3_INHERITSTYLESHEETS), hidden, restricted]
3296     HRESULT inheritStyleSheets([retval, out] VARIANT_BOOL *p);
3297
3298     [propput, id(DISPID_IHTMLDOCUMENT3_ONBEFOREEDITFOCUS), displaybind, bindable]
3299     HRESULT onbeforeeditfocus([in] VARIANT v);
3300
3301     [propget, id(DISPID_IHTMLDOCUMENT3_ONBEFOREEDITFOCUS), displaybind, bindable]
3302     HRESULT onbeforeeditfocus([retval, out] VARIANT *p);
3303
3304     [id(DISPID_IHTMLDOCUMENT3_GETELEMENTSBYNAME)]
3305     HRESULT getElementsByName([in] BSTR v,
3306                               [retval, out] IHTMLElementCollection **pelColl);
3307
3308     [id(DISPID_IHTMLDOCUMENT3_GETELEMENTBYID)]
3309     HRESULT getElementById([in] BSTR v,
3310                            [retval, out] IHTMLElement **pel);
3311
3312     [id(DISPID_IHTMLDOCUMENT3_GETELEMENTSBYTAGNAME)]
3313     HRESULT getElementsByTagName([in] BSTR v,
3314                                  [retval, out] IHTMLElementCollection **pelColl);
3315 }
3316
3317 /*****************************************************************************
3318  *    IHTMLDocument4 interface
3319  */
3320 [
3321     odl,
3322     oleautomation,
3323     dual,
3324     uuid(3050f69a-98b5-11cf-bb82-00aa00bdce0b)
3325 ]
3326 interface IHTMLDocument4 : IDispatch
3327 {
3328     [id(DISPID_IHTMLDOCUMENT4_FOCUS)]
3329     HRESULT focus();
3330
3331     [id(DISPID_IHTMLDOCUMENT4_HASFOCUS)]
3332     HRESULT hasFocus([retval, out] VARIANT_BOOL *pfFocus);
3333
3334     [propput, id(DISPID_IHTMLDOCUMENT4_ONSELECTIONCHANGE), displaybind, bindable]
3335     HRESULT onselectionchange([in] VARIANT v);
3336
3337     [propget, id(DISPID_IHTMLDOCUMENT4_ONSELECTIONCHANGE), displaybind, bindable]
3338     HRESULT onselectionchange([retval, out] VARIANT *p);
3339
3340     [propget, id(DISPID_IHTMLDOCUMENT4_NAMESPACES)]
3341     HRESULT namespaces([retval, out] IDispatch **p);
3342
3343     [id(DISPID_IHTMLDOCUMENT4_CREATEDOCUMENTFROMURL)]
3344     HRESULT createDocumentFromUrl([in] BSTR bstrUrl,
3345                                   [in] BSTR bstrOptions,
3346                                   [retval, out] IHTMLDocument2 **newDoc);
3347
3348     [propput, id(DISPID_IHTMLDOCUMENT4_MEDIA)]
3349     HRESULT media([in] BSTR v);
3350
3351     [propget, id(DISPID_IHTMLDOCUMENT4_MEDIA)]
3352     HRESULT media([retval, out] BSTR *p);
3353
3354     [id(DISPID_IHTMLDOCUMENT4_CREATEEVENTOBJECT)]
3355     HRESULT createEventObject([optional, in] VARIANT *pvarEventObject,
3356                               [retval, out] IHTMLEventObj **ppEventObj);
3357
3358     [id(DISPID_IHTMLDOCUMENT4_FIREEVENT)]
3359     HRESULT fireEvent([in] BSTR bstrEventName,
3360                       [optional, in] VARIANT *pvarEventObject,
3361                       [retval, out] VARIANT_BOOL *pfCancelled);
3362
3363     [id(DISPID_IHTMLDOCUMENT4_CREATERENDERSTYLE)]
3364     HRESULT createRenderStyle([in] BSTR v,
3365                               [retval, out] IHTMLRenderStyle **ppIHTMLRenderStyle);
3366
3367     [propput, id(DISPID_IHTMLDOCUMENT4_ONCONTROLSELECT), displaybind, bindable]
3368     HRESULT oncontrolselect([in] VARIANT v);
3369
3370     [propget, id(DISPID_IHTMLDOCUMENT4_ONCONTROLSELECT), displaybind, bindable]
3371     HRESULT oncontrolselect([retval, out] VARIANT *p);
3372
3373     [propget, id(DISPID_IHTMLDOCUMENT4_URLUNENCODED)]
3374     HRESULT URLUnencoded([retval, out] BSTR *p);
3375 }
3376
3377 /*****************************************************************************
3378  *    IHTMLDocument5 interface
3379  */
3380 [
3381     odl,
3382     oleautomation,
3383     dual,
3384     uuid(3050f80c-98b5-11cf-bb82-00aa00bdce0b)
3385 ]
3386 interface IHTMLDocument5 : IDispatch
3387 {
3388     [propput, id(DISPID_IHTMLDOCUMENT5_ONMOUSEWHEEL), displaybind, bindable]
3389     HRESULT onmousewheel([in] VARIANT v);
3390
3391     [propget, id(DISPID_IHTMLDOCUMENT5_ONMOUSEWHEEL), displaybind, bindable]
3392     HRESULT onmousewheel([retval, out] VARIANT *p);
3393
3394     [propget, id(DISPID_IHTMLDOCUMENT5_DOCTYPE)]
3395     HRESULT doctype([retval, out] IHTMLDOMNode **p);
3396
3397     [propget, id(DISPID_IHTMLDOCUMENT5_IMPLEMENTATION)]
3398     HRESULT implementation([retval, out] IHTMLDOMImplementation **p);
3399
3400     [id(DISPID_IHTMLDOCUMENT5_CREATEATTRIBUTE)]
3401     HRESULT createAttribute([in] BSTR bstrattrName,
3402                             [retval, out] IHTMLDOMAttribute **ppattribute);
3403
3404     [id(DISPID_IHTMLDOCUMENT5_CREATECOMMENT)]
3405     HRESULT createComment([in] BSTR bstrdata,
3406                           [retval, out] IHTMLDOMNode **ppRetNode);
3407
3408     [propput, id(DISPID_IHTMLDOCUMENT5_ONFOCUSIN), displaybind, bindable]
3409     HRESULT onfocusin([in] VARIANT v);
3410
3411     [propget, id(DISPID_IHTMLDOCUMENT5_ONFOCUSIN), displaybind, bindable]
3412     HRESULT onfocusin([retval, out] VARIANT *p);
3413
3414     [propput, id(DISPID_IHTMLDOCUMENT5_ONFOCUSOUT), displaybind, bindable]
3415     HRESULT onfocusout([in] VARIANT v);
3416
3417     [propget, id(DISPID_IHTMLDOCUMENT5_ONFOCUSOUT), displaybind, bindable]
3418     HRESULT onfocusout([retval, out] VARIANT *p);
3419
3420     [propput, id(DISPID_IHTMLDOCUMENT5_ONACTIVATE), displaybind, bindable]
3421     HRESULT onactivate([in] VARIANT v);
3422
3423     [propget, id(DISPID_IHTMLDOCUMENT5_ONACTIVATE), displaybind, bindable]
3424     HRESULT onactivate([retval, out] VARIANT *p);
3425
3426     [propput, id(DISPID_IHTMLDOCUMENT5_ONDEACTIVATE), displaybind, bindable]
3427     HRESULT ondeactivate([in] VARIANT v);
3428
3429     [propget, id(DISPID_IHTMLDOCUMENT5_ONDEACTIVATE), displaybind, bindable]
3430     HRESULT ondeactivate([retval, out] VARIANT *p);
3431
3432     [propput, id(DISPID_IHTMLDOCUMENT5_ONBEFOREACTIVATE), displaybind, bindable]
3433     HRESULT onbeforeactivate([in] VARIANT v);
3434
3435     [propget, id(DISPID_IHTMLDOCUMENT5_ONBEFOREACTIVATE), displaybind, bindable]
3436     HRESULT onbeforeactivate([retval, out] VARIANT *p);
3437
3438     [propput, id(DISPID_IHTMLDOCUMENT5_ONBEFOREDEACTIVATE), displaybind, bindable]
3439     HRESULT onbeforedeactivate([in] VARIANT v);
3440
3441     [propget, id(DISPID_IHTMLDOCUMENT5_ONBEFOREDEACTIVATE), displaybind, bindable]
3442     HRESULT onbeforedeactivate([retval, out] VARIANT *p);
3443
3444     [propget, id(DISPID_IHTMLDOCUMENT5_COMPATMODE)]
3445     HRESULT compatMode([retval, out] BSTR *p);
3446 }
3447
3448 /*****************************************************************************
3449  *    HTMLDocument coclass
3450  */
3451 [
3452     uuid(25336920-03F9-11cf-8FD0-00AA00686F13)
3453 ]
3454 coclass HTMLDocument
3455 {
3456     [default]         interface IHTMLDocument2;
3457     [source, default] dispinterface HTMLDocumentEvents;
3458 };
3459
3460 } /* library MSHTML */