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