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