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