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