include/d3d.h: Fix method calling macros.
[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  *    DispHTMLWindow2 dispinterface
4492  */
4493 [
4494     hidden,
4495     uuid(3050f55d-98b5-11cf-bb82-00aa00bdce0b)
4496 ]
4497 dispinterface DispHTMLWindow2
4498 {
4499 properties:
4500 methods:
4501     [id(DISPID_IHTMLFRAMESCOLLECTION2_ITEM)]
4502     VARIANT item([in] VARIANT *pvarIndex);
4503
4504     [propget, id(DISPID_IHTMLFRAMESCOLLECTION2_LENGTH)]
4505     long length();
4506
4507     [propget, id(DISPID_IHTMLWINDOW2_FRAMES)]
4508     IHTMLFramesCollection2 *frames();
4509
4510     [propput, id(DISPID_IHTMLWINDOW2_DEFAULTSTATUS)]
4511     void defaultStatus(BSTR v);
4512
4513     [propget, id(DISPID_IHTMLWINDOW2_DEFAULTSTATUS)]
4514     BSTR defaultStatus();
4515
4516     [propput, id(DISPID_IHTMLWINDOW2_STATUS)]
4517     void status(BSTR v);
4518
4519     [propget, id(DISPID_IHTMLWINDOW2_STATUS)]
4520     BSTR status();
4521
4522     [id(DISPID_IHTMLWINDOW2_CLEARTIMEOUT)]
4523     void clearTimeout([in] long timerID);
4524
4525     [id(DISPID_IHTMLWINDOW2_ALERT)]
4526     void alert([in, defaultvalue("")] BSTR message);
4527
4528     [id(DISPID_IHTMLWINDOW2_CONFIRM)]
4529     VARIANT_BOOL confirm([in, defaultvalue("")] BSTR message);
4530
4531     [id(DISPID_IHTMLWINDOW2_PROMPT)]
4532     VARIANT prompt(
4533             [in, defaultvalue("")] BSTR message,
4534             [in, defaultvalue("undefined")] BSTR defstr);
4535
4536     [propget, id(DISPID_IHTMLWINDOW2_IMAGE)]
4537     IHTMLImageElementFactory *Image();
4538
4539     [propget, id(DISPID_IHTMLWINDOW2_LOCATION)]
4540     IHTMLLocation *location();
4541
4542     [propget, id(DISPID_IHTMLWINDOW2_HISTORY)]
4543     IOmHistory *history();
4544
4545     [id(DISPID_IHTMLWINDOW2_CLOSE)]
4546     void close();
4547
4548     [propput, id(DISPID_IHTMLWINDOW2_OPENER)]
4549     void opener(VARIANT v);
4550
4551     [propget, id(DISPID_IHTMLWINDOW2_OPENER)]
4552     VARIANT opener();
4553
4554     [propget, id(DISPID_IHTMLWINDOW2_NAVIGATOR)]
4555     IOmNavigator *navigator();
4556
4557     [propput, id(DISPID_IHTMLWINDOW2_NAME)]
4558     void name(BSTR v);
4559
4560     [propget, id(DISPID_IHTMLWINDOW2_NAME)]
4561     BSTR name();
4562
4563     [propget, id(DISPID_IHTMLWINDOW2_PARENT)]
4564     IHTMLWindow2 *parent();
4565
4566     [id(DISPID_IHTMLWINDOW2_OPEN)]
4567     IHTMLWindow2 *open(
4568             [in, defaultvalue("")] BSTR url,
4569             [in, defaultvalue("")] BSTR name,
4570             [in, defaultvalue("")] BSTR features,
4571             [in, defaultvalue(0)]  VARIANT_BOOL replace);
4572
4573     [propget, id(DISPID_IHTMLWINDOW2_SELF)]
4574     IHTMLWindow2 *self();
4575
4576     [propget, id(DISPID_IHTMLWINDOW2_TOP)]
4577     IHTMLWindow2 *top();
4578
4579     [propget, id(DISPID_IHTMLWINDOW2_WINDOW)]
4580     IHTMLWindow2 *window();
4581
4582     [id(DISPID_IHTMLWINDOW2_NAVIGATE)]
4583     void navigate([in] BSTR url);
4584
4585     [propput, id(DISPID_IHTMLWINDOW2_ONFOCUS), displaybind, bindable]
4586     void onfocus(VARIANT v);
4587
4588     [propget, id(DISPID_IHTMLWINDOW2_ONFOCUS), displaybind, bindable]
4589     VARIANT onfocus();
4590
4591     [propput, id(DISPID_IHTMLWINDOW2_ONBLUR), displaybind, bindable]
4592     void onblur(VARIANT v);
4593
4594     [propget, id(DISPID_IHTMLWINDOW2_ONBLUR), displaybind, bindable]
4595     VARIANT onblur();
4596
4597     [propget, id(DISPID_IHTMLWINDOW2_ONLOAD), displaybind, bindable]
4598     VARIANT onload();
4599
4600     [propput, id(DISPID_IHTMLWINDOW2_ONBEFOREUNLOAD), displaybind, bindable]
4601     void onbeforeunload(VARIANT v);
4602
4603     [propget, id(DISPID_IHTMLWINDOW2_ONBEFOREUNLOAD), displaybind, bindable]
4604     VARIANT onbeforeunload();
4605
4606     [propput, id(DISPID_IHTMLWINDOW2_ONUNLOAD), displaybind, bindable]
4607     void onunload(VARIANT v);
4608
4609     [propget, id(DISPID_IHTMLWINDOW2_ONUNLOAD), displaybind, bindable]
4610     VARIANT onunload();
4611
4612     [propput, id(DISPID_IHTMLWINDOW2_ONHELP), displaybind, bindable]
4613     void onhelp(VARIANT v);
4614
4615     [propget, id(DISPID_IHTMLWINDOW2_ONHELP), displaybind, bindable]
4616     VARIANT onhelp();
4617
4618     [propput, id(DISPID_IHTMLWINDOW2_ONERROR), displaybind, bindable]
4619     void onerror(VARIANT v);
4620
4621     [propget, id(DISPID_IHTMLWINDOW2_ONERROR), displaybind, bindable]
4622     VARIANT onerror();
4623
4624     [propput, id(DISPID_IHTMLWINDOW2_ONRESIZE), displaybind, bindable]
4625     void onresize(VARIANT v);
4626
4627     [propget, id(DISPID_IHTMLWINDOW2_ONRESIZE), displaybind, bindable]
4628     VARIANT onresize();
4629
4630     [propput, id(DISPID_IHTMLWINDOW2_ONSCROLL), displaybind, bindable]
4631     void onscroll(VARIANT v);
4632
4633     [propget, id(DISPID_IHTMLWINDOW2_ONSCROLL), displaybind, bindable]
4634     VARIANT onscroll();
4635
4636     [propget, id(DISPID_IHTMLWINDOW2_DOCUMENT), source]
4637     IHTMLDocument2 *document();
4638
4639     [propget, id(DISPID_IHTMLWINDOW2_EVENT)]
4640     IHTMLEventObj *event();
4641
4642     [propget, id(DISPID_IHTMLWINDOW2__NEWENUM), hidden, restricted]
4643     IUnknown *_newEnum();
4644
4645     [id(DISPID_IHTMLWINDOW2_SHOWMODALDIALOG)]
4646     VARIANT showModalDialog(
4647             [in] BSTR dialog,
4648             [in, optional] VARIANT *varArgIn,
4649             [in, optional] VARIANT *varOptions);
4650
4651     [id(DISPID_IHTMLWINDOW2_SHOWHELP)]
4652     void showHelp(
4653             [in] BSTR helpURL,
4654             [in, optional] VARIANT helpArg,
4655             [in, defaultvalue("")] BSTR features);
4656
4657     [propget, id(DISPID_IHTMLWINDOW2_SCREEN)]
4658     IHTMLScreen *screen();
4659
4660     [propget, id(DISPID_IHTMLWINDOW2_OPTION)]
4661     IHTMLOptionElementFactory *Option();
4662
4663     [id(DISPID_IHTMLWINDOW2_FOCUS)]
4664     void focus();
4665
4666     [propget, id(DISPID_IHTMLWINDOW2_CLOSED)]
4667     VARIANT_BOOL closed();
4668
4669     [id(DISPID_IHTMLWINDOW2_BLUR)]
4670     void blur();
4671
4672     [id(DISPID_IHTMLWINDOW2_SCROLL)]
4673     void scroll([in] long x, [in] long y);
4674
4675     [propget, id(DISPID_IHTMLWINDOW2_CLIENTINFORMATION)]
4676     IOmNavigator *clientInformation();
4677
4678     [id(DISPID_IHTMLWINDOW2_CLEARINTERVAL)]
4679     void clearInterval([in] long timerID);
4680
4681     [propput, id(DISPID_IHTMLWINDOW2_OFFSCREENBUFFERING)]
4682     void offscreenBuffering(VARIANT v);
4683
4684     [propget, id(DISPID_IHTMLWINDOW2_OFFSCREENBUFFERING)]
4685     VARIANT offscreenBuffering();
4686
4687     [id(DISPID_IHTMLWINDOW2_EXECSCRIPT)]
4688     VARIANT execScript(
4689             [in] BSTR _code,
4690             [in, defaultvalue("JScript")] BSTR language);
4691
4692     [id(DISPID_IHTMLWINDOW2_TOSTRING)]
4693     BSTR toString();
4694
4695     [id(DISPID_IHTMLWINDOW2_SCROLLBY)]
4696     void scrollBy([in] long x, [in] long y);
4697
4698     [id(DISPID_IHTMLWINDOW2_SCROLLTO)]
4699     void scrollTo([in] long x, [in] long y);
4700
4701     [id(DISPID_IHTMLWINDOW2_MOVETO)]
4702     void moveTo([in] long x, [in] long y);
4703
4704     [id(DISPID_IHTMLWINDOW2_MOVEBY)]
4705     void moveBy([in] long x, [in] long y);
4706
4707     [id(DISPID_IHTMLWINDOW2_RESIZETO)]
4708     void resizeTo([in] long x, [in] long y);
4709
4710     [id(DISPID_IHTMLWINDOW2_RESIZEBY)]
4711     void resizeBy([in] long x, [in] long y);
4712
4713     [propget, id(DISPID_IHTMLWINDOW2_EXTERNAL)]
4714     IDispatch *external();
4715
4716     [propget, id(DISPID_IHTMLWINDOW3_SCREENLEFT)]
4717     long screenLeft();
4718
4719     [propget, id(DISPID_IHTMLWINDOW3_SCREENTOP)]
4720     long screenTop();
4721
4722     [id(DISPID_IHTMLWINDOW3_ATTACHEVENT)]
4723     VARIANT_BOOL attachEvent(
4724              [in] BSTR event,
4725              [in] IDispatch *pDisp);
4726
4727     [id(DISPID_IHTMLWINDOW3_DETACHEVENT)]
4728     void detachEvent(
4729             [in] BSTR event,
4730             [in] IDispatch *pDisp);
4731
4732     [id(DISPID_IHTMLWINDOW3_SETTIMEOUT)]
4733     long setTimeout(
4734             [in] VARIANT *expression,
4735             [in] long msec,
4736             [in, optional] VARIANT *language);
4737
4738     [id(DISPID_IHTMLWINDOW3_SETINTERVAL)]
4739     long setInterval(
4740             [in] VARIANT *expression,
4741             [in] long msec,
4742             [in, optional] VARIANT *language);
4743
4744     [id(DISPID_IHTMLWINDOW3_PRINT)]
4745     void print();
4746
4747     [propput, id(DISPID_IHTMLWINDOW3_ONBEFOREPRINT), displaybind, bindable]
4748     void onbeforeprint(VARIANT v);
4749
4750     [propget, id(DISPID_IHTMLWINDOW3_ONBEFOREPRINT), displaybind, bindable]
4751     VARIANT onbeforeprint();
4752
4753     [propput, id(DISPID_IHTMLWINDOW3_ONAFTERPRINT), displaybind, bindable]
4754     void onafterprint(VARIANT v);
4755
4756     [propget, id(DISPID_IHTMLWINDOW3_ONAFTERPRINT), displaybind, bindable]
4757     VARIANT onafterprint();
4758
4759     [propget, id(DISPID_IHTMLWINDOW3_CLIPBOARDDATA)]
4760     IHTMLDataTransfer *clipboardData();
4761
4762     [id(DISPID_IHTMLWINDOW3_SHOWMODELESSDIALOG)]
4763     IHTMLWindow2 *showModelessDialog(
4764             [in, defaultvalue("")] BSTR url,
4765             [in, optional] VARIANT *varArgIn,
4766             [in, optional] VARIANT *options);
4767
4768     [id(DISPID_IHTMLWINDOW4_CREATEPOPUP)]
4769     IDispatch *createPopup([in, optional] VARIANT *varArgIn);
4770
4771     [propget, id(DISPID_IHTMLWINDOW4_FRAMEELEMENT)]
4772     IHTMLFrameBase *frameElement();
4773 }
4774
4775 /*****************************************************************************
4776  *    HTMLDocumentEvents2 interface
4777  */
4778 [
4779     hidden,
4780     uuid(3050f613-98b5-11cf-bb82-00aa00bdce0b)
4781 ]
4782 dispinterface HTMLDocumentEvents2
4783 {
4784     properties:
4785     methods:
4786     [id(DISPID_HTMLDOCUMENTEVENTS2_ONHELP)]
4787     VARIANT_BOOL onhelp([in] IHTMLEventObj *pEvtObj);
4788
4789     [id(DISPID_HTMLDOCUMENTEVENTS2_ONCLICK)]
4790     VARIANT_BOOL onclick([in] IHTMLEventObj *pEvtObj);
4791
4792     [id(DISPID_HTMLDOCUMENTEVENTS2_ONDBLCLICK)]
4793     VARIANT_BOOL ondblclick([in] IHTMLEventObj *pEvtObj);
4794
4795     [id(DISPID_HTMLDOCUMENTEVENTS2_ONKEYDOWN)]
4796     void onkeydown([in] IHTMLEventObj *pEvtObj);
4797
4798     [id(DISPID_HTMLDOCUMENTEVENTS2_ONKEYUP)]
4799     void onkeyup([in] IHTMLEventObj *pEvtObj);
4800
4801     [id(DISPID_HTMLDOCUMENTEVENTS2_ONKEYPRESS)]
4802     VARIANT_BOOL onkeypress([in] IHTMLEventObj *pEvtObj);
4803
4804     [id(DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEDOWN)]
4805     void onmousedown([in] IHTMLEventObj *pEvtObj);
4806
4807     [id(DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEMOVE)]
4808     void onmousemove([in] IHTMLEventObj *pEvtObj);
4809
4810     [id(DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEUP)]
4811     void onmouseup([in] IHTMLEventObj *pEvtObj);
4812
4813     [id(DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEOUT)]
4814     void onmouseout([in] IHTMLEventObj *pEvtObj);
4815
4816     [id(DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEOVER)]
4817     void onmouseover([in] IHTMLEventObj *pEvtObj);
4818
4819     [id(DISPID_HTMLDOCUMENTEVENTS2_ONREADYSTATECHANGE)]
4820     void onreadystatechange([in] IHTMLEventObj *pEvtObj);
4821
4822     [id(DISPID_HTMLDOCUMENTEVENTS2_ONBEFOREUPDATE)]
4823     VARIANT_BOOL onbeforeupdate([in] IHTMLEventObj *pEvtObj);
4824
4825     [id(DISPID_HTMLDOCUMENTEVENTS2_ONAFTERUPDATE)]
4826     void onafterupdate([in] IHTMLEventObj *pEvtObj);
4827
4828     [id(DISPID_HTMLDOCUMENTEVENTS2_ONROWEXIT)]
4829     VARIANT_BOOL onrowexit([in] IHTMLEventObj *pEvtObj);
4830
4831     [id(DISPID_HTMLDOCUMENTEVENTS2_ONROWENTER)]
4832     void onrowenter([in] IHTMLEventObj *pEvtObj);
4833
4834     [id(DISPID_HTMLDOCUMENTEVENTS2_ONDRAGSTART)]
4835     VARIANT_BOOL ondragstart([in] IHTMLEventObj *pEvtObj);
4836
4837     [id(DISPID_HTMLDOCUMENTEVENTS2_ONSELECTSTART)]
4838     VARIANT_BOOL onselectstart([in] IHTMLEventObj *pEvtObj);
4839
4840     [id(DISPID_HTMLDOCUMENTEVENTS2_ONERRORUPDATE)]
4841     VARIANT_BOOL onerrorupdate([in] IHTMLEventObj *pEvtObj);
4842
4843     [id(DISPID_HTMLDOCUMENTEVENTS2_ONCONTEXTMENU)]
4844     VARIANT_BOOL oncontextmenu([in] IHTMLEventObj *pEvtObj);
4845
4846     [id(DISPID_HTMLDOCUMENTEVENTS2_ONSTOP)]
4847     VARIANT_BOOL onstop([in] IHTMLEventObj *pEvtObj);
4848
4849     [id(DISPID_HTMLDOCUMENTEVENTS2_ONROWSDELETE)]
4850     void onrowsdelete([in] IHTMLEventObj *pEvtObj);
4851
4852     [id(DISPID_HTMLDOCUMENTEVENTS2_ONROWSINSERTED)]
4853     void onrowsinserted([in] IHTMLEventObj *pEvtObj);
4854
4855     [id(DISPID_HTMLDOCUMENTEVENTS2_ONCELLCHANGE)]
4856     void oncellchange([in] IHTMLEventObj *pEvtObj);
4857
4858     [id(DISPID_HTMLDOCUMENTEVENTS2_ONPROPERTYCHANGE)]
4859     void onpropertychange([in] IHTMLEventObj *pEvtObj);
4860
4861     [id(DISPID_HTMLDOCUMENTEVENTS2_ONDATASETCHANGED)]
4862     void ondatasetchanged([in] IHTMLEventObj *pEvtObj);
4863
4864     [id(DISPID_HTMLDOCUMENTEVENTS2_ONDATAAVAILABLE)]
4865     void ondataavailable([in] IHTMLEventObj *pEvtObj);
4866
4867     [id(DISPID_HTMLDOCUMENTEVENTS2_ONDATASETCOMPLETE)]
4868     void ondatasetcomplete([in] IHTMLEventObj *pEvtObj);
4869
4870     [id(DISPID_HTMLDOCUMENTEVENTS2_ONBEFOREEDITFOCUS)]
4871     void onbeforeeditfocus([in] IHTMLEventObj *pEvtObj);
4872
4873     [id(DISPID_HTMLDOCUMENTEVENTS2_ONSELECTIONCHANGE)]
4874     void onselectionchange([in] IHTMLEventObj *pEvtObj);
4875
4876     [id(DISPID_HTMLDOCUMENTEVENTS2_ONCONTROLSELECT)]
4877     VARIANT_BOOL oncontrolselect([in] IHTMLEventObj *pEvtObj);
4878
4879     [id(DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEWHEEL)]
4880     VARIANT_BOOL onmousewheel([in] IHTMLEventObj *pEvtObj);
4881
4882     [id(DISPID_HTMLDOCUMENTEVENTS2_ONFOCUSIN)]
4883     void onfocusin([in] IHTMLEventObj *pEvtObj);
4884
4885     [id(DISPID_HTMLDOCUMENTEVENTS2_ONFOCUSOUT)]
4886     void onfocusout([in] IHTMLEventObj *pEvtObj);
4887
4888     [id(DISPID_HTMLDOCUMENTEVENTS2_ONACTIVATE)]
4889     void onactivate([in] IHTMLEventObj *pEvtObj);
4890
4891     [id(DISPID_HTMLDOCUMENTEVENTS2_ONDEACTIVATE)]
4892     void ondeactivate([in] IHTMLEventObj *pEvtObj);
4893
4894     [id(DISPID_HTMLDOCUMENTEVENTS2_ONBEFOREACTIVATE)]
4895     VARIANT_BOOL onbeforeactivate([in] IHTMLEventObj *pEvtObj);
4896
4897     [id(DISPID_HTMLDOCUMENTEVENTS2_ONBEFOREDEACTIVATE)]
4898     VARIANT_BOOL onbeforedeactivate([in] IHTMLEventObj *pEvtObj);
4899 }
4900
4901 /*****************************************************************************
4902  *    HTMLDocumentEvents interface
4903  */
4904 [
4905     hidden,
4906     uuid(3050f260-98b5-11cf-bb82-00aa00bdce0b)
4907 ]
4908 dispinterface HTMLDocumentEvents
4909 {
4910     properties:
4911     methods:
4912     [id(DISPID_HTMLDOCUMENTEVENTS_ONHELP)]
4913     VARIANT_BOOL onhelp();
4914
4915     [id(DISPID_HTMLDOCUMENTEVENTS_ONCLICK)]
4916     VARIANT_BOOL onclick();
4917
4918     [id(DISPID_HTMLDOCUMENTEVENTS_ONDBLCLICK)]
4919     VARIANT_BOOL ondblclick();
4920
4921     [id(DISPID_HTMLDOCUMENTEVENTS_ONKEYDOWN)]
4922     void onkeydown();
4923
4924     [id(DISPID_HTMLDOCUMENTEVENTS_ONKEYUP)]
4925     void onkeyup();
4926
4927     [id(DISPID_HTMLDOCUMENTEVENTS_ONKEYPRESS)]
4928     VARIANT_BOOL onkeypress();
4929
4930     [id(DISPID_HTMLDOCUMENTEVENTS_ONMOUSEDOWN)]
4931     void onmousedown();
4932
4933     [id(DISPID_HTMLDOCUMENTEVENTS_ONMOUSEMOVE)]
4934     void onmousemove();
4935
4936     [id(DISPID_HTMLDOCUMENTEVENTS_ONMOUSEUP)]
4937     void onmouseup();
4938
4939     [id(DISPID_HTMLDOCUMENTEVENTS_ONMOUSEOUT)]
4940     void onmouseout();
4941
4942     [id(DISPID_HTMLDOCUMENTEVENTS_ONMOUSEOVER)]
4943     void onmouseover();
4944
4945     [id(DISPID_HTMLDOCUMENTEVENTS_ONREADYSTATECHANGE)]
4946     void onreadystatechange();
4947
4948     [id(DISPID_HTMLDOCUMENTEVENTS_ONBEFOREUPDATE)]
4949     VARIANT_BOOL onbeforeupdate();
4950
4951     [id(DISPID_HTMLDOCUMENTEVENTS_ONAFTERUPDATE)]
4952     void onafterupdate();
4953
4954     [id(DISPID_HTMLDOCUMENTEVENTS_ONROWEXIT)]
4955     VARIANT_BOOL onrowexit();
4956
4957     [id(DISPID_HTMLDOCUMENTEVENTS_ONROWENTER)]
4958     void onrowenter();
4959
4960     [id(DISPID_HTMLDOCUMENTEVENTS_ONDRAGSTART)]
4961     VARIANT_BOOL ondragstart();
4962
4963     [id(DISPID_HTMLDOCUMENTEVENTS_ONSELECTSTART)]
4964     VARIANT_BOOL onselectstart();
4965
4966     [id(DISPID_HTMLDOCUMENTEVENTS_ONERRORUPDATE)]
4967     VARIANT_BOOL onerrorupdate();
4968
4969     [id(DISPID_HTMLDOCUMENTEVENTS_ONCONTEXTMENU)]
4970     VARIANT_BOOL oncontextmenu();
4971
4972     [id(DISPID_HTMLDOCUMENTEVENTS_ONSTOP)]
4973     VARIANT_BOOL onstop();
4974
4975     [id(DISPID_HTMLDOCUMENTEVENTS_ONROWSDELETE)]
4976     void onrowsdelete();
4977
4978     [id(DISPID_HTMLDOCUMENTEVENTS_ONROWSINSERTED)]
4979     void onrowsinserted();
4980
4981     [id(DISPID_HTMLDOCUMENTEVENTS_ONCELLCHANGE)]
4982     void oncellchange();
4983
4984     [id(DISPID_HTMLDOCUMENTEVENTS_ONPROPERTYCHANGE)]
4985     void onpropertychange();
4986
4987     [id(DISPID_HTMLDOCUMENTEVENTS_ONDATASETCHANGED)]
4988     void ondatasetchanged();
4989
4990     [id(DISPID_HTMLDOCUMENTEVENTS_ONDATAAVAILABLE)]
4991     void ondataavailable();
4992
4993     [id(DISPID_HTMLDOCUMENTEVENTS_ONDATASETCOMPLETE)]
4994     void ondatasetcomplete();
4995
4996     [id(DISPID_HTMLDOCUMENTEVENTS_ONBEFOREEDITFOCUS)]
4997     void onbeforeeditfocus();
4998
4999     [id(DISPID_HTMLDOCUMENTEVENTS_ONSELECTIONCHANGE)]
5000     void onselectionchange();
5001
5002     [id(DISPID_HTMLDOCUMENTEVENTS_ONCONTROLSELECT)]
5003     VARIANT_BOOL oncontrolselect();
5004
5005     [id(DISPID_HTMLDOCUMENTEVENTS_ONMOUSEWHEEL)]
5006     VARIANT_BOOL onmousewheel();
5007
5008     [id(DISPID_HTMLDOCUMENTEVENTS_ONFOCUSIN)]
5009     void onfocusin();
5010
5011     [id(DISPID_HTMLDOCUMENTEVENTS_ONFOCUSOUT)]
5012     void onfocusout();
5013
5014     [id(DISPID_HTMLDOCUMENTEVENTS_ONACTIVATE)]
5015     void onactivate();
5016
5017     [id(DISPID_HTMLDOCUMENTEVENTS_ONDEACTIVATE)]
5018     void ondeactivate();
5019
5020     [id(DISPID_HTMLDOCUMENTEVENTS_ONBEFOREACTIVATE)]
5021     VARIANT_BOOL onbeforeactivate();
5022
5023     [id(DISPID_HTMLDOCUMENTEVENTS_ONBEFOREDEACTIVATE)]
5024     VARIANT_BOOL onbeforedeactivate();
5025 }
5026
5027 /*****************************************************************************
5028  *    HTMLTextContainerEvents interface
5029  */
5030 [
5031     hidden,
5032     uuid(1ff6aa72-5842-11cf-a707-00aa00c0098d)
5033 ]
5034 dispinterface HTMLTextContainerEvents
5035 {
5036 properties:
5037
5038 methods:
5039     [id(DISPID_HTMLELEMENTEVENTS_ONHELP)]
5040     VARIANT_BOOL onhelp();
5041
5042     [id(DISPID_HTMLELEMENTEVENTS_ONCLICK)]
5043     VARIANT_BOOL onclick();
5044
5045     [id(DISPID_HTMLELEMENTEVENTS_ONDBLCLICK)]
5046     VARIANT_BOOL ondblclick();
5047
5048     [id(DISPID_HTMLELEMENTEVENTS_ONKEYPRESS)]
5049     VARIANT_BOOL onkeypress();
5050
5051     [id(DISPID_HTMLELEMENTEVENTS_ONKEYDOWN)]
5052     void onkeydown();
5053
5054     [id(DISPID_HTMLELEMENTEVENTS_ONKEYUP)]
5055     void onkeyup();
5056
5057     [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOUT)]
5058     void onmouseout();
5059
5060     [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOVER)]
5061     void onmouseover();
5062
5063     [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEMOVE)]
5064     void onmousemove();
5065
5066     [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEDOWN)]
5067     void onmousedown();
5068
5069     [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEUP)]
5070     void onmouseup();
5071
5072     [id(DISPID_HTMLELEMENTEVENTS_ONSELECTSTART)]
5073     VARIANT_BOOL onselectstart();
5074
5075     [id(DISPID_HTMLELEMENTEVENTS_ONFILTERCHANGE)]
5076     void onfilterchange();
5077
5078     [id(DISPID_HTMLELEMENTEVENTS_ONDRAGSTART)]
5079     VARIANT_BOOL ondragstart();
5080
5081     [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREUPDATE)]
5082     VARIANT_BOOL onbeforeupdate();
5083
5084     [id(DISPID_HTMLELEMENTEVENTS_ONAFTERUPDATE)]
5085     void onafterupdate();
5086
5087     [id(DISPID_HTMLELEMENTEVENTS_ONERRORUPDATE)]
5088     VARIANT_BOOL onerrorupdate();
5089
5090     [id(DISPID_HTMLELEMENTEVENTS_ONROWEXIT)]
5091     VARIANT_BOOL onrowexit();
5092
5093     [id(DISPID_HTMLELEMENTEVENTS_ONROWENTER)]
5094     void onrowenter();
5095
5096     [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCHANGED)]
5097     void ondatasetchanged();
5098
5099     [id(DISPID_HTMLELEMENTEVENTS_ONDATAAVAILABLE)]
5100     void ondataavailable();
5101
5102     [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCOMPLETE)]
5103     void ondatasetcomplete();
5104
5105     [id(DISPID_HTMLELEMENTEVENTS_ONLOSECAPTURE)]
5106     void onlosecapture();
5107
5108     [id(DISPID_HTMLELEMENTEVENTS_ONPROPERTYCHANGE)]
5109     void onpropertychange();
5110
5111     [id(DISPID_HTMLELEMENTEVENTS_ONSCROLL)]
5112     void onscroll();
5113
5114     [id(DISPID_HTMLELEMENTEVENTS_ONFOCUS)]
5115     void onfocus();
5116
5117     [id(DISPID_HTMLELEMENTEVENTS_ONBLUR)]
5118     void onblur();
5119
5120     [id(DISPID_HTMLELEMENTEVENTS_ONRESIZE)]
5121     void onresize();
5122
5123     [id(DISPID_HTMLELEMENTEVENTS_ONDRAG)]
5124     VARIANT_BOOL ondrag();
5125
5126     [id(DISPID_HTMLELEMENTEVENTS_ONDRAGEND)]
5127     void ondragend();
5128
5129     [id(DISPID_HTMLELEMENTEVENTS_ONDRAGENTER)]
5130     VARIANT_BOOL ondragenter();
5131
5132     [id(DISPID_HTMLELEMENTEVENTS_ONDRAGOVER)]
5133     VARIANT_BOOL ondragover();
5134
5135     [id(DISPID_HTMLELEMENTEVENTS_ONDRAGLEAVE)]
5136     void ondragleave();
5137
5138     [id(DISPID_HTMLELEMENTEVENTS_ONDROP)]
5139     VARIANT_BOOL ondrop();
5140
5141     [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECUT)]
5142     VARIANT_BOOL onbeforecut();
5143
5144     [id(DISPID_HTMLELEMENTEVENTS_ONCUT)]
5145     VARIANT_BOOL oncut();
5146
5147     [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECOPY)]
5148     VARIANT_BOOL onbeforecopy();
5149
5150     [id(DISPID_HTMLELEMENTEVENTS_ONCOPY)]
5151     VARIANT_BOOL oncopy();
5152
5153     [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREPASTE)]
5154     VARIANT_BOOL onbeforepaste();
5155
5156     [id(DISPID_HTMLELEMENTEVENTS_ONPASTE)]
5157     VARIANT_BOOL onpaste();
5158
5159     [id(DISPID_HTMLELEMENTEVENTS_ONCONTEXTMENU)]
5160     VARIANT_BOOL oncontextmenu();
5161
5162     [id(DISPID_HTMLELEMENTEVENTS_ONROWSDELETE)]
5163     void onrowsdelete();
5164
5165     [id(DISPID_HTMLELEMENTEVENTS_ONROWSINSERTED)]
5166     void onrowsinserted();
5167
5168     [id(DISPID_HTMLELEMENTEVENTS_ONCELLCHANGE)]
5169     void oncellchange();
5170
5171     [id(DISPID_HTMLELEMENTEVENTS_ONREADYSTATECHANGE)]
5172     void onreadystatechange();
5173
5174     [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREEDITFOCUS)]
5175     void onbeforeeditfocus();
5176
5177     [id(DISPID_HTMLELEMENTEVENTS_ONLAYOUTCOMPLETE)]
5178     void onlayoutcomplete();
5179
5180     [id(DISPID_HTMLELEMENTEVENTS_ONPAGE)]
5181     void onpage();
5182
5183     [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREDEACTIVATE)]
5184     VARIANT_BOOL onbeforedeactivate();
5185
5186     [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREACTIVATE)]
5187     VARIANT_BOOL onbeforeactivate();
5188
5189     [id(DISPID_HTMLELEMENTEVENTS_ONMOVE)]
5190     void onmove();
5191
5192     [id(DISPID_HTMLELEMENTEVENTS_ONCONTROLSELECT)]
5193     VARIANT_BOOL oncontrolselect();
5194
5195     [id(DISPID_HTMLELEMENTEVENTS_ONMOVESTART)]
5196     VARIANT_BOOL onmovestart();
5197
5198     [id(DISPID_HTMLELEMENTEVENTS_ONMOVEEND)]
5199     void onmoveend();
5200
5201     [id(DISPID_HTMLELEMENTEVENTS_ONRESIZESTART)]
5202     VARIANT_BOOL onresizestart();
5203
5204     [id(DISPID_HTMLELEMENTEVENTS_ONRESIZEEND)]
5205     void onresizeend();
5206
5207     [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEENTER)]
5208     void onmouseenter();
5209
5210     [id(DISPID_HTMLELEMENTEVENTS_ONMOUSELEAVE)]
5211     void onmouseleave();
5212
5213     [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEWHEEL)]
5214     VARIANT_BOOL onmousewheel();
5215
5216     [id(DISPID_HTMLELEMENTEVENTS_ONACTIVATE)]
5217     void onactivate();
5218
5219     [id(DISPID_HTMLELEMENTEVENTS_ONDEACTIVATE)]
5220     void ondeactivate();
5221
5222     [id(DISPID_HTMLELEMENTEVENTS_ONFOCUSIN)]
5223     void onfocusin();
5224
5225     [id(DISPID_HTMLELEMENTEVENTS_ONFOCUSOUT)]
5226     void onfocusout();
5227
5228     [id(DISPID_HTMLTEXTCONTAINEREVENTS_ONCHANGE)]
5229     void onchange();
5230
5231     [id(DISPID_HTMLTEXTCONTAINEREVENTS_ONSELECT)]
5232     void onselect();
5233 };
5234
5235 /*****************************************************************************
5236  *    IHTMLDocument interface
5237  */
5238 [
5239     odl,
5240     oleautomation,
5241     dual,
5242     uuid(626FC520-A41E-11CF-A731-00A0C9082637)
5243 ]
5244 interface IHTMLDocument : IDispatch
5245 {
5246     [propget, id(DISPID_IHTMLDOCUMENT_SCRIPT)]
5247     HRESULT Script([retval, out] IDispatch **p);
5248 }
5249
5250 /*****************************************************************************
5251  *    IHTMLDocument2 interface
5252  */
5253 [
5254     odl,
5255     oleautomation,
5256     dual,
5257     uuid(332C4425-26CB-11D0-B483-00C04FD90119)
5258 ]
5259 interface IHTMLDocument2 : IHTMLDocument
5260 {
5261     [propget, id(DISPID_IHTMLDOCUMENT2_ALL)]
5262     HRESULT all([retval, out] IHTMLElementCollection **p);
5263
5264     [propget, id(DISPID_IHTMLDOCUMENT2_BODY)]
5265     HRESULT body([retval, out] IHTMLElement **p);
5266
5267     [propget, id(DISPID_IHTMLDOCUMENT2_ACTIVEELEMENT)]
5268     HRESULT activeElement([retval, out] IHTMLElement **p);
5269
5270     [propget, id(DISPID_IHTMLDOCUMENT2_IMAGES)]
5271     HRESULT images([retval, out] IHTMLElementCollection **p);
5272
5273     [propget, id(DISPID_IHTMLDOCUMENT2_APPLETS)]
5274     HRESULT applets([retval, out] IHTMLElementCollection **p);
5275
5276     [propget, id(DISPID_IHTMLDOCUMENT2_LINKS)]
5277     HRESULT links([retval, out] IHTMLElementCollection **p);
5278
5279     [propget, id(DISPID_IHTMLDOCUMENT2_FORMS)]
5280     HRESULT forms([retval, out] IHTMLElementCollection **p);
5281
5282     [propget, id(DISPID_IHTMLDOCUMENT2_ANCHORS)]
5283     HRESULT anchors([retval, out] IHTMLElementCollection **p);
5284
5285     [propput, id(DISPID_IHTMLDOCUMENT2_TITLE)]
5286     HRESULT title([in] BSTR v);
5287
5288     [propget, id(DISPID_IHTMLDOCUMENT2_TITLE)]
5289     HRESULT title([retval, out] BSTR *p);
5290
5291     [propget, id(DISPID_IHTMLDOCUMENT2_SCRIPTS)]
5292     HRESULT scripts([retval, out] IHTMLElementCollection **p);
5293
5294     [propput, id(DISPID_IHTMLDOCUMENT2_DESIGNMODE)]
5295     HRESULT designMode([in] BSTR v);
5296
5297     [propget, id(DISPID_IHTMLDOCUMENT2_DESIGNMODE)]
5298     HRESULT designMode([retval, out] BSTR *p);
5299
5300     [propget, id(DISPID_IHTMLDOCUMENT2_SELECTION)]
5301     HRESULT selection([retval, out] IHTMLSelectionObject **p);
5302
5303     [propget, id(DISPID_IHTMLDOCUMENT2_READYSTATE)]
5304      HRESULT readyState([retval, out] BSTR *p);
5305
5306     [propget, id(DISPID_IHTMLDOCUMENT2_FRAMES)]
5307     HRESULT frames([retval, out] IHTMLFramesCollection2 **p);
5308
5309     [propget, id(DISPID_IHTMLDOCUMENT2_EMBEDS)]
5310     HRESULT embeds([retval, out] IHTMLElementCollection **p);
5311
5312     [propget, id(DISPID_IHTMLDOCUMENT2_PLUGINS)]
5313     HRESULT plugins([retval, out] IHTMLElementCollection **p);
5314
5315     [propput, id(DISPID_IHTMLDOCUMENT2_ALINKCOLOR)]
5316     HRESULT alinkColor([in] VARIANT v);
5317
5318     [propget, id(DISPID_IHTMLDOCUMENT2_ALINKCOLOR)]
5319     HRESULT alinkColor([retval, out] VARIANT *p);
5320
5321     [propput, id(DISPID_IHTMLDOCUMENT2_BGCOLOR)]
5322     HRESULT bgColor([in] VARIANT v);
5323
5324     [propget, id(DISPID_IHTMLDOCUMENT2_BGCOLOR)]
5325     HRESULT bgColor([retval, out] VARIANT *p);
5326
5327     [propput, id(DISPID_IHTMLDOCUMENT2_FGCOLOR)]
5328     HRESULT fgColor([in] VARIANT v);
5329
5330     [propget, id(DISPID_IHTMLDOCUMENT2_FGCOLOR)]
5331     HRESULT fgColor([retval, out] VARIANT *p);
5332
5333     [propput, id(DISPID_IHTMLDOCUMENT2_LINKCOLOR)]
5334     HRESULT linkColor([in] VARIANT v);
5335
5336     [propget, id(DISPID_IHTMLDOCUMENT2_LINKCOLOR)]
5337     HRESULT linkColor([retval, out] VARIANT *p);
5338
5339     [propput, id(DISPID_IHTMLDOCUMENT2_VLINKCOLOR)]
5340     HRESULT vlinkColor([in] VARIANT v);
5341
5342     [propget, id(DISPID_IHTMLDOCUMENT2_VLINKCOLOR)]
5343     HRESULT vlinkColor([retval, out] VARIANT *p);
5344
5345     [propget, id(DISPID_IHTMLDOCUMENT2_REFERRER)]
5346     HRESULT referrer([retval, out] BSTR *p);
5347
5348     [propget, id(DISPID_IHTMLDOCUMENT2_LOCATION)]
5349     HRESULT location([retval, out] IHTMLLocation **p);
5350
5351     [propget, id(DISPID_IHTMLDOCUMENT2_LASTMODIFIED)]
5352     HRESULT lastModified([retval, out] BSTR *p);
5353
5354     [propput, id(DISPID_IHTMLDOCUMENT2_URL)]
5355     HRESULT URL([in] BSTR v);
5356
5357     [propget, id(DISPID_IHTMLDOCUMENT2_URL)]
5358     HRESULT URL([retval, out] BSTR *p);
5359
5360     [propput, id(DISPID_IHTMLDOCUMENT2_DOMAIN)]
5361     HRESULT domain([in] BSTR v);
5362
5363     [propget, id(DISPID_IHTMLDOCUMENT2_DOMAIN)]
5364     HRESULT domain([retval, out] BSTR *p);
5365
5366     [propput, id(DISPID_IHTMLDOCUMENT2_COOKIE)]
5367     HRESULT cookie([in] BSTR v);
5368
5369     [propget, id(DISPID_IHTMLDOCUMENT2_COOKIE)]
5370     HRESULT cookie([retval, out] BSTR *p);
5371
5372     [propput, id(DISPID_IHTMLDOCUMENT2_EXPANDO)]
5373     HRESULT expando([in] VARIANT_BOOL v);
5374
5375     [propget, id(DISPID_IHTMLDOCUMENT2_EXPANDO)]
5376     HRESULT expando([retval, out] VARIANT_BOOL *p);
5377
5378     [propput, id(DISPID_IHTMLDOCUMENT2_CHARSET)]
5379      HRESULT charset([in] BSTR v);
5380
5381     [propget, id(DISPID_IHTMLDOCUMENT2_CHARSET)]
5382     HRESULT charset([retval, out] BSTR *p);
5383
5384     [propput, id(DISPID_IHTMLDOCUMENT2_DEFAULTCHARSET)]
5385     HRESULT defaultCharset([in] BSTR v);
5386
5387     [propget, id(DISPID_IHTMLDOCUMENT2_DEFAULTCHARSET)]
5388     HRESULT defaultCharset([retval, out] BSTR *p);
5389
5390     [propget, id(DISPID_IHTMLDOCUMENT2_MIMETYPE)]
5391     HRESULT mimeType([retval, out] BSTR *p);
5392
5393     [propget, id(DISPID_IHTMLDOCUMENT2_FILESIZE)]
5394     HRESULT fileSize([retval, out] BSTR *p);
5395
5396     [propget, id(DISPID_IHTMLDOCUMENT2_FILECREATEDDATE)]
5397     HRESULT fileCreatedDate([retval, out] BSTR *p);
5398
5399     [propget, id(DISPID_IHTMLDOCUMENT2_FILEMODIFIEDDATE)]
5400     HRESULT fileModifiedDate([retval, out] BSTR *p);
5401
5402     [propget, id(DISPID_IHTMLDOCUMENT2_FILEUPDATEDDATE)]
5403     HRESULT fileUpdatedDate([retval, out] BSTR *p);
5404
5405     [propget, id(DISPID_IHTMLDOCUMENT2_SECURITY)]
5406     HRESULT security([retval, out] BSTR *p);
5407
5408     [propget, id(DISPID_IHTMLDOCUMENT2_PROTOCOL)]
5409     HRESULT protocol([retval, out] BSTR *p);
5410
5411     [propget, id(DISPID_IHTMLDOCUMENT2_NAMEPROP)]
5412      HRESULT nameProp([retval, out] BSTR *p);
5413
5414     [vararg, id(DISPID_IHTMLDOCUMENT2_WRITE)]
5415     HRESULT write([in] SAFEARRAY(VARIANT) psarray);
5416
5417     [vararg, id(DISPID_IHTMLDOCUMENT2_WRITELN)]
5418     HRESULT writeln([in] SAFEARRAY(VARIANT) psarray);
5419
5420     [id(DISPID_IHTMLDOCUMENT2_OPEN)]
5421     HRESULT open(
5422         [defaultvalue("text/html"), in] BSTR url,
5423         [optional, in] VARIANT name,
5424         [optional, in] VARIANT features,
5425         [optional, in] VARIANT replace,
5426         [retval, out]  IDispatch **pomWindowResult);
5427
5428     [id(DISPID_IHTMLDOCUMENT2_CLOSE)]
5429     HRESULT close();
5430
5431     [id(DISPID_IHTMLDOCUMENT2_CLEAR)]
5432     HRESULT clear();
5433
5434     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDSUPPORTED)]
5435     HRESULT queryCommandSupported(
5436         [in] BSTR cmdID,
5437         [retval, out] VARIANT_BOOL *pfRet);
5438
5439     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDENABLED)]
5440     HRESULT queryCommandEnabled(
5441         [in] BSTR cmdID,
5442         [retval, out] VARIANT_BOOL *pfRet);
5443
5444     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDSTATE)]
5445     HRESULT queryCommandState(
5446         [in] BSTR cmdID,
5447         [retval, out] VARIANT_BOOL *pfRet);
5448
5449     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDINDETERM)]
5450     HRESULT queryCommandIndeterm(
5451         [in] BSTR cmdID,
5452         [retval, out] VARIANT_BOOL *pfRet);
5453
5454     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDTEXT)]
5455     HRESULT queryCommandText(
5456         [in] BSTR cmdID,
5457         [retval, out] BSTR *pcmdText);
5458
5459     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDVALUE)]
5460     HRESULT queryCommandValue(
5461         [in] BSTR cmdID,
5462         [retval, out] VARIANT *pcmdValue);
5463
5464     [id(DISPID_IHTMLDOCUMENT2_EXECCOMMAND)]
5465     HRESULT execCommand(
5466         [in] BSTR cmdID,
5467         [defaultvalue(0), in] VARIANT_BOOL showUI,
5468         [optional, in] VARIANT value,
5469         [retval, out] VARIANT_BOOL *pfRet);
5470
5471     [id(DISPID_IHTMLDOCUMENT2_EXECCOMMANDSHOWHELP)]
5472     HRESULT execCommandShowHelp(
5473         [in] BSTR cmdID,
5474         [retval, out] VARIANT_BOOL *pfRet);
5475
5476     [id(DISPID_IHTMLDOCUMENT2_CREATEELEMENT)]
5477      HRESULT createElement(
5478         [in] BSTR eTag,
5479         [retval, out] IHTMLElement **newElem);
5480
5481     [propput, id(DISPID_IHTMLDOCUMENT2_ONHELP)]
5482     HRESULT onhelp([in] VARIANT v);
5483
5484     [propget, id(DISPID_IHTMLDOCUMENT2_ONHELP)]
5485     HRESULT onhelp([retval, out] VARIANT *p);
5486
5487     [propput, id(DISPID_IHTMLDOCUMENT2_ONCLICK)]
5488     HRESULT onclick([in] VARIANT v);
5489
5490     [propget, id(DISPID_IHTMLDOCUMENT2_ONCLICK)]
5491     HRESULT onclick([retval, out] VARIANT *p);
5492
5493     [propput, id(DISPID_IHTMLDOCUMENT2_ONDBLCLICK)]
5494     HRESULT ondblclick([in] VARIANT v);
5495
5496     [propget, id(DISPID_IHTMLDOCUMENT2_ONDBLCLICK)]
5497     HRESULT ondblclick([retval, out] VARIANT *p);
5498
5499     [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYUP)]
5500     HRESULT onkeyup([in] VARIANT v);
5501
5502     [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYUP)]
5503     HRESULT onkeyup([retval, out] VARIANT *p);
5504
5505     [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYDOWN)]
5506     HRESULT onkeydown([in] VARIANT v);
5507
5508     [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYDOWN)]
5509     HRESULT onkeydown([retval, out] VARIANT *p);
5510
5511     [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYPRESS)]
5512      HRESULT onkeypress([in] VARIANT v);
5513
5514     [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYPRESS)]
5515     HRESULT onkeypress([retval, out] VARIANT *p);
5516
5517     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEUP)]
5518     HRESULT onmouseup([in] VARIANT v);
5519
5520     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEUP)]
5521     HRESULT onmouseup([retval, out] VARIANT *p);
5522
5523     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEDOWN)]
5524     HRESULT onmousedown([in] VARIANT v);
5525
5526     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEDOWN)]
5527     HRESULT onmousedown([retval, out] VARIANT *p);
5528
5529     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEMOVE)]
5530     HRESULT onmousemove([in] VARIANT v);
5531
5532     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEMOVE)]
5533     HRESULT onmousemove([retval, out] VARIANT *p);
5534
5535     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOUT)]
5536     HRESULT onmouseout([in] VARIANT v);
5537
5538     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOUT)]
5539     HRESULT onmouseout([retval, out] VARIANT *p);
5540
5541     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOVER)]
5542     HRESULT onmouseover([in] VARIANT v);
5543
5544     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOVER)]
5545     HRESULT onmouseover([retval, out] VARIANT *p);
5546
5547     [propput, id(DISPID_IHTMLDOCUMENT2_ONREADYSTATECHANGE)]
5548     HRESULT onreadystatechange([in] VARIANT v);
5549
5550     [propget, id(DISPID_IHTMLDOCUMENT2_ONREADYSTATECHANGE)]
5551     HRESULT onreadystatechange([retval, out] VARIANT *p);
5552
5553     [propput, id(DISPID_IHTMLDOCUMENT2_ONAFTERUPDATE)]
5554     HRESULT onafterupdate([in] VARIANT v);
5555
5556     [propget, id(DISPID_IHTMLDOCUMENT2_ONAFTERUPDATE)]
5557     HRESULT onafterupdate([retval, out] VARIANT *p);
5558
5559     [propput, id(DISPID_IHTMLDOCUMENT2_ONROWEXIT)]
5560     HRESULT onrowexit([in] VARIANT v);
5561
5562     [propget, id(DISPID_IHTMLDOCUMENT2_ONROWEXIT)]
5563     HRESULT onrowexit([retval, out] VARIANT *p);
5564
5565     [propput, id(DISPID_IHTMLDOCUMENT2_ONROWENTER)]
5566     HRESULT onrowenter([in] VARIANT v);
5567
5568     [propget, id(DISPID_IHTMLDOCUMENT2_ONROWENTER)]
5569     HRESULT onrowenter([retval, out] VARIANT *p);
5570
5571     [propput, id(DISPID_IHTMLDOCUMENT2_ONDRAGSTART)]
5572     HRESULT ondragstart([in] VARIANT v);
5573
5574     [propget, id(DISPID_IHTMLDOCUMENT2_ONDRAGSTART)]
5575     HRESULT ondragstart([retval, out] VARIANT *p);
5576
5577     [propput, id(DISPID_IHTMLDOCUMENT2_ONSELECTSTART)]
5578     HRESULT onselectstart([in] VARIANT v);
5579
5580     [propget, id(DISPID_IHTMLDOCUMENT2_ONSELECTSTART)]
5581     HRESULT onselectstart([retval, out] VARIANT *p);
5582
5583     [id(DISPID_IHTMLDOCUMENT2_ELEMENTFROMPOINT)]
5584     HRESULT elementFromPoint(
5585         [in] long x,
5586         [in] long y,
5587         [retval, out] IHTMLElement **elementHit);
5588
5589     [propget, id(DISPID_IHTMLDOCUMENT2_PARENTWINDOW)]
5590     HRESULT parentWindow([retval, out] IHTMLWindow2 **p);
5591
5592     [propget, id(DISPID_IHTMLDOCUMENT2_STYLESHEETS)]
5593     HRESULT styleSheets([retval, out] IHTMLStyleSheetsCollection **p);
5594
5595     [propput, id(DISPID_IHTMLDOCUMENT2_ONBEFOREUPDATE)]
5596     HRESULT onbeforeupdate([in] VARIANT v);
5597
5598     [propget, id(DISPID_IHTMLDOCUMENT2_ONBEFOREUPDATE)]
5599     HRESULT onbeforeupdate([retval, out] VARIANT *p);
5600
5601     [propput, id(DISPID_IHTMLDOCUMENT2_ONERRORUPDATE)]
5602     HRESULT onerrorupdate([in] VARIANT v);
5603
5604     [propget, id(DISPID_IHTMLDOCUMENT2_ONERRORUPDATE)]
5605     HRESULT onerrorupdate([retval, out] VARIANT *p);
5606
5607     [id(DISPID_IHTMLDOCUMENT2_TOSTRING)]
5608     HRESULT toString([retval, out] BSTR *String);
5609
5610     [id(DISPID_IHTMLDOCUMENT2_CREATESTYLESHEET)]
5611     HRESULT createStyleSheet(
5612         [defaultvalue(""), in] BSTR bstrHref,
5613         [defaultvalue(-1), in] long lIndex,
5614         [retval, out] IHTMLStyleSheet **ppnewStyleSheet);
5615 }
5616
5617 /*****************************************************************************
5618  *    IHTMLDocument3 interface
5619  */
5620 [
5621     odl,
5622     oleautomation,
5623     dual,
5624     uuid(3050f485-98b5-11cf-bb82-00aa00bdce0b)
5625 ]
5626 interface IHTMLDocument3 : IDispatch
5627 {
5628     [id(DISPID_IHTMLDOCUMENT3_RELEASECAPTURE)]
5629     HRESULT releaseCapture();
5630
5631     [id(DISPID_IHTMLDOCUMENT3_RECALC)]
5632     HRESULT recalc([defaultvalue(0), in] VARIANT_BOOL fForce);
5633
5634     [id(DISPID_IHTMLDOCUMENT3_CREATETEXTNODE)]
5635     HRESULT createTextNode(
5636         [in] BSTR text,
5637         [retval, out] IHTMLDOMNode **newTextNode);
5638
5639     [propget, id(DISPID_IHTMLDOCUMENT3_DOCUMENTELEMENT)]
5640     HRESULT documentElement([retval, out] IHTMLElement **p);
5641
5642     [propget, id(DISPID_IHTMLDOCUMENT3_UNIQUEID), hidden]
5643     HRESULT uniqueID([retval, out] BSTR *p);
5644
5645     [id(DISPID_IHTMLDOCUMENT3_ATTACHEVENT)]
5646     HRESULT attachEvent(
5647         [in] BSTR event,
5648         [in] IDispatch* pDisp,
5649         [retval, out] VARIANT_BOOL *pfResult);
5650
5651     [id(DISPID_IHTMLDOCUMENT3_DETACHEVENT)]
5652     HRESULT detachEvent(
5653         [in] BSTR event,
5654         [in] IDispatch *pDisp);
5655
5656     [propput, id(DISPID_IHTMLDOCUMENT3_ONROWSDELETE), displaybind, bindable]
5657     HRESULT onrowsdelete([in] VARIANT v);
5658
5659     [propget, id(DISPID_IHTMLDOCUMENT3_ONROWSDELETE), displaybind, bindable]
5660     HRESULT onrowsdelete([retval, out] VARIANT *p);
5661
5662     [propput, id(DISPID_IHTMLDOCUMENT3_ONROWSINSERTED), displaybind, bindable]
5663     HRESULT onrowsinserted([in] VARIANT v);
5664
5665     [propget, id(DISPID_IHTMLDOCUMENT3_ONROWSINSERTED), displaybind, bindable]
5666     HRESULT onrowsinserted([retval, out] VARIANT *p);
5667
5668     [propput, id(DISPID_IHTMLDOCUMENT3_ONCELLCHANGE), displaybind, bindable]
5669     HRESULT oncellchange([in] VARIANT v);
5670
5671     [propget, id(DISPID_IHTMLDOCUMENT3_ONCELLCHANGE), displaybind, bindable]
5672     HRESULT oncellchange([retval, out] VARIANT *p);
5673
5674     [propput, id(DISPID_IHTMLDOCUMENT3_ONDATASETCHANGED), displaybind, bindable]
5675     HRESULT ondatasetchanged([in] VARIANT v);
5676
5677     [propget, id(DISPID_IHTMLDOCUMENT3_ONDATASETCHANGED), displaybind, bindable]
5678     HRESULT ondatasetchanged([retval, out] VARIANT *p);
5679
5680     [propput, id(DISPID_IHTMLDOCUMENT3_ONDATAAVAILABLE), displaybind, bindable]
5681     HRESULT ondataavailable([in] VARIANT v);
5682
5683     [propget, id(DISPID_IHTMLDOCUMENT3_ONDATAAVAILABLE), displaybind, bindable]
5684     HRESULT ondataavailable([retval, out] VARIANT * p);
5685
5686     [propput, id(DISPID_IHTMLDOCUMENT3_ONDATASETCOMPLETE), displaybind, bindable]
5687     HRESULT ondatasetcomplete([in] VARIANT v);
5688
5689     [propget, id(DISPID_IHTMLDOCUMENT3_ONDATASETCOMPLETE), displaybind, bindable]
5690     HRESULT ondatasetcomplete([retval, out] VARIANT *p);
5691
5692     [propput, id(DISPID_IHTMLDOCUMENT3_ONPROPERTYCHANGE), displaybind, bindable]
5693     HRESULT onpropertychange([in] VARIANT v);
5694
5695     [propget, id(DISPID_IHTMLDOCUMENT3_ONPROPERTYCHANGE), displaybind, bindable]
5696     HRESULT onpropertychange([retval, out] VARIANT *p);
5697
5698     [propput, id(DISPID_IHTMLDOCUMENT3_DIR)]
5699     HRESULT dir([in] BSTR v);
5700
5701     [propget, id(DISPID_IHTMLDOCUMENT3_DIR)]
5702     HRESULT dir([retval, out] BSTR *p);
5703
5704     [propput, id(DISPID_IHTMLDOCUMENT3_ONCONTEXTMENU), displaybind, bindable]
5705     HRESULT oncontextmenu([in] VARIANT v);
5706
5707     [propget, id(DISPID_IHTMLDOCUMENT3_ONCONTEXTMENU), displaybind, bindable]
5708     HRESULT oncontextmenu([retval, out] VARIANT *p);
5709
5710     [propput, id(DISPID_IHTMLDOCUMENT3_ONSTOP), displaybind, bindable]
5711     HRESULT onstop([in] VARIANT v);
5712
5713     [propget, id(DISPID_IHTMLDOCUMENT3_ONSTOP), displaybind, bindable]
5714     HRESULT onstop([retval, out] VARIANT *p);
5715
5716     [id(DISPID_IHTMLDOCUMENT3_CREATEDOCUMENTFRAGMENT)]
5717     HRESULT createDocumentFragment([retval, out] IHTMLDocument2 **pNewDoc);
5718
5719     [propget, id(DISPID_IHTMLDOCUMENT3_PARENTDOCUMENT), hidden, restricted]
5720     HRESULT parentDocument([retval, out] IHTMLDocument2 **p);
5721
5722     [propput, id(DISPID_IHTMLDOCUMENT3_ENABLEDOWNLOAD), hidden, restricted]
5723     HRESULT enableDownload([in] VARIANT_BOOL v);
5724
5725     [propget, id(DISPID_IHTMLDOCUMENT3_ENABLEDOWNLOAD), hidden, restricted]
5726     HRESULT enableDownload([retval, out] VARIANT_BOOL *p);
5727
5728     [propput, id(DISPID_IHTMLDOCUMENT3_BASEURL), hidden, restricted]
5729     HRESULT baseUrl([in] BSTR v);
5730
5731     [propget, id(DISPID_IHTMLDOCUMENT3_BASEURL), hidden, restricted]
5732     HRESULT baseUrl([retval, out] BSTR *p);
5733
5734     [propget, id(DISPID_IHTMLDOCUMENT3_CHILDNODES)]
5735     HRESULT childNodes([retval, out] IDispatch **p);
5736
5737     [propput, id(DISPID_IHTMLDOCUMENT3_INHERITSTYLESHEETS), hidden, restricted]
5738     HRESULT inheritStyleSheets([in] VARIANT_BOOL v);
5739
5740     [propget, id(DISPID_IHTMLDOCUMENT3_INHERITSTYLESHEETS), hidden, restricted]
5741     HRESULT inheritStyleSheets([retval, out] VARIANT_BOOL *p);
5742
5743     [propput, id(DISPID_IHTMLDOCUMENT3_ONBEFOREEDITFOCUS), displaybind, bindable]
5744     HRESULT onbeforeeditfocus([in] VARIANT v);
5745
5746     [propget, id(DISPID_IHTMLDOCUMENT3_ONBEFOREEDITFOCUS), displaybind, bindable]
5747     HRESULT onbeforeeditfocus([retval, out] VARIANT *p);
5748
5749     [id(DISPID_IHTMLDOCUMENT3_GETELEMENTSBYNAME)]
5750     HRESULT getElementsByName(
5751         [in] BSTR v,
5752         [retval, out] IHTMLElementCollection **pelColl);
5753
5754     [id(DISPID_IHTMLDOCUMENT3_GETELEMENTBYID)]
5755     HRESULT getElementById(
5756         [in] BSTR v,
5757         [retval, out] IHTMLElement **pel);
5758
5759     [id(DISPID_IHTMLDOCUMENT3_GETELEMENTSBYTAGNAME)]
5760     HRESULT getElementsByTagName(
5761         [in] BSTR v,
5762         [retval, out] IHTMLElementCollection **pelColl);
5763 }
5764
5765 /*****************************************************************************
5766  *    IHTMLDocument4 interface
5767  */
5768 [
5769     odl,
5770     oleautomation,
5771     dual,
5772     uuid(3050f69a-98b5-11cf-bb82-00aa00bdce0b)
5773 ]
5774 interface IHTMLDocument4 : IDispatch
5775 {
5776     [id(DISPID_IHTMLDOCUMENT4_FOCUS)]
5777     HRESULT focus();
5778
5779     [id(DISPID_IHTMLDOCUMENT4_HASFOCUS)]
5780     HRESULT hasFocus([retval, out] VARIANT_BOOL *pfFocus);
5781
5782     [propput, id(DISPID_IHTMLDOCUMENT4_ONSELECTIONCHANGE), displaybind, bindable]
5783     HRESULT onselectionchange([in] VARIANT v);
5784
5785     [propget, id(DISPID_IHTMLDOCUMENT4_ONSELECTIONCHANGE), displaybind, bindable]
5786     HRESULT onselectionchange([retval, out] VARIANT *p);
5787
5788     [propget, id(DISPID_IHTMLDOCUMENT4_NAMESPACES)]
5789     HRESULT namespaces([retval, out] IDispatch **p);
5790
5791     [id(DISPID_IHTMLDOCUMENT4_CREATEDOCUMENTFROMURL)]
5792     HRESULT createDocumentFromUrl(
5793         [in] BSTR bstrUrl,
5794         [in] BSTR bstrOptions,
5795         [retval, out] IHTMLDocument2 **newDoc);
5796
5797     [propput, id(DISPID_IHTMLDOCUMENT4_MEDIA)]
5798     HRESULT media([in] BSTR v);
5799
5800     [propget, id(DISPID_IHTMLDOCUMENT4_MEDIA)]
5801     HRESULT media([retval, out] BSTR *p);
5802
5803     [id(DISPID_IHTMLDOCUMENT4_CREATEEVENTOBJECT)]
5804     HRESULT createEventObject(
5805         [optional, in] VARIANT *pvarEventObject,
5806         [retval, out] IHTMLEventObj **ppEventObj);
5807
5808     [id(DISPID_IHTMLDOCUMENT4_FIREEVENT)]
5809     HRESULT fireEvent(
5810         [in] BSTR bstrEventName,
5811         [optional, in] VARIANT *pvarEventObject,
5812         [retval, out] VARIANT_BOOL *pfCancelled);
5813
5814     [id(DISPID_IHTMLDOCUMENT4_CREATERENDERSTYLE)]
5815     HRESULT createRenderStyle(
5816         [in] BSTR v,
5817         [retval, out] IHTMLRenderStyle **ppIHTMLRenderStyle);
5818
5819     [propput, id(DISPID_IHTMLDOCUMENT4_ONCONTROLSELECT), displaybind, bindable]
5820     HRESULT oncontrolselect([in] VARIANT v);
5821
5822     [propget, id(DISPID_IHTMLDOCUMENT4_ONCONTROLSELECT), displaybind, bindable]
5823     HRESULT oncontrolselect([retval, out] VARIANT *p);
5824
5825     [propget, id(DISPID_IHTMLDOCUMENT4_URLUNENCODED)]
5826     HRESULT URLUnencoded([retval, out] BSTR *p);
5827 }
5828
5829 /*****************************************************************************
5830  *    IHTMLDocument5 interface
5831  */
5832 [
5833     odl,
5834     oleautomation,
5835     dual,
5836     uuid(3050f80c-98b5-11cf-bb82-00aa00bdce0b)
5837 ]
5838 interface IHTMLDocument5 : IDispatch
5839 {
5840     [propput, id(DISPID_IHTMLDOCUMENT5_ONMOUSEWHEEL), displaybind, bindable]
5841     HRESULT onmousewheel([in] VARIANT v);
5842
5843     [propget, id(DISPID_IHTMLDOCUMENT5_ONMOUSEWHEEL), displaybind, bindable]
5844     HRESULT onmousewheel([retval, out] VARIANT *p);
5845
5846     [propget, id(DISPID_IHTMLDOCUMENT5_DOCTYPE)]
5847     HRESULT doctype([retval, out] IHTMLDOMNode **p);
5848
5849     [propget, id(DISPID_IHTMLDOCUMENT5_IMPLEMENTATION)]
5850     HRESULT implementation([retval, out] IHTMLDOMImplementation **p);
5851
5852     [id(DISPID_IHTMLDOCUMENT5_CREATEATTRIBUTE)]
5853     HRESULT createAttribute(
5854         [in] BSTR bstrattrName,
5855         [retval, out] IHTMLDOMAttribute **ppattribute);
5856
5857     [id(DISPID_IHTMLDOCUMENT5_CREATECOMMENT)]
5858     HRESULT createComment(
5859         [in] BSTR bstrdata,
5860         [retval, out] IHTMLDOMNode **ppRetNode);
5861
5862     [propput, id(DISPID_IHTMLDOCUMENT5_ONFOCUSIN), displaybind, bindable]
5863     HRESULT onfocusin([in] VARIANT v);
5864
5865     [propget, id(DISPID_IHTMLDOCUMENT5_ONFOCUSIN), displaybind, bindable]
5866     HRESULT onfocusin([retval, out] VARIANT *p);
5867
5868     [propput, id(DISPID_IHTMLDOCUMENT5_ONFOCUSOUT), displaybind, bindable]
5869     HRESULT onfocusout([in] VARIANT v);
5870
5871     [propget, id(DISPID_IHTMLDOCUMENT5_ONFOCUSOUT), displaybind, bindable]
5872     HRESULT onfocusout([retval, out] VARIANT *p);
5873
5874     [propput, id(DISPID_IHTMLDOCUMENT5_ONACTIVATE), displaybind, bindable]
5875     HRESULT onactivate([in] VARIANT v);
5876
5877     [propget, id(DISPID_IHTMLDOCUMENT5_ONACTIVATE), displaybind, bindable]
5878     HRESULT onactivate([retval, out] VARIANT *p);
5879
5880     [propput, id(DISPID_IHTMLDOCUMENT5_ONDEACTIVATE), displaybind, bindable]
5881     HRESULT ondeactivate([in] VARIANT v);
5882
5883     [propget, id(DISPID_IHTMLDOCUMENT5_ONDEACTIVATE), displaybind, bindable]
5884     HRESULT ondeactivate([retval, out] VARIANT *p);
5885
5886     [propput, id(DISPID_IHTMLDOCUMENT5_ONBEFOREACTIVATE), displaybind, bindable]
5887     HRESULT onbeforeactivate([in] VARIANT v);
5888
5889     [propget, id(DISPID_IHTMLDOCUMENT5_ONBEFOREACTIVATE), displaybind, bindable]
5890     HRESULT onbeforeactivate([retval, out] VARIANT *p);
5891
5892     [propput, id(DISPID_IHTMLDOCUMENT5_ONBEFOREDEACTIVATE), displaybind, bindable]
5893     HRESULT onbeforedeactivate([in] VARIANT v);
5894
5895     [propget, id(DISPID_IHTMLDOCUMENT5_ONBEFOREDEACTIVATE), displaybind, bindable]
5896     HRESULT onbeforedeactivate([retval, out] VARIANT *p);
5897
5898     [propget, id(DISPID_IHTMLDOCUMENT5_COMPATMODE)]
5899     HRESULT compatMode([retval, out] BSTR *p);
5900 }
5901
5902 /*****************************************************************************
5903  *    DispHTMLDocument dispinterface
5904  */
5905 [
5906     hidden,
5907     uuid(3050f55f-98b5-11cf-bb82-00aa00bdce0b)
5908 ]
5909 dispinterface DispHTMLDocument
5910 {
5911 properties:
5912 methods:
5913     [propget, id(DISPID_IHTMLDOCUMENT_SCRIPT), hidden, nonbrowsable]
5914     IDispatch *Script();
5915
5916     [propget, id(DISPID_IHTMLDOCUMENT2_ALL)]
5917     IHTMLElementCollection *all();
5918
5919     [propget, id(DISPID_IHTMLDOCUMENT2_BODY)]
5920     IHTMLElement *body();
5921
5922     [propget, id(DISPID_IHTMLDOCUMENT2_ACTIVEELEMENT)]
5923     IHTMLElement *activeElement();
5924
5925     [propget, id(DISPID_IHTMLDOCUMENT2_IMAGES)]
5926     IHTMLElementCollection *images();
5927
5928     [propget, id(DISPID_IHTMLDOCUMENT2_APPLETS)]
5929     IHTMLElementCollection *applets();
5930
5931     [propget, id(DISPID_IHTMLDOCUMENT2_LINKS)]
5932     IHTMLElementCollection *links();
5933
5934     [propget, id(DISPID_IHTMLDOCUMENT2_FORMS)]
5935     IHTMLElementCollection *forms();
5936
5937     [propget, id(DISPID_IHTMLDOCUMENT2_ANCHORS)]
5938     IHTMLElementCollection *anchors();
5939
5940     [propput, id(DISPID_IHTMLDOCUMENT2_TITLE)]
5941     void title(BSTR v);
5942
5943     [propget, id(DISPID_IHTMLDOCUMENT2_TITLE)]
5944     BSTR title();
5945
5946     [propget, id(DISPID_IHTMLDOCUMENT2_SCRIPTS)]
5947     IHTMLElementCollection *scripts();
5948
5949     [propput, id(DISPID_IHTMLDOCUMENT2_DESIGNMODE), hidden]
5950     void designMode(BSTR v);
5951
5952     [propget, id(DISPID_IHTMLDOCUMENT2_DESIGNMODE), hidden]
5953     BSTR designMode();
5954
5955     [propget, id(DISPID_IHTMLDOCUMENT2_SELECTION)]
5956     IHTMLSelectionObject *selection();
5957
5958     [propget, id(DISPID_IHTMLDOCUMENT2_READYSTATE), bindable]
5959     BSTR readyState();
5960
5961     [propget, id(DISPID_IHTMLDOCUMENT2_FRAMES)]
5962     IHTMLFramesCollection2 *frames();
5963
5964     [propget, id(DISPID_IHTMLDOCUMENT2_EMBEDS)]
5965     IHTMLElementCollection *embeds();
5966
5967     [propget, id(DISPID_IHTMLDOCUMENT2_PLUGINS)]
5968     IHTMLElementCollection *plugins();
5969
5970     [propput, id(DISPID_IHTMLDOCUMENT2_ALINKCOLOR)]
5971     void alinkColor(VARIANT v);
5972
5973     [propget, id(DISPID_IHTMLDOCUMENT2_ALINKCOLOR)]
5974     VARIANT alinkColor();
5975
5976     [propput, id(DISPID_IHTMLDOCUMENT2_BGCOLOR)]
5977     void bgColor(VARIANT v);
5978
5979     [propget, id(DISPID_IHTMLDOCUMENT2_BGCOLOR)]
5980     VARIANT bgColor();
5981
5982     [propput, id(DISPID_IHTMLDOCUMENT2_FGCOLOR)]
5983     void fgColor(VARIANT v);
5984
5985     [propget, id(DISPID_IHTMLDOCUMENT2_FGCOLOR)]
5986     VARIANT fgColor();
5987
5988     [propput, id(DISPID_IHTMLDOCUMENT2_LINKCOLOR)]
5989     void linkColor(VARIANT v);
5990
5991     [propget, id(DISPID_IHTMLDOCUMENT2_LINKCOLOR)]
5992     VARIANT linkColor();
5993
5994     [propput, id(DISPID_IHTMLDOCUMENT2_VLINKCOLOR)]
5995     void vlinkColor(VARIANT v);
5996
5997     [propget, id(DISPID_IHTMLDOCUMENT2_VLINKCOLOR)]
5998     VARIANT vlinkColor();
5999
6000     [propget, id(DISPID_IHTMLDOCUMENT2_REFERRER)]
6001     BSTR referrer();
6002
6003     [propget, id(DISPID_IHTMLDOCUMENT2_LOCATION)]
6004     IHTMLLocation *location();
6005
6006     [propget, id(DISPID_IHTMLDOCUMENT2_LASTMODIFIED)]
6007     BSTR lastModified();
6008
6009     [propput, id(DISPID_IHTMLDOCUMENT2_URL)]
6010     void URL(BSTR v);
6011
6012     [propget, id(DISPID_IHTMLDOCUMENT2_URL)]
6013     BSTR URL();
6014
6015     [propput, id(DISPID_IHTMLDOCUMENT2_DOMAIN)]
6016     void domain(BSTR v);
6017
6018     [propget, id(DISPID_IHTMLDOCUMENT2_DOMAIN)]
6019     BSTR domain();
6020
6021     [propput, id(DISPID_IHTMLDOCUMENT2_COOKIE)]
6022     void cookie(BSTR v);
6023
6024     [propget, id(DISPID_IHTMLDOCUMENT2_COOKIE)]
6025     BSTR cookie();
6026
6027     [propput, id(DISPID_IHTMLDOCUMENT2_EXPANDO), bindable, hidden]
6028     void expando(VARIANT_BOOL v);
6029
6030     [propget, id(DISPID_IHTMLDOCUMENT2_EXPANDO), bindable, hidden]
6031     VARIANT_BOOL expando();
6032
6033     [propput, id(DISPID_IHTMLDOCUMENT2_CHARSET), hidden]
6034     void charset(BSTR v);
6035
6036     [propget, id(DISPID_IHTMLDOCUMENT2_CHARSET), hidden]
6037     BSTR charset();
6038
6039     [propput, id(DISPID_IHTMLDOCUMENT2_DEFAULTCHARSET)]
6040     void defaultCharset(BSTR v);
6041
6042     [propget, id(DISPID_IHTMLDOCUMENT2_DEFAULTCHARSET)]
6043     BSTR defaultCharset();
6044
6045     [propget, id(DISPID_IHTMLDOCUMENT2_MIMETYPE)]
6046     BSTR mimeType();
6047
6048     [propget, id(DISPID_IHTMLDOCUMENT2_FILESIZE)]
6049     BSTR fileSize();
6050
6051     [propget, id(DISPID_IHTMLDOCUMENT2_FILECREATEDDATE)]
6052     BSTR fileCreatedDate();
6053
6054     [propget, id(DISPID_IHTMLDOCUMENT2_FILEMODIFIEDDATE)]
6055     BSTR fileModifiedDate();
6056
6057     [propget, id(DISPID_IHTMLDOCUMENT2_FILEUPDATEDDATE)]
6058     BSTR fileUpdatedDate();
6059
6060     [propget, id(DISPID_IHTMLDOCUMENT2_SECURITY)]
6061     BSTR security();
6062
6063     [propget, id(DISPID_IHTMLDOCUMENT2_PROTOCOL)]
6064     BSTR protocol();
6065
6066     [propget, id(DISPID_IHTMLDOCUMENT2_NAMEPROP)]
6067     BSTR nameProp();
6068
6069     [vararg, id(DISPID_IHTMLDOCUMENT2_WRITE)]
6070     void write([in] SAFEARRAY(VARIANT) psarray);
6071
6072     [vararg, id(DISPID_IHTMLDOCUMENT2_WRITELN)]
6073     void writeln([in] SAFEARRAY(VARIANT) psarray);
6074
6075     [id(DISPID_IHTMLDOCUMENT2_OPEN)]
6076     IDispatch *open(
6077         [defaultvalue("text/html"), in] BSTR url,
6078         [optional, in] VARIANT name,
6079         [optional, in] VARIANT features,
6080         [optional, in] VARIANT replace);
6081
6082     [id(DISPID_IHTMLDOCUMENT2_CLOSE)]
6083     void close();
6084
6085     [id(DISPID_IHTMLDOCUMENT2_CLEAR)]
6086     void clear();
6087
6088     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDSUPPORTED)]
6089     VARIANT_BOOL queryCommandSupported([in] BSTR cmdID);
6090
6091     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDENABLED)]
6092     VARIANT_BOOL queryCommandEnabled([in] BSTR cmdID);
6093
6094     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDSTATE)]
6095     VARIANT_BOOL queryCommandState([in] BSTR cmdID);
6096
6097     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDINDETERM)]
6098     VARIANT_BOOL queryCommandIndeterm([in] BSTR cmdID);
6099
6100     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDTEXT)]
6101     BSTR queryCommandText([in] BSTR cmdID);
6102
6103     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDVALUE)]
6104     VARIANT queryCommandValue([in] BSTR cmdID);
6105
6106     [id(DISPID_IHTMLDOCUMENT2_EXECCOMMAND)]
6107     VARIANT_BOOL execCommand(
6108         [in] BSTR cmdID,
6109         [defaultvalue(0), in] VARIANT_BOOL showUI,
6110         [optional, in] VARIANT value);
6111
6112     [id(DISPID_IHTMLDOCUMENT2_EXECCOMMANDSHOWHELP)]
6113     VARIANT_BOOL execCommandShowHelp([in] BSTR cmdID);
6114
6115     [id(DISPID_IHTMLDOCUMENT2_CREATEELEMENT)]
6116     IHTMLElement *createElement([in] BSTR eTag);
6117
6118     [propput, id(DISPID_IHTMLDOCUMENT2_ONHELP), displaybind, bindable]
6119     void onhelp(VARIANT v);
6120
6121     [propget, id(DISPID_IHTMLDOCUMENT2_ONHELP), displaybind, bindable]
6122     VARIANT onhelp();
6123
6124     [propput, id(DISPID_IHTMLDOCUMENT2_ONCLICK), displaybind, bindable]
6125     void onclick(VARIANT v);
6126
6127     [propget, id(DISPID_IHTMLDOCUMENT2_ONCLICK), displaybind, bindable]
6128     VARIANT onclick();
6129
6130     [propput, id(DISPID_IHTMLDOCUMENT2_ONDBLCLICK), displaybind, bindable]
6131     void ondblclick(VARIANT v);
6132
6133     [propget, id(DISPID_IHTMLDOCUMENT2_ONDBLCLICK), displaybind, bindable]
6134     VARIANT ondblclick();
6135
6136     [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYUP), displaybind, bindable]
6137     void onkeyup(VARIANT v);
6138
6139     [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYUP), displaybind, bindable]
6140     VARIANT onkeyup();
6141
6142     [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYDOWN), displaybind, bindable]
6143     void onkeydown(VARIANT v);
6144
6145     [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYDOWN), displaybind, bindable]
6146     VARIANT onkeydown();
6147
6148     [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYPRESS), displaybind, bindable]
6149     void onkeypress(VARIANT v);
6150
6151     [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYPRESS), displaybind, bindable]
6152     VARIANT onkeypress();
6153
6154     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEUP), displaybind, bindable]
6155     void onmouseup(VARIANT v);
6156
6157     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEUP), displaybind, bindable]
6158     VARIANT onmouseup();
6159
6160     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEDOWN), displaybind, bindable]
6161     void onmousedown(VARIANT v);
6162
6163     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEDOWN), displaybind, bindable]
6164     VARIANT onmousedown();
6165
6166     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEMOVE), displaybind, bindable]
6167     void onmousemove(VARIANT v);
6168
6169     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEMOVE), displaybind, bindable]
6170     VARIANT onmousemove();
6171
6172     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOUT), displaybind, bindable]
6173     void onmouseout(VARIANT v);
6174
6175     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOUT), displaybind, bindable]
6176     VARIANT onmouseout();
6177
6178     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOVER), displaybind, bindable]
6179     void onmouseover(VARIANT v);
6180
6181     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOVER), displaybind, bindable]
6182     VARIANT onmouseover();
6183
6184     [propput, id(DISPID_IHTMLDOCUMENT2_ONREADYSTATECHANGE), displaybind, bindable]
6185     void onreadystatechange(VARIANT v);
6186
6187     [propget, id(DISPID_IHTMLDOCUMENT2_ONREADYSTATECHANGE), displaybind, bindable]
6188     VARIANT onreadystatechange();
6189
6190     [propput, id(DISPID_IHTMLDOCUMENT2_ONAFTERUPDATE), displaybind, bindable]
6191     void onafterupdate(VARIANT v);
6192
6193     [propget, id(DISPID_IHTMLDOCUMENT2_ONAFTERUPDATE), displaybind, bindable]
6194     VARIANT onafterupdate();
6195
6196     [propput, id(DISPID_IHTMLDOCUMENT2_ONROWEXIT), displaybind, bindable]
6197     void onrowexit(VARIANT v);
6198
6199     [propget, id(DISPID_IHTMLDOCUMENT2_ONROWEXIT), displaybind, bindable]
6200     VARIANT onrowexit();
6201
6202     [propput, id(DISPID_IHTMLDOCUMENT2_ONROWENTER), displaybind, bindable]
6203     void onrowenter(VARIANT v);
6204
6205     [propget, id(DISPID_IHTMLDOCUMENT2_ONROWENTER), displaybind, bindable]
6206     VARIANT onrowenter();
6207
6208     [propput, id(DISPID_IHTMLDOCUMENT2_ONDRAGSTART), displaybind, bindable]
6209     void ondragstart(VARIANT v);
6210
6211     [propget, id(DISPID_IHTMLDOCUMENT2_ONDRAGSTART), displaybind, bindable]
6212     VARIANT ondragstart();
6213
6214     [propput, id(DISPID_IHTMLDOCUMENT2_ONSELECTSTART), displaybind, bindable]
6215     void onselectstart(VARIANT v);
6216
6217     [propget, id(DISPID_IHTMLDOCUMENT2_ONSELECTSTART), displaybind, bindable]
6218     VARIANT onselectstart();
6219
6220     [id(DISPID_IHTMLDOCUMENT2_ELEMENTFROMPOINT)]
6221     IHTMLElement *elementFromPoint(
6222         [in] long x,
6223         [in] long y);
6224
6225     [propget, id(DISPID_IHTMLDOCUMENT2_PARENTWINDOW)]
6226     IHTMLWindow2 *parentWindow();
6227
6228     [propget, id(DISPID_IHTMLDOCUMENT2_STYLESHEETS)]
6229     IHTMLStyleSheetsCollection *styleSheets();
6230
6231     [propput, id(DISPID_IHTMLDOCUMENT2_ONBEFOREUPDATE), displaybind, bindable]
6232     void onbeforeupdate(VARIANT v);
6233
6234     [propget, id(DISPID_IHTMLDOCUMENT2_ONBEFOREUPDATE), displaybind, bindable]
6235     VARIANT onbeforeupdate();
6236
6237     [propput, id(DISPID_IHTMLDOCUMENT2_ONERRORUPDATE), displaybind, bindable]
6238     void onerrorupdate(VARIANT v);
6239
6240     [propget, id(DISPID_IHTMLDOCUMENT2_ONERRORUPDATE), displaybind, bindable]
6241     VARIANT onerrorupdate();
6242
6243     [id(DISPID_IHTMLDOCUMENT2_TOSTRING)]
6244     BSTR toString();
6245
6246     [id(DISPID_IHTMLDOCUMENT2_CREATESTYLESHEET)]
6247     IHTMLStyleSheet *createStyleSheet(
6248         [defaultvalue(""), in] BSTR bstrHref,
6249         [defaultvalue(-1), in] long lIndex);
6250
6251     [id(DISPID_IHTMLDOCUMENT3_RELEASECAPTURE)]
6252     void releaseCapture();
6253
6254     [id(DISPID_IHTMLDOCUMENT3_RECALC)]
6255     void recalc([defaultvalue(0), in] VARIANT_BOOL fForce);
6256
6257     [id(DISPID_IHTMLDOCUMENT3_CREATETEXTNODE)]
6258     IHTMLDOMNode *createTextNode([in] BSTR text);
6259
6260     [propget, id(DISPID_IHTMLDOCUMENT3_DOCUMENTELEMENT)]
6261     IHTMLElement *documentElement();
6262
6263     [propget, id(DISPID_IHTMLDOCUMENT3_UNIQUEID), hidden]
6264     BSTR uniqueID();
6265
6266     [id(DISPID_IHTMLDOCUMENT3_ATTACHEVENT)]
6267     VARIANT_BOOL attachEvent(
6268         [in] BSTR event,
6269         [in] IDispatch *pDisp);
6270
6271     [id(DISPID_IHTMLDOCUMENT3_DETACHEVENT)]
6272     void detachEvent(
6273         [in] BSTR event,
6274         [in] IDispatch *pDisp);
6275
6276     [propput, id(DISPID_IHTMLDOCUMENT3_ONROWSDELETE), displaybind, bindable]
6277     void onrowsdelete(VARIANT v);
6278
6279     [propget, id(DISPID_IHTMLDOCUMENT3_ONROWSDELETE), displaybind, bindable]
6280     VARIANT onrowsdelete();
6281
6282     [propput, id(DISPID_IHTMLDOCUMENT3_ONROWSINSERTED), displaybind, bindable]
6283     void onrowsinserted(VARIANT v);
6284
6285     [propget, id(DISPID_IHTMLDOCUMENT3_ONROWSINSERTED), displaybind, bindable]
6286     VARIANT onrowsinserted();
6287
6288     [propput, id(DISPID_IHTMLDOCUMENT3_ONCELLCHANGE), displaybind, bindable]
6289     void oncellchange(VARIANT v);
6290
6291     [propget, id(DISPID_IHTMLDOCUMENT3_ONCELLCHANGE), displaybind, bindable]
6292     VARIANT oncellchange();
6293
6294     [propput, id(DISPID_IHTMLDOCUMENT3_ONDATASETCHANGED), displaybind, bindable]
6295     void ondatasetchanged(VARIANT v);
6296
6297     [propget, id(DISPID_IHTMLDOCUMENT3_ONDATASETCHANGED), displaybind, bindable]
6298     VARIANT ondatasetchanged();
6299
6300     [propput, id(DISPID_IHTMLDOCUMENT3_ONDATAAVAILABLE), displaybind, bindable]
6301     void ondataavailable(VARIANT v);
6302
6303     [propget, id(DISPID_IHTMLDOCUMENT3_ONDATAAVAILABLE), displaybind, bindable]
6304     VARIANT ondataavailable();
6305
6306     [propput, id(DISPID_IHTMLDOCUMENT3_ONDATASETCOMPLETE), displaybind, bindable]
6307     void ondatasetcomplete(VARIANT v);
6308
6309     [propget, id(DISPID_IHTMLDOCUMENT3_ONDATASETCOMPLETE), displaybind, bindable]
6310     VARIANT ondatasetcomplete();
6311
6312     [propput, id(DISPID_IHTMLDOCUMENT3_ONPROPERTYCHANGE), displaybind, bindable]
6313     void onpropertychange(VARIANT v);
6314
6315     [propget, id(DISPID_IHTMLDOCUMENT3_ONPROPERTYCHANGE), displaybind, bindable]
6316     VARIANT onpropertychange();
6317
6318     [propput, id(DISPID_IHTMLDOCUMENT3_DIR)]
6319     void dir(BSTR v);
6320
6321     [propget, id(DISPID_IHTMLDOCUMENT3_DIR)]
6322     BSTR dir();
6323
6324     [propput, id(DISPID_IHTMLDOCUMENT3_ONCONTEXTMENU), displaybind, bindable]
6325     void oncontextmenu(VARIANT v);
6326
6327     [propget, id(DISPID_IHTMLDOCUMENT3_ONCONTEXTMENU), displaybind, bindable]
6328     VARIANT oncontextmenu();
6329
6330     [propput, id(DISPID_IHTMLDOCUMENT3_ONSTOP), displaybind, bindable]
6331     void onstop(VARIANT v);
6332
6333     [propget, id(DISPID_IHTMLDOCUMENT3_ONSTOP), displaybind, bindable]
6334     VARIANT onstop();
6335
6336     [id(DISPID_IHTMLDOCUMENT3_CREATEDOCUMENTFRAGMENT)]
6337     IHTMLDocument2 *createDocumentFragment();
6338
6339     [propget, id(DISPID_IHTMLDOCUMENT3_PARENTDOCUMENT), hidden, restricted]
6340     IHTMLDocument2 *parentDocument();
6341
6342     [propput, id(DISPID_IHTMLDOCUMENT3_ENABLEDOWNLOAD), hidden, restricted]
6343     void enableDownload(VARIANT_BOOL v);
6344
6345     [propget, id(DISPID_IHTMLDOCUMENT3_ENABLEDOWNLOAD), hidden, restricted]
6346     VARIANT_BOOL enableDownload();
6347
6348     [propput, id(DISPID_IHTMLDOCUMENT3_BASEURL), hidden, restricted]
6349     void baseUrl(BSTR v);
6350
6351     [propget, id(DISPID_IHTMLDOCUMENT3_BASEURL), hidden, restricted]
6352     BSTR baseUrl();
6353
6354     [propput, id(DISPID_IHTMLDOCUMENT3_INHERITSTYLESHEETS), hidden, restricted]
6355     void inheritStyleSheets(VARIANT_BOOL v);
6356
6357     [propget, id(DISPID_IHTMLDOCUMENT3_INHERITSTYLESHEETS), hidden, restricted]
6358     VARIANT_BOOL inheritStyleSheets();
6359
6360     [propput, id(DISPID_IHTMLDOCUMENT3_ONBEFOREEDITFOCUS), displaybind, bindable]
6361     void onbeforeeditfocus(VARIANT v);
6362
6363     [propget, id(DISPID_IHTMLDOCUMENT3_ONBEFOREEDITFOCUS), displaybind, bindable]
6364     VARIANT onbeforeeditfocus();
6365
6366     [id(DISPID_IHTMLDOCUMENT3_GETELEMENTSBYNAME)]
6367     IHTMLElementCollection *getElementsByName([in] BSTR v);
6368
6369     [id(DISPID_IHTMLDOCUMENT3_GETELEMENTBYID)]
6370     IHTMLElement *getElementById([in] BSTR v);
6371
6372     [id(DISPID_IHTMLDOCUMENT3_GETELEMENTSBYTAGNAME)]
6373     IHTMLElementCollection *getElementsByTagName([in] BSTR v);
6374
6375     [id(DISPID_IHTMLDOCUMENT4_FOCUS)]
6376     void focus();
6377
6378     [id(DISPID_IHTMLDOCUMENT4_HASFOCUS)]
6379     VARIANT_BOOL hasFocus();
6380
6381     [propput, id(DISPID_IHTMLDOCUMENT4_ONSELECTIONCHANGE), displaybind, bindable]
6382     void onselectionchange(VARIANT v);
6383
6384     [propget, id(DISPID_IHTMLDOCUMENT4_ONSELECTIONCHANGE), displaybind, bindable]
6385     VARIANT onselectionchange();
6386
6387     [propget, id(DISPID_IHTMLDOCUMENT4_NAMESPACES)]
6388     IDispatch *namespaces();
6389
6390     [id(DISPID_IHTMLDOCUMENT4_CREATEDOCUMENTFROMURL)]
6391     IHTMLDocument2 *createDocumentFromUrl(
6392         [in] BSTR bstrUrl,
6393         [in] BSTR bstrOptions);
6394
6395     [propput, id(DISPID_IHTMLDOCUMENT4_MEDIA)]
6396     void media(BSTR v);
6397
6398     [propget, id(DISPID_IHTMLDOCUMENT4_MEDIA)]
6399     BSTR media();
6400
6401     [id(DISPID_IHTMLDOCUMENT4_CREATEEVENTOBJECT)]
6402     IHTMLEventObj *createEventObject([optional, in] VARIANT *pvarEventObject);
6403
6404     [id(DISPID_IHTMLDOCUMENT4_FIREEVENT)]
6405     VARIANT_BOOL fireEvent(
6406         [in] BSTR bstrEventName,
6407         [optional, in] VARIANT *pvarEventObject);
6408
6409     [id(DISPID_IHTMLDOCUMENT4_CREATERENDERSTYLE)]
6410     IHTMLRenderStyle *createRenderStyle([in] BSTR v);
6411
6412     [propput, id(DISPID_IHTMLDOCUMENT4_ONCONTROLSELECT), displaybind, bindable]
6413     void oncontrolselect(VARIANT v);
6414
6415     [propget, id(DISPID_IHTMLDOCUMENT4_ONCONTROLSELECT), displaybind, bindable]
6416     VARIANT oncontrolselect();
6417
6418     [propget, id(DISPID_IHTMLDOCUMENT4_URLUNENCODED)]
6419     BSTR URLUnencoded();
6420
6421     [propput, id(DISPID_IHTMLDOCUMENT5_ONMOUSEWHEEL), displaybind, bindable]
6422     void onmousewheel(VARIANT v);
6423
6424     [propget, id(DISPID_IHTMLDOCUMENT5_ONMOUSEWHEEL), displaybind, bindable]
6425     VARIANT onmousewheel();
6426
6427     [propget, id(DISPID_IHTMLDOCUMENT5_DOCTYPE)]
6428     IHTMLDOMNode *doctype();
6429
6430     [propget, id(DISPID_IHTMLDOCUMENT5_IMPLEMENTATION)]
6431     IHTMLDOMImplementation *implementation();
6432
6433     [id(DISPID_IHTMLDOCUMENT5_CREATEATTRIBUTE)]
6434     IHTMLDOMAttribute *createAttribute([in] BSTR bstrattrName);
6435
6436     [id(DISPID_IHTMLDOCUMENT5_CREATECOMMENT)]
6437     IHTMLDOMNode *createComment([in] BSTR bstrdata);
6438
6439     [propput, id(DISPID_IHTMLDOCUMENT5_ONFOCUSIN), displaybind, bindable]
6440     void onfocusin(VARIANT v);
6441
6442     [propget, id(DISPID_IHTMLDOCUMENT5_ONFOCUSIN), displaybind, bindable]
6443     VARIANT onfocusin();
6444
6445     [propput, id(DISPID_IHTMLDOCUMENT5_ONFOCUSOUT), displaybind, bindable]
6446     void onfocusout(VARIANT v);
6447
6448     [propget, id(DISPID_IHTMLDOCUMENT5_ONFOCUSOUT), displaybind, bindable]
6449     VARIANT onfocusout();
6450
6451     [propput, id(DISPID_IHTMLDOCUMENT5_ONACTIVATE), displaybind, bindable]
6452     void onactivate(VARIANT v);
6453
6454     [propget, id(DISPID_IHTMLDOCUMENT5_ONACTIVATE), displaybind, bindable]
6455     VARIANT onactivate();
6456
6457     [propput, id(DISPID_IHTMLDOCUMENT5_ONDEACTIVATE), displaybind, bindable]
6458     void ondeactivate(VARIANT v);
6459
6460     [propget, id(DISPID_IHTMLDOCUMENT5_ONDEACTIVATE), displaybind, bindable]
6461     VARIANT ondeactivate();
6462
6463     [propput, id(DISPID_IHTMLDOCUMENT5_ONBEFOREACTIVATE), displaybind, bindable]
6464     void onbeforeactivate(VARIANT v);
6465
6466     [propget, id(DISPID_IHTMLDOCUMENT5_ONBEFOREACTIVATE), displaybind, bindable]
6467     VARIANT onbeforeactivate();
6468
6469     [propput, id(DISPID_IHTMLDOCUMENT5_ONBEFOREDEACTIVATE), displaybind, bindable]
6470     void onbeforedeactivate(VARIANT v);
6471
6472     [propget, id(DISPID_IHTMLDOCUMENT5_ONBEFOREDEACTIVATE), displaybind, bindable]
6473     VARIANT onbeforedeactivate();
6474
6475     [propget, id(DISPID_IHTMLDOCUMENT5_COMPATMODE)]
6476     BSTR compatMode();
6477
6478     [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)]
6479     long nodeType();
6480
6481     [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)]
6482     IHTMLDOMNode *parentNode();
6483
6484     [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)]
6485     VARIANT_BOOL hasChildNodes();
6486
6487     [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)]
6488     IDispatch *childNodes();
6489
6490     [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)]
6491     IDispatch *attributes();
6492
6493     [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)]
6494     IHTMLDOMNode *insertBefore(
6495         [in] IHTMLDOMNode *newChild,
6496         [optional, in] VARIANT refChild);
6497
6498     [id(DISPID_IHTMLDOMNODE_REMOVECHILD)]
6499     IHTMLDOMNode *removeChild([in] IHTMLDOMNode *oldChild);
6500
6501     [id(DISPID_IHTMLDOMNODE_REPLACECHILD)]
6502     IHTMLDOMNode *replaceChild(
6503         [in] IHTMLDOMNode *newChild,
6504         [in] IHTMLDOMNode *oldChild);
6505
6506     [id(DISPID_IHTMLDOMNODE_CLONENODE)]
6507     IHTMLDOMNode *cloneNode([in] VARIANT_BOOL fDeep);
6508
6509     [id(DISPID_IHTMLDOMNODE_REMOVENODE)]
6510     IHTMLDOMNode *removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
6511
6512     [id(DISPID_IHTMLDOMNODE_SWAPNODE)]
6513     IHTMLDOMNode *swapNode([in] IHTMLDOMNode* otherNode);
6514
6515     [id(DISPID_IHTMLDOMNODE_REPLACENODE)]
6516     IHTMLDOMNode *replaceNode([in] IHTMLDOMNode *replacement);
6517
6518     [id(DISPID_IHTMLDOMNODE_APPENDCHILD)]
6519     IHTMLDOMNode *appendChild([in] IHTMLDOMNode *newChild);
6520
6521     [propget, id(DISPID_IHTMLDOMNODE_NODENAME)]
6522     BSTR nodeName();
6523
6524     [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)]
6525     void nodeValue(VARIANT v);
6526
6527     [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)]
6528     VARIANT nodeValue();
6529
6530     [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)]
6531     IHTMLDOMNode *firstChild();
6532
6533     [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)]
6534     IHTMLDOMNode *lastChild();
6535
6536     [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)]
6537     IHTMLDOMNode *previousSibling();
6538
6539     [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)]
6540     IHTMLDOMNode *nextSibling();
6541
6542     [propget, id(DISPID_IHTMLDOMNODE2_OWNERDOCUMENT)]
6543     IDispatch *ownerDocument();
6544 }
6545
6546 /*****************************************************************************
6547  *    HTMLDocument coclass
6548  */
6549 [
6550     uuid(25336920-03F9-11cf-8FD0-00AA00686F13)
6551 ]
6552 coclass HTMLDocument
6553 {
6554     [default]         dispinterface DispHTMLDocument;
6555     [source, default] dispinterface HTMLDocumentEvents;
6556     [source]          dispinterface HTMLDocumentEvents2;
6557                       interface IHTMLDocument2;
6558                       interface IHTMLDocument3;
6559                       interface IHTMLDocument4;
6560                       interface IHTMLDocument5;
6561                       interface IHTMLDOMNode;
6562                       interface IHTMLDOMNode2;
6563 }
6564
6565 /*****************************************************************************
6566  *    HTMLTableEvents dispinterface
6567  */
6568 [
6569     hidden,
6570     uuid(3050f407-98b5-11cf-bb82-00aa00bdce0b)
6571 ]
6572 dispinterface HTMLTableEvents
6573 {
6574 properties:
6575 methods:
6576     [id(DISPID_HTMLELEMENTEVENTS_ONHELP)]
6577     VARIANT_BOOL onhelp();
6578
6579     [id(DISPID_HTMLELEMENTEVENTS_ONCLICK)]
6580     VARIANT_BOOL onclick();
6581
6582     [id(DISPID_HTMLELEMENTEVENTS_ONDBLCLICK)]
6583     VARIANT_BOOL ondblclick();
6584
6585     [id(DISPID_HTMLELEMENTEVENTS_ONKEYPRESS)]
6586     VARIANT_BOOL onkeypress();
6587
6588     [id(DISPID_HTMLELEMENTEVENTS_ONKEYDOWN)]
6589     void onkeydown();
6590
6591     [id(DISPID_HTMLELEMENTEVENTS_ONKEYUP)]
6592     void onkeyup();
6593
6594     [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOUT)]
6595     void onmouseout();
6596
6597     [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOVER)]
6598     void onmouseover();
6599
6600     [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEMOVE)]
6601     void onmousemove();
6602
6603     [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEDOWN)]
6604     void onmousedown();
6605
6606     [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEUP)]
6607     void onmouseup();
6608
6609     [id(DISPID_HTMLELEMENTEVENTS_ONSELECTSTART)]
6610     VARIANT_BOOL onselectstart();
6611
6612     [id(DISPID_HTMLELEMENTEVENTS_ONFILTERCHANGE)]
6613     void onfilterchange();
6614
6615     [id(DISPID_HTMLELEMENTEVENTS_ONDRAGSTART)]
6616     VARIANT_BOOL ondragstart();
6617
6618     [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREUPDATE)]
6619     VARIANT_BOOL onbeforeupdate();
6620
6621     [id(DISPID_HTMLELEMENTEVENTS_ONAFTERUPDATE)]
6622     void onafterupdate();
6623
6624     [id(DISPID_HTMLELEMENTEVENTS_ONERRORUPDATE)]
6625     VARIANT_BOOL onerrorupdate();
6626
6627     [id(DISPID_HTMLELEMENTEVENTS_ONROWEXIT)]
6628     VARIANT_BOOL onrowexit();
6629
6630     [id(DISPID_HTMLELEMENTEVENTS_ONROWENTER)]
6631     void onrowenter();
6632
6633     [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCHANGED)]
6634     void ondatasetchanged();
6635
6636     [id(DISPID_HTMLELEMENTEVENTS_ONDATAAVAILABLE)]
6637     void ondataavailable();
6638
6639     [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCOMPLETE)]
6640     void ondatasetcomplete();
6641
6642     [id(DISPID_HTMLELEMENTEVENTS_ONLOSECAPTURE)]
6643     void onlosecapture();
6644
6645     [id(DISPID_HTMLELEMENTEVENTS_ONPROPERTYCHANGE)]
6646     void onpropertychange();
6647
6648     [id(DISPID_HTMLELEMENTEVENTS_ONSCROLL)]
6649     void onscroll();
6650
6651     [id(DISPID_HTMLELEMENTEVENTS_ONFOCUS)]
6652     void onfocus();
6653
6654     [id(DISPID_HTMLELEMENTEVENTS_ONBLUR)]
6655     void onblur();
6656
6657     [id(DISPID_HTMLELEMENTEVENTS_ONRESIZE)]
6658     void onresize();
6659
6660     [id(DISPID_HTMLELEMENTEVENTS_ONDRAG)]
6661     VARIANT_BOOL ondrag();
6662
6663     [id(DISPID_HTMLELEMENTEVENTS_ONDRAGEND)]
6664     void ondragend();
6665
6666     [id(DISPID_HTMLELEMENTEVENTS_ONDRAGENTER)]
6667     VARIANT_BOOL ondragenter();
6668
6669     [id(DISPID_HTMLELEMENTEVENTS_ONDRAGOVER)]
6670     VARIANT_BOOL ondragover();
6671
6672     [id(DISPID_HTMLELEMENTEVENTS_ONDRAGLEAVE)]
6673     void ondragleave();
6674
6675     [id(DISPID_HTMLELEMENTEVENTS_ONDROP)]
6676     VARIANT_BOOL ondrop();
6677
6678     [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECUT)]
6679     VARIANT_BOOL onbeforecut();
6680
6681     [id(DISPID_HTMLELEMENTEVENTS_ONCUT)]
6682     VARIANT_BOOL oncut();
6683
6684     [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECOPY)]
6685     VARIANT_BOOL onbeforecopy();
6686
6687     [id(DISPID_HTMLELEMENTEVENTS_ONCOPY)]
6688     VARIANT_BOOL oncopy();
6689
6690     [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREPASTE)]
6691     VARIANT_BOOL onbeforepaste();
6692
6693     [id(DISPID_HTMLELEMENTEVENTS_ONPASTE)]
6694     VARIANT_BOOL onpaste();
6695
6696     [id(DISPID_HTMLELEMENTEVENTS_ONCONTEXTMENU)]
6697     VARIANT_BOOL oncontextmenu();
6698
6699     [id(DISPID_HTMLELEMENTEVENTS_ONROWSDELETE)]
6700     void onrowsdelete();
6701
6702     [id(DISPID_HTMLELEMENTEVENTS_ONROWSINSERTED)]
6703     void onrowsinserted();
6704
6705     [id(DISPID_HTMLELEMENTEVENTS_ONCELLCHANGE)]
6706     void oncellchange();
6707
6708     [id(DISPID_HTMLELEMENTEVENTS_ONREADYSTATECHANGE)]
6709     void onreadystatechange();
6710
6711     [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREEDITFOCUS)]
6712     void onbeforeeditfocus();
6713
6714     [id(DISPID_HTMLELEMENTEVENTS_ONLAYOUTCOMPLETE)]
6715     void onlayoutcomplete();
6716
6717     [id(DISPID_HTMLELEMENTEVENTS_ONPAGE)]
6718     void onpage();
6719
6720     [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREDEACTIVATE)]
6721     VARIANT_BOOL onbeforedeactivate();
6722
6723     [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREACTIVATE)]
6724     VARIANT_BOOL onbeforeactivate();
6725
6726     [id(DISPID_HTMLELEMENTEVENTS_ONMOVE)]
6727     void onmove();
6728
6729     [id(DISPID_HTMLELEMENTEVENTS_ONCONTROLSELECT)]
6730     VARIANT_BOOL oncontrolselect();
6731
6732     [id(DISPID_HTMLELEMENTEVENTS_ONMOVESTART)]
6733     VARIANT_BOOL onmovestart();
6734
6735     [id(DISPID_HTMLELEMENTEVENTS_ONMOVEEND)]
6736     void onmoveend();
6737
6738     [id(DISPID_HTMLELEMENTEVENTS_ONRESIZESTART)]
6739     VARIANT_BOOL onresizestart();
6740
6741     [id(DISPID_HTMLELEMENTEVENTS_ONRESIZEEND)]
6742     void onresizeend();
6743
6744     [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEENTER)]
6745     void onmouseenter();
6746
6747     [id(DISPID_HTMLELEMENTEVENTS_ONMOUSELEAVE)]
6748     void onmouseleave();
6749
6750     [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEWHEEL)]
6751     VARIANT_BOOL onmousewheel();
6752
6753     [id(DISPID_HTMLELEMENTEVENTS_ONACTIVATE)]
6754     void onactivate();
6755
6756     [id(DISPID_HTMLELEMENTEVENTS_ONDEACTIVATE)]
6757     void ondeactivate();
6758
6759     [id(DISPID_HTMLELEMENTEVENTS_ONFOCUSIN)]
6760     void onfocusin();
6761
6762     [id(DISPID_HTMLELEMENTEVENTS_ONFOCUSOUT)]
6763     void onfocusout();
6764 }
6765
6766 /*****************************************************************************
6767  *    IHTMLTableCaption interface
6768  */
6769 [
6770     odl,
6771     oleautomation,
6772     dual,
6773     uuid(3050f2eb-98b5-11cf-bb82-00aa00bdce0b)
6774 ]
6775 interface IHTMLTableCaption : IDispatch
6776 {
6777     [propput, id(DISPID_IHTMLTABLECAPTION_ALIGN)]
6778     HRESULT align([in] BSTR v);
6779
6780     [propget, id(DISPID_IHTMLTABLECAPTION_ALIGN)]
6781     HRESULT align([retval, out] BSTR *p);
6782
6783     [propput, id(DISPID_IHTMLTABLECAPTION_VALIGN)]
6784     HRESULT vAlign([in] BSTR v);
6785
6786     [propget, id(DISPID_IHTMLTABLECAPTION_VALIGN)]
6787     HRESULT vAlign([retval, out] BSTR *p);
6788 }
6789
6790 interface IHTMLTableSection;
6791
6792 /*****************************************************************************
6793  *    IHTMLTable interface
6794  */
6795 [
6796     odl,
6797     oleautomation,
6798     dual,
6799     uuid(3050f21e-98b5-11cf-bb82-00aa00bdce0b)
6800 ]
6801 interface IHTMLTable : IDispatch
6802 {
6803     [propput, id(DISPID_IHTMLTABLE_COLS)]
6804     HRESULT cols([in] long v);
6805
6806     [propget, id(DISPID_IHTMLTABLE_COLS)]
6807     HRESULT cols([retval, out] long *p);
6808
6809     [propput, id(DISPID_IHTMLTABLE_BORDER)]
6810     HRESULT border([in] VARIANT v);
6811
6812     [propget, id(DISPID_IHTMLTABLE_BORDER)]
6813     HRESULT border([retval, out] VARIANT *p);
6814
6815     [propput, id(DISPID_IHTMLTABLE_FRAME)]
6816     HRESULT frame([in] BSTR v);
6817
6818     [propget, id(DISPID_IHTMLTABLE_FRAME)]
6819     HRESULT frame([retval, out] BSTR *p);
6820
6821     [propput, id(DISPID_IHTMLTABLE_RULES)]
6822     HRESULT rules([in] BSTR v);
6823
6824     [propget, id(DISPID_IHTMLTABLE_RULES)]
6825     HRESULT rules([retval, out] BSTR *p);
6826
6827     [propput, id(DISPID_IHTMLTABLE_CELLSPACING)]
6828     HRESULT cellSpacing([in] VARIANT v);
6829
6830     [propget, id(DISPID_IHTMLTABLE_CELLSPACING)]
6831     HRESULT cellSpacing([retval, out] VARIANT *p);
6832
6833     [propput, id(DISPID_IHTMLTABLE_CELLPADDING)]
6834     HRESULT cellPadding([in] VARIANT v);
6835
6836     [propget, id(DISPID_IHTMLTABLE_CELLPADDING)]
6837     HRESULT cellPadding([retval, out] VARIANT *p);
6838
6839     [propput, id(DISPID_IHTMLTABLE_BACKGROUND)]
6840     HRESULT background([in] BSTR v);
6841
6842     [propget, id(DISPID_IHTMLTABLE_BACKGROUND)]
6843     HRESULT background([retval, out] BSTR *p);
6844
6845     [propput, id(DISPID_IHTMLTABLE_BGCOLOR)]
6846     HRESULT bgColor([in] VARIANT v);
6847
6848     [propget, id(DISPID_IHTMLTABLE_BGCOLOR)]
6849     HRESULT bgColor([retval, out] VARIANT *p);
6850
6851     [propput, id(DISPID_IHTMLTABLE_BORDERCOLOR)]
6852     HRESULT borderColor([in] VARIANT v);
6853
6854     [propget, id(DISPID_IHTMLTABLE_BORDERCOLOR)]
6855     HRESULT borderColor([retval, out] VARIANT *p);
6856
6857     [propput, id(DISPID_IHTMLTABLE_BORDERCOLORLIGHT)]
6858     HRESULT borderColorLight([in] VARIANT v);
6859
6860     [propget, id(DISPID_IHTMLTABLE_BORDERCOLORLIGHT)]
6861     HRESULT borderColorLight([retval, out] VARIANT *p);
6862
6863     [propput, id(DISPID_IHTMLTABLE_BORDERCOLORDARK)]
6864     HRESULT borderColorDark([in] VARIANT v);
6865
6866     [propget, id(DISPID_IHTMLTABLE_BORDERCOLORDARK)]
6867     HRESULT borderColorDark([retval, out] VARIANT *p);
6868
6869     [propput, id(DISPID_IHTMLTABLE_ALIGN)]
6870     HRESULT align([in] BSTR v);
6871
6872     [propget, id(DISPID_IHTMLTABLE_ALIGN)]
6873     HRESULT align([retval, out] BSTR * p);
6874
6875     [id(DISPID_IHTMLTABLE_REFRESH)]
6876     HRESULT refresh();
6877
6878     [propget, id(DISPID_IHTMLTABLE_ROWS)]
6879     HRESULT rows([retval, out] IHTMLElementCollection **p);
6880
6881     [propput, id(DISPID_IHTMLTABLE_WIDTH)]
6882     HRESULT width([in] VARIANT v);
6883
6884     [propget, id(DISPID_IHTMLTABLE_WIDTH)]
6885     HRESULT width([retval, out] VARIANT *p);
6886
6887     [propput, id(DISPID_IHTMLTABLE_HEIGHT)]
6888     HRESULT height([in] VARIANT v);
6889
6890     [propget, id(DISPID_IHTMLTABLE_HEIGHT)]
6891     HRESULT height([retval, out] VARIANT *p);
6892
6893     [propput, id(DISPID_IHTMLTABLE_DATAPAGESIZE)]
6894     HRESULT dataPageSize([in] long v);
6895
6896     [propget, id(DISPID_IHTMLTABLE_DATAPAGESIZE)]
6897     HRESULT dataPageSize([retval, out] long *p);
6898
6899     [id(DISPID_IHTMLTABLE_NEXTPAGE)]
6900     HRESULT nextPage();
6901
6902     [id(DISPID_IHTMLTABLE_PREVIOUSPAGE)]
6903     HRESULT previousPage();
6904
6905     [propget, id(DISPID_IHTMLTABLE_THEAD)]
6906     HRESULT tHead([retval, out] IHTMLTableSection **p);
6907
6908     [propget, id(DISPID_IHTMLTABLE_TFOOT)]
6909     HRESULT tFoot([retval, out] IHTMLTableSection **p);
6910
6911     [propget, id(DISPID_IHTMLTABLE_TBODIES)]
6912     HRESULT tBodies([retval, out] IHTMLElementCollection **p);
6913
6914     [propget, id(DISPID_IHTMLTABLE_CAPTION)]
6915     HRESULT caption([retval, out] IHTMLTableCaption **p);
6916
6917     [id(DISPID_IHTMLTABLE_CREATETHEAD)]
6918     HRESULT createTHead([retval, out] IDispatch **head);
6919
6920     [id(DISPID_IHTMLTABLE_DELETETHEAD)]
6921     HRESULT deleteTHead();
6922
6923     [id(DISPID_IHTMLTABLE_CREATETFOOT)]
6924     HRESULT createTFoot([retval, out] IDispatch **foot);
6925
6926     [id(DISPID_IHTMLTABLE_DELETETFOOT)]
6927     HRESULT deleteTFoot();
6928
6929     [id(DISPID_IHTMLTABLE_CREATECAPTION)]
6930     HRESULT createCaption([retval, out] IHTMLTableCaption **caption);
6931
6932     [id(DISPID_IHTMLTABLE_DELETECAPTION)]
6933     HRESULT deleteCaption();
6934
6935     [id(DISPID_IHTMLTABLE_INSERTROW)]
6936     HRESULT insertRow(
6937             [defaultvalue(-1), in] long index,
6938             [retval, out] IDispatch **row);
6939
6940     [id(DISPID_IHTMLTABLE_DELETEROW)]
6941     HRESULT deleteRow([defaultvalue(-1), in] long index);
6942
6943     [propget, id(DISPID_IHTMLTABLE_READYSTATE)]
6944     HRESULT readyState([retval, out] BSTR *p);
6945
6946     [propput, id(DISPID_IHTMLTABLE_ONREADYSTATECHANGE), displaybind, bindable]
6947     HRESULT onreadystatechange([in] VARIANT v);
6948
6949     [propget, id(DISPID_IHTMLTABLE_ONREADYSTATECHANGE), displaybind, bindable]
6950     HRESULT onreadystatechange([retval, out] VARIANT *p);
6951 }
6952
6953 [
6954     odl,
6955     oleautomation,
6956     dual,
6957     uuid(3050f23b-98b5-11cf-bb82-00aa00bdce0b)
6958 ]
6959 interface IHTMLTableSection : IDispatch
6960 {
6961     [propput, id(DISPID_IHTMLTABLESECTION_ALIGN)]
6962     HRESULT align([in] BSTR v);
6963
6964     [propget, id(DISPID_IHTMLTABLESECTION_ALIGN)]
6965     HRESULT align([retval, out] BSTR *p);
6966
6967     [propput, id(DISPID_IHTMLTABLESECTION_VALIGN)]
6968     HRESULT vAlign([in] BSTR v);
6969
6970     [propget, id(DISPID_IHTMLTABLESECTION_VALIGN)]
6971     HRESULT vAlign([retval, out] BSTR *p);
6972
6973     [propput, id(DISPID_IHTMLTABLESECTION_BGCOLOR)]
6974     HRESULT bgColor([in] VARIANT v);
6975
6976     [propget, id(DISPID_IHTMLTABLESECTION_BGCOLOR)]
6977     HRESULT bgColor([retval, out] VARIANT *p);
6978
6979     [propget, id(DISPID_IHTMLTABLESECTION_ROWS)]
6980     HRESULT rows([retval, out] IHTMLElementCollection **p);
6981
6982     [id(DISPID_IHTMLTABLESECTION_INSERTROW)]
6983     HRESULT insertRow(
6984             [defaultvalue(-1), in] long index,
6985             [retval, out] IDispatch **row);
6986
6987     [id(DISPID_IHTMLTABLESECTION_DELETEROW)]
6988     HRESULT deleteRow([defaultvalue(-1), in] long index);
6989 }
6990
6991 /*****************************************************************************
6992  *    IHTMLScriptElement interface
6993  */
6994 [
6995     odl,
6996     oleautomation,
6997     dual,
6998     uuid(3050f28b-98b5-11cf-bb82-00aa00bdce0b)
6999 ]
7000 interface IHTMLScriptElement : IDispatch
7001 {
7002     [propput, id(DISPID_IHTMLSCRIPTELEMENT_SRC), displaybind, bindable]
7003     HRESULT src([in] BSTR v);
7004
7005     [propget, id(DISPID_IHTMLSCRIPTELEMENT_SRC), displaybind, bindable]
7006     HRESULT src([retval, out] BSTR *p);
7007
7008     [propput, id(DISPID_IHTMLSCRIPTELEMENT_HTMLFOR), displaybind, bindable]
7009     HRESULT htmlFor([in] BSTR v);
7010
7011     [propget, id(DISPID_IHTMLSCRIPTELEMENT_HTMLFOR), displaybind, bindable]
7012     HRESULT htmlFor([retval, out] BSTR *p);
7013
7014     [propput, id(DISPID_IHTMLSCRIPTELEMENT_EVENT), displaybind, bindable]
7015     HRESULT event([in] BSTR v);
7016
7017     [propget, id(DISPID_IHTMLSCRIPTELEMENT_EVENT), displaybind, bindable]
7018     HRESULT event([retval, out] BSTR *p);
7019
7020     [propput, id(DISPID_IHTMLSCRIPTELEMENT_TEXT), displaybind, bindable]
7021     HRESULT text([in] BSTR v);
7022
7023     [propget, id(DISPID_IHTMLSCRIPTELEMENT_TEXT), displaybind, bindable]
7024     HRESULT text([retval, out] BSTR *p);
7025
7026     [propput, id(DISPID_IHTMLSCRIPTELEMENT_DEFER), displaybind, bindable]
7027     HRESULT defer([in] VARIANT_BOOL v);
7028
7029     [propget, id(DISPID_IHTMLSCRIPTELEMENT_DEFER), displaybind, bindable]
7030     HRESULT defer([retval, out] VARIANT_BOOL *p);
7031
7032     [propget, id(DISPID_IHTMLSCRIPTELEMENT_READYSTATE)]
7033     HRESULT readyState([retval, out] BSTR *p);
7034
7035     [propput, id(DISPID_IHTMLSCRIPTELEMENT_ONERROR), displaybind, bindable]
7036     HRESULT onerror([in] VARIANT v);
7037
7038     [propget, id(DISPID_IHTMLSCRIPTELEMENT_ONERROR), displaybind, bindable]
7039     HRESULT onerror([retval, out] VARIANT *p);
7040
7041     [propput, id(DISPID_IHTMLSCRIPTELEMENT_TYPE), displaybind, bindable]
7042     HRESULT type([in] BSTR v);
7043
7044     [propget, id(DISPID_IHTMLSCRIPTELEMENT_TYPE), displaybind, bindable]
7045     HRESULT type([retval, out] BSTR *p);
7046 }
7047
7048 /*****************************************************************************
7049  *    IHTMLScriptElement2 interface
7050  */
7051 [
7052     odl,
7053     oleautomation,
7054     dual,
7055     uuid(3050f828-98b5-11cf-bb82-00aa00bdce0b)
7056 ]
7057 interface IHTMLScriptElement2 : IDispatch
7058 {
7059     [propput, id(DISPID_IHTMLSCRIPTELEMENT2_CHARSET), displaybind, bindable]
7060     HRESULT charset([in] BSTR v);
7061
7062     [propget, id(DISPID_IHTMLSCRIPTELEMENT2_CHARSET), displaybind, bindable]
7063     HRESULT charset([retval, out] BSTR *p);
7064 }
7065
7066 /*****************************************************************************
7067  *    IHTMLFrameBase interface
7068  */
7069 [
7070     odl,
7071     oleautomation,
7072     dual,
7073     uuid(3050f311-98b5-11cf-bb82-00aa00bdce0b)
7074 ]
7075 interface IHTMLFrameBase : IDispatch
7076 {
7077     [propput, id(DISPID_IHTMLFRAMEBASE_SRC)]
7078     HRESULT src([in] BSTR v);
7079
7080     [propget, id(DISPID_IHTMLFRAMEBASE_SRC)]
7081     HRESULT src([out, retval] BSTR *p);
7082
7083     [propput, id(DISPID_IHTMLFRAMEBASE_NAME)]
7084     HRESULT name([in] BSTR v);
7085
7086     [propget, id(DISPID_IHTMLFRAMEBASE_NAME)]
7087     HRESULT name([out, retval] BSTR *p);
7088
7089     [propput, id(DISPID_IHTMLFRAMEBASE_BORDER)]
7090     HRESULT border([in] VARIANT v);
7091
7092     [propget, id(DISPID_IHTMLFRAMEBASE_BORDER)]
7093     HRESULT border([out, retval] VARIANT *p);
7094
7095     [propput, id(DISPID_IHTMLFRAMEBASE_FRAMEBORDER)]
7096     HRESULT frameBorder([in] BSTR v);
7097
7098     [propget, id(DISPID_IHTMLFRAMEBASE_FRAMEBORDER)]
7099     HRESULT frameBorder([out, retval] BSTR *p);
7100
7101     [propput, id(DISPID_IHTMLFRAMEBASE_FRAMESPACING)]
7102     HRESULT frameSpacing([in] VARIANT v);
7103
7104     [propget, id(DISPID_IHTMLFRAMEBASE_FRAMESPACING)]
7105     HRESULT frameSpacing([out, retval] VARIANT *p);
7106
7107     [propput, id(DISPID_IHTMLFRAMEBASE_MARGINWIDTH)]
7108     HRESULT marginWidth([in] VARIANT v);
7109
7110     [propget, id(DISPID_IHTMLFRAMEBASE_MARGINWIDTH)]
7111     HRESULT marginWidth([out, retval] VARIANT *p);
7112
7113     [propput, id(DISPID_IHTMLFRAMEBASE_MARGINHEIGHT)]
7114     HRESULT marginHeight([in] VARIANT v);
7115
7116     [propget, id(DISPID_IHTMLFRAMEBASE_MARGINHEIGHT)]
7117     HRESULT marginHeight([out, retval] VARIANT *p);
7118
7119     [propput, id(DISPID_IHTMLFRAMEBASE_NORESIZE)]
7120     HRESULT noResize([in] VARIANT_BOOL v);
7121
7122     [propget, id(DISPID_IHTMLFRAMEBASE_NORESIZE)]
7123     HRESULT noResize([out, retval] VARIANT_BOOL *p);
7124
7125     [propput, id(DISPID_IHTMLFRAMEBASE_SCROLLING)]
7126     HRESULT scrolling([in] BSTR v);
7127
7128     [propget, id(DISPID_IHTMLFRAMEBASE_SCROLLING)]
7129     HRESULT scrolling([out, retval] BSTR *p);
7130 }
7131
7132 /*****************************************************************************
7133  *    IHTMLFrameBase2 interface
7134  */
7135 [
7136     odl,
7137     oleautomation,
7138     dual,
7139     uuid(3050f6db-98b5-11cf-bb82-00aa00bdce0b)
7140 ]
7141 interface IHTMLFrameBase2 : IDispatch
7142 {
7143     [propget, id(DISPID_IHTMLFRAMEBASE2_CONTENTWINDOW)]
7144     HRESULT contentWindow([retval, out] IHTMLWindow2 **p);
7145
7146     [propput, id(DISPID_IHTMLFRAMEBASE2_ONLOAD), displaybind, bindable]
7147     HRESULT onload([in] VARIANT v);
7148
7149     [propget, id(DISPID_IHTMLFRAMEBASE2_ONLOAD), displaybind, bindable]
7150     HRESULT onload([retval, out] VARIANT *p);
7151
7152     [propput, id(DISPID_IHTMLFRAMEBASE2_ONREADYSTATECHANGE), displaybind, bindable]
7153     HRESULT onreadystatechange([in] VARIANT v);
7154
7155     [propget, id(DISPID_IHTMLFRAMEBASE2_ONREADYSTATECHANGE), displaybind, bindable]
7156     HRESULT onreadystatechange([retval, out] VARIANT *p);
7157
7158     [propget, id(DISPID_IHTMLFRAMEBASE2_READYSTATE)]
7159     HRESULT readyState([retval, out] BSTR *p);
7160
7161     [propput, id(DISPID_IHTMLFRAMEBASE2_ALLOWTRANSPARENCY)]
7162     HRESULT allowTransparency([in] VARIANT_BOOL v);
7163
7164     [propget, id(DISPID_IHTMLFRAMEBASE2_ALLOWTRANSPARENCY)]
7165     HRESULT allowTransparency([retval, out] VARIANT_BOOL *p);
7166 }
7167
7168 } /* library MSHTML */