winex11: Child windows don't get activated even when requested, so don't make them...
[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 /*****************************************************************************
3062  *    IHTMLElementCollection interface
3063  */
3064 [
3065     odl,
3066     oleautomation,
3067     dual,
3068     uuid(3050F21F-98B5-11CF-BB82-00AA00BDCE0B)
3069 ]
3070 interface IHTMLElementCollection : IDispatch
3071 {
3072     [id(DISPID_IHTMLELEMENTCOLLECTION_TOSTRING)]
3073     HRESULT toString([retval, out] BSTR *String);
3074
3075     [propput, id(DISPID_IHTMLELEMENTCOLLECTION_LENGTH)]
3076     HRESULT length([in] long v);
3077
3078     [propget, id(DISPID_IHTMLELEMENTCOLLECTION_LENGTH)]
3079     HRESULT length([retval, out] long *p);
3080
3081     [propget, id(DISPID_IHTMLELEMENTCOLLECTION__NEWENUM)]
3082     HRESULT _newEnum([retval, out] IUnknown **p);
3083
3084     [id(DISPID_IHTMLELEMENTCOLLECTION_ITEM)]
3085     HRESULT item(
3086         [optional, in] VARIANT name,
3087         [optional, in] VARIANT index,
3088         [retval,  out] IDispatch **pdisp);
3089
3090     [id(DISPID_IHTMLELEMENTCOLLECTION_TAGS)]
3091     HRESULT tags(
3092         [in] VARIANT tagName,
3093         [retval, out] IDispatch **pdisp);
3094 }
3095
3096 /*****************************************************************************
3097  *    IHTMLSelectElement interface
3098  */
3099 [
3100     odl,
3101     oleautomation,
3102     dual,
3103     uuid(3050f244-98b5-11cf-bb82-00aa00bdce0b)
3104 ]
3105 interface IHTMLSelectElement : IDispatch
3106 {
3107     [propput, id(DISPID_IHTMLSELECTELEMENT_SIZE), displaybind, bindable]
3108     HRESULT size([in] long v);
3109
3110     [propget, id(DISPID_IHTMLSELECTELEMENT_SIZE), displaybind, bindable]
3111     HRESULT size([retval, out] long *p);
3112
3113     [propput, id(DISPID_IHTMLSELECTELEMENT_MULTIPLE), displaybind, bindable]
3114     HRESULT multiple([in] VARIANT_BOOL v);
3115
3116     [propget, id(DISPID_IHTMLSELECTELEMENT_MULTIPLE), displaybind, bindable]
3117     HRESULT multiple([retval, out] VARIANT_BOOL *p);
3118
3119     [propput, id(DISPID_IHTMLSELECTELEMENT_NAME), displaybind, bindable]
3120     HRESULT name([in] BSTR v);
3121
3122     [propget, id(DISPID_IHTMLSELECTELEMENT_NAME), displaybind, bindable]
3123     HRESULT name([retval, out] BSTR *p);
3124
3125     [propget, id(DISPID_IHTMLSELECTELEMENT_OPTIONS)]
3126     HRESULT options([retval, out] IDispatch **p);
3127
3128     [propput, id(DISPID_IHTMLSELECTELEMENT_ONCHANGE), displaybind, bindable]
3129     HRESULT onchange([in] VARIANT v);
3130
3131     [propget, id(DISPID_IHTMLSELECTELEMENT_ONCHANGE), displaybind, bindable]
3132     HRESULT onchange([retval, out] VARIANT *p);
3133
3134     [propput, id(DISPID_IHTMLSELECTELEMENT_SELECTEDINDEX)]
3135     HRESULT selectedIndex([in] long v);
3136
3137     [propget, id(DISPID_IHTMLSELECTELEMENT_SELECTEDINDEX)]
3138     HRESULT selectedIndex([retval, out] long *p);
3139
3140     [propget, id(DISPID_IHTMLSELECTELEMENT_TYPE), displaybind, bindable]
3141     HRESULT type([retval, out] BSTR *p);
3142
3143     [propput, id(DISPID_IHTMLSELECTELEMENT_VALUE), displaybind, bindable]
3144     HRESULT value([in] BSTR v);
3145
3146     [propget, id(DISPID_IHTMLSELECTELEMENT_VALUE), displaybind, bindable]
3147     HRESULT value([retval, out] BSTR *p);
3148
3149     [propput, id(DISPID_IHTMLSELECTELEMENT_DISABLED), displaybind, bindable]
3150     HRESULT disabled([in] VARIANT_BOOL v);
3151
3152     [propget, id(DISPID_IHTMLSELECTELEMENT_DISABLED), displaybind, bindable]
3153     HRESULT disabled([retval, out] VARIANT_BOOL *p);
3154
3155     [propget, id(DISPID_IHTMLSELECTELEMENT_FORM)]
3156     HRESULT form([retval, out] IHTMLFormElement **p);
3157
3158     [id(DISPID_IHTMLSELECTELEMENT_ADD)]
3159     HRESULT add(
3160         [in] IHTMLElement *element,
3161         [optional, in] VARIANT before);
3162
3163     [id(DISPID_IHTMLSELECTELEMENT_REMOVE)]
3164     HRESULT remove([defaultvalue(-1), in] long index);
3165
3166     [propput, id(DISPID_IHTMLSELECTELEMENT_LENGTH)]
3167     HRESULT length([in] long v);
3168
3169     [propget, id(DISPID_IHTMLSELECTELEMENT_LENGTH)]
3170     HRESULT length([retval, out] long *p);
3171
3172     [propget, id(DISPID_IHTMLSELECTELEMENT__NEWENUM), hidden, restricted]
3173     HRESULT _newEnum([retval, out] IUnknown **p);
3174
3175     [id(DISPID_IHTMLSELECTELEMENT_ITEM)]
3176     HRESULT item(
3177         [optional, in] VARIANT name,
3178         [optional, in] VARIANT index,
3179         [retval, out] IDispatch **pdisp);
3180
3181     [id(DISPID_IHTMLSELECTELEMENT_TAGS)]
3182     HRESULT tags(
3183         [in] VARIANT tagName,
3184         [retval, out] IDispatch **pdisp);
3185 }
3186
3187 /*****************************************************************************
3188  *    IHTMLSelectionObject interface
3189  */
3190 [
3191     odl,
3192     oleautomation,
3193     dual,
3194     uuid(3050F25A-98B5-11CF-BB82-00AA00BDCE0B)
3195 ]
3196 interface IHTMLSelectionObject : IDispatch
3197 {
3198     [id(DISPID_IHTMLSELECTIONOBJECT_CREATERANGE)]
3199     HRESULT createRange([retval, out] IDispatch **range);
3200
3201     [id(DISPID_IHTMLSELECTIONOBJECT_EMPTY)]
3202     HRESULT empty();
3203
3204     [id(DISPID_IHTMLSELECTIONOBJECT_CLEAR)]
3205     HRESULT clear();
3206
3207     [propget, id(DISPID_IHTMLSELECTIONOBJECT_TYPE)]
3208     HRESULT type([retval, out] BSTR *p);
3209 }
3210
3211 /*****************************************************************************
3212  *    IHTMLOptionElement interface
3213  */
3214 [
3215     odl,
3216     oleautomation,
3217     dual,
3218     uuid(3050F211-98B5-11CF-BB82-00AA00BDCE0B)
3219 ]
3220 interface IHTMLOptionElement : IDispatch
3221 {
3222     [propput, id(DISPID_IHTMLOPTIONELEMENT_SELECTED)]
3223     HRESULT selected([in] VARIANT_BOOL v);
3224
3225     [propget, id(DISPID_IHTMLOPTIONELEMENT_SELECTED)]
3226     HRESULT selected([retval, out] VARIANT_BOOL *p);
3227
3228     [propput, id(DISPID_IHTMLOPTIONELEMENT_VALUE)]
3229     HRESULT value([in] BSTR v);
3230
3231     [propget, id(DISPID_IHTMLOPTIONELEMENT_VALUE)]
3232     HRESULT value([retval, out] BSTR *p);
3233
3234     [propput, id(DISPID_IHTMLOPTIONELEMENT_DEFAULTSELECTED)]
3235     HRESULT defaultSelected([in] VARIANT_BOOL v);
3236
3237     [propget, id(DISPID_IHTMLOPTIONELEMENT_DEFAULTSELECTED)]
3238     HRESULT defaultSelected([retval, out] VARIANT_BOOL *p);
3239
3240     [propput, id(DISPID_IHTMLOPTIONELEMENT_INDEX)]
3241     HRESULT index([in] LONG v);
3242
3243     [propget, id(DISPID_IHTMLOPTIONELEMENT_INDEX)]
3244     HRESULT index([retval, out] LONG *p);
3245
3246     [propput, id(DISPID_IHTMLOPTIONELEMENT_TEXT)]
3247     HRESULT text([in] BSTR v);
3248
3249     [propget, id(DISPID_IHTMLOPTIONELEMENT_TEXT)]
3250     HRESULT text([retval, out] BSTR *p);
3251
3252     [propget, id(DISPID_IHTMLOPTIONELEMENT_FORM)]
3253     HRESULT form([retval, out] IHTMLFormElement **p);
3254 }
3255
3256 /*****************************************************************************
3257  *    IHTMLOptionElementFactory interface
3258  */
3259 [
3260     odl,
3261     oleautomation,
3262     dual,
3263     uuid(3050F38C-98B5-11Cf-BB82-00AA00BDCE0B)
3264 ]
3265 interface IHTMLOptionElementFactory : IDispatch
3266 {
3267     [id(DISPID_IHTMLOPTIONELEMENTFACTORY_CREATE)]
3268     HRESULT create(
3269         [optional, in] VARIANT text,
3270         [optional, in] VARIANT value,
3271         [optional, in] VARIANT defaultselected,
3272         [optional, in] VARIANT selected,
3273         [retval, out] IHTMLOptionElement **optelem);
3274 }
3275
3276 /*****************************************************************************
3277  *    IHTMLInputElement interface
3278  */
3279 [
3280     odl,
3281     oleautomation,
3282     dual,
3283     uuid(3050f5d2-98b5-11cf-bb82-00aa00bdce0b)
3284 ]
3285 interface IHTMLInputElement : IDispatch
3286 {
3287     [propput, id(DISPID_IHTMLINPUTELEMENT_TYPE)]
3288     HRESULT type([in] BSTR v);
3289
3290     [propget, id(DISPID_IHTMLINPUTELEMENT_TYPE)]
3291     HRESULT type([retval, out] BSTR *p);
3292
3293     [propput, id(DISPID_IHTMLINPUTELEMENT_VALUE), displaybind, bindable]
3294     HRESULT value([in] BSTR v);
3295
3296     [propget, id(DISPID_IHTMLINPUTELEMENT_VALUE), displaybind, bindable]
3297     HRESULT value([retval, out] BSTR *p);
3298
3299     [propput, id(DISPID_IHTMLINPUTELEMENT_NAME), displaybind, bindable]
3300     HRESULT name([in] BSTR v);
3301
3302     [propget, id(DISPID_IHTMLINPUTELEMENT_NAME), displaybind, bindable]
3303     HRESULT name([retval, out] BSTR *p);
3304
3305     [propput, id(DISPID_IHTMLINPUTELEMENT_STATUS)]
3306     HRESULT status([in] VARIANT_BOOL v);
3307
3308     [propget, id(DISPID_IHTMLINPUTELEMENT_STATUS)]
3309     HRESULT status([retval, out] VARIANT_BOOL *p);
3310
3311     [propput, id(DISPID_IHTMLINPUTELEMENT_DISABLED), displaybind, bindable]
3312     HRESULT disabled([in] VARIANT_BOOL v);
3313
3314     [propget, id(DISPID_IHTMLINPUTELEMENT_DISABLED), displaybind, bindable]
3315     HRESULT disabled([retval, out] VARIANT_BOOL *p);
3316
3317     [propget, id(DISPID_IHTMLINPUTELEMENT_FORM)]
3318     HRESULT form([retval, out] IHTMLFormElement **p);
3319
3320     [propput, id(DISPID_IHTMLINPUTELEMENT_SIZE), displaybind, bindable]
3321     HRESULT size([in] long v);
3322
3323     [propget, id(DISPID_IHTMLINPUTELEMENT_SIZE), displaybind, bindable]
3324     HRESULT size([retval, out] long *p);
3325
3326     [propput, id(DISPID_IHTMLINPUTELEMENT_MAXLENGTH), displaybind, bindable]
3327     HRESULT maxLength([in] long v);
3328
3329     [propget, id(DISPID_IHTMLINPUTELEMENT_MAXLENGTH), displaybind, bindable]
3330     HRESULT maxLength([retval, out] long *p);
3331
3332     [id(DISPID_IHTMLINPUTELEMENT_SELECT)]
3333     HRESULT select();
3334
3335     [propput, id(DISPID_IHTMLINPUTELEMENT_ONCHANGE), displaybind, bindable]
3336     HRESULT onchange([in] VARIANT v);
3337
3338     [propget, id(DISPID_IHTMLINPUTELEMENT_ONCHANGE), displaybind, bindable]
3339     HRESULT onchange([retval, out] VARIANT *p);
3340
3341     [propput, id(DISPID_IHTMLINPUTELEMENT_ONSELECT), displaybind, bindable]
3342     HRESULT onselect([in] VARIANT v);
3343
3344     [propget, id(DISPID_IHTMLINPUTELEMENT_ONSELECT), displaybind, bindable]
3345     HRESULT onselect([retval, out] VARIANT *p);
3346
3347     [propput, id(DISPID_IHTMLINPUTELEMENT_DEFAULTVALUE), displaybind, bindable, hidden]
3348     HRESULT defaultValue([in] BSTR v);
3349
3350     [propget, id(DISPID_IHTMLINPUTELEMENT_DEFAULTVALUE), displaybind, bindable, hidden]
3351     HRESULT defaultValue([retval, out] BSTR *p);
3352
3353     [propput, id(DISPID_IHTMLINPUTELEMENT_READONLY), displaybind, bindable]
3354     HRESULT readOnly([in] VARIANT_BOOL v);
3355
3356     [propget, id(DISPID_IHTMLINPUTELEMENT_READONLY), displaybind, bindable]
3357     HRESULT readOnly([retval, out] VARIANT_BOOL *p);
3358
3359     [id(DISPID_IHTMLINPUTELEMENT_CREATETEXTRANGE)]
3360     HRESULT createTextRange([retval, out] IHTMLTxtRange **range);
3361
3362     [propput, id(DISPID_IHTMLINPUTELEMENT_INDETERMINATE), bindable]
3363     HRESULT indeterminate([in] VARIANT_BOOL v);
3364
3365     [propget, id(DISPID_IHTMLINPUTELEMENT_INDETERMINATE), bindable]
3366     HRESULT indeterminate([retval, out] VARIANT_BOOL *p);
3367
3368     [propput, id(DISPID_IHTMLINPUTELEMENT_DEFAULTCHECKED), bindable]
3369     HRESULT defaultChecked([in] VARIANT_BOOL v);
3370
3371     [propget, id(DISPID_IHTMLINPUTELEMENT_DEFAULTCHECKED), bindable]
3372     HRESULT defaultChecked([retval, out] VARIANT_BOOL *p);
3373
3374     [propput, id(DISPID_IHTMLINPUTELEMENT_CHECKED), bindable]
3375     HRESULT checked([in] VARIANT_BOOL v);
3376
3377     [propget, id(DISPID_IHTMLINPUTELEMENT_CHECKED), bindable]
3378     HRESULT checked([retval, out] VARIANT_BOOL *p);
3379
3380     [propput, id(DISPID_IHTMLINPUTELEMENT_BORDER), displaybind, bindable]
3381     HRESULT border([in] VARIANT v);
3382
3383     [propget, id(DISPID_IHTMLINPUTELEMENT_BORDER), displaybind, bindable]
3384     HRESULT border([retval, out] VARIANT *p);
3385
3386     [propput, id(DISPID_IHTMLINPUTELEMENT_VSPACE), displaybind, bindable]
3387     HRESULT vspace([in] long v);
3388
3389     [propget, id(DISPID_IHTMLINPUTELEMENT_VSPACE), displaybind, bindable]
3390     HRESULT vspace([retval, out] long *p);
3391
3392     [propput, id(DISPID_IHTMLINPUTELEMENT_HSPACE), displaybind, bindable]
3393     HRESULT hspace([in] long v);
3394
3395     [propget, id(DISPID_IHTMLINPUTELEMENT_HSPACE), displaybind, bindable]
3396     HRESULT hspace([retval, out] long *p);
3397
3398     [propput, id(DISPID_IHTMLINPUTELEMENT_ALT), displaybind, bindable]
3399     HRESULT alt([in] BSTR v);
3400
3401     [propget, id(DISPID_IHTMLINPUTELEMENT_ALT), displaybind, bindable]
3402     HRESULT alt([retval, out] BSTR *p);
3403
3404     [propput, id(DISPID_IHTMLINPUTELEMENT_SRC), displaybind, bindable]
3405     HRESULT src([in] BSTR v);
3406
3407     [propget, id(DISPID_IHTMLINPUTELEMENT_SRC), displaybind, bindable]
3408     HRESULT src([retval, out] BSTR *p);
3409
3410     [propput, id(DISPID_IHTMLINPUTELEMENT_LOWSRC), displaybind, bindable]
3411     HRESULT lowsrc([in] BSTR v);
3412
3413     [propget, id(DISPID_IHTMLINPUTELEMENT_LOWSRC), displaybind, bindable]
3414     HRESULT lowsrc([retval, out] BSTR *p);
3415
3416     [propput, id(DISPID_IHTMLINPUTELEMENT_VRML), displaybind, bindable]
3417     HRESULT vrml([in] BSTR v);
3418
3419     [propget, id(DISPID_IHTMLINPUTELEMENT_VRML), displaybind, bindable]
3420     HRESULT vrml([retval, out] BSTR *p);
3421
3422     [propput, id(DISPID_IHTMLINPUTELEMENT_DYNSRC), displaybind, bindable]
3423     HRESULT dynsrc([in] BSTR v);
3424
3425     [propget, id(DISPID_IHTMLINPUTELEMENT_DYNSRC), displaybind, bindable]
3426     HRESULT dynsrc([retval, out] BSTR *p);
3427
3428     [propget, id(DISPID_IHTMLINPUTELEMENT_READYSTATE)]
3429     HRESULT readyState([retval, out] BSTR *p);
3430
3431     [propget, id(DISPID_IHTMLINPUTELEMENT_COMPLETE)]
3432     HRESULT complete([retval, out] VARIANT_BOOL *p);
3433
3434     [propput, id(DISPID_IHTMLINPUTELEMENT_LOOP), displaybind, bindable]
3435     HRESULT loop([in] VARIANT v);
3436
3437     [propget, id(DISPID_IHTMLINPUTELEMENT_LOOP), displaybind, bindable]
3438     HRESULT loop([retval, out] VARIANT *p);
3439
3440     [propput, id(DISPID_IHTMLINPUTELEMENT_ALIGN), displaybind, bindable]
3441     HRESULT align([in] BSTR v);
3442
3443     [propget, id(DISPID_IHTMLINPUTELEMENT_ALIGN), displaybind, bindable]
3444     HRESULT align([retval, out] BSTR *p);
3445
3446     [propput, id(DISPID_IHTMLINPUTELEMENT_ONLOAD), displaybind, bindable]
3447     HRESULT onload([in] VARIANT v);
3448
3449     [propget, id(DISPID_IHTMLINPUTELEMENT_ONLOAD), displaybind, bindable]
3450     HRESULT onload([retval, out] VARIANT *p);
3451
3452     [propput, id(DISPID_IHTMLINPUTELEMENT_ONERROR), displaybind, bindable]
3453     HRESULT onerror([in] VARIANT v);
3454
3455     [propget, id(DISPID_IHTMLINPUTELEMENT_ONERROR), displaybind, bindable]
3456     HRESULT onerror([retval, out] VARIANT *p);
3457
3458     [propput, id(DISPID_IHTMLINPUTELEMENT_ONABORT), displaybind, bindable]
3459     HRESULT onabort([in] VARIANT v);
3460
3461     [propget, id(DISPID_IHTMLINPUTELEMENT_ONABORT), displaybind, bindable]
3462     HRESULT onabort([retval, out] VARIANT *p);
3463
3464     [propput, id(DISPID_IHTMLINPUTELEMENT_WIDTH)]
3465     HRESULT width([in] long v);
3466
3467     [propget, id(DISPID_IHTMLINPUTELEMENT_WIDTH)]
3468     HRESULT width([retval, out] long *p);
3469
3470     [propput, id(DISPID_IHTMLINPUTELEMENT_HEIGHT)]
3471     HRESULT height([in] long v);
3472
3473     [propget, id(DISPID_IHTMLINPUTELEMENT_HEIGHT)]
3474     HRESULT height([retval, out] long *p);
3475
3476     [propput, id(DISPID_IHTMLINPUTELEMENT_START), displaybind, bindable]
3477     HRESULT start([in] BSTR v);
3478
3479     [propget, id(DISPID_IHTMLINPUTELEMENT_START), displaybind, bindable]
3480     HRESULT start([retval, out] BSTR *p);
3481 }
3482
3483 /*****************************************************************************
3484  *    IHTMLTextAreaElement interface
3485  */
3486 [
3487     odl,
3488     oleautomation,
3489     dual,
3490     uuid(3050f2aa-98b5-11cf-bb82-00aa00bdce0b)
3491 ]
3492 interface IHTMLTextAreaElement : IDispatch
3493 {
3494     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_TYPE)]
3495     HRESULT type([retval, out] BSTR *p);
3496
3497     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_VALUE), displaybind, bindable]
3498     HRESULT value([in] BSTR v);
3499
3500     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_VALUE), displaybind, bindable]
3501     HRESULT value([retval, out] BSTR *p);
3502
3503     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_NAME), displaybind, bindable]
3504     HRESULT name([in] BSTR v);
3505
3506     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_NAME), displaybind, bindable]
3507     HRESULT name([retval, out] BSTR *p);
3508
3509     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_STATUS)]
3510     HRESULT status([in] VARIANT v);
3511
3512     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_STATUS)]
3513     HRESULT status([retval, out] VARIANT *p);
3514
3515     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_DISABLED), displaybind, bindable]
3516     HRESULT disabled([in] VARIANT_BOOL v);
3517
3518     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_DISABLED), displaybind, bindable]
3519     HRESULT disabled([retval, out] VARIANT_BOOL *p);
3520
3521     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_FORM)]
3522     HRESULT form([retval, out] IHTMLFormElement **p);
3523
3524     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_DEFAULTVALUE), displaybind, bindable, hidden]
3525     HRESULT defaultValue([in] BSTR v);
3526
3527     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_DEFAULTVALUE), displaybind, bindable, hidden]
3528     HRESULT defaultValue([retval, out] BSTR *p);
3529
3530     [id(DISPID_IHTMLTEXTAREAELEMENT_SELECT)]
3531     HRESULT select();
3532
3533     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_ONCHANGE), displaybind, bindable]
3534     HRESULT onchange([in] VARIANT v);
3535
3536     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_ONCHANGE), displaybind, bindable]
3537     HRESULT onchange([retval, out] VARIANT *p);
3538
3539     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_ONSELECT), displaybind, bindable]
3540     HRESULT onselect([in] VARIANT v);
3541
3542     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_ONSELECT), displaybind, bindable]
3543     HRESULT onselect([retval, out] VARIANT *p);
3544
3545     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_READONLY), displaybind, bindable]
3546     HRESULT readOnly([in] VARIANT_BOOL v);
3547
3548     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_READONLY), displaybind, bindable]
3549     HRESULT readOnly([retval, out] VARIANT_BOOL *p);
3550
3551     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_ROWS), displaybind, bindable]
3552     HRESULT rows([in] long v);
3553
3554     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_ROWS), displaybind, bindable]
3555     HRESULT rows([retval, out] long *p);
3556
3557     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_COLS), displaybind, bindable]
3558     HRESULT cols([in] long v);
3559
3560     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_COLS), displaybind, bindable]
3561     HRESULT cols([retval, out] long *p);
3562
3563     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_WRAP), displaybind, bindable]
3564     HRESULT wrap([in] BSTR v);
3565
3566     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_WRAP), displaybind, bindable]
3567     HRESULT wrap([retval, out] BSTR *p);
3568
3569     [id(DISPID_IHTMLTEXTAREAELEMENT_CREATETEXTRANGE)]
3570     HRESULT createTextRange([retval, out] IHTMLTxtRange **range);
3571 }
3572
3573 /*****************************************************************************
3574  *    IOmHistory interface
3575  */
3576 [
3577     odl,
3578     oleautomation,
3579     dual,
3580     uuid(FECEAAA2-8405-11CF-8BA1-00AA00476DA6)
3581 ]
3582 interface IOmHistory : IDispatch
3583 {
3584     [propget, id(DISPID_IOMHISTORY_LENGTH)]
3585     HRESULT length([retval, out] short *p);
3586
3587     [id(DISPID_IOMHISTORY_BACK)]
3588     HRESULT back([optional, in] VARIANT *pvargdistance);
3589
3590     [id(DISPID_IOMHISTORY_FORWARD)]
3591     HRESULT forward([optional, in] VARIANT *pvargdistance);
3592
3593     [id(DISPID_IOMHISTORY_GO)]
3594     HRESULT go([optional, in] VARIANT *pvargdistance);
3595 }
3596
3597 /*****************************************************************************
3598  *    IHTMLMimeTypesCollection interface
3599  */
3600 [
3601     odl,
3602     oleautomation,
3603     dual,
3604     uuid(3050F3FC-98B5-11CF-BB82-00AA00BDCE0B)
3605 ]
3606 interface IHTMLMimeTypesCollection : IDispatch
3607 {
3608     [propget, id(DISPID_IHTMLMIMETYPESCOLLECTION_LENGTH)]
3609     HRESULT length([retval, out] long *p);
3610 }
3611
3612 /*****************************************************************************
3613  *    IHTMLPluginsCollection interface
3614  */
3615 [
3616     odl,
3617     oleautomation,
3618     dual,
3619     uuid(3050F3FD-98B5-11CF-BB82-00AA00BDCE0B)
3620 ]
3621 interface IHTMLPluginsCollection : IDispatch
3622 {
3623     [propget, id(DISPID_IHTMLPLUGINSCOLLECTION_LENGTH)]
3624     HRESULT length([retval, out] long *p);
3625
3626     [id(DISPID_IHTMLPLUGINSCOLLECTION_REFRESH)]
3627     HRESULT refresh([defaultvalue(0), in] VARIANT_BOOL reload);
3628 }
3629
3630 /*****************************************************************************
3631  *    IHTMLOpsProfile interface
3632  */
3633 [
3634     odl,
3635     oleautomation,
3636     dual,
3637     uuid(3050F401-98B5-11CF-BB82-00AA00BDCE0B)
3638 ]
3639 interface IHTMLOpsProfile : IDispatch
3640 {
3641     [id(DISPID_IHTMLOPSPROFILE_ADDREQUEST)]
3642     HRESULT addRequest(
3643         [in] BSTR name,
3644         [optional, in] VARIANT reserved,
3645         [retval, out] VARIANT_BOOL *success);
3646
3647     [id(DISPID_IHTMLOPSPROFILE_CLEARREQUEST)]
3648     HRESULT clearRequest();
3649
3650     [id(DISPID_IHTMLOPSPROFILE_DOREQUEST)]
3651     HRESULT doRequest(
3652         [in] VARIANT usage,
3653         [optional, in] VARIANT fname,
3654         [optional, in] VARIANT domain,
3655         [optional, in] VARIANT path,
3656         [optional, in] VARIANT expire,
3657         [optional, in] VARIANT reserved);
3658
3659     [id(DISPID_IHTMLOPSPROFILE_GETATTRIBUTE)]
3660     HRESULT getAttribute(
3661         [in] BSTR name,
3662         [retval, out] BSTR *value);
3663
3664     [id(DISPID_IHTMLOPSPROFILE_SETATTRIBUTE)]
3665     HRESULT setAttribute(
3666         [in] BSTR name,
3667         [in] BSTR value,
3668         [optional, in] VARIANT prefs,
3669         [retval, out] VARIANT_BOOL *success);
3670
3671     [id(DISPID_IHTMLOPSPROFILE_COMMITCHANGES)]
3672     HRESULT commitChanges([retval, out] VARIANT_BOOL *success);
3673
3674     [id(DISPID_IHTMLOPSPROFILE_ADDREADREQUEST)]
3675     HRESULT addReadRequest(
3676         [in] BSTR name,
3677         [optional, in] VARIANT reserved,
3678         [retval, out] VARIANT_BOOL *success);
3679
3680     [id(DISPID_IHTMLOPSPROFILE_DOREADREQUEST)]
3681     HRESULT doReadRequest(
3682         [in] VARIANT usage,
3683         [optional, in] VARIANT fname,
3684         [optional, in] VARIANT domain,
3685         [optional, in] VARIANT path,
3686         [optional, in] VARIANT expire,
3687         [optional, in] VARIANT reserved);
3688
3689     [id(DISPID_IHTMLOPSPROFILE_DOWRITEREQUEST)]
3690     HRESULT doWriteRequest([retval, out] VARIANT_BOOL *success);
3691 }
3692
3693 /*****************************************************************************
3694  *    IOmNavigator interface
3695  */
3696 [
3697         odl,
3698         oleautomation,
3699         dual,
3700         uuid(FECEAAA5-8405-11CF-8BA1-00AA00476DA6)
3701 ]
3702 interface IOmNavigator : IDispatch
3703 {
3704     [propget, id(DISPID_IOMNAVIGATOR_APPCODENAME)]
3705     HRESULT appCodeName([retval, out] BSTR *p);
3706
3707     [propget, id(DISPID_IOMNAVIGATOR_APPNAME)]
3708     HRESULT appName([retval, out] BSTR *p);
3709
3710     [propget, id(DISPID_IOMNAVIGATOR_APPVERSION)]
3711     HRESULT appVersion([retval, out] BSTR *p);
3712
3713     [propget, id(DISPID_IOMNAVIGATOR_USERAGENT)]
3714     HRESULT userAgent([retval, out] BSTR *p);
3715
3716     [id(DISPID_IOMNAVIGATOR_JAVAENABLED)]
3717     HRESULT javaEnabled([retval, out] VARIANT_BOOL *enabled);
3718
3719     [id(DISPID_IOMNAVIGATOR_TAINTENABLED)]
3720     HRESULT taintEnabled([retval, out] VARIANT_BOOL *enabled);
3721
3722     [propget, id(DISPID_IOMNAVIGATOR_MIMETYPES)]
3723     HRESULT mimeTypes([retval, out] IHTMLMimeTypesCollection **p);
3724
3725     [propget, id(DISPID_IOMNAVIGATOR_PLUGINS)]
3726     HRESULT plugins([retval, out] IHTMLPluginsCollection **p);
3727
3728     [propget, id(DISPID_IOMNAVIGATOR_COOKIEENABLED)]
3729     HRESULT cookieEnabled([retval, out] VARIANT_BOOL *p);
3730
3731     [propget, id(DISPID_IOMNAVIGATOR_OPSPROFILE)]
3732     HRESULT opsProfile([retval, out] IHTMLOpsProfile **p);
3733
3734     [id(DISPID_IOMNAVIGATOR_TOSTRING)]
3735     HRESULT toString([retval, out] BSTR *String);
3736
3737     [propget, id(DISPID_IOMNAVIGATOR_CPUCLASS)]
3738     HRESULT cpuClass([retval, out] BSTR *p);
3739
3740     [propget, id(DISPID_IOMNAVIGATOR_SYSTEMLANGUAGE)]
3741     HRESULT systemLanguage([retval, out] BSTR *p);
3742
3743     [propget, id(DISPID_IOMNAVIGATOR_BROWSERLANGUAGE)]
3744     HRESULT browserLanguage([retval, out] BSTR *p);
3745
3746     [propget, id(DISPID_IOMNAVIGATOR_USERLANGUAGE)]
3747     HRESULT userLanguage([retval, out] BSTR *p);
3748
3749     [propget, id(DISPID_IOMNAVIGATOR_PLATFORM)]
3750     HRESULT platform([retval, out] BSTR *p);
3751
3752     [propget, id(DISPID_IOMNAVIGATOR_APPMINORVERSION)]
3753     HRESULT appMinorVersion([retval, out] BSTR *p);
3754
3755     [propget, id(DISPID_IOMNAVIGATOR_CONNECTIONSPEED)]
3756     HRESULT connectionSpeed([retval, out] long *p);
3757
3758     [propget, id(DISPID_IOMNAVIGATOR_ONLINE)]
3759     HRESULT onLine([retval, out] VARIANT_BOOL *p);
3760
3761     [propget, id(DISPID_IOMNAVIGATOR_USERPROFILE)]
3762     HRESULT userProfile([retval, out] IHTMLOpsProfile **p);
3763 }
3764
3765 /*****************************************************************************
3766  *    IHTMLLocation interface
3767  */
3768 [
3769     odl,
3770     oleautomation,
3771     dual,
3772     uuid(163BB1E0-6E00-11cf-837A-48DC04C10000)
3773 ]
3774 interface IHTMLLocation : IDispatch
3775 {
3776     [propput, id(DISPID_IHTMLLOCATION_HREF)]
3777     HRESULT href([in] BSTR v);
3778
3779     [propget, id(DISPID_IHTMLLOCATION_HREF)]
3780     HRESULT href([retval, out] BSTR *p);
3781
3782     [propput, id(DISPID_IHTMLLOCATION_PROTOCOL)]
3783     HRESULT protocol([in] BSTR v);
3784
3785     [propget, id(DISPID_IHTMLLOCATION_PROTOCOL)]
3786     HRESULT protocol([retval, out] BSTR *p);
3787
3788     [propput, id(DISPID_IHTMLLOCATION_HOST)]
3789     HRESULT host([in] BSTR v);
3790
3791     [propget, id(DISPID_IHTMLLOCATION_HOST)]
3792     HRESULT host([retval, out] BSTR *p);
3793
3794     [propput, id(DISPID_IHTMLLOCATION_HOSTNAME)]
3795     HRESULT hostname([in] BSTR v);
3796
3797     [propget, id(DISPID_IHTMLLOCATION_HOSTNAME)]
3798     HRESULT hostname([retval, out] BSTR *p);
3799
3800     [propput, id(DISPID_IHTMLLOCATION_PORT)]
3801     HRESULT port([in] BSTR v);
3802
3803     [propget, id(DISPID_IHTMLLOCATION_PORT)]
3804     HRESULT port([retval, out] BSTR *p);
3805
3806     [propput, id(DISPID_IHTMLLOCATION_PATHNAME)]
3807     HRESULT pathname([in] BSTR v);
3808
3809     [propget, id(DISPID_IHTMLLOCATION_PATHNAME)]
3810     HRESULT pathname([retval, out] BSTR *p);
3811
3812     [propput, id(DISPID_IHTMLLOCATION_SEARCH)]
3813     HRESULT search([in] BSTR v);
3814
3815     [propget, id(DISPID_IHTMLLOCATION_SEARCH)]
3816     HRESULT search([retval, out] BSTR *p);
3817
3818     [propput, id(DISPID_IHTMLLOCATION_HASH)]
3819     HRESULT hash([in] BSTR v);
3820
3821     [propget, id(DISPID_IHTMLLOCATION_HASH)]
3822     HRESULT hash([retval, out] BSTR *p);
3823
3824     [id(DISPID_IHTMLLOCATION_RELOAD)]
3825     HRESULT reload([defaultvalue(0), in] VARIANT_BOOL flag);
3826
3827     [id(DISPID_IHTMLLOCATION_REPLACE)]
3828     HRESULT replace([in] BSTR bstr);
3829
3830     [id(DISPID_IHTMLLOCATION_ASSIGN)]
3831     HRESULT assign([in] BSTR bstr);
3832
3833     [id(DISPID_IHTMLLOCATION_TOSTRING)]
3834     HRESULT toString([retval, out] BSTR *String);
3835 }
3836
3837 /*****************************************************************************
3838  *    IHTMLEventObj interface
3839  */
3840 [
3841     odl,
3842     oleautomation,
3843     dual,
3844     uuid(3050F32D-98B5-11CF-BB82-00AA00BDCE0B)
3845 ]
3846 interface IHTMLEventObj : IDispatch
3847 {
3848     [propget, id(DISPID_IHTMLEVENTOBJ_SRCELEMENT)]
3849     HRESULT srcElement([retval, out] IHTMLElement **p);
3850
3851     [propget, id(DISPID_IHTMLEVENTOBJ_ALTKEY)]
3852     HRESULT altKey([retval, out] VARIANT_BOOL *p);
3853
3854     [propget, id(DISPID_IHTMLEVENTOBJ_CTRLKEY)]
3855     HRESULT ctrlKey([retval, out] VARIANT_BOOL *p);
3856
3857     [propget, id(DISPID_IHTMLEVENTOBJ_SHIFTKEY)]
3858     HRESULT shiftKey([retval, out] VARIANT_BOOL *p);
3859
3860     [propput, id(DISPID_IHTMLEVENTOBJ_RETURNVALUE)]
3861     HRESULT returnValue([in] VARIANT v);
3862
3863     [propget, id(DISPID_IHTMLEVENTOBJ_RETURNVALUE)]
3864     HRESULT returnValue([retval, out] VARIANT *p);
3865
3866     [propput, id(DISPID_IHTMLEVENTOBJ_CANCELBUBBLE)]
3867     HRESULT cancelBubble([in] VARIANT_BOOL v);
3868
3869     [propget, id(DISPID_IHTMLEVENTOBJ_CANCELBUBBLE)]
3870     HRESULT cancelBubble([retval, out] VARIANT_BOOL *p);
3871
3872     [propget, id(DISPID_IHTMLEVENTOBJ_FROMELEMENT)]
3873     HRESULT fromElement([retval, out] IHTMLElement **p);
3874
3875     [propget, id(DISPID_IHTMLEVENTOBJ_TOELEMENT)]
3876     HRESULT toElement([retval, out] IHTMLElement **p);
3877
3878     [propput, id(DISPID_IHTMLEVENTOBJ_KEYCODE)]
3879     HRESULT keyCode([in] long v);
3880
3881     [propget, id(DISPID_IHTMLEVENTOBJ_KEYCODE)]
3882     HRESULT keyCode([retval, out] long *p);
3883
3884     [propget, id(DISPID_IHTMLEVENTOBJ_BUTTON)]
3885     HRESULT button([retval, out] long *p);
3886
3887     [propget, id(DISPID_IHTMLEVENTOBJ_TYPE)]
3888     HRESULT type([retval, out] BSTR *p);
3889
3890     [propget, id(DISPID_IHTMLEVENTOBJ_QUALIFIER)]
3891     HRESULT qualifier([retval, out] BSTR *p);
3892
3893     [propget, id(DISPID_IHTMLEVENTOBJ_REASON)]
3894     HRESULT reason([retval, out] long *p);
3895
3896     [propget, id(DISPID_IHTMLEVENTOBJ_X)]
3897     HRESULT x([retval, out] long *p);
3898
3899     [propget, id(DISPID_IHTMLEVENTOBJ_Y)]
3900     HRESULT y([retval, out] long *p);
3901
3902     [propget, id(DISPID_IHTMLEVENTOBJ_CLIENTX)]
3903     HRESULT clientX([retval, out] long *p);
3904
3905     [propget, id(DISPID_IHTMLEVENTOBJ_CLIENTY)]
3906     HRESULT clientY([retval, out] long *p);
3907
3908     [propget, id(DISPID_IHTMLEVENTOBJ_OFFSETX)]
3909     HRESULT offsetX([retval, out] long *p);
3910
3911     [propget, id(DISPID_IHTMLEVENTOBJ_OFFSETY)]
3912     HRESULT offsetY([retval, out] long *p);
3913
3914     [propget, id(DISPID_IHTMLEVENTOBJ_SCREENX)]
3915     HRESULT screenX([retval, out] long *p);
3916
3917     [propget, id(DISPID_IHTMLEVENTOBJ_SCREENY)]
3918     HRESULT screenY([retval, out] long *p);
3919
3920     [propget, id(DISPID_IHTMLEVENTOBJ_SRCFILTER)]
3921     HRESULT srcFilter([retval, out] IDispatch **p);
3922 }
3923
3924 /*****************************************************************************
3925  *    IHTMLFramesCollection2 interface
3926  */
3927 [
3928     odl,
3929     oleautomation,
3930     dual,
3931     uuid(332C4426-26CB-11D0-B483-00C04FD90119)
3932 ]
3933 interface IHTMLFramesCollection2 : IDispatch
3934 {
3935     [id(DISPID_IHTMLFRAMESCOLLECTION2_ITEM)]
3936     HRESULT item(
3937         [in] VARIANT *pvarIndex,
3938         [retval, out] VARIANT *pvarResult);
3939
3940     [propget, id(DISPID_IHTMLFRAMESCOLLECTION2_LENGTH)]
3941     HRESULT length([retval, out] long *p);
3942 }
3943
3944 /*****************************************************************************
3945  *    IHTMLScreen interface
3946  */
3947 [
3948     odl,
3949     oleautomation,
3950     dual,
3951     uuid(3050f35C-98B5-11CF-BB82-00AA00BDCE0B)
3952 ]
3953 interface IHTMLScreen : IDispatch
3954 {
3955     [propget, id(DISPID_IHTMLSCREEN_COLORDEPTH)]
3956     HRESULT colorDepth([retval, out] long *p);
3957
3958     [propput, id(DISPID_IHTMLSCREEN_BUFFERDEPTH)]
3959     HRESULT bufferDepth([in] long v);
3960
3961     [propget, id(DISPID_IHTMLSCREEN_BUFFERDEPTH)]
3962     HRESULT bufferDepth([retval, out] long *p);
3963
3964     [propget, id(DISPID_IHTMLSCREEN_WIDTH)]
3965     HRESULT width([retval, out] long *p);
3966
3967     [propget, id(DISPID_IHTMLSCREEN_HEIGHT)]
3968     HRESULT height([retval, out] long *p);
3969
3970     [propput, id(DISPID_IHTMLSCREEN_UPDATEINTERVAL)]
3971     HRESULT updateInterval([in] long v);
3972
3973     [propget, id(DISPID_IHTMLSCREEN_UPDATEINTERVAL)]
3974     HRESULT updateInterval([retval, out] long *p);
3975
3976     [propget, id(DISPID_IHTMLSCREEN_AVAILHEIGHT)]
3977     HRESULT availHeight([retval, out] long *p);
3978
3979     [propget, id(DISPID_IHTMLSCREEN_AVAILWIDTH)]
3980     HRESULT availWidth([retval, out] long *p);
3981
3982     [propget, id(DISPID_IHTMLSCREEN_FONTSMOOTHINGENABLED)]
3983     HRESULT fontSmoothingEnabled([retval, out] VARIANT_BOOL *p);
3984 }
3985
3986 /*****************************************************************************
3987  *    IHTMLWindow2 interface
3988  */
3989 [
3990     odl,
3991     oleautomation,
3992     dual,
3993     uuid(332C4427-26CB-11D0-B483-00C04FD90119)
3994 ]
3995 interface IHTMLWindow2 : IHTMLFramesCollection2
3996 {
3997     [propget, id(DISPID_IHTMLWINDOW2_FRAMES)]
3998     HRESULT frames([retval, out] IHTMLFramesCollection2 **p);
3999
4000     [propput, id(DISPID_IHTMLWINDOW2_DEFAULTSTATUS)]
4001     HRESULT defaultStatus([in] BSTR v);
4002
4003     [propget, id(DISPID_IHTMLWINDOW2_DEFAULTSTATUS)]
4004     HRESULT defaultStatus([retval, out] BSTR *p);
4005
4006     [propput, id(DISPID_IHTMLWINDOW2_STATUS)]
4007     HRESULT status([in] BSTR v);
4008
4009     [propget, id(DISPID_IHTMLWINDOW2_STATUS)]
4010     HRESULT status([retval, out] BSTR *p);
4011
4012     [id(DISPID_IHTMLWINDOW2_SETTIMEOUT)]
4013     HRESULT setTimeout(
4014         [in] BSTR expression,
4015         [in] long msec,
4016         [optional, in] VARIANT *language,
4017         [retval, out] long *timerID);
4018
4019     [id(DISPID_IHTMLWINDOW2_CLEARTIMEOUT)]
4020     HRESULT clearTimeout([in] long timerID);
4021
4022     [id(DISPID_IHTMLWINDOW2_ALERT)]
4023     HRESULT alert([defaultvalue(""), in] BSTR message);
4024
4025     [id(DISPID_IHTMLWINDOW2_CONFIRM)]
4026     HRESULT confirm(
4027         [defaultvalue(""), in] BSTR message,
4028         [retval, out] VARIANT_BOOL *confirmed);
4029
4030     [id(DISPID_IHTMLWINDOW2_PROMPT)]
4031     HRESULT prompt(
4032         [defaultvalue(""), in] BSTR message,
4033         [defaultvalue("undefined"), in] BSTR defstr,
4034         [retval, out] VARIANT *textdata);
4035
4036     [propget, id(DISPID_IHTMLWINDOW2_IMAGE)]
4037     HRESULT Image([retval, out] IHTMLImageElementFactory **p);
4038
4039     [propget, id(DISPID_IHTMLWINDOW2_LOCATION)]
4040     HRESULT location([retval, out] IHTMLLocation **p);
4041
4042     [propget, id(DISPID_IHTMLWINDOW2_HISTORY)]
4043     HRESULT history([retval, out] IOmHistory **p);
4044
4045     [id(DISPID_IHTMLWINDOW2_CLOSE)]
4046     HRESULT close();
4047
4048     [propput, id(DISPID_IHTMLWINDOW2_OPENER)]
4049     HRESULT opener([in] VARIANT v);
4050
4051     [propget, id(DISPID_IHTMLWINDOW2_OPENER)]
4052     HRESULT opener([retval, out] VARIANT *p);
4053
4054     [propget, id(DISPID_IHTMLWINDOW2_NAVIGATOR)]
4055     HRESULT navigator([retval, out] IOmNavigator **p);
4056
4057     [propput, id(DISPID_IHTMLWINDOW2_NAME)]
4058     HRESULT name([in] BSTR v);
4059
4060     [propget, id(DISPID_IHTMLWINDOW2_NAME)]
4061     HRESULT name([retval, out] BSTR *p);
4062
4063     [propget, id(DISPID_IHTMLWINDOW2_PARENT)]
4064     HRESULT parent([retval, out] IHTMLWindow2 **p);
4065
4066     [id(DISPID_IHTMLWINDOW2_OPEN)]
4067     HRESULT open(
4068         [defaultvalue(""), in] BSTR url,
4069         [defaultvalue(""), in] BSTR name,
4070         [defaultvalue(""), in] BSTR features,
4071         [defaultvalue(0), in] VARIANT_BOOL replace,
4072         [retval, out] IHTMLWindow2 **pomWindowResult);
4073
4074     [propget, id(DISPID_IHTMLWINDOW2_SELF)]
4075     HRESULT self([retval, out] IHTMLWindow2 **p);
4076
4077     [propget, id(DISPID_IHTMLWINDOW2_TOP)]
4078     HRESULT top([retval, out] IHTMLWindow2 **p);
4079
4080     [propget, id(DISPID_IHTMLWINDOW2_WINDOW)]
4081     HRESULT window([retval, out] IHTMLWindow2 **p);
4082
4083     [id(DISPID_IHTMLWINDOW2_NAVIGATE)]
4084     HRESULT navigate([in] BSTR url);
4085
4086     [propput, id(DISPID_IHTMLWINDOW2_ONFOCUS)]
4087     HRESULT onfocus([in] VARIANT v);
4088
4089     [propget, id(DISPID_IHTMLWINDOW2_ONFOCUS)]
4090     HRESULT onfocus([retval, out] VARIANT *p);
4091
4092     [propput, id(DISPID_IHTMLWINDOW2_ONBLUR)]
4093     HRESULT onblur([in] VARIANT v);
4094
4095     [propget, id(DISPID_IHTMLWINDOW2_ONBLUR)]
4096     HRESULT onblur([retval, out] VARIANT *p);
4097
4098     [propput, id(DISPID_IHTMLWINDOW2_ONLOAD)]
4099     HRESULT onload([in] VARIANT v);
4100
4101     [propget, id(DISPID_IHTMLWINDOW2_ONLOAD)]
4102     HRESULT onload([retval, out] VARIANT *p);
4103
4104     [propput, id(DISPID_IHTMLWINDOW2_ONBEFOREUNLOAD)]
4105     HRESULT onbeforeunload([in] VARIANT v);
4106
4107     [propget, id(DISPID_IHTMLWINDOW2_ONBEFOREUNLOAD)]
4108     HRESULT onbeforeunload([retval, out] VARIANT *p);
4109
4110     [propput, id(DISPID_IHTMLWINDOW2_ONUNLOAD)]
4111     HRESULT onunload([in] VARIANT v);
4112
4113     [propget, id(DISPID_IHTMLWINDOW2_ONUNLOAD)]
4114     HRESULT onunload([retval, out] VARIANT *p);
4115
4116     [propput, id(DISPID_IHTMLWINDOW2_ONHELP)]
4117     HRESULT onhelp([in] VARIANT v);
4118
4119     [propget, id(DISPID_IHTMLWINDOW2_ONHELP)]
4120     HRESULT onhelp([retval, out] VARIANT *p);
4121
4122     [propput, id(DISPID_IHTMLWINDOW2_ONERROR)]
4123     HRESULT onerror([in] VARIANT v);
4124
4125     [propget, id(DISPID_IHTMLWINDOW2_ONERROR)]
4126     HRESULT onerror([retval, out] VARIANT *p);
4127
4128     [propput, id(DISPID_IHTMLWINDOW2_ONRESIZE)]
4129     HRESULT onresize([in] VARIANT v);
4130
4131     [propget, id(DISPID_IHTMLWINDOW2_ONRESIZE)]
4132     HRESULT onresize([retval, out] VARIANT *p);
4133
4134     [propput, id(DISPID_IHTMLWINDOW2_ONSCROLL)]
4135     HRESULT onscroll([in] VARIANT v);
4136
4137     [propget, id(DISPID_IHTMLWINDOW2_ONSCROLL)]
4138     HRESULT onscroll([retval, out] VARIANT *p);
4139
4140     [propget, id(DISPID_IHTMLWINDOW2_DOCUMENT)]
4141     HRESULT document([retval, out] IHTMLDocument2 **p);
4142
4143     [propget, id(DISPID_IHTMLWINDOW2_EVENT)]
4144     HRESULT event([retval, out] IHTMLEventObj **p);
4145
4146     [propget, id(DISPID_IHTMLWINDOW2__NEWENUM)]
4147     HRESULT _newEnum([retval, out] IUnknown **p);
4148
4149     [id(DISPID_IHTMLWINDOW2_SHOWMODALDIALOG)]
4150     HRESULT showModalDialog(
4151         [in] BSTR dialog,
4152         [optional, in] VARIANT *varArgIn,
4153         [optional, in] VARIANT *varOptions,
4154         [retval, out] VARIANT *varArgOut);
4155
4156     [id(DISPID_IHTMLWINDOW2_SHOWHELP)]
4157     HRESULT showHelp(
4158         [in] BSTR helpURL,
4159         [optional, in] VARIANT helpArg,
4160         [defaultvalue(""), in] BSTR features);
4161
4162     [propget, id(DISPID_IHTMLWINDOW2_SCREEN)]
4163     HRESULT screen([retval, out] IHTMLScreen **p);
4164
4165     [propget, id(DISPID_IHTMLWINDOW2_OPTION)]
4166     HRESULT Option([retval, out] IHTMLOptionElementFactory **p);
4167
4168     [id(DISPID_IHTMLWINDOW2_FOCUS)]
4169     HRESULT focus();
4170
4171     [propget, id(DISPID_IHTMLWINDOW2_CLOSED)]
4172     HRESULT closed([retval, out] VARIANT_BOOL *p);
4173
4174     [id(DISPID_IHTMLWINDOW2_BLUR)]
4175     HRESULT blur();
4176
4177     [id(DISPID_IHTMLWINDOW2_SCROLL)]
4178     HRESULT scroll([in] long x, [in] long y);
4179
4180     [propget, id(DISPID_IHTMLWINDOW2_CLIENTINFORMATION)]
4181     HRESULT clientInformation([retval, out] IOmNavigator **p);
4182
4183     [id(DISPID_IHTMLWINDOW2_SETINTERVAL)]
4184     HRESULT setInterval([
4185         in] BSTR expression,
4186         [in] long msec,
4187         [optional, in] VARIANT *language,
4188         [retval, out] long *timerID);
4189
4190     [id(DISPID_IHTMLWINDOW2_CLEARINTERVAL)]
4191     HRESULT clearInterval([in] long timerID);
4192
4193     [propput, id(DISPID_IHTMLWINDOW2_OFFSCREENBUFFERING)]
4194     HRESULT offscreenBuffering([in] VARIANT v);
4195
4196     [propget, id(DISPID_IHTMLWINDOW2_OFFSCREENBUFFERING)]
4197     HRESULT offscreenBuffering([retval, out] VARIANT *p);
4198
4199     [id(DISPID_IHTMLWINDOW2_EXECSCRIPT)]
4200     HRESULT execScript(
4201         [in] BSTR scode,
4202         [defaultvalue("JScript"), in] BSTR language,
4203         [retval, out] VARIANT *pvarRet);
4204
4205     [id(DISPID_IHTMLWINDOW2_TOSTRING)]
4206     HRESULT toString([retval, out] BSTR *String);
4207
4208     [id(DISPID_IHTMLWINDOW2_SCROLLBY)]
4209     HRESULT scrollBy([in] long x, [in] long y);
4210
4211     [id(DISPID_IHTMLWINDOW2_SCROLLTO)]
4212     HRESULT scrollTo([in] long x, [in] long y);
4213
4214     [id(DISPID_IHTMLWINDOW2_MOVETO)]
4215     HRESULT moveTo([in] long x, [in] long y);
4216
4217     [id(DISPID_IHTMLWINDOW2_MOVEBY)]
4218     HRESULT moveBy([in] long x, [in] long y);
4219
4220     [id(DISPID_IHTMLWINDOW2_RESIZETO)]
4221     HRESULT resizeTo([in] long x, [in] long y);
4222
4223     [id(DISPID_IHTMLWINDOW2_RESIZEBY)]
4224     HRESULT resizeBy([in] long x, [in] long y);
4225
4226     [propget, id(DISPID_IHTMLWINDOW2_EXTERNAL)]
4227     HRESULT external([retval, out] IDispatch **p);
4228 }
4229
4230 /*****************************************************************************
4231  *    HTMLDocumentEvents2 interface
4232  */
4233 [
4234     hidden,
4235     uuid(3050f613-98b5-11cf-bb82-00aa00bdce0b)
4236 ]
4237 dispinterface HTMLDocumentEvents2
4238 {
4239     properties:
4240     methods:
4241     [id(DISPID_HTMLDOCUMENTEVENTS2_ONHELP)]
4242     VARIANT_BOOL onhelp([in] IHTMLEventObj *pEvtObj);
4243
4244     [id(DISPID_HTMLDOCUMENTEVENTS2_ONCLICK)]
4245     VARIANT_BOOL onclick([in] IHTMLEventObj *pEvtObj);
4246
4247     [id(DISPID_HTMLDOCUMENTEVENTS2_ONDBLCLICK)]
4248     VARIANT_BOOL ondblclick([in] IHTMLEventObj *pEvtObj);
4249
4250     [id(DISPID_HTMLDOCUMENTEVENTS2_ONKEYDOWN)]
4251     void onkeydown([in] IHTMLEventObj *pEvtObj);
4252
4253     [id(DISPID_HTMLDOCUMENTEVENTS2_ONKEYUP)]
4254     void onkeyup([in] IHTMLEventObj *pEvtObj);
4255
4256     [id(DISPID_HTMLDOCUMENTEVENTS2_ONKEYPRESS)]
4257     VARIANT_BOOL onkeypress([in] IHTMLEventObj *pEvtObj);
4258
4259     [id(DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEDOWN)]
4260     void onmousedown([in] IHTMLEventObj *pEvtObj);
4261
4262     [id(DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEMOVE)]
4263     void onmousemove([in] IHTMLEventObj *pEvtObj);
4264
4265     [id(DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEUP)]
4266     void onmouseup([in] IHTMLEventObj *pEvtObj);
4267
4268     [id(DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEOUT)]
4269     void onmouseout([in] IHTMLEventObj *pEvtObj);
4270
4271     [id(DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEOVER)]
4272     void onmouseover([in] IHTMLEventObj *pEvtObj);
4273
4274     [id(DISPID_HTMLDOCUMENTEVENTS2_ONREADYSTATECHANGE)]
4275     void onreadystatechange([in] IHTMLEventObj *pEvtObj);
4276
4277     [id(DISPID_HTMLDOCUMENTEVENTS2_ONBEFOREUPDATE)]
4278     VARIANT_BOOL onbeforeupdate([in] IHTMLEventObj *pEvtObj);
4279
4280     [id(DISPID_HTMLDOCUMENTEVENTS2_ONAFTERUPDATE)]
4281     void onafterupdate([in] IHTMLEventObj *pEvtObj);
4282
4283     [id(DISPID_HTMLDOCUMENTEVENTS2_ONROWEXIT)]
4284     VARIANT_BOOL onrowexit([in] IHTMLEventObj *pEvtObj);
4285
4286     [id(DISPID_HTMLDOCUMENTEVENTS2_ONROWENTER)]
4287     void onrowenter([in] IHTMLEventObj *pEvtObj);
4288
4289     [id(DISPID_HTMLDOCUMENTEVENTS2_ONDRAGSTART)]
4290     VARIANT_BOOL ondragstart([in] IHTMLEventObj *pEvtObj);
4291
4292     [id(DISPID_HTMLDOCUMENTEVENTS2_ONSELECTSTART)]
4293     VARIANT_BOOL onselectstart([in] IHTMLEventObj *pEvtObj);
4294
4295     [id(DISPID_HTMLDOCUMENTEVENTS2_ONERRORUPDATE)]
4296     VARIANT_BOOL onerrorupdate([in] IHTMLEventObj *pEvtObj);
4297
4298     [id(DISPID_HTMLDOCUMENTEVENTS2_ONCONTEXTMENU)]
4299     VARIANT_BOOL oncontextmenu([in] IHTMLEventObj *pEvtObj);
4300
4301     [id(DISPID_HTMLDOCUMENTEVENTS2_ONSTOP)]
4302     VARIANT_BOOL onstop([in] IHTMLEventObj *pEvtObj);
4303
4304     [id(DISPID_HTMLDOCUMENTEVENTS2_ONROWSDELETE)]
4305     void onrowsdelete([in] IHTMLEventObj *pEvtObj);
4306
4307     [id(DISPID_HTMLDOCUMENTEVENTS2_ONROWSINSERTED)]
4308     void onrowsinserted([in] IHTMLEventObj *pEvtObj);
4309
4310     [id(DISPID_HTMLDOCUMENTEVENTS2_ONCELLCHANGE)]
4311     void oncellchange([in] IHTMLEventObj *pEvtObj);
4312
4313     [id(DISPID_HTMLDOCUMENTEVENTS2_ONPROPERTYCHANGE)]
4314     void onpropertychange([in] IHTMLEventObj *pEvtObj);
4315
4316     [id(DISPID_HTMLDOCUMENTEVENTS2_ONDATASETCHANGED)]
4317     void ondatasetchanged([in] IHTMLEventObj *pEvtObj);
4318
4319     [id(DISPID_HTMLDOCUMENTEVENTS2_ONDATAAVAILABLE)]
4320     void ondataavailable([in] IHTMLEventObj *pEvtObj);
4321
4322     [id(DISPID_HTMLDOCUMENTEVENTS2_ONDATASETCOMPLETE)]
4323     void ondatasetcomplete([in] IHTMLEventObj *pEvtObj);
4324
4325     [id(DISPID_HTMLDOCUMENTEVENTS2_ONBEFOREEDITFOCUS)]
4326     void onbeforeeditfocus([in] IHTMLEventObj *pEvtObj);
4327
4328     [id(DISPID_HTMLDOCUMENTEVENTS2_ONSELECTIONCHANGE)]
4329     void onselectionchange([in] IHTMLEventObj *pEvtObj);
4330
4331     [id(DISPID_HTMLDOCUMENTEVENTS2_ONCONTROLSELECT)]
4332     VARIANT_BOOL oncontrolselect([in] IHTMLEventObj *pEvtObj);
4333
4334     [id(DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEWHEEL)]
4335     VARIANT_BOOL onmousewheel([in] IHTMLEventObj *pEvtObj);
4336
4337     [id(DISPID_HTMLDOCUMENTEVENTS2_ONFOCUSIN)]
4338     void onfocusin([in] IHTMLEventObj *pEvtObj);
4339
4340     [id(DISPID_HTMLDOCUMENTEVENTS2_ONFOCUSOUT)]
4341     void onfocusout([in] IHTMLEventObj *pEvtObj);
4342
4343     [id(DISPID_HTMLDOCUMENTEVENTS2_ONACTIVATE)]
4344     void onactivate([in] IHTMLEventObj *pEvtObj);
4345
4346     [id(DISPID_HTMLDOCUMENTEVENTS2_ONDEACTIVATE)]
4347     void ondeactivate([in] IHTMLEventObj *pEvtObj);
4348
4349     [id(DISPID_HTMLDOCUMENTEVENTS2_ONBEFOREACTIVATE)]
4350     VARIANT_BOOL onbeforeactivate([in] IHTMLEventObj *pEvtObj);
4351
4352     [id(DISPID_HTMLDOCUMENTEVENTS2_ONBEFOREDEACTIVATE)]
4353     VARIANT_BOOL onbeforedeactivate([in] IHTMLEventObj *pEvtObj);
4354 }
4355
4356 /*****************************************************************************
4357  *    HTMLDocumentEvents interface
4358  */
4359 [
4360     hidden,
4361     uuid(3050f260-98b5-11cf-bb82-00aa00bdce0b)
4362 ]
4363 dispinterface HTMLDocumentEvents
4364 {
4365     properties:
4366     methods:
4367     [id(DISPID_HTMLDOCUMENTEVENTS_ONHELP)]
4368     VARIANT_BOOL onhelp();
4369
4370     [id(DISPID_HTMLDOCUMENTEVENTS_ONCLICK)]
4371     VARIANT_BOOL onclick();
4372
4373     [id(DISPID_HTMLDOCUMENTEVENTS_ONDBLCLICK)]
4374     VARIANT_BOOL ondblclick();
4375
4376     [id(DISPID_HTMLDOCUMENTEVENTS_ONKEYDOWN)]
4377     void onkeydown();
4378
4379     [id(DISPID_HTMLDOCUMENTEVENTS_ONKEYUP)]
4380     void onkeyup();
4381
4382     [id(DISPID_HTMLDOCUMENTEVENTS_ONKEYPRESS)]
4383     VARIANT_BOOL onkeypress();
4384
4385     [id(DISPID_HTMLDOCUMENTEVENTS_ONMOUSEDOWN)]
4386     void onmousedown();
4387
4388     [id(DISPID_HTMLDOCUMENTEVENTS_ONMOUSEMOVE)]
4389     void onmousemove();
4390
4391     [id(DISPID_HTMLDOCUMENTEVENTS_ONMOUSEUP)]
4392     void onmouseup();
4393
4394     [id(DISPID_HTMLDOCUMENTEVENTS_ONMOUSEOUT)]
4395     void onmouseout();
4396
4397     [id(DISPID_HTMLDOCUMENTEVENTS_ONMOUSEOVER)]
4398     void onmouseover();
4399
4400     [id(DISPID_HTMLDOCUMENTEVENTS_ONREADYSTATECHANGE)]
4401     void onreadystatechange();
4402
4403     [id(DISPID_HTMLDOCUMENTEVENTS_ONBEFOREUPDATE)]
4404     VARIANT_BOOL onbeforeupdate();
4405
4406     [id(DISPID_HTMLDOCUMENTEVENTS_ONAFTERUPDATE)]
4407     void onafterupdate();
4408
4409     [id(DISPID_HTMLDOCUMENTEVENTS_ONROWEXIT)]
4410     VARIANT_BOOL onrowexit();
4411
4412     [id(DISPID_HTMLDOCUMENTEVENTS_ONROWENTER)]
4413     void onrowenter();
4414
4415     [id(DISPID_HTMLDOCUMENTEVENTS_ONDRAGSTART)]
4416     VARIANT_BOOL ondragstart();
4417
4418     [id(DISPID_HTMLDOCUMENTEVENTS_ONSELECTSTART)]
4419     VARIANT_BOOL onselectstart();
4420
4421     [id(DISPID_HTMLDOCUMENTEVENTS_ONERRORUPDATE)]
4422     VARIANT_BOOL onerrorupdate();
4423
4424     [id(DISPID_HTMLDOCUMENTEVENTS_ONCONTEXTMENU)]
4425     VARIANT_BOOL oncontextmenu();
4426
4427     [id(DISPID_HTMLDOCUMENTEVENTS_ONSTOP)]
4428     VARIANT_BOOL onstop();
4429
4430     [id(DISPID_HTMLDOCUMENTEVENTS_ONROWSDELETE)]
4431     void onrowsdelete();
4432
4433     [id(DISPID_HTMLDOCUMENTEVENTS_ONROWSINSERTED)]
4434     void onrowsinserted();
4435
4436     [id(DISPID_HTMLDOCUMENTEVENTS_ONCELLCHANGE)]
4437     void oncellchange();
4438
4439     [id(DISPID_HTMLDOCUMENTEVENTS_ONPROPERTYCHANGE)]
4440     void onpropertychange();
4441
4442     [id(DISPID_HTMLDOCUMENTEVENTS_ONDATASETCHANGED)]
4443     void ondatasetchanged();
4444
4445     [id(DISPID_HTMLDOCUMENTEVENTS_ONDATAAVAILABLE)]
4446     void ondataavailable();
4447
4448     [id(DISPID_HTMLDOCUMENTEVENTS_ONDATASETCOMPLETE)]
4449     void ondatasetcomplete();
4450
4451     [id(DISPID_HTMLDOCUMENTEVENTS_ONBEFOREEDITFOCUS)]
4452     void onbeforeeditfocus();
4453
4454     [id(DISPID_HTMLDOCUMENTEVENTS_ONSELECTIONCHANGE)]
4455     void onselectionchange();
4456
4457     [id(DISPID_HTMLDOCUMENTEVENTS_ONCONTROLSELECT)]
4458     VARIANT_BOOL oncontrolselect();
4459
4460     [id(DISPID_HTMLDOCUMENTEVENTS_ONMOUSEWHEEL)]
4461     VARIANT_BOOL onmousewheel();
4462
4463     [id(DISPID_HTMLDOCUMENTEVENTS_ONFOCUSIN)]
4464     void onfocusin();
4465
4466     [id(DISPID_HTMLDOCUMENTEVENTS_ONFOCUSOUT)]
4467     void onfocusout();
4468
4469     [id(DISPID_HTMLDOCUMENTEVENTS_ONACTIVATE)]
4470     void onactivate();
4471
4472     [id(DISPID_HTMLDOCUMENTEVENTS_ONDEACTIVATE)]
4473     void ondeactivate();
4474
4475     [id(DISPID_HTMLDOCUMENTEVENTS_ONBEFOREACTIVATE)]
4476     VARIANT_BOOL onbeforeactivate();
4477
4478     [id(DISPID_HTMLDOCUMENTEVENTS_ONBEFOREDEACTIVATE)]
4479     VARIANT_BOOL onbeforedeactivate();
4480 }
4481
4482 /*****************************************************************************
4483  *    HTMLTextContainerEvents interface
4484  */
4485 [
4486     hidden,
4487     uuid(1ff6aa72-5842-11cf-a707-00aa00c0098d)
4488 ]
4489 dispinterface HTMLTextContainerEvents
4490 {
4491 properties:
4492
4493 methods:
4494     [id(DISPID_HTMLELEMENTEVENTS_ONHELP)]
4495     VARIANT_BOOL onhelp();
4496
4497     [id(DISPID_HTMLELEMENTEVENTS_ONCLICK)]
4498     VARIANT_BOOL onclick();
4499
4500     [id(DISPID_HTMLELEMENTEVENTS_ONDBLCLICK)]
4501     VARIANT_BOOL ondblclick();
4502
4503     [id(DISPID_HTMLELEMENTEVENTS_ONKEYPRESS)]
4504     VARIANT_BOOL onkeypress();
4505
4506     [id(DISPID_HTMLELEMENTEVENTS_ONKEYDOWN)]
4507     void onkeydown();
4508
4509     [id(DISPID_HTMLELEMENTEVENTS_ONKEYUP)]
4510     void onkeyup();
4511
4512     [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOUT)]
4513     void onmouseout();
4514
4515     [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOVER)]
4516     void onmouseover();
4517
4518     [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEMOVE)]
4519     void onmousemove();
4520
4521     [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEDOWN)]
4522     void onmousedown();
4523
4524     [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEUP)]
4525     void onmouseup();
4526
4527     [id(DISPID_HTMLELEMENTEVENTS_ONSELECTSTART)]
4528     VARIANT_BOOL onselectstart();
4529
4530     [id(DISPID_HTMLELEMENTEVENTS_ONFILTERCHANGE)]
4531     void onfilterchange();
4532
4533     [id(DISPID_HTMLELEMENTEVENTS_ONDRAGSTART)]
4534     VARIANT_BOOL ondragstart();
4535
4536     [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREUPDATE)]
4537     VARIANT_BOOL onbeforeupdate();
4538
4539     [id(DISPID_HTMLELEMENTEVENTS_ONAFTERUPDATE)]
4540     void onafterupdate();
4541
4542     [id(DISPID_HTMLELEMENTEVENTS_ONERRORUPDATE)]
4543     VARIANT_BOOL onerrorupdate();
4544
4545     [id(DISPID_HTMLELEMENTEVENTS_ONROWEXIT)]
4546     VARIANT_BOOL onrowexit();
4547
4548     [id(DISPID_HTMLELEMENTEVENTS_ONROWENTER)]
4549     void onrowenter();
4550
4551     [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCHANGED)]
4552     void ondatasetchanged();
4553
4554     [id(DISPID_HTMLELEMENTEVENTS_ONDATAAVAILABLE)]
4555     void ondataavailable();
4556
4557     [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCOMPLETE)]
4558     void ondatasetcomplete();
4559
4560     [id(DISPID_HTMLELEMENTEVENTS_ONLOSECAPTURE)]
4561     void onlosecapture();
4562
4563     [id(DISPID_HTMLELEMENTEVENTS_ONPROPERTYCHANGE)]
4564     void onpropertychange();
4565
4566     [id(DISPID_HTMLELEMENTEVENTS_ONSCROLL)]
4567     void onscroll();
4568
4569     [id(DISPID_HTMLELEMENTEVENTS_ONFOCUS)]
4570     void onfocus();
4571
4572     [id(DISPID_HTMLELEMENTEVENTS_ONBLUR)]
4573     void onblur();
4574
4575     [id(DISPID_HTMLELEMENTEVENTS_ONRESIZE)]
4576     void onresize();
4577
4578     [id(DISPID_HTMLELEMENTEVENTS_ONDRAG)]
4579     VARIANT_BOOL ondrag();
4580
4581     [id(DISPID_HTMLELEMENTEVENTS_ONDRAGEND)]
4582     void ondragend();
4583
4584     [id(DISPID_HTMLELEMENTEVENTS_ONDRAGENTER)]
4585     VARIANT_BOOL ondragenter();
4586
4587     [id(DISPID_HTMLELEMENTEVENTS_ONDRAGOVER)]
4588     VARIANT_BOOL ondragover();
4589
4590     [id(DISPID_HTMLELEMENTEVENTS_ONDRAGLEAVE)]
4591     void ondragleave();
4592
4593     [id(DISPID_HTMLELEMENTEVENTS_ONDROP)]
4594     VARIANT_BOOL ondrop();
4595
4596     [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECUT)]
4597     VARIANT_BOOL onbeforecut();
4598
4599     [id(DISPID_HTMLELEMENTEVENTS_ONCUT)]
4600     VARIANT_BOOL oncut();
4601
4602     [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECOPY)]
4603     VARIANT_BOOL onbeforecopy();
4604
4605     [id(DISPID_HTMLELEMENTEVENTS_ONCOPY)]
4606     VARIANT_BOOL oncopy();
4607
4608     [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREPASTE)]
4609     VARIANT_BOOL onbeforepaste();
4610
4611     [id(DISPID_HTMLELEMENTEVENTS_ONPASTE)]
4612     VARIANT_BOOL onpaste();
4613
4614     [id(DISPID_HTMLELEMENTEVENTS_ONCONTEXTMENU)]
4615     VARIANT_BOOL oncontextmenu();
4616
4617     [id(DISPID_HTMLELEMENTEVENTS_ONROWSDELETE)]
4618     void onrowsdelete();
4619
4620     [id(DISPID_HTMLELEMENTEVENTS_ONROWSINSERTED)]
4621     void onrowsinserted();
4622
4623     [id(DISPID_HTMLELEMENTEVENTS_ONCELLCHANGE)]
4624     void oncellchange();
4625
4626     [id(DISPID_HTMLELEMENTEVENTS_ONREADYSTATECHANGE)]
4627     void onreadystatechange();
4628
4629     [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREEDITFOCUS)]
4630     void onbeforeeditfocus();
4631
4632     [id(DISPID_HTMLELEMENTEVENTS_ONLAYOUTCOMPLETE)]
4633     void onlayoutcomplete();
4634
4635     [id(DISPID_HTMLELEMENTEVENTS_ONPAGE)]
4636     void onpage();
4637
4638     [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREDEACTIVATE)]
4639     VARIANT_BOOL onbeforedeactivate();
4640
4641     [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREACTIVATE)]
4642     VARIANT_BOOL onbeforeactivate();
4643
4644     [id(DISPID_HTMLELEMENTEVENTS_ONMOVE)]
4645     void onmove();
4646
4647     [id(DISPID_HTMLELEMENTEVENTS_ONCONTROLSELECT)]
4648     VARIANT_BOOL oncontrolselect();
4649
4650     [id(DISPID_HTMLELEMENTEVENTS_ONMOVESTART)]
4651     VARIANT_BOOL onmovestart();
4652
4653     [id(DISPID_HTMLELEMENTEVENTS_ONMOVEEND)]
4654     void onmoveend();
4655
4656     [id(DISPID_HTMLELEMENTEVENTS_ONRESIZESTART)]
4657     VARIANT_BOOL onresizestart();
4658
4659     [id(DISPID_HTMLELEMENTEVENTS_ONRESIZEEND)]
4660     void onresizeend();
4661
4662     [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEENTER)]
4663     void onmouseenter();
4664
4665     [id(DISPID_HTMLELEMENTEVENTS_ONMOUSELEAVE)]
4666     void onmouseleave();
4667
4668     [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEWHEEL)]
4669     VARIANT_BOOL onmousewheel();
4670
4671     [id(DISPID_HTMLELEMENTEVENTS_ONACTIVATE)]
4672     void onactivate();
4673
4674     [id(DISPID_HTMLELEMENTEVENTS_ONDEACTIVATE)]
4675     void ondeactivate();
4676
4677     [id(DISPID_HTMLELEMENTEVENTS_ONFOCUSIN)]
4678     void onfocusin();
4679
4680     [id(DISPID_HTMLELEMENTEVENTS_ONFOCUSOUT)]
4681     void onfocusout();
4682
4683     [id(DISPID_HTMLTEXTCONTAINEREVENTS_ONCHANGE)]
4684     void onchange();
4685
4686     [id(DISPID_HTMLTEXTCONTAINEREVENTS_ONSELECT)]
4687     void onselect();
4688 };
4689
4690 /*****************************************************************************
4691  *    IHTMLDocument interface
4692  */
4693 [
4694     odl,
4695     oleautomation,
4696     dual,
4697     uuid(626FC520-A41E-11CF-A731-00A0C9082637)
4698 ]
4699 interface IHTMLDocument : IDispatch
4700 {
4701     [propget, id(DISPID_IHTMLDOCUMENT_SCRIPT)]
4702     HRESULT Script([retval, out] IDispatch **p);
4703 }
4704
4705 /*****************************************************************************
4706  *    IHTMLDocument2 interface
4707  */
4708 [
4709     odl,
4710     oleautomation,
4711     dual,
4712     uuid(332C4425-26CB-11D0-B483-00C04FD90119)
4713 ]
4714 interface IHTMLDocument2 : IHTMLDocument
4715 {
4716     [propget, id(DISPID_IHTMLDOCUMENT2_ALL)]
4717     HRESULT all([retval, out] IHTMLElementCollection **p);
4718
4719     [propget, id(DISPID_IHTMLDOCUMENT2_BODY)]
4720     HRESULT body([retval, out] IHTMLElement **p);
4721
4722     [propget, id(DISPID_IHTMLDOCUMENT2_ACTIVEELEMENT)]
4723     HRESULT activeElement([retval, out] IHTMLElement **p);
4724
4725     [propget, id(DISPID_IHTMLDOCUMENT2_IMAGES)]
4726     HRESULT images([retval, out] IHTMLElementCollection **p);
4727
4728     [propget, id(DISPID_IHTMLDOCUMENT2_APPLETS)]
4729     HRESULT applets([retval, out] IHTMLElementCollection **p);
4730
4731     [propget, id(DISPID_IHTMLDOCUMENT2_LINKS)]
4732     HRESULT links([retval, out] IHTMLElementCollection **p);
4733
4734     [propget, id(DISPID_IHTMLDOCUMENT2_FORMS)]
4735     HRESULT forms([retval, out] IHTMLElementCollection **p);
4736
4737     [propget, id(DISPID_IHTMLDOCUMENT2_ANCHORS)]
4738     HRESULT anchors([retval, out] IHTMLElementCollection **p);
4739
4740     [propput, id(DISPID_IHTMLDOCUMENT2_TITLE)]
4741     HRESULT title([in] BSTR v);
4742
4743     [propget, id(DISPID_IHTMLDOCUMENT2_TITLE)]
4744     HRESULT title([retval, out] BSTR *p);
4745
4746     [propget, id(DISPID_IHTMLDOCUMENT2_SCRIPTS)]
4747     HRESULT scripts([retval, out] IHTMLElementCollection **p);
4748
4749     [propput, id(DISPID_IHTMLDOCUMENT2_DESIGNMODE)]
4750     HRESULT designMode([in] BSTR v);
4751
4752     [propget, id(DISPID_IHTMLDOCUMENT2_DESIGNMODE)]
4753     HRESULT designMode([retval, out] BSTR *p);
4754
4755     [propget, id(DISPID_IHTMLDOCUMENT2_SELECTION)]
4756     HRESULT selection([retval, out] IHTMLSelectionObject **p);
4757
4758     [propget, id(DISPID_IHTMLDOCUMENT2_READYSTATE)]
4759      HRESULT readyState([retval, out] BSTR *p);
4760
4761     [propget, id(DISPID_IHTMLDOCUMENT2_FRAMES)]
4762     HRESULT frames([retval, out] IHTMLFramesCollection2 **p);
4763
4764     [propget, id(DISPID_IHTMLDOCUMENT2_EMBEDS)]
4765     HRESULT embeds([retval, out] IHTMLElementCollection **p);
4766
4767     [propget, id(DISPID_IHTMLDOCUMENT2_PLUGINS)]
4768     HRESULT plugins([retval, out] IHTMLElementCollection **p);
4769
4770     [propput, id(DISPID_IHTMLDOCUMENT2_ALINKCOLOR)]
4771     HRESULT alinkColor([in] VARIANT v);
4772
4773     [propget, id(DISPID_IHTMLDOCUMENT2_ALINKCOLOR)]
4774     HRESULT alinkColor([retval, out] VARIANT *p);
4775
4776     [propput, id(DISPID_IHTMLDOCUMENT2_BGCOLOR)]
4777     HRESULT bgColor([in] VARIANT v);
4778
4779     [propget, id(DISPID_IHTMLDOCUMENT2_BGCOLOR)]
4780     HRESULT bgColor([retval, out] VARIANT *p);
4781
4782     [propput, id(DISPID_IHTMLDOCUMENT2_FGCOLOR)]
4783     HRESULT fgColor([in] VARIANT v);
4784
4785     [propget, id(DISPID_IHTMLDOCUMENT2_FGCOLOR)]
4786     HRESULT fgColor([retval, out] VARIANT *p);
4787
4788     [propput, id(DISPID_IHTMLDOCUMENT2_LINKCOLOR)]
4789     HRESULT linkColor([in] VARIANT v);
4790
4791     [propget, id(DISPID_IHTMLDOCUMENT2_LINKCOLOR)]
4792     HRESULT linkColor([retval, out] VARIANT *p);
4793
4794     [propput, id(DISPID_IHTMLDOCUMENT2_VLINKCOLOR)]
4795     HRESULT vlinkColor([in] VARIANT v);
4796
4797     [propget, id(DISPID_IHTMLDOCUMENT2_VLINKCOLOR)]
4798     HRESULT vlinkColor([retval, out] VARIANT *p);
4799
4800     [propget, id(DISPID_IHTMLDOCUMENT2_REFERRER)]
4801     HRESULT referrer([retval, out] BSTR *p);
4802
4803     [propget, id(DISPID_IHTMLDOCUMENT2_LOCATION)]
4804     HRESULT location([retval, out] IHTMLLocation **p);
4805
4806     [propget, id(DISPID_IHTMLDOCUMENT2_LASTMODIFIED)]
4807     HRESULT lastModified([retval, out] BSTR *p);
4808
4809     [propput, id(DISPID_IHTMLDOCUMENT2_URL)]
4810     HRESULT URL([in] BSTR v);
4811
4812     [propget, id(DISPID_IHTMLDOCUMENT2_URL)]
4813     HRESULT URL([retval, out] BSTR *p);
4814
4815     [propput, id(DISPID_IHTMLDOCUMENT2_DOMAIN)]
4816     HRESULT domain([in] BSTR v);
4817
4818     [propget, id(DISPID_IHTMLDOCUMENT2_DOMAIN)]
4819     HRESULT domain([retval, out] BSTR *p);
4820
4821     [propput, id(DISPID_IHTMLDOCUMENT2_COOKIE)]
4822     HRESULT cookie([in] BSTR v);
4823
4824     [propget, id(DISPID_IHTMLDOCUMENT2_COOKIE)]
4825     HRESULT cookie([retval, out] BSTR *p);
4826
4827     [propput, id(DISPID_IHTMLDOCUMENT2_EXPANDO)]
4828     HRESULT expando([in] VARIANT_BOOL v);
4829
4830     [propget, id(DISPID_IHTMLDOCUMENT2_EXPANDO)]
4831     HRESULT expando([retval, out] VARIANT_BOOL *p);
4832
4833     [propput, id(DISPID_IHTMLDOCUMENT2_CHARSET)]
4834      HRESULT charset([in] BSTR v);
4835
4836     [propget, id(DISPID_IHTMLDOCUMENT2_CHARSET)]
4837     HRESULT charset([retval, out] BSTR *p);
4838
4839     [propput, id(DISPID_IHTMLDOCUMENT2_DEFAULTCHARSET)]
4840     HRESULT defaultCharset([in] BSTR v);
4841
4842     [propget, id(DISPID_IHTMLDOCUMENT2_DEFAULTCHARSET)]
4843     HRESULT defaultCharset([retval, out] BSTR *p);
4844
4845     [propget, id(DISPID_IHTMLDOCUMENT2_MIMETYPE)]
4846     HRESULT mimeType([retval, out] BSTR *p);
4847
4848     [propget, id(DISPID_IHTMLDOCUMENT2_FILESIZE)]
4849     HRESULT fileSize([retval, out] BSTR *p);
4850
4851     [propget, id(DISPID_IHTMLDOCUMENT2_FILECREATEDDATE)]
4852     HRESULT fileCreatedDate([retval, out] BSTR *p);
4853
4854     [propget, id(DISPID_IHTMLDOCUMENT2_FILEMODIFIEDDATE)]
4855     HRESULT fileModifiedDate([retval, out] BSTR *p);
4856
4857     [propget, id(DISPID_IHTMLDOCUMENT2_FILEUPDATEDDATE)]
4858     HRESULT fileUpdatedDate([retval, out] BSTR *p);
4859
4860     [propget, id(DISPID_IHTMLDOCUMENT2_SECURITY)]
4861     HRESULT security([retval, out] BSTR *p);
4862
4863     [propget, id(DISPID_IHTMLDOCUMENT2_PROTOCOL)]
4864     HRESULT protocol([retval, out] BSTR *p);
4865
4866     [propget, id(DISPID_IHTMLDOCUMENT2_NAMEPROP)]
4867      HRESULT nameProp([retval, out] BSTR *p);
4868
4869     [vararg, id(DISPID_IHTMLDOCUMENT2_WRITE)]
4870     HRESULT write([in] SAFEARRAY(VARIANT) psarray);
4871
4872     [vararg, id(DISPID_IHTMLDOCUMENT2_WRITELN)]
4873     HRESULT writeln([in] SAFEARRAY(VARIANT) psarray);
4874
4875     [id(DISPID_IHTMLDOCUMENT2_OPEN)]
4876     HRESULT open(
4877         [defaultvalue("text/html"), in] BSTR url,
4878         [optional, in] VARIANT name,
4879         [optional, in] VARIANT features,
4880         [optional, in] VARIANT replace,
4881         [retval, out]  IDispatch **pomWindowResult);
4882
4883     [id(DISPID_IHTMLDOCUMENT2_CLOSE)]
4884     HRESULT close();
4885
4886     [id(DISPID_IHTMLDOCUMENT2_CLEAR)]
4887     HRESULT clear();
4888
4889     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDSUPPORTED)]
4890     HRESULT queryCommandSupported(
4891         [in] BSTR cmdID,
4892         [retval, out] VARIANT_BOOL *pfRet);
4893
4894     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDENABLED)]
4895     HRESULT queryCommandEnabled(
4896         [in] BSTR cmdID,
4897         [retval, out] VARIANT_BOOL *pfRet);
4898
4899     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDSTATE)]
4900     HRESULT queryCommandState(
4901         [in] BSTR cmdID,
4902         [retval, out] VARIANT_BOOL *pfRet);
4903
4904     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDINDETERM)]
4905     HRESULT queryCommandIndeterm(
4906         [in] BSTR cmdID,
4907         [retval, out] VARIANT_BOOL *pfRet);
4908
4909     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDTEXT)]
4910     HRESULT queryCommandText(
4911         [in] BSTR cmdID,
4912         [retval, out] BSTR *pcmdText);
4913
4914     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDVALUE)]
4915     HRESULT queryCommandValue(
4916         [in] BSTR cmdID,
4917         [retval, out] VARIANT *pcmdValue);
4918
4919     [id(DISPID_IHTMLDOCUMENT2_EXECCOMMAND)]
4920     HRESULT execCommand(
4921         [in] BSTR cmdID,
4922         [defaultvalue(0), in] VARIANT_BOOL showUI,
4923         [optional, in] VARIANT value,
4924         [retval, out] VARIANT_BOOL *pfRet);
4925
4926     [id(DISPID_IHTMLDOCUMENT2_EXECCOMMANDSHOWHELP)]
4927     HRESULT execCommandShowHelp(
4928         [in] BSTR cmdID,
4929         [retval, out] VARIANT_BOOL *pfRet);
4930
4931     [id(DISPID_IHTMLDOCUMENT2_CREATEELEMENT)]
4932      HRESULT createElement(
4933         [in] BSTR eTag,
4934         [retval, out] IHTMLElement **newElem);
4935
4936     [propput, id(DISPID_IHTMLDOCUMENT2_ONHELP)]
4937     HRESULT onhelp([in] VARIANT v);
4938
4939     [propget, id(DISPID_IHTMLDOCUMENT2_ONHELP)]
4940     HRESULT onhelp([retval, out] VARIANT *p);
4941
4942     [propput, id(DISPID_IHTMLDOCUMENT2_ONCLICK)]
4943     HRESULT onclick([in] VARIANT v);
4944
4945     [propget, id(DISPID_IHTMLDOCUMENT2_ONCLICK)]
4946     HRESULT onclick([retval, out] VARIANT *p);
4947
4948     [propput, id(DISPID_IHTMLDOCUMENT2_ONDBLCLICK)]
4949     HRESULT ondblclick([in] VARIANT v);
4950
4951     [propget, id(DISPID_IHTMLDOCUMENT2_ONDBLCLICK)]
4952     HRESULT ondblclick([retval, out] VARIANT *p);
4953
4954     [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYUP)]
4955     HRESULT onkeyup([in] VARIANT v);
4956
4957     [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYUP)]
4958     HRESULT onkeyup([retval, out] VARIANT *p);
4959
4960     [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYDOWN)]
4961     HRESULT onkeydown([in] VARIANT v);
4962
4963     [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYDOWN)]
4964     HRESULT onkeydown([retval, out] VARIANT *p);
4965
4966     [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYPRESS)]
4967      HRESULT onkeypress([in] VARIANT v);
4968
4969     [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYPRESS)]
4970     HRESULT onkeypress([retval, out] VARIANT *p);
4971
4972     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEUP)]
4973     HRESULT onmouseup([in] VARIANT v);
4974
4975     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEUP)]
4976     HRESULT onmouseup([retval, out] VARIANT *p);
4977
4978     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEDOWN)]
4979     HRESULT onmousedown([in] VARIANT v);
4980
4981     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEDOWN)]
4982     HRESULT onmousedown([retval, out] VARIANT *p);
4983
4984     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEMOVE)]
4985     HRESULT onmousemove([in] VARIANT v);
4986
4987     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEMOVE)]
4988     HRESULT onmousemove([retval, out] VARIANT *p);
4989
4990     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOUT)]
4991     HRESULT onmouseout([in] VARIANT v);
4992
4993     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOUT)]
4994     HRESULT onmouseout([retval, out] VARIANT *p);
4995
4996     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOVER)]
4997     HRESULT onmouseover([in] VARIANT v);
4998
4999     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOVER)]
5000     HRESULT onmouseover([retval, out] VARIANT *p);
5001
5002     [propput, id(DISPID_IHTMLDOCUMENT2_ONREADYSTATECHANGE)]
5003     HRESULT onreadystatechange([in] VARIANT v);
5004
5005     [propget, id(DISPID_IHTMLDOCUMENT2_ONREADYSTATECHANGE)]
5006     HRESULT onreadystatechange([retval, out] VARIANT *p);
5007
5008     [propput, id(DISPID_IHTMLDOCUMENT2_ONAFTERUPDATE)]
5009     HRESULT onafterupdate([in] VARIANT v);
5010
5011     [propget, id(DISPID_IHTMLDOCUMENT2_ONAFTERUPDATE)]
5012     HRESULT onafterupdate([retval, out] VARIANT *p);
5013
5014     [propput, id(DISPID_IHTMLDOCUMENT2_ONROWEXIT)]
5015     HRESULT onrowexit([in] VARIANT v);
5016
5017     [propget, id(DISPID_IHTMLDOCUMENT2_ONROWEXIT)]
5018     HRESULT onrowexit([retval, out] VARIANT *p);
5019
5020     [propput, id(DISPID_IHTMLDOCUMENT2_ONROWENTER)]
5021     HRESULT onrowenter([in] VARIANT v);
5022
5023     [propget, id(DISPID_IHTMLDOCUMENT2_ONROWENTER)]
5024     HRESULT onrowenter([retval, out] VARIANT *p);
5025
5026     [propput, id(DISPID_IHTMLDOCUMENT2_ONDRAGSTART)]
5027     HRESULT ondragstart([in] VARIANT v);
5028
5029     [propget, id(DISPID_IHTMLDOCUMENT2_ONDRAGSTART)]
5030     HRESULT ondragstart([retval, out] VARIANT *p);
5031
5032     [propput, id(DISPID_IHTMLDOCUMENT2_ONSELECTSTART)]
5033     HRESULT onselectstart([in] VARIANT v);
5034
5035     [propget, id(DISPID_IHTMLDOCUMENT2_ONSELECTSTART)]
5036     HRESULT onselectstart([retval, out] VARIANT *p);
5037
5038     [id(DISPID_IHTMLDOCUMENT2_ELEMENTFROMPOINT)]
5039     HRESULT elementFromPoint(
5040         [in] long x,
5041         [in] long y,
5042         [retval, out] IHTMLElement **elementHit);
5043
5044     [propget, id(DISPID_IHTMLDOCUMENT2_PARENTWINDOW)]
5045     HRESULT parentWindow([retval, out] IHTMLWindow2 **p);
5046
5047     [propget, id(DISPID_IHTMLDOCUMENT2_STYLESHEETS)]
5048     HRESULT styleSheets([retval, out] IHTMLStyleSheetsCollection **p);
5049
5050     [propput, id(DISPID_IHTMLDOCUMENT2_ONBEFOREUPDATE)]
5051     HRESULT onbeforeupdate([in] VARIANT v);
5052
5053     [propget, id(DISPID_IHTMLDOCUMENT2_ONBEFOREUPDATE)]
5054     HRESULT onbeforeupdate([retval, out] VARIANT *p);
5055
5056     [propput, id(DISPID_IHTMLDOCUMENT2_ONERRORUPDATE)]
5057     HRESULT onerrorupdate([in] VARIANT v);
5058
5059     [propget, id(DISPID_IHTMLDOCUMENT2_ONERRORUPDATE)]
5060     HRESULT onerrorupdate([retval, out] VARIANT *p);
5061
5062     [id(DISPID_IHTMLDOCUMENT2_TOSTRING)]
5063     HRESULT toString([retval, out] BSTR *String);
5064
5065     [id(DISPID_IHTMLDOCUMENT2_CREATESTYLESHEET)]
5066     HRESULT createStyleSheet(
5067         [defaultvalue(""), in] BSTR bstrHref,
5068         [defaultvalue(-1), in] long lIndex,
5069         [retval, out] IHTMLStyleSheet **ppnewStyleSheet);
5070 }
5071
5072 /*****************************************************************************
5073  *    IHTMLDocument3 interface
5074  */
5075 [
5076     odl,
5077     oleautomation,
5078     dual,
5079     uuid(3050f485-98b5-11cf-bb82-00aa00bdce0b)
5080 ]
5081 interface IHTMLDocument3 : IDispatch
5082 {
5083     [id(DISPID_IHTMLDOCUMENT3_RELEASECAPTURE)]
5084     HRESULT releaseCapture();
5085
5086     [id(DISPID_IHTMLDOCUMENT3_RECALC)]
5087     HRESULT recalc([defaultvalue(0), in] VARIANT_BOOL fForce);
5088
5089     [id(DISPID_IHTMLDOCUMENT3_CREATETEXTNODE)]
5090     HRESULT createTextNode(
5091         [in] BSTR text,
5092         [retval, out] IHTMLDOMNode **newTextNode);
5093
5094     [propget, id(DISPID_IHTMLDOCUMENT3_DOCUMENTELEMENT)]
5095     HRESULT documentElement([retval, out] IHTMLElement **p);
5096
5097     [propget, id(DISPID_IHTMLDOCUMENT3_UNIQUEID), hidden]
5098     HRESULT uniqueID([retval, out] BSTR *p);
5099     
5100     [id(DISPID_IHTMLDOCUMENT3_ATTACHEVENT)]
5101     HRESULT attachEvent(
5102         [in] BSTR event,
5103         [in] IDispatch* pDisp,
5104         [retval, out] VARIANT_BOOL *pfResult);
5105
5106     [id(DISPID_IHTMLDOCUMENT3_DETACHEVENT)]
5107     HRESULT detachEvent(
5108         [in] BSTR event,
5109         [in] IDispatch *pDisp);
5110
5111     [propput, id(DISPID_IHTMLDOCUMENT3_ONROWSDELETE), displaybind, bindable]
5112     HRESULT onrowsdelete([in] VARIANT v);
5113
5114     [propget, id(DISPID_IHTMLDOCUMENT3_ONROWSDELETE), displaybind, bindable]
5115     HRESULT onrowsdelete([retval, out] VARIANT *p);
5116
5117     [propput, id(DISPID_IHTMLDOCUMENT3_ONROWSINSERTED), displaybind, bindable]
5118     HRESULT onrowsinserted([in] VARIANT v);
5119
5120     [propget, id(DISPID_IHTMLDOCUMENT3_ONROWSINSERTED), displaybind, bindable]
5121     HRESULT onrowsinserted([retval, out] VARIANT *p);
5122
5123     [propput, id(DISPID_IHTMLDOCUMENT3_ONCELLCHANGE), displaybind, bindable]
5124     HRESULT oncellchange([in] VARIANT v);
5125
5126     [propget, id(DISPID_IHTMLDOCUMENT3_ONCELLCHANGE), displaybind, bindable]
5127     HRESULT oncellchange([retval, out] VARIANT *p);
5128
5129     [propput, id(DISPID_IHTMLDOCUMENT3_ONDATASETCHANGED), displaybind, bindable]
5130     HRESULT ondatasetchanged([in] VARIANT v);
5131
5132     [propget, id(DISPID_IHTMLDOCUMENT3_ONDATASETCHANGED), displaybind, bindable]
5133     HRESULT ondatasetchanged([retval, out] VARIANT *p);
5134
5135     [propput, id(DISPID_IHTMLDOCUMENT3_ONDATAAVAILABLE), displaybind, bindable]
5136     HRESULT ondataavailable([in] VARIANT v);
5137
5138     [propget, id(DISPID_IHTMLDOCUMENT3_ONDATAAVAILABLE), displaybind, bindable]
5139     HRESULT ondataavailable([retval, out] VARIANT * p);
5140
5141     [propput, id(DISPID_IHTMLDOCUMENT3_ONDATASETCOMPLETE), displaybind, bindable]
5142     HRESULT ondatasetcomplete([in] VARIANT v);
5143
5144     [propget, id(DISPID_IHTMLDOCUMENT3_ONDATASETCOMPLETE), displaybind, bindable]
5145     HRESULT ondatasetcomplete([retval, out] VARIANT *p);
5146
5147     [propput, id(DISPID_IHTMLDOCUMENT3_ONPROPERTYCHANGE), displaybind, bindable]
5148     HRESULT onpropertychange([in] VARIANT v);
5149
5150     [propget, id(DISPID_IHTMLDOCUMENT3_ONPROPERTYCHANGE), displaybind, bindable]
5151     HRESULT onpropertychange([retval, out] VARIANT *p);
5152
5153     [propput, id(DISPID_IHTMLDOCUMENT3_DIR)]
5154     HRESULT dir([in] BSTR v);
5155
5156     [propget, id(DISPID_IHTMLDOCUMENT3_DIR)]
5157     HRESULT dir([retval, out] BSTR *p);
5158
5159     [propput, id(DISPID_IHTMLDOCUMENT3_ONCONTEXTMENU), displaybind, bindable]
5160     HRESULT oncontextmenu([in] VARIANT v);
5161
5162     [propget, id(DISPID_IHTMLDOCUMENT3_ONCONTEXTMENU), displaybind, bindable]
5163     HRESULT oncontextmenu([retval, out] VARIANT *p);
5164
5165     [propput, id(DISPID_IHTMLDOCUMENT3_ONSTOP), displaybind, bindable]
5166     HRESULT onstop([in] VARIANT v);
5167
5168     [propget, id(DISPID_IHTMLDOCUMENT3_ONSTOP), displaybind, bindable]
5169     HRESULT onstop([retval, out] VARIANT *p);
5170
5171     [id(DISPID_IHTMLDOCUMENT3_CREATEDOCUMENTFRAGMENT)]
5172     HRESULT createDocumentFragment([retval, out] IHTMLDocument2 **pNewDoc);
5173
5174     [propget, id(DISPID_IHTMLDOCUMENT3_PARENTDOCUMENT), hidden, restricted]
5175     HRESULT parentDocument([retval, out] IHTMLDocument2 **p);
5176
5177     [propput, id(DISPID_IHTMLDOCUMENT3_ENABLEDOWNLOAD), hidden, restricted]
5178     HRESULT enableDownload([in] VARIANT_BOOL v);
5179
5180     [propget, id(DISPID_IHTMLDOCUMENT3_ENABLEDOWNLOAD), hidden, restricted]
5181     HRESULT enableDownload([retval, out] VARIANT_BOOL *p);
5182
5183     [propput, id(DISPID_IHTMLDOCUMENT3_BASEURL), hidden, restricted]
5184     HRESULT baseUrl([in] BSTR v);
5185
5186     [propget, id(DISPID_IHTMLDOCUMENT3_BASEURL), hidden, restricted]
5187     HRESULT baseUrl([retval, out] BSTR *p);
5188
5189     [propget, id(DISPID_IHTMLDOCUMENT3_CHILDNODES)]
5190     HRESULT childNodes([retval, out] IDispatch **p);
5191
5192     [propput, id(DISPID_IHTMLDOCUMENT3_INHERITSTYLESHEETS), hidden, restricted]
5193     HRESULT inheritStyleSheets([in] VARIANT_BOOL v);
5194
5195     [propget, id(DISPID_IHTMLDOCUMENT3_INHERITSTYLESHEETS), hidden, restricted]
5196     HRESULT inheritStyleSheets([retval, out] VARIANT_BOOL *p);
5197
5198     [propput, id(DISPID_IHTMLDOCUMENT3_ONBEFOREEDITFOCUS), displaybind, bindable]
5199     HRESULT onbeforeeditfocus([in] VARIANT v);
5200
5201     [propget, id(DISPID_IHTMLDOCUMENT3_ONBEFOREEDITFOCUS), displaybind, bindable]
5202     HRESULT onbeforeeditfocus([retval, out] VARIANT *p);
5203
5204     [id(DISPID_IHTMLDOCUMENT3_GETELEMENTSBYNAME)]
5205     HRESULT getElementsByName(
5206         [in] BSTR v,
5207         [retval, out] IHTMLElementCollection **pelColl);
5208
5209     [id(DISPID_IHTMLDOCUMENT3_GETELEMENTBYID)]
5210     HRESULT getElementById(
5211         [in] BSTR v,
5212         [retval, out] IHTMLElement **pel);
5213
5214     [id(DISPID_IHTMLDOCUMENT3_GETELEMENTSBYTAGNAME)]
5215     HRESULT getElementsByTagName(
5216         [in] BSTR v,
5217         [retval, out] IHTMLElementCollection **pelColl);
5218 }
5219
5220 /*****************************************************************************
5221  *    IHTMLDocument4 interface
5222  */
5223 [
5224     odl,
5225     oleautomation,
5226     dual,
5227     uuid(3050f69a-98b5-11cf-bb82-00aa00bdce0b)
5228 ]
5229 interface IHTMLDocument4 : IDispatch
5230 {
5231     [id(DISPID_IHTMLDOCUMENT4_FOCUS)]
5232     HRESULT focus();
5233
5234     [id(DISPID_IHTMLDOCUMENT4_HASFOCUS)]
5235     HRESULT hasFocus([retval, out] VARIANT_BOOL *pfFocus);
5236
5237     [propput, id(DISPID_IHTMLDOCUMENT4_ONSELECTIONCHANGE), displaybind, bindable]
5238     HRESULT onselectionchange([in] VARIANT v);
5239
5240     [propget, id(DISPID_IHTMLDOCUMENT4_ONSELECTIONCHANGE), displaybind, bindable]
5241     HRESULT onselectionchange([retval, out] VARIANT *p);
5242
5243     [propget, id(DISPID_IHTMLDOCUMENT4_NAMESPACES)]
5244     HRESULT namespaces([retval, out] IDispatch **p);
5245
5246     [id(DISPID_IHTMLDOCUMENT4_CREATEDOCUMENTFROMURL)]
5247     HRESULT createDocumentFromUrl(
5248         [in] BSTR bstrUrl,
5249         [in] BSTR bstrOptions,
5250         [retval, out] IHTMLDocument2 **newDoc);
5251
5252     [propput, id(DISPID_IHTMLDOCUMENT4_MEDIA)]
5253     HRESULT media([in] BSTR v);
5254
5255     [propget, id(DISPID_IHTMLDOCUMENT4_MEDIA)]
5256     HRESULT media([retval, out] BSTR *p);
5257
5258     [id(DISPID_IHTMLDOCUMENT4_CREATEEVENTOBJECT)]
5259     HRESULT createEventObject(
5260         [optional, in] VARIANT *pvarEventObject,
5261         [retval, out] IHTMLEventObj **ppEventObj);
5262
5263     [id(DISPID_IHTMLDOCUMENT4_FIREEVENT)]
5264     HRESULT fireEvent(
5265         [in] BSTR bstrEventName,
5266         [optional, in] VARIANT *pvarEventObject,
5267         [retval, out] VARIANT_BOOL *pfCancelled);
5268
5269     [id(DISPID_IHTMLDOCUMENT4_CREATERENDERSTYLE)]
5270     HRESULT createRenderStyle(
5271         [in] BSTR v,
5272         [retval, out] IHTMLRenderStyle **ppIHTMLRenderStyle);
5273
5274     [propput, id(DISPID_IHTMLDOCUMENT4_ONCONTROLSELECT), displaybind, bindable]
5275     HRESULT oncontrolselect([in] VARIANT v);
5276
5277     [propget, id(DISPID_IHTMLDOCUMENT4_ONCONTROLSELECT), displaybind, bindable]
5278     HRESULT oncontrolselect([retval, out] VARIANT *p);
5279
5280     [propget, id(DISPID_IHTMLDOCUMENT4_URLUNENCODED)]
5281     HRESULT URLUnencoded([retval, out] BSTR *p);
5282 }
5283
5284 /*****************************************************************************
5285  *    IHTMLDocument5 interface
5286  */
5287 [
5288     odl,
5289     oleautomation,
5290     dual,
5291     uuid(3050f80c-98b5-11cf-bb82-00aa00bdce0b)
5292 ]
5293 interface IHTMLDocument5 : IDispatch
5294 {
5295     [propput, id(DISPID_IHTMLDOCUMENT5_ONMOUSEWHEEL), displaybind, bindable]
5296     HRESULT onmousewheel([in] VARIANT v);
5297
5298     [propget, id(DISPID_IHTMLDOCUMENT5_ONMOUSEWHEEL), displaybind, bindable]
5299     HRESULT onmousewheel([retval, out] VARIANT *p);
5300
5301     [propget, id(DISPID_IHTMLDOCUMENT5_DOCTYPE)]
5302     HRESULT doctype([retval, out] IHTMLDOMNode **p);
5303
5304     [propget, id(DISPID_IHTMLDOCUMENT5_IMPLEMENTATION)]
5305     HRESULT implementation([retval, out] IHTMLDOMImplementation **p);
5306
5307     [id(DISPID_IHTMLDOCUMENT5_CREATEATTRIBUTE)]
5308     HRESULT createAttribute(
5309         [in] BSTR bstrattrName,
5310         [retval, out] IHTMLDOMAttribute **ppattribute);
5311
5312     [id(DISPID_IHTMLDOCUMENT5_CREATECOMMENT)]
5313     HRESULT createComment(
5314         [in] BSTR bstrdata,
5315         [retval, out] IHTMLDOMNode **ppRetNode);
5316
5317     [propput, id(DISPID_IHTMLDOCUMENT5_ONFOCUSIN), displaybind, bindable]
5318     HRESULT onfocusin([in] VARIANT v);
5319
5320     [propget, id(DISPID_IHTMLDOCUMENT5_ONFOCUSIN), displaybind, bindable]
5321     HRESULT onfocusin([retval, out] VARIANT *p);
5322
5323     [propput, id(DISPID_IHTMLDOCUMENT5_ONFOCUSOUT), displaybind, bindable]
5324     HRESULT onfocusout([in] VARIANT v);
5325
5326     [propget, id(DISPID_IHTMLDOCUMENT5_ONFOCUSOUT), displaybind, bindable]
5327     HRESULT onfocusout([retval, out] VARIANT *p);
5328
5329     [propput, id(DISPID_IHTMLDOCUMENT5_ONACTIVATE), displaybind, bindable]
5330     HRESULT onactivate([in] VARIANT v);
5331
5332     [propget, id(DISPID_IHTMLDOCUMENT5_ONACTIVATE), displaybind, bindable]
5333     HRESULT onactivate([retval, out] VARIANT *p);
5334
5335     [propput, id(DISPID_IHTMLDOCUMENT5_ONDEACTIVATE), displaybind, bindable]
5336     HRESULT ondeactivate([in] VARIANT v);
5337
5338     [propget, id(DISPID_IHTMLDOCUMENT5_ONDEACTIVATE), displaybind, bindable]
5339     HRESULT ondeactivate([retval, out] VARIANT *p);
5340
5341     [propput, id(DISPID_IHTMLDOCUMENT5_ONBEFOREACTIVATE), displaybind, bindable]
5342     HRESULT onbeforeactivate([in] VARIANT v);
5343
5344     [propget, id(DISPID_IHTMLDOCUMENT5_ONBEFOREACTIVATE), displaybind, bindable]
5345     HRESULT onbeforeactivate([retval, out] VARIANT *p);
5346
5347     [propput, id(DISPID_IHTMLDOCUMENT5_ONBEFOREDEACTIVATE), displaybind, bindable]
5348     HRESULT onbeforedeactivate([in] VARIANT v);
5349
5350     [propget, id(DISPID_IHTMLDOCUMENT5_ONBEFOREDEACTIVATE), displaybind, bindable]
5351     HRESULT onbeforedeactivate([retval, out] VARIANT *p);
5352
5353     [propget, id(DISPID_IHTMLDOCUMENT5_COMPATMODE)]
5354     HRESULT compatMode([retval, out] BSTR *p);
5355 }
5356
5357 /*****************************************************************************
5358  *    DispHTMLDocument dispinterface
5359  */
5360 [
5361     hidden,
5362     uuid(3050f55f-98b5-11cf-bb82-00aa00bdce0b)
5363 ]
5364 dispinterface DispHTMLDocument
5365 {
5366 properties:
5367 methods:
5368     [propget, id(DISPID_IHTMLDOCUMENT_SCRIPT), hidden, nonbrowsable]
5369     IDispatch *Script();
5370
5371     [propget, id(DISPID_IHTMLDOCUMENT2_ALL)]
5372     IHTMLElementCollection *all();
5373
5374     [propget, id(DISPID_IHTMLDOCUMENT2_BODY)]
5375     IHTMLElement *body();
5376
5377     [propget, id(DISPID_IHTMLDOCUMENT2_ACTIVEELEMENT)]
5378     IHTMLElement *activeElement();
5379
5380     [propget, id(DISPID_IHTMLDOCUMENT2_IMAGES)]
5381     IHTMLElementCollection *images();
5382
5383     [propget, id(DISPID_IHTMLDOCUMENT2_APPLETS)]
5384     IHTMLElementCollection *applets();
5385
5386     [propget, id(DISPID_IHTMLDOCUMENT2_LINKS)]
5387     IHTMLElementCollection *links();
5388
5389     [propget, id(DISPID_IHTMLDOCUMENT2_FORMS)]
5390     IHTMLElementCollection *forms();
5391
5392     [propget, id(DISPID_IHTMLDOCUMENT2_ANCHORS)]
5393     IHTMLElementCollection *anchors();
5394
5395     [propput, id(DISPID_IHTMLDOCUMENT2_TITLE)]
5396     void title(BSTR v);
5397
5398     [propget, id(DISPID_IHTMLDOCUMENT2_TITLE)]
5399     BSTR title();
5400
5401     [propget, id(DISPID_IHTMLDOCUMENT2_SCRIPTS)]
5402     IHTMLElementCollection *scripts();
5403
5404     [propput, id(DISPID_IHTMLDOCUMENT2_DESIGNMODE), hidden]
5405     void designMode(BSTR v);
5406
5407     [propget, id(DISPID_IHTMLDOCUMENT2_DESIGNMODE), hidden]
5408     BSTR designMode();
5409
5410     [propget, id(DISPID_IHTMLDOCUMENT2_SELECTION)]
5411     IHTMLSelectionObject *selection();
5412
5413     [propget, id(DISPID_IHTMLDOCUMENT2_READYSTATE), bindable]
5414     BSTR readyState();
5415
5416     [propget, id(DISPID_IHTMLDOCUMENT2_FRAMES)]
5417     IHTMLFramesCollection2 *frames();
5418
5419     [propget, id(DISPID_IHTMLDOCUMENT2_EMBEDS)]
5420     IHTMLElementCollection *embeds();
5421
5422     [propget, id(DISPID_IHTMLDOCUMENT2_PLUGINS)]
5423     IHTMLElementCollection *plugins();
5424
5425     [propput, id(DISPID_IHTMLDOCUMENT2_ALINKCOLOR)]
5426     void alinkColor(VARIANT v);
5427
5428     [propget, id(DISPID_IHTMLDOCUMENT2_ALINKCOLOR)]
5429     VARIANT alinkColor();
5430
5431     [propput, id(DISPID_IHTMLDOCUMENT2_BGCOLOR)]
5432     void bgColor(VARIANT v);
5433
5434     [propget, id(DISPID_IHTMLDOCUMENT2_BGCOLOR)]
5435     VARIANT bgColor();
5436
5437     [propput, id(DISPID_IHTMLDOCUMENT2_FGCOLOR)]
5438     void fgColor(VARIANT v);
5439
5440     [propget, id(DISPID_IHTMLDOCUMENT2_FGCOLOR)]
5441     VARIANT fgColor();
5442
5443     [propput, id(DISPID_IHTMLDOCUMENT2_LINKCOLOR)]
5444     void linkColor(VARIANT v);
5445
5446     [propget, id(DISPID_IHTMLDOCUMENT2_LINKCOLOR)]
5447     VARIANT linkColor();
5448
5449     [propput, id(DISPID_IHTMLDOCUMENT2_VLINKCOLOR)]
5450     void vlinkColor(VARIANT v);
5451
5452     [propget, id(DISPID_IHTMLDOCUMENT2_VLINKCOLOR)]
5453     VARIANT vlinkColor();
5454
5455     [propget, id(DISPID_IHTMLDOCUMENT2_REFERRER)]
5456     BSTR referrer();
5457
5458     [propget, id(DISPID_IHTMLDOCUMENT2_LOCATION)]
5459     IHTMLLocation *location();
5460
5461     [propget, id(DISPID_IHTMLDOCUMENT2_LASTMODIFIED)]
5462     BSTR lastModified();
5463
5464     [propput, id(DISPID_IHTMLDOCUMENT2_URL)]
5465     void URL(BSTR v);
5466
5467     [propget, id(DISPID_IHTMLDOCUMENT2_URL)]
5468     BSTR URL();
5469
5470     [propput, id(DISPID_IHTMLDOCUMENT2_DOMAIN)]
5471     void domain(BSTR v);
5472
5473     [propget, id(DISPID_IHTMLDOCUMENT2_DOMAIN)]
5474     BSTR domain();
5475
5476     [propput, id(DISPID_IHTMLDOCUMENT2_COOKIE)]
5477     void cookie(BSTR v);
5478
5479     [propget, id(DISPID_IHTMLDOCUMENT2_COOKIE)]
5480     BSTR cookie();
5481
5482     [propput, id(DISPID_IHTMLDOCUMENT2_EXPANDO), bindable, hidden]
5483     void expando(VARIANT_BOOL v);
5484
5485     [propget, id(DISPID_IHTMLDOCUMENT2_EXPANDO), bindable, hidden]
5486     VARIANT_BOOL expando();
5487
5488     [propput, id(DISPID_IHTMLDOCUMENT2_CHARSET), hidden]
5489     void charset(BSTR v);
5490
5491     [propget, id(DISPID_IHTMLDOCUMENT2_CHARSET), hidden]
5492     BSTR charset();
5493
5494     [propput, id(DISPID_IHTMLDOCUMENT2_DEFAULTCHARSET)]
5495     void defaultCharset(BSTR v);
5496
5497     [propget, id(DISPID_IHTMLDOCUMENT2_DEFAULTCHARSET)]
5498     BSTR defaultCharset();
5499
5500     [propget, id(DISPID_IHTMLDOCUMENT2_MIMETYPE)]
5501     BSTR mimeType();
5502
5503     [propget, id(DISPID_IHTMLDOCUMENT2_FILESIZE)]
5504     BSTR fileSize();
5505
5506     [propget, id(DISPID_IHTMLDOCUMENT2_FILECREATEDDATE)]
5507     BSTR fileCreatedDate();
5508
5509     [propget, id(DISPID_IHTMLDOCUMENT2_FILEMODIFIEDDATE)]
5510     BSTR fileModifiedDate();
5511
5512     [propget, id(DISPID_IHTMLDOCUMENT2_FILEUPDATEDDATE)]
5513     BSTR fileUpdatedDate();
5514
5515     [propget, id(DISPID_IHTMLDOCUMENT2_SECURITY)]
5516     BSTR security();
5517
5518     [propget, id(DISPID_IHTMLDOCUMENT2_PROTOCOL)]
5519     BSTR protocol();
5520
5521     [propget, id(DISPID_IHTMLDOCUMENT2_NAMEPROP)]
5522     BSTR nameProp();
5523
5524     [vararg, id(DISPID_IHTMLDOCUMENT2_WRITE)]
5525     void write([in] SAFEARRAY(VARIANT) psarray);
5526
5527     [vararg, id(DISPID_IHTMLDOCUMENT2_WRITELN)]
5528     void writeln([in] SAFEARRAY(VARIANT) psarray);
5529
5530     [id(DISPID_IHTMLDOCUMENT2_OPEN)]
5531     IDispatch *open(
5532         [defaultvalue("text/html"), in] BSTR url,
5533         [optional, in] VARIANT name,
5534         [optional, in] VARIANT features,
5535         [optional, in] VARIANT replace);
5536
5537     [id(DISPID_IHTMLDOCUMENT2_CLOSE)]
5538     void close();
5539
5540     [id(DISPID_IHTMLDOCUMENT2_CLEAR)]
5541     void clear();
5542
5543     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDSUPPORTED)]
5544     VARIANT_BOOL queryCommandSupported([in] BSTR cmdID);
5545
5546     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDENABLED)]
5547     VARIANT_BOOL queryCommandEnabled([in] BSTR cmdID);
5548
5549     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDSTATE)]
5550     VARIANT_BOOL queryCommandState([in] BSTR cmdID);
5551
5552     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDINDETERM)]
5553     VARIANT_BOOL queryCommandIndeterm([in] BSTR cmdID);
5554
5555     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDTEXT)]
5556     BSTR queryCommandText([in] BSTR cmdID);
5557
5558     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDVALUE)]
5559     VARIANT queryCommandValue([in] BSTR cmdID);
5560
5561     [id(DISPID_IHTMLDOCUMENT2_EXECCOMMAND)]
5562     VARIANT_BOOL execCommand(
5563         [in] BSTR cmdID,
5564         [defaultvalue(0), in] VARIANT_BOOL showUI,
5565         [optional, in] VARIANT value);
5566
5567     [id(DISPID_IHTMLDOCUMENT2_EXECCOMMANDSHOWHELP)]
5568     VARIANT_BOOL execCommandShowHelp([in] BSTR cmdID);
5569
5570     [id(DISPID_IHTMLDOCUMENT2_CREATEELEMENT)]
5571     IHTMLElement *createElement([in] BSTR eTag);
5572
5573     [propput, id(DISPID_IHTMLDOCUMENT2_ONHELP), displaybind, bindable]
5574     void onhelp(VARIANT v);
5575
5576     [propget, id(DISPID_IHTMLDOCUMENT2_ONHELP), displaybind, bindable]
5577     VARIANT onhelp();
5578
5579     [propput, id(DISPID_IHTMLDOCUMENT2_ONCLICK), displaybind, bindable]
5580     void onclick(VARIANT v);
5581
5582     [propget, id(DISPID_IHTMLDOCUMENT2_ONCLICK), displaybind, bindable]
5583     VARIANT onclick();
5584
5585     [propput, id(DISPID_IHTMLDOCUMENT2_ONDBLCLICK), displaybind, bindable]
5586     void ondblclick(VARIANT v);
5587
5588     [propget, id(DISPID_IHTMLDOCUMENT2_ONDBLCLICK), displaybind, bindable]
5589     VARIANT ondblclick();
5590
5591     [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYUP), displaybind, bindable]
5592     void onkeyup(VARIANT v);
5593
5594     [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYUP), displaybind, bindable]
5595     VARIANT onkeyup();
5596
5597     [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYDOWN), displaybind, bindable]
5598     void onkeydown(VARIANT v);
5599
5600     [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYDOWN), displaybind, bindable]
5601     VARIANT onkeydown();
5602
5603     [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYPRESS), displaybind, bindable]
5604     void onkeypress(VARIANT v);
5605
5606     [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYPRESS), displaybind, bindable]
5607     VARIANT onkeypress();
5608
5609     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEUP), displaybind, bindable]
5610     void onmouseup(VARIANT v);
5611
5612     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEUP), displaybind, bindable]
5613     VARIANT onmouseup();
5614
5615     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEDOWN), displaybind, bindable]
5616     void onmousedown(VARIANT v);
5617
5618     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEDOWN), displaybind, bindable]
5619     VARIANT onmousedown();
5620
5621     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEMOVE), displaybind, bindable]
5622     void onmousemove(VARIANT v);
5623
5624     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEMOVE), displaybind, bindable]
5625     VARIANT onmousemove();
5626
5627     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOUT), displaybind, bindable]
5628     void onmouseout(VARIANT v);
5629
5630     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOUT), displaybind, bindable]
5631     VARIANT onmouseout();
5632
5633     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOVER), displaybind, bindable]
5634     void onmouseover(VARIANT v);
5635
5636     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOVER), displaybind, bindable]
5637     VARIANT onmouseover();
5638
5639     [propput, id(DISPID_IHTMLDOCUMENT2_ONREADYSTATECHANGE), displaybind, bindable]
5640     void onreadystatechange(VARIANT v);
5641
5642     [propget, id(DISPID_IHTMLDOCUMENT2_ONREADYSTATECHANGE), displaybind, bindable]
5643     VARIANT onreadystatechange();
5644
5645     [propput, id(DISPID_IHTMLDOCUMENT2_ONAFTERUPDATE), displaybind, bindable]
5646     void onafterupdate(VARIANT v);
5647
5648     [propget, id(DISPID_IHTMLDOCUMENT2_ONAFTERUPDATE), displaybind, bindable]
5649     VARIANT onafterupdate();
5650
5651     [propput, id(DISPID_IHTMLDOCUMENT2_ONROWEXIT), displaybind, bindable]
5652     void onrowexit(VARIANT v);
5653
5654     [propget, id(DISPID_IHTMLDOCUMENT2_ONROWEXIT), displaybind, bindable]
5655     VARIANT onrowexit();
5656
5657     [propput, id(DISPID_IHTMLDOCUMENT2_ONROWENTER), displaybind, bindable]
5658     void onrowenter(VARIANT v);
5659
5660     [propget, id(DISPID_IHTMLDOCUMENT2_ONROWENTER), displaybind, bindable]
5661     VARIANT onrowenter();
5662
5663     [propput, id(DISPID_IHTMLDOCUMENT2_ONDRAGSTART), displaybind, bindable]
5664     void ondragstart(VARIANT v);
5665
5666     [propget, id(DISPID_IHTMLDOCUMENT2_ONDRAGSTART), displaybind, bindable]
5667     VARIANT ondragstart();
5668
5669     [propput, id(DISPID_IHTMLDOCUMENT2_ONSELECTSTART), displaybind, bindable]
5670     void onselectstart(VARIANT v);
5671
5672     [propget, id(DISPID_IHTMLDOCUMENT2_ONSELECTSTART), displaybind, bindable]
5673     VARIANT onselectstart();
5674
5675     [id(DISPID_IHTMLDOCUMENT2_ELEMENTFROMPOINT)]
5676     IHTMLElement *elementFromPoint(
5677         [in] long x,
5678         [in] long y);
5679
5680     [propget, id(DISPID_IHTMLDOCUMENT2_PARENTWINDOW)]
5681     IHTMLWindow2 *parentWindow();
5682
5683     [propget, id(DISPID_IHTMLDOCUMENT2_STYLESHEETS)]
5684     IHTMLStyleSheetsCollection *styleSheets();
5685
5686     [propput, id(DISPID_IHTMLDOCUMENT2_ONBEFOREUPDATE), displaybind, bindable]
5687     void onbeforeupdate(VARIANT v);
5688
5689     [propget, id(DISPID_IHTMLDOCUMENT2_ONBEFOREUPDATE), displaybind, bindable]
5690     VARIANT onbeforeupdate();
5691
5692     [propput, id(DISPID_IHTMLDOCUMENT2_ONERRORUPDATE), displaybind, bindable]
5693     void onerrorupdate(VARIANT v);
5694
5695     [propget, id(DISPID_IHTMLDOCUMENT2_ONERRORUPDATE), displaybind, bindable]
5696     VARIANT onerrorupdate();
5697
5698     [id(DISPID_IHTMLDOCUMENT2_TOSTRING)]
5699     BSTR toString();
5700
5701     [id(DISPID_IHTMLDOCUMENT2_CREATESTYLESHEET)]
5702     IHTMLStyleSheet *createStyleSheet(
5703         [defaultvalue(""), in] BSTR bstrHref,
5704         [defaultvalue(-1), in] long lIndex);
5705
5706     [id(DISPID_IHTMLDOCUMENT3_RELEASECAPTURE)]
5707     void releaseCapture();
5708
5709     [id(DISPID_IHTMLDOCUMENT3_RECALC)]
5710     void recalc([defaultvalue(0), in] VARIANT_BOOL fForce);
5711
5712     [id(DISPID_IHTMLDOCUMENT3_CREATETEXTNODE)]
5713     IHTMLDOMNode *createTextNode([in] BSTR text);
5714
5715     [propget, id(DISPID_IHTMLDOCUMENT3_DOCUMENTELEMENT)]
5716     IHTMLElement *documentElement();
5717
5718     [propget, id(DISPID_IHTMLDOCUMENT3_UNIQUEID), hidden]
5719     BSTR uniqueID();
5720
5721     [id(DISPID_IHTMLDOCUMENT3_ATTACHEVENT)]
5722     VARIANT_BOOL attachEvent(
5723         [in] BSTR event,
5724         [in] IDispatch *pDisp);
5725
5726     [id(DISPID_IHTMLDOCUMENT3_DETACHEVENT)]
5727     void detachEvent(
5728         [in] BSTR event,
5729         [in] IDispatch *pDisp);
5730
5731     [propput, id(DISPID_IHTMLDOCUMENT3_ONROWSDELETE), displaybind, bindable]
5732     void onrowsdelete(VARIANT v);
5733
5734     [propget, id(DISPID_IHTMLDOCUMENT3_ONROWSDELETE), displaybind, bindable]
5735     VARIANT onrowsdelete();
5736
5737     [propput, id(DISPID_IHTMLDOCUMENT3_ONROWSINSERTED), displaybind, bindable]
5738     void onrowsinserted(VARIANT v);
5739
5740     [propget, id(DISPID_IHTMLDOCUMENT3_ONROWSINSERTED), displaybind, bindable]
5741     VARIANT onrowsinserted();
5742
5743     [propput, id(DISPID_IHTMLDOCUMENT3_ONCELLCHANGE), displaybind, bindable]
5744     void oncellchange(VARIANT v);
5745
5746     [propget, id(DISPID_IHTMLDOCUMENT3_ONCELLCHANGE), displaybind, bindable]
5747     VARIANT oncellchange();
5748
5749     [propput, id(DISPID_IHTMLDOCUMENT3_ONDATASETCHANGED), displaybind, bindable]
5750     void ondatasetchanged(VARIANT v);
5751
5752     [propget, id(DISPID_IHTMLDOCUMENT3_ONDATASETCHANGED), displaybind, bindable]
5753     VARIANT ondatasetchanged();
5754
5755     [propput, id(DISPID_IHTMLDOCUMENT3_ONDATAAVAILABLE), displaybind, bindable]
5756     void ondataavailable(VARIANT v);
5757
5758     [propget, id(DISPID_IHTMLDOCUMENT3_ONDATAAVAILABLE), displaybind, bindable]
5759     VARIANT ondataavailable();
5760
5761     [propput, id(DISPID_IHTMLDOCUMENT3_ONDATASETCOMPLETE), displaybind, bindable]
5762     void ondatasetcomplete(VARIANT v);
5763
5764     [propget, id(DISPID_IHTMLDOCUMENT3_ONDATASETCOMPLETE), displaybind, bindable]
5765     VARIANT ondatasetcomplete();
5766
5767     [propput, id(DISPID_IHTMLDOCUMENT3_ONPROPERTYCHANGE), displaybind, bindable]
5768     void onpropertychange(VARIANT v);
5769
5770     [propget, id(DISPID_IHTMLDOCUMENT3_ONPROPERTYCHANGE), displaybind, bindable]
5771     VARIANT onpropertychange();
5772
5773     [propput, id(DISPID_IHTMLDOCUMENT3_DIR)]
5774     void dir(BSTR v);
5775
5776     [propget, id(DISPID_IHTMLDOCUMENT3_DIR)]
5777     BSTR dir();
5778
5779     [propput, id(DISPID_IHTMLDOCUMENT3_ONCONTEXTMENU), displaybind, bindable]
5780     void oncontextmenu(VARIANT v);
5781
5782     [propget, id(DISPID_IHTMLDOCUMENT3_ONCONTEXTMENU), displaybind, bindable]
5783     VARIANT oncontextmenu();
5784
5785     [propput, id(DISPID_IHTMLDOCUMENT3_ONSTOP), displaybind, bindable]
5786     void onstop(VARIANT v);
5787
5788     [propget, id(DISPID_IHTMLDOCUMENT3_ONSTOP), displaybind, bindable]
5789     VARIANT onstop();
5790
5791     [id(DISPID_IHTMLDOCUMENT3_CREATEDOCUMENTFRAGMENT)]
5792     IHTMLDocument2 *createDocumentFragment();
5793
5794     [propget, id(DISPID_IHTMLDOCUMENT3_PARENTDOCUMENT), hidden, restricted]
5795     IHTMLDocument2 *parentDocument();
5796
5797     [propput, id(DISPID_IHTMLDOCUMENT3_ENABLEDOWNLOAD), hidden, restricted]
5798     void enableDownload(VARIANT_BOOL v);
5799
5800     [propget, id(DISPID_IHTMLDOCUMENT3_ENABLEDOWNLOAD), hidden, restricted]
5801     VARIANT_BOOL enableDownload();
5802
5803     [propput, id(DISPID_IHTMLDOCUMENT3_BASEURL), hidden, restricted]
5804     void baseUrl(BSTR v);
5805
5806     [propget, id(DISPID_IHTMLDOCUMENT3_BASEURL), hidden, restricted]
5807     BSTR baseUrl();
5808
5809     [propput, id(DISPID_IHTMLDOCUMENT3_INHERITSTYLESHEETS), hidden, restricted]
5810     void inheritStyleSheets(VARIANT_BOOL v);
5811
5812     [propget, id(DISPID_IHTMLDOCUMENT3_INHERITSTYLESHEETS), hidden, restricted]
5813     VARIANT_BOOL inheritStyleSheets();
5814
5815     [propput, id(DISPID_IHTMLDOCUMENT3_ONBEFOREEDITFOCUS), displaybind, bindable]
5816     void onbeforeeditfocus(VARIANT v);
5817
5818     [propget, id(DISPID_IHTMLDOCUMENT3_ONBEFOREEDITFOCUS), displaybind, bindable]
5819     VARIANT onbeforeeditfocus();
5820
5821     [id(DISPID_IHTMLDOCUMENT3_GETELEMENTSBYNAME)]
5822     IHTMLElementCollection *getElementsByName([in] BSTR v);
5823
5824     [id(DISPID_IHTMLDOCUMENT3_GETELEMENTBYID)]
5825     IHTMLElement *getElementById([in] BSTR v);
5826
5827     [id(DISPID_IHTMLDOCUMENT3_GETELEMENTSBYTAGNAME)]
5828     IHTMLElementCollection *getElementsByTagName([in] BSTR v);
5829
5830     [id(DISPID_IHTMLDOCUMENT4_FOCUS)]
5831     void focus();
5832
5833     [id(DISPID_IHTMLDOCUMENT4_HASFOCUS)]
5834     VARIANT_BOOL hasFocus();
5835
5836     [propput, id(DISPID_IHTMLDOCUMENT4_ONSELECTIONCHANGE), displaybind, bindable]
5837     void onselectionchange(VARIANT v);
5838
5839     [propget, id(DISPID_IHTMLDOCUMENT4_ONSELECTIONCHANGE), displaybind, bindable]
5840     VARIANT onselectionchange();
5841
5842     [propget, id(DISPID_IHTMLDOCUMENT4_NAMESPACES)]
5843     IDispatch *namespaces();
5844
5845     [id(DISPID_IHTMLDOCUMENT4_CREATEDOCUMENTFROMURL)]
5846     IHTMLDocument2 *createDocumentFromUrl(
5847         [in] BSTR bstrUrl,
5848         [in] BSTR bstrOptions);
5849
5850     [propput, id(DISPID_IHTMLDOCUMENT4_MEDIA)]
5851     void media(BSTR v);
5852
5853     [propget, id(DISPID_IHTMLDOCUMENT4_MEDIA)]
5854     BSTR media();
5855
5856     [id(DISPID_IHTMLDOCUMENT4_CREATEEVENTOBJECT)]
5857     IHTMLEventObj *createEventObject([optional, in] VARIANT *pvarEventObject);
5858
5859     [id(DISPID_IHTMLDOCUMENT4_FIREEVENT)]
5860     VARIANT_BOOL fireEvent(
5861         [in] BSTR bstrEventName,
5862         [optional, in] VARIANT *pvarEventObject);
5863
5864     [id(DISPID_IHTMLDOCUMENT4_CREATERENDERSTYLE)]
5865     IHTMLRenderStyle *createRenderStyle([in] BSTR v);
5866
5867     [propput, id(DISPID_IHTMLDOCUMENT4_ONCONTROLSELECT), displaybind, bindable]
5868     void oncontrolselect(VARIANT v);
5869
5870     [propget, id(DISPID_IHTMLDOCUMENT4_ONCONTROLSELECT), displaybind, bindable]
5871     VARIANT oncontrolselect();
5872
5873     [propget, id(DISPID_IHTMLDOCUMENT4_URLUNENCODED)]
5874     BSTR URLUnencoded();
5875
5876     [propput, id(DISPID_IHTMLDOCUMENT5_ONMOUSEWHEEL), displaybind, bindable]
5877     void onmousewheel(VARIANT v);
5878
5879     [propget, id(DISPID_IHTMLDOCUMENT5_ONMOUSEWHEEL), displaybind, bindable]
5880     VARIANT onmousewheel();
5881
5882     [propget, id(DISPID_IHTMLDOCUMENT5_DOCTYPE)]
5883     IHTMLDOMNode *doctype();
5884
5885     [propget, id(DISPID_IHTMLDOCUMENT5_IMPLEMENTATION)]
5886     IHTMLDOMImplementation *implementation();
5887
5888     [id(DISPID_IHTMLDOCUMENT5_CREATEATTRIBUTE)]
5889     IHTMLDOMAttribute *createAttribute([in] BSTR bstrattrName);
5890
5891     [id(DISPID_IHTMLDOCUMENT5_CREATECOMMENT)]
5892     IHTMLDOMNode *createComment([in] BSTR bstrdata);
5893
5894     [propput, id(DISPID_IHTMLDOCUMENT5_ONFOCUSIN), displaybind, bindable]
5895     void onfocusin(VARIANT v);
5896
5897     [propget, id(DISPID_IHTMLDOCUMENT5_ONFOCUSIN), displaybind, bindable]
5898     VARIANT onfocusin();
5899
5900     [propput, id(DISPID_IHTMLDOCUMENT5_ONFOCUSOUT), displaybind, bindable]
5901     void onfocusout(VARIANT v);
5902
5903     [propget, id(DISPID_IHTMLDOCUMENT5_ONFOCUSOUT), displaybind, bindable]
5904     VARIANT onfocusout();
5905
5906     [propput, id(DISPID_IHTMLDOCUMENT5_ONACTIVATE), displaybind, bindable]
5907     void onactivate(VARIANT v);
5908
5909     [propget, id(DISPID_IHTMLDOCUMENT5_ONACTIVATE), displaybind, bindable]
5910     VARIANT onactivate();
5911
5912     [propput, id(DISPID_IHTMLDOCUMENT5_ONDEACTIVATE), displaybind, bindable]
5913     void ondeactivate(VARIANT v);
5914
5915     [propget, id(DISPID_IHTMLDOCUMENT5_ONDEACTIVATE), displaybind, bindable]
5916     VARIANT ondeactivate();
5917
5918     [propput, id(DISPID_IHTMLDOCUMENT5_ONBEFOREACTIVATE), displaybind, bindable]
5919     void onbeforeactivate(VARIANT v);
5920
5921     [propget, id(DISPID_IHTMLDOCUMENT5_ONBEFOREACTIVATE), displaybind, bindable]
5922     VARIANT onbeforeactivate();
5923
5924     [propput, id(DISPID_IHTMLDOCUMENT5_ONBEFOREDEACTIVATE), displaybind, bindable]
5925     void onbeforedeactivate(VARIANT v);
5926
5927     [propget, id(DISPID_IHTMLDOCUMENT5_ONBEFOREDEACTIVATE), displaybind, bindable]
5928     VARIANT onbeforedeactivate();
5929
5930     [propget, id(DISPID_IHTMLDOCUMENT5_COMPATMODE)]
5931     BSTR compatMode();
5932
5933     [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)]
5934     long nodeType();
5935
5936     [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)]
5937     IHTMLDOMNode *parentNode();
5938
5939     [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)]
5940     VARIANT_BOOL hasChildNodes();
5941
5942     [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)]
5943     IDispatch *childNodes();
5944
5945     [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)]
5946     IDispatch *attributes();
5947
5948     [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)]
5949     IHTMLDOMNode *insertBefore(
5950         [in] IHTMLDOMNode *newChild,
5951         [optional, in] VARIANT refChild);
5952
5953     [id(DISPID_IHTMLDOMNODE_REMOVECHILD)]
5954     IHTMLDOMNode *removeChild([in] IHTMLDOMNode *oldChild);
5955
5956     [id(DISPID_IHTMLDOMNODE_REPLACECHILD)]
5957     IHTMLDOMNode *replaceChild(
5958         [in] IHTMLDOMNode *newChild,
5959         [in] IHTMLDOMNode *oldChild);
5960
5961     [id(DISPID_IHTMLDOMNODE_CLONENODE)]
5962     IHTMLDOMNode *cloneNode([in] VARIANT_BOOL fDeep);
5963
5964     [id(DISPID_IHTMLDOMNODE_REMOVENODE)]
5965     IHTMLDOMNode *removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
5966
5967     [id(DISPID_IHTMLDOMNODE_SWAPNODE)]
5968     IHTMLDOMNode *swapNode([in] IHTMLDOMNode* otherNode);
5969
5970     [id(DISPID_IHTMLDOMNODE_REPLACENODE)]
5971     IHTMLDOMNode *replaceNode([in] IHTMLDOMNode *replacement);
5972
5973     [id(DISPID_IHTMLDOMNODE_APPENDCHILD)]
5974     IHTMLDOMNode *appendChild([in] IHTMLDOMNode *newChild);
5975
5976     [propget, id(DISPID_IHTMLDOMNODE_NODENAME)]
5977     BSTR nodeName();
5978
5979     [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)]
5980     void nodeValue(VARIANT v);
5981
5982     [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)]
5983     VARIANT nodeValue();
5984
5985     [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)]
5986     IHTMLDOMNode *firstChild();
5987
5988     [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)]
5989     IHTMLDOMNode *lastChild();
5990
5991     [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)]
5992     IHTMLDOMNode *previousSibling();
5993
5994     [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)]
5995     IHTMLDOMNode *nextSibling();
5996
5997     [propget, id(DISPID_IHTMLDOMNODE2_OWNERDOCUMENT)]
5998     IDispatch *ownerDocument();
5999 }
6000
6001 /*****************************************************************************
6002  *    HTMLDocument coclass
6003  */
6004 [
6005     uuid(25336920-03F9-11cf-8FD0-00AA00686F13)
6006 ]
6007 coclass HTMLDocument
6008 {
6009     [default]         dispinterface DispHTMLDocument;
6010     [source, default] dispinterface HTMLDocumentEvents;
6011     [source]          dispinterface HTMLDocumentEvents2;
6012                       interface IHTMLDocument2;
6013                       interface IHTMLDocument3;
6014                       interface IHTMLDocument4;
6015                       interface IHTMLDocument5;
6016                       interface IHTMLDOMNode;
6017                       interface IHTMLDOMNode2;
6018 }
6019
6020 /*****************************************************************************
6021  *    IHTMLFrameBase2 interface
6022  */
6023 [
6024     odl,
6025     oleautomation,
6026     dual,
6027     uuid(3050f6db-98b5-11cf-bb82-00aa00bdce0b)
6028 ]
6029 interface IHTMLFrameBase2 : IDispatch
6030 {
6031     [propget, id(DISPID_IHTMLFRAMEBASE2_CONTENTWINDOW)]
6032     HRESULT contentWindow([retval, out] IHTMLWindow2 **p);
6033
6034     [propput, id(DISPID_IHTMLFRAMEBASE2_ONLOAD), displaybind, bindable]
6035     HRESULT onload([in] VARIANT v);
6036
6037     [propget, id(DISPID_IHTMLFRAMEBASE2_ONLOAD), displaybind, bindable]
6038     HRESULT onload([retval, out] VARIANT *p);
6039
6040     [propput, id(DISPID_IHTMLFRAMEBASE2_ONREADYSTATECHANGE), displaybind, bindable]
6041     HRESULT onreadystatechange([in] VARIANT v);
6042
6043     [propget, id(DISPID_IHTMLFRAMEBASE2_ONREADYSTATECHANGE), displaybind, bindable]
6044     HRESULT onreadystatechange([retval, out] VARIANT *p);
6045
6046     [propget, id(DISPID_IHTMLFRAMEBASE2_READYSTATE)]
6047     HRESULT readyState([retval, out] BSTR *p);
6048
6049     [propput, id(DISPID_IHTMLFRAMEBASE2_ALLOWTRANSPARENCY)]
6050     HRESULT allowTransparency([in] VARIANT_BOOL v);
6051
6052     [propget, id(DISPID_IHTMLFRAMEBASE2_ALLOWTRANSPARENCY)]
6053     HRESULT allowTransparency([retval, out] VARIANT_BOOL *p);
6054 }
6055
6056 } /* library MSHTML */