richedit: Implement rule that in 1.0 emulation, a single CR that terminates the text...
[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  *    IHTMLDOMTextNode interface
1681  */
1682 [
1683     odl,
1684     oleautomation,
1685     dual,
1686     uuid(3050f4b1-98b5-11cf-bb82-00aa00bdce0b)
1687 ]
1688 interface IHTMLDOMTextNode : IDispatch
1689 {
1690     [propput, id(DISPID_IHTMLDOMTEXTNODE_DATA)]
1691     HRESULT data([in] BSTR v);
1692
1693     [propget, id(DISPID_IHTMLDOMTEXTNODE_DATA)]
1694     HRESULT data([out, retval] BSTR *p);
1695
1696     [id(DISPID_IHTMLDOMTEXTNODE_TOSTRING)]
1697     HRESULT toString([out, retval] BSTR *String);
1698
1699     [propget, id(DISPID_IHTMLDOMTEXTNODE_LENGTH)]
1700     HRESULT length([out, retval] long *p);
1701
1702     [id(DISPID_IHTMLDOMTEXTNODE_SPLITTEXT)]
1703     HRESULT splitText(
1704             [in] long offset,
1705             [out, retval] IHTMLDOMNode **pRetNode);
1706 }
1707
1708 /*****************************************************************************
1709  *    IHTMLDOMImplementation interface
1710  */
1711 [
1712     odl,
1713     oleautomation,
1714     dual,
1715     uuid(3050f80d-98b5-11cf-bb82-00aa00bdce0b)
1716 ]
1717 interface IHTMLDOMImplementation : IDispatch
1718 {
1719     [id(DISPID_IHTMLDOMIMPLEMENTATION_HASFEATURE)]
1720     HRESULT hasFeature(
1721         [in] BSTR bstrfeature,
1722         [optional, in] VARIANT version,
1723         [retval, out] VARIANT_BOOL *pfHasFeature);
1724 }
1725
1726 /*****************************************************************************
1727  *    DispHTMLDOMTextNode dispinterface
1728  */
1729 [
1730     hidden,
1731     uuid(3050f565-98b5-11cf-bb82-00aa00bdce0b)
1732 ]
1733 dispinterface DispHTMLDOMTextNode
1734 {
1735 properties:
1736 methods:
1737     [propput, id(DISPID_IHTMLDOMTEXTNODE_DATA)]
1738     void data(BSTR v);
1739
1740     [propget, id(DISPID_IHTMLDOMTEXTNODE_DATA)]
1741     BSTR data();
1742
1743     [id(DISPID_IHTMLDOMTEXTNODE_TOSTRING)]
1744     BSTR toString();
1745
1746     [propget, id(DISPID_IHTMLDOMTEXTNODE_LENGTH)]
1747     long length();
1748
1749     [id(DISPID_IHTMLDOMTEXTNODE_SPLITTEXT)]
1750     IHTMLDOMNode *splitText([in] long offset);
1751
1752     [id(DISPID_IHTMLDOMTEXTNODE2_SUBSTRINGDATA)]
1753     BSTR substringData(
1754             [in] long offset,
1755             [in] long Count);
1756
1757     [id(DISPID_IHTMLDOMTEXTNODE2_APPENDDATA)]
1758     void appendData([in] BSTR bstrstring);
1759
1760     [id(DISPID_IHTMLDOMTEXTNODE2_INSERTDATA)]
1761     void insertData(
1762             [in] long offset,
1763             [in] BSTR bstrstring);
1764
1765     [id(DISPID_IHTMLDOMTEXTNODE2_DELETEDATA)]
1766     void deleteData(
1767             [in] long offset,
1768             [in] long Count);
1769
1770     [id(DISPID_IHTMLDOMTEXTNODE2_REPLACEDATA)]
1771     void replaceData(
1772             [in] long offset,
1773             [in] long Count,
1774             [in] BSTR bstrstring);
1775
1776     [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)]
1777     long nodeType();
1778
1779     [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)]
1780     IHTMLDOMNode *parentNode();
1781
1782     [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)]
1783     VARIANT_BOOL hasChildNodes();
1784
1785     [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)]
1786     IDispatch *childNodes();
1787
1788     [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)]
1789     IDispatch *attributes();
1790
1791     [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)]
1792     IHTMLDOMNode *insertBefore(
1793             [in] IHTMLDOMNode *newChild,
1794             [in, optional] VARIANT refChild);
1795
1796     [id(DISPID_IHTMLDOMNODE_REMOVECHILD)]
1797     IHTMLDOMNode *removeChild([in] IHTMLDOMNode *oldChild);
1798
1799     [id(DISPID_IHTMLDOMNODE_REPLACECHILD)]
1800     IHTMLDOMNode *replaceChild(
1801             [in] IHTMLDOMNode *newChild,
1802             [in] IHTMLDOMNode *oldChild);
1803
1804     [id(DISPID_IHTMLDOMNODE_CLONENODE)]
1805     IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
1806
1807     [id(DISPID_IHTMLDOMNODE_REMOVENODE)]
1808     IHTMLDOMNode *removeNode([in, defaultvalue(0)] VARIANT_BOOL fDeep);
1809
1810     [id(DISPID_IHTMLDOMNODE_SWAPNODE)]
1811     IHTMLDOMNode *swapNode([in] IHTMLDOMNode *otherNode);
1812
1813     [id(DISPID_IHTMLDOMNODE_REPLACENODE)]
1814     IHTMLDOMNode *replaceNode([in] IHTMLDOMNode *replacement);
1815
1816     [id(DISPID_IHTMLDOMNODE_APPENDCHILD)]
1817     IHTMLDOMNode *appendChild([in] IHTMLDOMNode *newChild);
1818
1819     [propget, id(DISPID_IHTMLDOMNODE_NODENAME)]
1820     BSTR nodeName();
1821
1822     [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)]
1823     void nodeValue(VARIANT v);
1824
1825     [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)]
1826     VARIANT nodeValue();
1827
1828     [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)]
1829     IHTMLDOMNode *firstChild();
1830
1831     [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)]
1832     IHTMLDOMNode *lastChild();
1833
1834     [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)]
1835     IHTMLDOMNode *previousSibling();
1836
1837     [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)]
1838     IHTMLDOMNode* nextSibling();
1839
1840     [propget, id(DISPID_IHTMLDOMNODE2_OWNERDOCUMENT)]
1841     IDispatch *ownerDocument();
1842 }
1843
1844 /*****************************************************************************
1845  *    IHTMLDOMChildrenCollection interface
1846  */
1847 [
1848     odl,
1849     oleautomation,
1850     dual,
1851     uuid(3050f5ab-98b5-11cf-bb82-00aa00bdce0b)
1852 ]
1853 interface IHTMLDOMChildrenCollection : IDispatch
1854 {
1855     [propget, id(DISPID_IHTMLDOMCHILDRENCOLLECTION_LENGTH)]
1856     HRESULT length([out, retval] long *p);
1857
1858     [propget, id(DISPID_IHTMLDOMCHILDRENCOLLECTION__NEWENUM), hidden, restricted]
1859     HRESULT _newEnum([out, retval] IUnknown **p);
1860
1861     [id(DISPID_IHTMLDOMCHILDRENCOLLECTION_ITEM)]
1862     HRESULT item(
1863             [in] long index,
1864             [out, retval] IDispatch **ppItem);
1865 }
1866
1867 /*****************************************************************************
1868  *    DispDOMChildrenCollection dispinterface
1869  */
1870 [
1871     hidden,
1872     uuid(3050f577-98b5-11cf-bb82-00aa00bdce0b)
1873 ]
1874 dispinterface DispDOMChildrenCollection
1875 {
1876 properties:
1877 methods:
1878     [propget, id(DISPID_IHTMLDOMCHILDRENCOLLECTION_LENGTH)]
1879     long length();
1880
1881     [propget, id(DISPID_IHTMLDOMCHILDRENCOLLECTION__NEWENUM), hidden, restricted]
1882     IUnknown *_newEnum();
1883
1884     [id(DISPID_IHTMLDOMCHILDRENCOLLECTION_ITEM)]
1885     IDispatch *item([in] long index);
1886 }
1887
1888 interface IHTMLElementCollection;
1889
1890 /*****************************************************************************
1891  *    IHTMLElement interface
1892  */
1893 [
1894     odl,
1895     dual,
1896     oleautomation,
1897     uuid(3050f1FF-98B5-11CF-BB82-00AA00BDCE0B)
1898 ]
1899 interface IHTMLElement : IDispatch
1900 {
1901     [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)]
1902     HRESULT setAttribute(
1903         [in] BSTR strAttributeName,
1904         [in] VARIANT AttributeValue,
1905         [defaultvalue(1), in] LONG lFlags);
1906
1907     [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)]
1908     HRESULT getAttribute(
1909         [in] BSTR strAttributeName,
1910         [defaultvalue(0), in] LONG lFlags,
1911         [retval, out] VARIANT *AttributeValue);
1912
1913     [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)]
1914     HRESULT removeAttribute(
1915         [in] BSTR strAttributeName,
1916         [defaultvalue(1), in] LONG lFlags,
1917         [retval, out] VARIANT_BOOL *pfSuccess);
1918
1919     [propput, id(DISPID_IHTMLELEMENT_CLASSNAME)]
1920     HRESULT className([in] BSTR v);
1921
1922     [propget, id(DISPID_IHTMLELEMENT_CLASSNAME)]
1923     HRESULT className([retval, out] BSTR *p);
1924
1925     [propput, id(DISPID_IHTMLELEMENT_ID)]
1926     HRESULT id([in] BSTR v);
1927
1928     [propget, id(DISPID_IHTMLELEMENT_ID)]
1929     HRESULT id([retval, out] BSTR *p);
1930
1931     [propget, id(DISPID_IHTMLELEMENT_TAGNAME)]
1932     HRESULT tagName([retval, out] BSTR *p);
1933
1934     [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)]
1935     HRESULT parentElement([retval, out] IHTMLElement **p);
1936
1937     [propget, id(DISPID_IHTMLELEMENT_STYLE)]
1938     HRESULT style([retval, out] IHTMLStyle **p);
1939
1940     [propput, id(DISPID_IHTMLELEMENT_ONHELP)]
1941     HRESULT onhelp([in] VARIANT v);
1942
1943     [propget, id(DISPID_IHTMLELEMENT_ONHELP)]
1944     HRESULT onhelp([retval, out] VARIANT *p);
1945
1946     [propput, id(DISPID_IHTMLELEMENT_ONCLICK)]
1947     HRESULT onclick([in] VARIANT v);
1948
1949     [propget, id(DISPID_IHTMLELEMENT_ONCLICK)]
1950     HRESULT onclick([retval, out] VARIANT *p);
1951
1952     [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK)]
1953     HRESULT ondblclick([in] VARIANT v);
1954
1955     [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK)]
1956     HRESULT ondblclick([retval, out] VARIANT *p);
1957
1958     [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN)]
1959     HRESULT onkeydown([in] VARIANT v);
1960
1961     [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN)]
1962     HRESULT onkeydown([retval, out] VARIANT *p);
1963
1964     [propput, id(DISPID_IHTMLELEMENT_ONKEYUP)]
1965     HRESULT onkeyup([in] VARIANT v);
1966
1967     [propget, id(DISPID_IHTMLELEMENT_ONKEYUP)]
1968     HRESULT onkeyup([retval, out] VARIANT *p);
1969
1970     [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS)]
1971     HRESULT onkeypress([in] VARIANT v);
1972
1973     [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS)]
1974     HRESULT onkeypress([retval, out] VARIANT *p);
1975
1976     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT)]
1977     HRESULT onmouseout([in] VARIANT v);
1978
1979     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT)]
1980     HRESULT onmouseout([retval, out] VARIANT *p);
1981
1982     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER)]
1983     HRESULT onmouseover([in] VARIANT v);
1984
1985     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER)]
1986     HRESULT onmouseover([retval, out] VARIANT *p);
1987
1988     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE)]
1989     HRESULT onmousemove([in] VARIANT v);
1990
1991     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE)]
1992     HRESULT onmousemove([retval, out] VARIANT *p);
1993
1994     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN)]
1995     HRESULT onmousedown([in] VARIANT v);
1996
1997     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN)]
1998     HRESULT onmousedown([retval, out] VARIANT *p);
1999
2000     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP)]
2001     HRESULT onmouseup([in] VARIANT v);
2002
2003     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP)]
2004     HRESULT onmouseup([retval, out] VARIANT *p);
2005
2006     [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)]
2007     HRESULT document([retval, out] IDispatch **p);
2008
2009     [propput, id(DISPID_IHTMLELEMENT_TITLE)]
2010     HRESULT title([in] BSTR v);
2011
2012     [propget, id(DISPID_IHTMLELEMENT_TITLE)]
2013     HRESULT title([retval, out] BSTR *p);
2014
2015     [propput, id(DISPID_IHTMLELEMENT_LANGUAGE)]
2016     HRESULT language([in] BSTR v);
2017
2018     [propget, id(DISPID_IHTMLELEMENT_LANGUAGE)]
2019     HRESULT language([retval, out] BSTR *p);
2020
2021     [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART)]
2022     HRESULT onselectstart([in] VARIANT v);
2023
2024     [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART)]
2025     HRESULT onselectstart([retval, out] VARIANT *p);
2026
2027     [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)]
2028     HRESULT scrollIntoView([optional, in] VARIANT varargStart);
2029
2030     [id(DISPID_IHTMLELEMENT_CONTAINS)]
2031     HRESULT contains(
2032         [in] IHTMLElement *pChild,
2033         [retval, out] VARIANT_BOOL *pfResult);
2034
2035     [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX)]
2036     HRESULT sourceIndex([retval, out] long *p);
2037
2038     [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)]
2039     HRESULT recordNumber([retval, out] VARIANT *p);
2040
2041     [propput, id(DISPID_IHTMLELEMENT_LANG)]
2042     HRESULT lang([in] BSTR v);
2043
2044     [propget, id(DISPID_IHTMLELEMENT_LANG)]
2045     HRESULT lang([retval, out] BSTR *p);
2046
2047     [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)]
2048     HRESULT offsetLeft([retval, out] long *p);
2049
2050     [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)]
2051     HRESULT offsetTop([retval, out] long *p);
2052
2053     [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)]
2054     HRESULT offsetWidth([retval, out] long *p);
2055
2056     [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)]
2057     HRESULT offsetHeight([retval, out] long *p);
2058
2059     [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)]
2060     HRESULT offsetParent([retval, out] IHTMLElement **p);
2061
2062     [propput, id(DISPID_IHTMLELEMENT_INNERHTML)]
2063     HRESULT innerHTML([in] BSTR v);
2064
2065     [propget, id(DISPID_IHTMLELEMENT_INNERHTML)]
2066     HRESULT innerHTML([retval, out] BSTR *p);
2067
2068     [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)]
2069     HRESULT innerText([in] BSTR v);
2070
2071     [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)]
2072     HRESULT innerText([retval, out] BSTR *p);
2073
2074     [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)]
2075     HRESULT outerHTML([in] BSTR v);
2076
2077     [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)]
2078     HRESULT outerHTML([retval, out] BSTR *p);
2079
2080     [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
2081     HRESULT outerText([in] BSTR v);
2082
2083     [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
2084     HRESULT outerText([retval, out] BSTR *p);
2085
2086     [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)]
2087     HRESULT insertAdjacentHTML([in] BSTR where, [in] BSTR html);
2088
2089     [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)]
2090     HRESULT insertAdjacentText([in] BSTR where, [in] BSTR text);
2091
2092     [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)]
2093     HRESULT parentTextEdit([retval, out] IHTMLElement **p);
2094
2095     [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)]
2096     HRESULT isTextEdit([retval, out] VARIANT_BOOL *p);
2097
2098     [id(DISPID_IHTMLELEMENT_CLICK)]
2099     HRESULT click();
2100
2101     [propget, id(DISPID_IHTMLELEMENT_FILTERS)]
2102     HRESULT filters([retval, out] IHTMLFiltersCollection **p);
2103
2104     [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART)]
2105     HRESULT ondragstart([in] VARIANT v);
2106
2107     [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART)]
2108     HRESULT ondragstart([retval, out] VARIANT *p);
2109
2110     [id(DISPID_IHTMLELEMENT_TOSTRING)]
2111     HRESULT toString([retval, out] BSTR *String);
2112
2113     [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE)]
2114     HRESULT onbeforeupdate([in] VARIANT v);
2115
2116     [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE)]
2117     HRESULT onbeforeupdate([retval, out] VARIANT *p);
2118
2119     [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE)]
2120     HRESULT onafterupdate([in] VARIANT v);
2121
2122     [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE)]
2123     HRESULT onafterupdate([retval, out] VARIANT *p);
2124
2125     [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE)]
2126     HRESULT onerrorupdate([in] VARIANT v);
2127
2128     [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE)]
2129     HRESULT onerrorupdate([retval, out] VARIANT *p);
2130
2131     [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT)]
2132     HRESULT onrowexit([in] VARIANT v);
2133
2134     [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT)]
2135     HRESULT onrowexit([retval, out] VARIANT *p);
2136
2137     [propput, id(DISPID_IHTMLELEMENT_ONROWENTER)]
2138     HRESULT onrowenter([in] VARIANT v);
2139
2140     [propget, id(DISPID_IHTMLELEMENT_ONROWENTER)]
2141     HRESULT onrowenter([retval, out] VARIANT *p);
2142
2143     [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED)]
2144     HRESULT ondatasetchanged([in] VARIANT v);
2145
2146     [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED)]
2147     HRESULT ondatasetchanged([retval, out] VARIANT *p);
2148
2149     [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE)]
2150     HRESULT ondataavailable([in] VARIANT v);
2151
2152     [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE)]
2153     HRESULT ondataavailable([retval, out] VARIANT *p);
2154
2155     [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE)]
2156     HRESULT ondatasetcomplete([in] VARIANT v);
2157
2158     [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE)]
2159     HRESULT ondatasetcomplete([retval, out] VARIANT *p);
2160
2161     [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE)]
2162     HRESULT onfilterchange([in] VARIANT v);
2163
2164     [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE)]
2165     HRESULT onfilterchange([retval, out] VARIANT *p);
2166
2167     [propget, id(DISPID_IHTMLELEMENT_CHILDREN)]
2168     HRESULT children([retval, out] IDispatch **p);
2169
2170     [propget, id(DISPID_IHTMLELEMENT_ALL)]
2171     HRESULT all([retval, out] IDispatch **p);
2172 }
2173
2174 /*****************************************************************************
2175  *    IHTMLElement2 interface
2176  */
2177 [
2178     odl,
2179     oleautomation,
2180     dual,
2181     uuid(3050f434-98b5-11cf-bb82-00aa00bdce0b)
2182 ]
2183 interface IHTMLElement2 : IDispatch
2184 {
2185     [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)]
2186     HRESULT scopeName([retval, out] BSTR *p);
2187
2188     [id(DISPID_IHTMLELEMENT2_SETCAPTURE)]
2189     HRESULT setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
2190
2191     [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)]
2192     HRESULT releaseCapture();
2193
2194     [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
2195     HRESULT onlosecapture([in] VARIANT v);
2196
2197     [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
2198     HRESULT onlosecapture([retval, out] VARIANT *p);
2199
2200     [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)]
2201     HRESULT componentFromPoint(
2202         [in] long x,
2203         [in] long y,
2204         [retval, out] BSTR *component);
2205
2206     [id(DISPID_IHTMLELEMENT2_DOSCROLL)]
2207     HRESULT doScroll([optional, in] VARIANT component);
2208
2209     [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
2210     HRESULT onscroll([in] VARIANT v);
2211
2212     [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
2213     HRESULT onscroll([retval, out] VARIANT *p);
2214
2215     [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
2216     HRESULT ondrag([in] VARIANT v);
2217
2218     [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
2219     HRESULT ondrag([retval, out] VARIANT *p);
2220
2221     [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
2222     HRESULT ondragend([in] VARIANT v);
2223
2224     [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
2225     HRESULT ondragend([retval, out] VARIANT *p);
2226
2227     [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
2228     HRESULT ondragenter([in] VARIANT v);
2229
2230     [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
2231     HRESULT ondragenter([retval, out] VARIANT *p);
2232
2233     [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
2234     HRESULT ondragover([in] VARIANT v);
2235
2236     [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
2237     HRESULT ondragover([retval, out] VARIANT *p);
2238
2239     [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
2240     HRESULT ondragleave([in] VARIANT v);
2241
2242     [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
2243     HRESULT ondragleave([retval, out] VARIANT *p);
2244
2245     [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable]
2246     HRESULT ondrop([in] VARIANT v);
2247
2248     [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable]
2249     HRESULT ondrop([retval, out] VARIANT *p);
2250
2251     [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable]
2252     HRESULT onbeforecut([in] VARIANT v);
2253
2254     [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable]
2255     HRESULT onbeforecut([retval, out] VARIANT *p);
2256
2257     [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable]
2258     HRESULT oncut([in] VARIANT v);
2259
2260     [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable]
2261     HRESULT oncut([retval, out] VARIANT *p);
2262
2263     [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable]
2264     HRESULT onbeforecopy([in] VARIANT v);
2265
2266     [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable]
2267     HRESULT onbeforecopy([retval, out] VARIANT *p);
2268
2269     [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable]
2270     HRESULT oncopy([in] VARIANT v);
2271
2272     [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable]
2273     HRESULT oncopy([retval, out] VARIANT *p);
2274
2275     [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable]
2276     HRESULT onbeforepaste([in] VARIANT v);
2277
2278     [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable]
2279     HRESULT onbeforepaste([retval, out] VARIANT *p);
2280
2281     [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable]
2282     HRESULT onpaste([in] VARIANT v);
2283
2284     [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable]
2285     HRESULT onpaste([retval, out] VARIANT *p);
2286
2287     [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable]
2288     HRESULT currentStyle([retval, out] IHTMLCurrentStyle **p);
2289
2290     [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable]
2291     HRESULT onpropertychange([in] VARIANT v);
2292
2293     [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable]
2294     HRESULT onpropertychange([retval, out] VARIANT *p);
2295
2296     [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)]
2297     HRESULT getClientRects([retval, out] IHTMLRectCollection **pRectCol);
2298
2299     [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)]
2300     HRESULT getBoundingClientRect([retval, out] IHTMLRect **pRect);
2301
2302     [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)]
2303     HRESULT setExpression(
2304         [in] BSTR propname,
2305         [in] BSTR expression,
2306         [defaultvalue(""), in] BSTR language);
2307
2308     [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)]
2309     HRESULT getExpression(
2310         [in] BSTR propname,
2311         [retval, out] VARIANT *expression);
2312
2313     [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)]
2314     HRESULT removeExpression(
2315         [in] BSTR propname,
2316         [retval, out] VARIANT_BOOL *pfSuccess);
2317
2318     [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable]
2319     HRESULT tabIndex([in] short v);
2320
2321     [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable]
2322     HRESULT tabIndex([retval, out] short *p);
2323
2324     [id(DISPID_IHTMLELEMENT2_FOCUS)]
2325     HRESULT focus();
2326
2327     [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable]
2328     HRESULT accessKey([in] BSTR v);
2329
2330     [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable]
2331     HRESULT accessKey([retval, out] BSTR *p);
2332
2333     [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable]
2334     HRESULT onblur([in] VARIANT v);
2335
2336     [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable]
2337     HRESULT onblur([retval, out] VARIANT *p);
2338
2339     [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable]
2340     HRESULT onfocus([in] VARIANT v);
2341
2342     [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable]
2343     HRESULT onfocus([retval, out] VARIANT *p);
2344
2345     [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable]
2346     HRESULT onresize([in] VARIANT v);
2347
2348     [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable]
2349     HRESULT onresize([retval, out] VARIANT *p);
2350
2351     [id(DISPID_IHTMLELEMENT2_BLUR)]
2352     HRESULT blur();
2353
2354     [id(DISPID_IHTMLELEMENT2_ADDFILTER)]
2355     HRESULT addFilter([in] IUnknown *pUnk);
2356
2357     [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)]
2358     HRESULT removeFilter([in] IUnknown *pUnk);
2359
2360     [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable]
2361     HRESULT clientHeight([retval, out] long *p);
2362
2363     [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable]
2364     HRESULT clientWidth([retval, out] long *p);
2365
2366     [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable]
2367     HRESULT clientTop([retval, out] long *p);
2368
2369     [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable]
2370     HRESULT clientLeft([retval, out] long *p);
2371
2372     [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)]
2373     HRESULT attachEvent(
2374         [in] BSTR event,
2375         [in] IDispatch *pDisp,
2376         [retval, out] VARIANT_BOOL *pfResult);
2377
2378     [id(DISPID_IHTMLELEMENT2_DETACHEVENT)]
2379     HRESULT detachEvent(
2380         [in] BSTR event,
2381         [in] IDispatch *pDisp);
2382
2383     [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)]
2384     HRESULT readyState([retval, out] VARIANT *p);
2385
2386     [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable]
2387     HRESULT onreadystatechange([in] VARIANT v);
2388
2389     [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable]
2390     HRESULT onreadystatechange([retval, out] VARIANT *p);
2391
2392     [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable]
2393     HRESULT onrowsdelete([in] VARIANT v);
2394
2395     [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable]
2396     HRESULT onrowsdelete([retval, out] VARIANT *p);
2397
2398     [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable]
2399     HRESULT onrowsinserted([in] VARIANT v);
2400
2401     [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable]
2402     HRESULT onrowsinserted([retval, out] VARIANT *p);
2403
2404     [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable]
2405     HRESULT oncellchange([in] VARIANT v);
2406
2407     [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable]
2408     HRESULT oncellchange([retval, out] VARIANT *p);
2409
2410     [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable]
2411     HRESULT dir([in] BSTR v);
2412
2413     [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable]
2414     HRESULT dir([retval, out] BSTR *p);
2415
2416     [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)]
2417     HRESULT createControlRange([retval, out] IDispatch **range);
2418
2419     [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable]
2420     HRESULT scrollHeight([retval, out] long *p);
2421
2422     [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable]
2423     HRESULT scrollWidth([retval, out] long *p);
2424
2425     [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable]
2426     HRESULT scrollTop([in] long v);
2427
2428     [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable]
2429     HRESULT scrollTop([retval, out] long *p);
2430
2431     [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable]
2432     HRESULT scrollLeft([in] long v);
2433
2434     [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable]
2435     HRESULT scrollLeft([retval, out] long *p);
2436
2437     [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)]
2438     HRESULT clearAttributes();
2439
2440     [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)]
2441     HRESULT mergeAttributes([in] IHTMLElement *mergeThis);
2442
2443     [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable]
2444     HRESULT oncontextmenu([in] VARIANT v);
2445
2446     [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable]
2447     HRESULT oncontextmenu([retval, out] VARIANT *p);
2448
2449     [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)]
2450     HRESULT insertAdjacentElement(
2451         [in] BSTR where,
2452         [in] IHTMLElement *insertedElement,
2453         [retval, out] IHTMLElement **inserted);
2454
2455     [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)]
2456     HRESULT applyElement(
2457         [in] IHTMLElement *apply,
2458         [in] BSTR where,
2459         [retval, out] IHTMLElement **applied);
2460
2461     [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)]
2462     HRESULT getAdjacentText(
2463         [in] BSTR where,
2464         [retval, out] BSTR *text);
2465
2466     [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)]
2467     HRESULT replaceAdjacentText(
2468         [in] BSTR where,
2469         [in] BSTR newText,
2470         [retval, out] BSTR *oldText);
2471
2472     [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)]
2473     HRESULT canHaveChildren([retval, out] VARIANT_BOOL *p);
2474
2475     [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)]
2476     HRESULT addBehavior(
2477         [in] BSTR bstrUrl,
2478         [optional, in] VARIANT *pvarFactory,
2479         [retval, out] long *pCookie);
2480
2481     [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)]
2482     HRESULT removeBehavior(
2483         [in] long cookie,
2484         [retval, out] VARIANT_BOOL *pfResult);
2485
2486     [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable]
2487     HRESULT runtimeStyle([retval, out] IHTMLStyle **p);
2488
2489     [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)]
2490     HRESULT behaviorUrns([retval, out] IDispatch **p);
2491
2492     [propput, id(DISPID_IHTMLELEMENT2_TAGURN)]
2493     HRESULT tagUrn([in] BSTR v);
2494
2495     [propget, id(DISPID_IHTMLELEMENT2_TAGURN)]
2496     HRESULT tagUrn([retval, out] BSTR *p);
2497
2498     [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable]
2499     HRESULT onbeforeeditfocus([in] VARIANT v);
2500
2501     [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable]
2502     HRESULT onbeforeeditfocus([retval, out] VARIANT *p);
2503
2504     [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted]
2505     HRESULT readyStateValue([retval, out] long *p);
2506
2507     [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)]
2508     HRESULT getElementsByTagName(
2509         [in] BSTR v,
2510         [retval, out] IHTMLElementCollection **pelColl);
2511 }
2512
2513 /*****************************************************************************
2514  *    IHTMLStyleSheetRule interface
2515  */
2516 [
2517     odl,
2518     oleautomation,
2519     dual,
2520     uuid(3050F357-98B5-11CF-BB82-00AA00BDCE0B)
2521 ]
2522 interface IHTMLStyleSheetRule : IDispatch
2523 {
2524     [propput, id(DISPID_IHTMLSTYLESHEETRULE_SELECTORTEXT)]
2525     HRESULT selectorText([in] BSTR v);
2526
2527     [propget, id(DISPID_IHTMLSTYLESHEETRULE_SELECTORTEXT)]
2528     HRESULT selectorText([retval, out] BSTR *p);
2529
2530     [propget, id(DISPID_IHTMLSTYLESHEETRULE_STYLE)]
2531     HRESULT style([retval, out] IHTMLRuleStyle **p);
2532
2533     [propget, id(DISPID_IHTMLSTYLESHEETRULE_READONLY)]
2534     HRESULT readOnly([retval, out] VARIANT_BOOL *p);
2535 }
2536
2537 /*****************************************************************************
2538  *    IHTMLStyleSheetRulesCollection interface
2539  */
2540 [
2541     odl,
2542     oleautomation,
2543     dual,
2544     uuid(3050F2E5-98B5-11Cf-BB82-00AA00BDCE0B)
2545 ]
2546 interface IHTMLStyleSheetRulesCollection : IDispatch
2547 {
2548     [propget, id(DISPID_IHTMLSTYLESHEETRULESCOLLECTION_LENGTH)]
2549     HRESULT length([retval, out] long *p);
2550
2551     [id(DISPID_IHTMLSTYLESHEETRULESCOLLECTION_ITEM)]
2552     HRESULT item(
2553         [in] long index,
2554         [retval, out] IHTMLStyleSheetRule **ppHTMLStyleSheetRule);
2555 }
2556
2557 /*****************************************************************************
2558  *    IHTMLStyleSheet interface
2559  */
2560 [
2561     odl,
2562     oleautomation,
2563     dual,
2564     uuid(3050F2E3-98B5-11CF-BB82-00AA00BDCE0B)
2565 ]
2566 interface IHTMLStyleSheet : IDispatch
2567 {
2568     [propput, id(DISPID_IHTMLSTYLESHEET_TITLE)]
2569     HRESULT title([in] BSTR v);
2570
2571     [propget, id(DISPID_IHTMLSTYLESHEET_TITLE)]
2572     HRESULT title([retval, out] BSTR *p);
2573
2574     [propget, id(DISPID_IHTMLSTYLESHEET_PARENTSTYLESHEET)]
2575     HRESULT parentStyleSheet([retval, out] IHTMLStyleSheet **p);
2576
2577     [propget, id(DISPID_IHTMLSTYLESHEET_OWNINGELEMENT)]
2578     HRESULT owningElement([retval, out] IHTMLElement **p);
2579
2580     [propput, id(DISPID_IHTMLSTYLESHEET_DISABLED)]
2581     HRESULT disabled([in] VARIANT_BOOL v);
2582
2583     [propget, id(DISPID_IHTMLSTYLESHEET_DISABLED)]
2584     HRESULT disabled([retval, out] VARIANT_BOOL *p);
2585
2586     [propget, id(DISPID_IHTMLSTYLESHEET_READONLY)]
2587     HRESULT readOnly([retval, out] VARIANT_BOOL *p);
2588
2589     [propget, id(DISPID_IHTMLSTYLESHEET_IMPORTS)]
2590     HRESULT imports([retval, out] IHTMLStyleSheetsCollection **p);
2591
2592     [propput, id(DISPID_IHTMLSTYLESHEET_HREF)]
2593     HRESULT href([in] BSTR v);
2594
2595     [propget, id(DISPID_IHTMLSTYLESHEET_HREF)]
2596     HRESULT href([retval, out] BSTR *p);
2597
2598     [propget, id(DISPID_IHTMLSTYLESHEET_TYPE)]
2599     HRESULT type([retval, out] BSTR *p);
2600
2601     [propget, id(DISPID_IHTMLSTYLESHEET_ID)]
2602     HRESULT id([retval, out] BSTR *p);
2603
2604     [id(DISPID_IHTMLSTYLESHEET_ADDIMPORT)]
2605     HRESULT addImport(
2606         [in] BSTR bstrURL,
2607         [defaultvalue(-1), in] long lIndex,
2608         [retval, out] long *plIndex);
2609
2610     [id(DISPID_IHTMLSTYLESHEET_ADDRULE)]
2611     HRESULT addRule(
2612         [in] BSTR bstrSelector,
2613         [in] BSTR bstrStyle,
2614         [defaultvalue(-1), in] long lIndex,
2615         [retval, out] long *plNewIndex);
2616
2617     [id(DISPID_IHTMLSTYLESHEET_REMOVEIMPORT)]
2618     HRESULT removeImport([in] long lIndex);
2619
2620     [id(DISPID_IHTMLSTYLESHEET_REMOVERULE)]
2621     HRESULT removeRule([in] long lIndex);
2622
2623     [propput, id(DISPID_IHTMLSTYLESHEET_MEDIA)]
2624     HRESULT media([in] BSTR v);
2625
2626     [propget, id(DISPID_IHTMLSTYLESHEET_MEDIA)]
2627     HRESULT media([retval, out] BSTR *p);
2628
2629     [propput, id(DISPID_IHTMLSTYLESHEET_CSSTEXT)]
2630     HRESULT cssText([in] BSTR v);
2631
2632     [propget, id(DISPID_IHTMLSTYLESHEET_CSSTEXT)]
2633     HRESULT cssText([retval, out] BSTR *p);
2634
2635     [propget, id(DISPID_IHTMLSTYLESHEET_RULES)]
2636     HRESULT rules([retval, out] IHTMLStyleSheetRulesCollection **p);
2637 }
2638
2639 /*****************************************************************************
2640  *    IHTMLStyleSheetsCollection interface
2641  */
2642 [
2643     odl,
2644     oleautomation,
2645     dual,
2646     uuid(3050F37E-98B5-11CF-BB82-00AA00BDCE0B)
2647 ]
2648 interface IHTMLStyleSheetsCollection : IDispatch
2649 {
2650     [propget, id(DISPID_IHTMLSTYLESHEETSCOLLECTION_LENGTH)]
2651     HRESULT length([retval, out] long *p);
2652
2653     [propget, id(DISPID_IHTMLSTYLESHEETSCOLLECTION__NEWENUM)]
2654     HRESULT _newEnum([retval, out] IUnknown **p);
2655
2656     [id(DISPID_IHTMLSTYLESHEETSCOLLECTION_ITEM)]
2657     HRESULT item(
2658         [in] VARIANT *pvarIndex,
2659         [retval, out] VARIANT *pvarResult);
2660 }
2661
2662 /*****************************************************************************
2663  *    IHTMLTxtRange interface
2664  */
2665 [
2666     odl,
2667     oleautomation,
2668     dual,
2669     uuid(3050f220-98b5-11cf-bb82-00aa00bdce0b)
2670 ]
2671 interface IHTMLTxtRange : IDispatch
2672 {
2673     [propget, id(DISPID_IHTMLTXTRANGE_HTMLTEXT)]
2674     HRESULT htmlText([retval, out] BSTR *p);
2675
2676     [propput, id(DISPID_IHTMLTXTRANGE_TEXT)]
2677     HRESULT text([in] BSTR v);
2678
2679     [propget, id(DISPID_IHTMLTXTRANGE_TEXT)]
2680     HRESULT text([retval, out] BSTR *p);
2681
2682     [id(DISPID_IHTMLTXTRANGE_PARENTELEMENT)]
2683     HRESULT parentElement([retval, out] IHTMLElement **parent);
2684
2685     [id(DISPID_IHTMLTXTRANGE_DUPLICATE)]
2686     HRESULT duplicate([retval, out] IHTMLTxtRange **Duplicate);
2687
2688     [id(DISPID_IHTMLTXTRANGE_INRANGE)]
2689     HRESULT inRange(
2690         [in] IHTMLTxtRange *Range,
2691         [retval, out] VARIANT_BOOL *InRange);
2692
2693     [id(DISPID_IHTMLTXTRANGE_ISEQUAL)]
2694     HRESULT isEqual(
2695         [in] IHTMLTxtRange *Range,
2696         [retval, out] VARIANT_BOOL *IsEqual);
2697
2698     [id(DISPID_IHTMLTXTRANGE_SCROLLINTOVIEW)]
2699     HRESULT scrollIntoView([defaultvalue(-1), in] VARIANT_BOOL fStart);
2700
2701     [id(DISPID_IHTMLTXTRANGE_COLLAPSE)]
2702     HRESULT collapse([defaultvalue(-1), in] VARIANT_BOOL Start);
2703
2704     [id(DISPID_IHTMLTXTRANGE_EXPAND)]
2705     HRESULT expand(
2706         [in] BSTR Unit,
2707         [retval, out] VARIANT_BOOL *Success);
2708
2709     [id(DISPID_IHTMLTXTRANGE_MOVE)]
2710     HRESULT move(
2711         [in] BSTR Unit,
2712         [defaultvalue(1), in] long Count,
2713         [retval, out] long *ActualCount);
2714
2715     [id(DISPID_IHTMLTXTRANGE_MOVESTART)]
2716     HRESULT moveStart(
2717         [in] BSTR Unit,
2718         [defaultvalue(1), in] long Count,
2719         [retval, out] long *ActualCount);
2720
2721     [id(DISPID_IHTMLTXTRANGE_MOVEEND)]
2722     HRESULT moveEnd(
2723         [in] BSTR Unit,
2724         [defaultvalue(1), in] long Count,
2725         [retval, out] long *ActualCount);
2726
2727     [id(DISPID_IHTMLTXTRANGE_SELECT)]
2728     HRESULT select();
2729
2730     [id(DISPID_IHTMLTXTRANGE_PASTEHTML)]
2731     HRESULT pasteHTML([in] BSTR html);
2732
2733     [id(DISPID_IHTMLTXTRANGE_MOVETOELEMENTTEXT)]
2734     HRESULT moveToElementText([in] IHTMLElement *element);
2735
2736     [id(DISPID_IHTMLTXTRANGE_SETENDPOINT)]
2737     HRESULT setEndPoint(
2738         [in] BSTR how,
2739         [in] IHTMLTxtRange *SourceRange);
2740
2741     [id(DISPID_IHTMLTXTRANGE_COMPAREENDPOINTS)]
2742     HRESULT compareEndPoints(
2743         [in] BSTR how,
2744         [in] IHTMLTxtRange *SourceRange,
2745         [retval, out] long *ret);
2746
2747     [id(DISPID_IHTMLTXTRANGE_FINDTEXT)]
2748     HRESULT findText(
2749         [in] BSTR String,
2750         [defaultvalue(1073741823), in] long count,
2751         [defaultvalue(0), in] long Flags,
2752         [retval, out] VARIANT_BOOL *Success);
2753
2754     [id(DISPID_IHTMLTXTRANGE_MOVETOPOINT)]
2755     HRESULT moveToPoint(
2756         [in] long x,
2757         [in] long y);
2758
2759     [id(DISPID_IHTMLTXTRANGE_GETBOOKMARK)]
2760     HRESULT getBookmark([retval, out] BSTR *Boolmark);
2761
2762     [id(DISPID_IHTMLTXTRANGE_MOVETOBOOKMARK)]
2763     HRESULT moveToBookmark(
2764         [in] BSTR Bookmark,
2765         [retval, out] VARIANT_BOOL *Success);
2766
2767     [id(DISPID_IHTMLTXTRANGE_QUERYCOMMANDSUPPORTED)]
2768     HRESULT queryCommandSupported(
2769         [in] BSTR cmdID,
2770         [retval, out] VARIANT_BOOL *pfRet);
2771
2772     [id(DISPID_IHTMLTXTRANGE_QUERYCOMMANDENABLED)]
2773     HRESULT queryCommandEnabled(
2774         [in] BSTR cmdID,
2775         [retval, out] VARIANT_BOOL *pfRet);
2776
2777     [id(DISPID_IHTMLTXTRANGE_QUERYCOMMANDSTATE)]
2778     HRESULT queryCommandState(
2779         [in] BSTR cmdID,
2780         [retval, out] VARIANT_BOOL *pfRet);
2781
2782     [id(DISPID_IHTMLTXTRANGE_QUERYCOMMANDINDETERM)]
2783     HRESULT queryCommandIndeterm(
2784         [in] BSTR cmdID,
2785         [retval, out] VARIANT_BOOL *pfRet);
2786
2787     [id(DISPID_IHTMLTXTRANGE_QUERYCOMMANDTEXT)]
2788     HRESULT queryCommandText(
2789         [in] BSTR cmdID,
2790         [retval, out] BSTR *pcmdText);
2791
2792     [id(DISPID_IHTMLTXTRANGE_QUERYCOMMANDVALUE)]
2793     HRESULT queryCommandValue(
2794         [in] BSTR cmdID,
2795         [retval, out] VARIANT *pcmdValue);
2796
2797     [id(DISPID_IHTMLTXTRANGE_EXECCOMMAND)]
2798     HRESULT execCommand(
2799         [in] BSTR cmdID,
2800         [defaultvalue(0), in] VARIANT_BOOL showUI,
2801         [optional, in] VARIANT value,
2802         [retval, out] VARIANT_BOOL *pfRet);
2803
2804     [id(DISPID_IHTMLTXTRANGE_EXECCOMMANDSHOWHELP)]
2805     HRESULT execCommandShowHelp(
2806         [in] BSTR cmdID,
2807         [retval, out] VARIANT_BOOL *pfRet);
2808 }
2809
2810 /*****************************************************************************
2811  *    IHTMLFormElement interface
2812  */
2813 [
2814     odl,
2815     oleautomation,
2816     dual,
2817     uuid(3050F1F7-98B5-11CF-BB82-00AA00BDCE0B)
2818 ]
2819 interface IHTMLFormElement : IDispatch
2820 {
2821     [propput, id(DISPID_IHTMLFORMELEMENT_ACTION)]
2822     HRESULT action([in] BSTR v);
2823
2824     [propget, id(DISPID_IHTMLFORMELEMENT_ACTION)]
2825     HRESULT action([retval, out] BSTR *p);
2826
2827     [propput, id(DISPID_IHTMLFORMELEMENT_DIR)]
2828     HRESULT dir([in] BSTR v);
2829
2830     [propget, id(DISPID_IHTMLFORMELEMENT_DIR)]
2831     HRESULT dir([retval, out] BSTR *p);
2832
2833     [propput, id(DISPID_IHTMLFORMELEMENT_ENCODING)]
2834     HRESULT encoding([in] BSTR v);
2835
2836     [propget, id(DISPID_IHTMLFORMELEMENT_ENCODING)]
2837     HRESULT encoding([retval, out] BSTR *p);
2838
2839     [propput, id(DISPID_IHTMLFORMELEMENT_METHOD)]
2840     HRESULT method([in] BSTR v);
2841
2842     [propget, id(DISPID_IHTMLFORMELEMENT_METHOD)]
2843     HRESULT method([retval, out] BSTR *p);
2844
2845     [propget, id(DISPID_IHTMLFORMELEMENT_ELEMENTS)]
2846     HRESULT elements([retval, out] IDispatch **p);
2847
2848     [propput, id(DISPID_IHTMLFORMELEMENT_TARGET)]
2849     HRESULT target([in] BSTR v);
2850
2851     [propget, id(DISPID_IHTMLFORMELEMENT_TARGET)]
2852     HRESULT target([retval, out] BSTR *p);
2853
2854     [propput, id(DISPID_IHTMLFORMELEMENT_NAME)]
2855     HRESULT name([in] BSTR v);
2856
2857     [propget, id(DISPID_IHTMLFORMELEMENT_NAME)]
2858     HRESULT name([retval, out] BSTR *p);
2859
2860     [propput, id(DISPID_IHTMLFORMELEMENT_ONSUBMIT)]
2861     HRESULT onsubmit([in] VARIANT v);
2862
2863     [propget, id(DISPID_IHTMLFORMELEMENT_ONSUBMIT)]
2864     HRESULT onsubmit([retval, out] VARIANT *p);
2865
2866     [propput, id(DISPID_IHTMLFORMELEMENT_ONRESET)]
2867     HRESULT onreset([in] VARIANT v);
2868
2869     [propget, id(DISPID_IHTMLFORMELEMENT_ONRESET)]
2870     HRESULT onreset([retval, out] VARIANT *p);
2871
2872     [id(DISPID_IHTMLFORMELEMENT_SUBMIT)]
2873     HRESULT submit();
2874
2875     [id(DISPID_IHTMLFORMELEMENT_RESET)]
2876     HRESULT reset();
2877
2878     [propput, id(DISPID_IHTMLFORMELEMENT_LENGTH)]
2879     HRESULT length([in] long v);
2880
2881     [propget, id(DISPID_IHTMLFORMELEMENT_LENGTH)]
2882     HRESULT length([retval, out] long *p);
2883
2884     [propget, id(DISPID_IHTMLFORMELEMENT__NEWENUM)]
2885     HRESULT _newEnum([retval, out] IUnknown **p);
2886
2887     [id(DISPID_IHTMLFORMELEMENT_ITEM)]
2888     HRESULT item(
2889         [optional, in] VARIANT name,
2890         [optional, in] VARIANT index,
2891         [retval, out] IDispatch **pdisp);
2892
2893     [id(DISPID_IHTMLFORMELEMENT_TAGS)]
2894     HRESULT tags(
2895         [in] VARIANT tagName,
2896         [retval, out] IDispatch **pdisp);
2897 }
2898
2899 /*****************************************************************************
2900  *    IHTMLTextContainer interface
2901  */
2902 [
2903     odl,
2904     oleautomation,
2905     dual,
2906     uuid(3050f230-98b5-11cf-bb82-00aa00bdce0b)
2907 ]
2908 interface IHTMLTextContainer : IDispatch
2909 {
2910     [id(DISPID_IHTMLTEXTCONTAINER_CREATECONTROLRANGE)]
2911     HRESULT createControlRange([retval, out] IDispatch **range);
2912
2913     [propget, id(DISPID_IHTMLTEXTCONTAINER_SCROLLHEIGHT), displaybind, bindable]
2914     HRESULT scrollHeight([retval, out] long *p);
2915
2916     [propget, id(DISPID_IHTMLTEXTCONTAINER_SCROLLWIDTH), displaybind, bindable]
2917     HRESULT scrollWidth([retval, out] long *p);
2918
2919     [propput, id(DISPID_IHTMLTEXTCONTAINER_SCROLLTOP), displaybind, bindable]
2920     HRESULT scrollTop([in] long v);
2921
2922     [propget, id(DISPID_IHTMLTEXTCONTAINER_SCROLLTOP), displaybind, bindable]
2923     HRESULT scrollTop([retval, out] long *p);
2924
2925     [propput, id(DISPID_IHTMLTEXTCONTAINER_SCROLLLEFT), displaybind, bindable]
2926     HRESULT scrollLeft([in] long v);
2927
2928     [propget, id(DISPID_IHTMLTEXTCONTAINER_SCROLLLEFT), displaybind, bindable]
2929     HRESULT scrollLeft([retval, out] long *p);
2930
2931     [propput, id(DISPID_IHTMLTEXTCONTAINER_ONSCROLL), displaybind, bindable]
2932     HRESULT onscroll([in] VARIANT v);
2933
2934     [propget, id(DISPID_IHTMLTEXTCONTAINER_ONSCROLL), displaybind, bindable]
2935     HRESULT onscroll([retval, out] VARIANT *p);
2936 }
2937
2938 /*****************************************************************************
2939  *    IHTMLImgElement interface
2940  */
2941 [
2942     odl,
2943     oleautomation,
2944     dual,
2945     uuid(3050F240-98B5-11CF-BB82-00AA00BDCE0B)
2946 ]
2947 interface IHTMLImgElement : IDispatch
2948 {
2949     [propput, id(DISPID_IHTMLIMGELEMENT_ISMAP)]
2950     HRESULT isMap([in] VARIANT_BOOL v);
2951
2952     [propget, id(DISPID_IHTMLIMGELEMENT_ISMAP)]
2953     HRESULT isMap([retval, out] VARIANT_BOOL *p);
2954
2955     [propput, id(DISPID_IHTMLIMGELEMENT_USEMAP)]
2956     HRESULT useMap([in] BSTR v);
2957
2958     [propget, id(DISPID_IHTMLIMGELEMENT_USEMAP)]
2959     HRESULT useMap([retval, out] BSTR *p);
2960
2961     [propget, id(DISPID_IHTMLIMGELEMENT_MIMETYPE)]
2962     HRESULT mimeType([retval, out] BSTR *p);
2963
2964     [propget, id(DISPID_IHTMLIMGELEMENT_FILESIZE)]
2965     HRESULT fileSize([retval, out] BSTR *p);
2966
2967     [propget, id(DISPID_IHTMLIMGELEMENT_FILECREATEDDATE)]
2968     HRESULT fileCreatedDate([retval, out] BSTR *p);
2969
2970     [propget, id(DISPID_IHTMLIMGELEMENT_FILEMODIFIEDDATE)]
2971     HRESULT fileModifiedDate([retval, out] BSTR *p);
2972
2973     [propget, id(DISPID_IHTMLIMGELEMENT_FILEUPDATEDDATE)]
2974     HRESULT fileUpdatedDate([retval, out] BSTR *p);
2975
2976     [propget, id(DISPID_IHTMLIMGELEMENT_PROTOCOL)]
2977     HRESULT protocol([retval, out] BSTR *p);
2978
2979     [propget, id(DISPID_IHTMLIMGELEMENT_HREF)]
2980     HRESULT href([retval, out] BSTR *p);
2981
2982     [propget, id(DISPID_IHTMLIMGELEMENT_NAMEPROP)]
2983     HRESULT nameProp([retval, out] BSTR *p);
2984
2985     [propput, id(DISPID_IHTMLIMGELEMENT_BORDER)]
2986     HRESULT border([in] VARIANT v);
2987
2988     [propget, id(DISPID_IHTMLIMGELEMENT_BORDER)]
2989     HRESULT border([retval, out] VARIANT *p);
2990
2991     [propput, id(DISPID_IHTMLIMGELEMENT_VSPACE)]
2992     HRESULT vspace([in] long v);
2993
2994     [propget, id(DISPID_IHTMLIMGELEMENT_VSPACE)]
2995     HRESULT vspace([retval, out] long *p);
2996
2997     [propput, id(DISPID_IHTMLIMGELEMENT_HSPACE)]
2998     HRESULT hspace([in] long v);
2999
3000     [propget, id(DISPID_IHTMLIMGELEMENT_HSPACE)]
3001     HRESULT hspace([retval, out] long *p);
3002
3003     [propput, id(DISPID_IHTMLIMGELEMENT_ALT)]
3004     HRESULT alt([in] BSTR v);
3005
3006     [propget, id(DISPID_IHTMLIMGELEMENT_ALT)]
3007     HRESULT alt([retval, out] BSTR *p);
3008
3009     [propput, id(DISPID_IHTMLIMGELEMENT_SRC)]
3010     HRESULT src([in] BSTR v);
3011
3012     [propget, id(DISPID_IHTMLIMGELEMENT_SRC)]
3013     HRESULT src([retval, out] BSTR *p);
3014
3015     [propput, id(DISPID_IHTMLIMGELEMENT_LOWSRC)]
3016     HRESULT lowsrc([in] BSTR v);
3017
3018     [propget, id(DISPID_IHTMLIMGELEMENT_LOWSRC)]
3019     HRESULT lowsrc([retval, out] BSTR *p);
3020
3021     [propput, id(DISPID_IHTMLIMGELEMENT_VRML)]
3022     HRESULT vrml([in] BSTR v);
3023
3024     [propget, id(DISPID_IHTMLIMGELEMENT_VRML)]
3025     HRESULT vrml([retval, out] BSTR *p);
3026
3027     [propput, id(DISPID_IHTMLIMGELEMENT_DYNSRC)]
3028     HRESULT dynsrc([in] BSTR v);
3029
3030     [propget, id(DISPID_IHTMLIMGELEMENT_DYNSRC)]
3031     HRESULT dynsrc([retval, out] BSTR *p);
3032
3033     [propget, id(DISPID_IHTMLIMGELEMENT_READYSTATE)]
3034     HRESULT readyState([retval, out] BSTR *p);
3035
3036     [propget, id(DISPID_IHTMLIMGELEMENT_COMPLETE)]
3037     HRESULT complete([retval, out] VARIANT_BOOL *p);
3038
3039     [propput, id(DISPID_IHTMLIMGELEMENT_LOOP)]
3040     HRESULT loop([in] VARIANT v);
3041
3042     [propget, id(DISPID_IHTMLIMGELEMENT_LOOP)]
3043     HRESULT loop([retval, out] VARIANT *p);
3044
3045     [propput, id(DISPID_IHTMLIMGELEMENT_ALIGN)]
3046     HRESULT align([in] BSTR v);
3047
3048     [propget, id(DISPID_IHTMLIMGELEMENT_ALIGN)]
3049     HRESULT align([retval, out] BSTR *p);
3050
3051     [propput, id(DISPID_IHTMLIMGELEMENT_ONLOAD)]
3052     HRESULT onload([in] VARIANT v);
3053
3054     [propget, id(DISPID_IHTMLIMGELEMENT_ONLOAD)]
3055     HRESULT onload([retval, out] VARIANT *p);
3056
3057     [propput, id(DISPID_IHTMLIMGELEMENT_ONERROR)]
3058     HRESULT onerror([in] VARIANT v);
3059
3060     [propget, id(DISPID_IHTMLIMGELEMENT_ONERROR)]
3061     HRESULT onerror([retval, out] VARIANT *p);
3062
3063     [propput, id(DISPID_IHTMLIMGELEMENT_ONABORT)]
3064     HRESULT onabort([in] VARIANT v);
3065
3066     [propget, id(DISPID_IHTMLIMGELEMENT_ONABORT)]
3067     HRESULT onabort([retval, out] VARIANT *p);
3068
3069     [propput, id(DISPID_IHTMLIMGELEMENT_NAME)]
3070     HRESULT name([in] BSTR v);
3071
3072     [propget, id(DISPID_IHTMLIMGELEMENT_NAME)]
3073     HRESULT name([retval, out] BSTR *p);
3074
3075     [propput, id(DISPID_IHTMLIMGELEMENT_WIDTH)]
3076     HRESULT width([in] long v);
3077
3078     [propget, id(DISPID_IHTMLIMGELEMENT_WIDTH)]
3079     HRESULT width([retval, out] long *p);
3080
3081     [propput, id(DISPID_IHTMLIMGELEMENT_HEIGHT)]
3082     HRESULT height([in] long v);
3083
3084     [propget, id(DISPID_IHTMLIMGELEMENT_HEIGHT)]
3085     HRESULT height([retval, out] long *p);
3086
3087     [propput, id(DISPID_IHTMLIMGELEMENT_START)]
3088     HRESULT start([in] BSTR v);
3089
3090     [propget, id(DISPID_IHTMLIMGELEMENT_START)]
3091     HRESULT start([retval, out] BSTR *p);
3092 }
3093
3094 /*****************************************************************************
3095  *    IHTMLImageElementFactory interface
3096  */
3097 [
3098     odl,
3099     oleautomation,
3100     dual,
3101     uuid(3050F38E-98B5-11CF-BB82-00AAA0BDCE0B)
3102 ]
3103 interface IHTMLImageElementFactory : IDispatch
3104 {
3105     [id(DISPID_IHTMLIMAGEELEMENTFACTORY_CREATE)]
3106     HRESULT create(
3107         [optional, in] VARIANT width,
3108         [optional, in] VARIANT height,
3109         [retval, out]  IHTMLImgElement **elem);
3110 }
3111
3112 /*****************************************************************************
3113  *    IHTMLBodyElement interface
3114  */
3115 [
3116     odl,
3117     oleautomation,
3118     dual,
3119     uuid(3050f1d8-98b5-11cf-bb82-00aa00bdce0b)
3120 ]
3121 interface IHTMLBodyElement : IDispatch
3122 {
3123     [propput, id(DISPID_IHTMLBODYELEMENT_BACKGROUND), displaybind, bindable]
3124     HRESULT background([in] BSTR v);
3125
3126     [propget, id(DISPID_IHTMLBODYELEMENT_BACKGROUND), displaybind, bindable]
3127     HRESULT background([retval, out] BSTR *p);
3128
3129     [propput, id(DISPID_IHTMLBODYELEMENT_BGPROPERTIES), displaybind, bindable]
3130     HRESULT bgProperties([in] BSTR v);
3131
3132     [propget, id(DISPID_IHTMLBODYELEMENT_BGPROPERTIES), displaybind, bindable]
3133     HRESULT bgProperties([retval, out] BSTR *p);
3134
3135     [propput, id(DISPID_IHTMLBODYELEMENT_LEFTMARGIN), displaybind, bindable]
3136     HRESULT leftMargin([in] VARIANT v);
3137
3138     [propget, id(DISPID_IHTMLBODYELEMENT_LEFTMARGIN), displaybind, bindable]
3139     HRESULT leftMargin([retval, out] VARIANT *p);
3140
3141     [propput, id(DISPID_IHTMLBODYELEMENT_TOPMARGIN), displaybind, bindable]
3142     HRESULT topMargin([in] VARIANT v);
3143
3144     [propget, id(DISPID_IHTMLBODYELEMENT_TOPMARGIN), displaybind, bindable]
3145     HRESULT topMargin([retval, out] VARIANT *p);
3146
3147     [propput, id(DISPID_IHTMLBODYELEMENT_RIGHTMARGIN), displaybind, bindable]
3148     HRESULT rightMargin([in] VARIANT v);
3149
3150     [propget, id(DISPID_IHTMLBODYELEMENT_RIGHTMARGIN), displaybind, bindable]
3151     HRESULT rightMargin([retval, out] VARIANT *p);
3152
3153     [propput, id(DISPID_IHTMLBODYELEMENT_BOTTOMMARGIN), displaybind, bindable]
3154     HRESULT bottomMargin([in] VARIANT v);
3155
3156     [propget, id(DISPID_IHTMLBODYELEMENT_BOTTOMMARGIN), displaybind, bindable]
3157     HRESULT bottomMargin([retval, out] VARIANT *p);
3158
3159     [propput, id(DISPID_IHTMLBODYELEMENT_NOWRAP), displaybind, bindable]
3160     HRESULT noWrap([in] VARIANT_BOOL v);
3161
3162     [propget, id(DISPID_IHTMLBODYELEMENT_NOWRAP), displaybind, bindable]
3163     HRESULT noWrap([retval, out] VARIANT_BOOL *p);
3164
3165     [propput, id(DISPID_IHTMLBODYELEMENT_BGCOLOR), displaybind, bindable]
3166     HRESULT bgColor([in] VARIANT v);
3167
3168     [propget, id(DISPID_IHTMLBODYELEMENT_BGCOLOR), displaybind, bindable]
3169     HRESULT bgColor([retval, out] VARIANT *p);
3170
3171     [propput, id(DISPID_IHTMLBODYELEMENT_TEXT), displaybind, bindable]
3172     HRESULT text([in] VARIANT v);
3173
3174     [propget, id(DISPID_IHTMLBODYELEMENT_TEXT), displaybind, bindable]
3175     HRESULT text([retval, out] VARIANT *p);
3176
3177     [propput, id(DISPID_IHTMLBODYELEMENT_LINK), displaybind, bindable]
3178     HRESULT link([in] VARIANT v);
3179
3180     [propget, id(DISPID_IHTMLBODYELEMENT_LINK), displaybind, bindable]
3181     HRESULT link([retval, out] VARIANT *p);
3182
3183     [propput, id(DISPID_IHTMLBODYELEMENT_VLINK), displaybind, bindable]
3184     HRESULT vLink([in] VARIANT v);
3185
3186     [propget, id(DISPID_IHTMLBODYELEMENT_VLINK), displaybind, bindable]
3187     HRESULT vLink([retval, out] VARIANT *p);
3188
3189     [propput, id(DISPID_IHTMLBODYELEMENT_ALINK), displaybind, bindable]
3190     HRESULT aLink([in] VARIANT v);
3191
3192     [propget, id(DISPID_IHTMLBODYELEMENT_ALINK), displaybind, bindable]
3193     HRESULT aLink([retval, out] VARIANT *p);
3194
3195     [propput, id(DISPID_IHTMLBODYELEMENT_ONLOAD), displaybind, bindable]
3196     HRESULT onload([in] VARIANT v);
3197
3198     [propget, id(DISPID_IHTMLBODYELEMENT_ONLOAD), displaybind, bindable]
3199     HRESULT onload([retval, out] VARIANT *p);
3200
3201     [propput, id(DISPID_IHTMLBODYELEMENT_ONUNLOAD), displaybind, bindable]
3202     HRESULT onunload([in] VARIANT v);
3203
3204     [propget, id(DISPID_IHTMLBODYELEMENT_ONUNLOAD), displaybind, bindable]
3205     HRESULT onunload([retval, out] VARIANT *p);
3206
3207     [propput, id(DISPID_IHTMLBODYELEMENT_SCROLL), displaybind, bindable]
3208     HRESULT scroll([in] BSTR v);
3209
3210     [propget, id(DISPID_IHTMLBODYELEMENT_SCROLL), displaybind, bindable]
3211     HRESULT scroll([retval, out] BSTR *p);
3212
3213     [propput, id(DISPID_IHTMLBODYELEMENT_ONSELECT), displaybind, bindable]
3214     HRESULT onselect([in] VARIANT v);
3215
3216     [propget, id(DISPID_IHTMLBODYELEMENT_ONSELECT), displaybind, bindable]
3217     HRESULT onselect([retval, out] VARIANT *p);
3218
3219     [propput, id(DISPID_IHTMLBODYELEMENT_ONBEFOREUNLOAD), displaybind, bindable]
3220     HRESULT onbeforeunload([in] VARIANT v);
3221
3222     [propget, id(DISPID_IHTMLBODYELEMENT_ONBEFOREUNLOAD), displaybind, bindable]
3223     HRESULT onbeforeunload([retval, out] VARIANT *p);
3224
3225     [id(DISPID_IHTMLBODYELEMENT_CREATETEXTRANGE)]
3226     HRESULT createTextRange([retval, out] IHTMLTxtRange **range);
3227 }
3228
3229 /*****************************************************************************
3230  *    IHTMLBodyElement2 interface
3231  */
3232 [
3233     odl,
3234     oleautomation,
3235     dual,
3236     uuid(3050f5c5-98b5-11cf-bb82-00aa00bdce0b)
3237 ]
3238 interface IHTMLBodyElement2 : IDispatch
3239 {
3240     [propput, id(DISPID_IHTMLBODYELEMENT2_ONBEFOREPRINT), displaybind, bindable]
3241     HRESULT onbeforeprint([in] VARIANT v);
3242
3243     [propget, id(DISPID_IHTMLBODYELEMENT2_ONBEFOREPRINT), displaybind, bindable]
3244     HRESULT onbeforeprint([retval, out] VARIANT *p);
3245
3246     [propput, id(DISPID_IHTMLBODYELEMENT2_ONAFTERPRINT), displaybind, bindable]
3247     HRESULT onafterprint([in] VARIANT v);
3248
3249     [propget, id(DISPID_IHTMLBODYELEMENT2_ONAFTERPRINT), displaybind, bindable]
3250     HRESULT onafterprint([retval, out] VARIANT *p);
3251 }
3252
3253 /*****************************************************************************
3254  *    IHTMLAnchorElement interface
3255  */
3256 [
3257     odl,
3258     oleautomation,
3259     dual,
3260     uuid(3050f1da-98b5-11cf-bb82-00aa00bdce0b)
3261 ]
3262 interface IHTMLAnchorElement : IDispatch
3263 {
3264     [propput, id(DISPID_IHTMLANCHORELEMENT_HREF), displaybind, bindable]
3265     HRESULT href([in] BSTR v);
3266
3267     [propget, id(DISPID_IHTMLANCHORELEMENT_HREF), displaybind, bindable]
3268     HRESULT href([retval, out] BSTR *p);
3269
3270     [propput, id(DISPID_IHTMLANCHORELEMENT_TARGET), displaybind, bindable]
3271     HRESULT target([in] BSTR v);
3272
3273     [propget, id(DISPID_IHTMLANCHORELEMENT_TARGET), displaybind, bindable]
3274     HRESULT target([retval, out] BSTR *p);
3275
3276     [propput, id(DISPID_IHTMLANCHORELEMENT_REL), displaybind, bindable]
3277     HRESULT rel([in] BSTR v);
3278
3279     [propget, id(DISPID_IHTMLANCHORELEMENT_REL), displaybind, bindable]
3280     HRESULT rel([retval, out] BSTR *p);
3281
3282     [propput, id(DISPID_IHTMLANCHORELEMENT_REV), displaybind, bindable]
3283     HRESULT rev([in] BSTR v);
3284
3285     [propget, id(DISPID_IHTMLANCHORELEMENT_REV), displaybind, bindable]
3286     HRESULT rev([retval, out] BSTR *p);
3287
3288     [propput, id(DISPID_IHTMLANCHORELEMENT_URN), displaybind, bindable]
3289     HRESULT urn([in] BSTR v);
3290
3291     [propget, id(DISPID_IHTMLANCHORELEMENT_URN), displaybind, bindable]
3292     HRESULT urn([retval, out] BSTR *p);
3293
3294     [propput, id(DISPID_IHTMLANCHORELEMENT_METHODS), displaybind, bindable]
3295     HRESULT Methods([in] BSTR v);
3296
3297     [propget, id(DISPID_IHTMLANCHORELEMENT_METHODS), displaybind, bindable]
3298     HRESULT Methods([retval, out] BSTR *p);
3299
3300     [propput, id(DISPID_IHTMLANCHORELEMENT_NAME), displaybind, bindable]
3301     HRESULT name([in] BSTR v);
3302
3303     [propget, id(DISPID_IHTMLANCHORELEMENT_NAME), displaybind, bindable]
3304     HRESULT name([retval, out] BSTR *p);
3305
3306     [propput, id(DISPID_IHTMLANCHORELEMENT_HOST)]
3307     HRESULT host([in] BSTR v);
3308
3309     [propget, id(DISPID_IHTMLANCHORELEMENT_HOST)]
3310     HRESULT host([retval, out] BSTR *p);
3311
3312     [propput, id(DISPID_IHTMLANCHORELEMENT_HOSTNAME)]
3313     HRESULT hostname([in] BSTR v);
3314
3315     [propget, id(DISPID_IHTMLANCHORELEMENT_HOSTNAME)]
3316     HRESULT hostname([retval, out] BSTR *p);
3317
3318     [propput, id(DISPID_IHTMLANCHORELEMENT_PATHNAME)]
3319     HRESULT pathname([in] BSTR v);
3320
3321     [propget, id(DISPID_IHTMLANCHORELEMENT_PATHNAME)]
3322     HRESULT pathname([retval, out] BSTR *p);
3323
3324     [propput, id(DISPID_IHTMLANCHORELEMENT_PORT)]
3325     HRESULT port([in] BSTR v);
3326
3327     [propget, id(DISPID_IHTMLANCHORELEMENT_PORT)]
3328     HRESULT port([retval, out] BSTR *p);
3329
3330     [propput, id(DISPID_IHTMLANCHORELEMENT_PROTOCOL)]
3331     HRESULT protocol([in] BSTR v);
3332
3333     [propget, id(DISPID_IHTMLANCHORELEMENT_PROTOCOL)]
3334     HRESULT protocol([retval, out] BSTR *p);
3335
3336     [propput, id(DISPID_IHTMLANCHORELEMENT_SEARCH)]
3337     HRESULT search([in] BSTR v);
3338
3339     [propget, id(DISPID_IHTMLANCHORELEMENT_SEARCH)]
3340     HRESULT search([retval, out] BSTR *p);
3341
3342     [propput, id(DISPID_IHTMLANCHORELEMENT_HASH)]
3343     HRESULT hash([in] BSTR v);
3344
3345     [propget, id(DISPID_IHTMLANCHORELEMENT_HASH)]
3346     HRESULT hash([retval, out] BSTR *p);
3347
3348     [propput, id(DISPID_IHTMLANCHORELEMENT_ONBLUR), displaybind, bindable]
3349     HRESULT onblur([in] VARIANT v);
3350
3351     [propget, id(DISPID_IHTMLANCHORELEMENT_ONBLUR), displaybind, bindable]
3352     HRESULT onblur([retval, out] VARIANT *p);
3353
3354     [propput, id(DISPID_IHTMLANCHORELEMENT_ONFOCUS), displaybind, bindable]
3355     HRESULT onfocus([in] VARIANT v);
3356
3357     [propget, id(DISPID_IHTMLANCHORELEMENT_ONFOCUS), displaybind, bindable]
3358     HRESULT onfocus([retval, out] VARIANT *p);
3359
3360     [propput, id(DISPID_IHTMLANCHORELEMENT_ACCESSKEY), displaybind, bindable]
3361     HRESULT accessKey([in] BSTR v);
3362
3363     [propget, id(DISPID_IHTMLANCHORELEMENT_ACCESSKEY), displaybind, bindable]
3364     HRESULT accessKey([retval, out] BSTR *p);
3365
3366     [propget, id(DISPID_IHTMLANCHORELEMENT_PROTOCOLLONG)]
3367     HRESULT protocolLong([retval, out] BSTR *p);
3368
3369     [propget, id(DISPID_IHTMLANCHORELEMENT_MIMETYPE)]
3370     HRESULT mimeType([retval, out] BSTR *p);
3371
3372     [propget, id(DISPID_IHTMLANCHORELEMENT_NAMEPROP)]
3373     HRESULT nameProp([retval, out] BSTR *p);
3374
3375     [propput, id(DISPID_IHTMLANCHORELEMENT_TABINDEX), displaybind, bindable]
3376     HRESULT tabIndex([in] short v);
3377
3378     [propget, id(DISPID_IHTMLANCHORELEMENT_TABINDEX), displaybind, bindable]
3379     HRESULT tabIndex([retval, out] short *p);
3380
3381     [id(DISPID_IHTMLANCHORELEMENT_FOCUS)]
3382     HRESULT focus();
3383
3384     [id(DISPID_IHTMLANCHORELEMENT_BLUR)]
3385     HRESULT blur();
3386 }
3387
3388 /*****************************************************************************
3389  *    IHTMLElementCollection interface
3390  */
3391 [
3392     odl,
3393     oleautomation,
3394     dual,
3395     uuid(3050F21F-98B5-11CF-BB82-00AA00BDCE0B)
3396 ]
3397 interface IHTMLElementCollection : IDispatch
3398 {
3399     [id(DISPID_IHTMLELEMENTCOLLECTION_TOSTRING)]
3400     HRESULT toString([retval, out] BSTR *String);
3401
3402     [propput, id(DISPID_IHTMLELEMENTCOLLECTION_LENGTH)]
3403     HRESULT length([in] long v);
3404
3405     [propget, id(DISPID_IHTMLELEMENTCOLLECTION_LENGTH)]
3406     HRESULT length([retval, out] long *p);
3407
3408     [propget, id(DISPID_IHTMLELEMENTCOLLECTION__NEWENUM)]
3409     HRESULT _newEnum([retval, out] IUnknown **p);
3410
3411     [id(DISPID_IHTMLELEMENTCOLLECTION_ITEM)]
3412     HRESULT item(
3413         [optional, in] VARIANT name,
3414         [optional, in] VARIANT index,
3415         [retval,  out] IDispatch **pdisp);
3416
3417     [id(DISPID_IHTMLELEMENTCOLLECTION_TAGS)]
3418     HRESULT tags(
3419         [in] VARIANT tagName,
3420         [retval, out] IDispatch **pdisp);
3421 }
3422
3423 /*****************************************************************************
3424  *    DispHTMLElementCollection dispinterface
3425  */
3426 [
3427     hidden,
3428     uuid(3050f56b-98b5-11cf-bb82-00aa00bdce0b)
3429 ]
3430 dispinterface DispHTMLElementCollection
3431 {
3432 properties:
3433 methods:
3434     [id(DISPID_IHTMLELEMENTCOLLECTION_TOSTRING)]
3435     BSTR toString();
3436
3437     [propput, id(DISPID_IHTMLELEMENTCOLLECTION_LENGTH)]
3438     void length(long v);
3439
3440     [propget, id(DISPID_IHTMLELEMENTCOLLECTION_LENGTH)]
3441     long length();
3442
3443     [propget, id(DISPID_IHTMLELEMENTCOLLECTION__NEWENUM), hidden, restricted]
3444     IUnknown *_newEnum();
3445
3446     [id(DISPID_IHTMLELEMENTCOLLECTION_ITEM)]
3447     IDispatch *item(
3448             [in, optional] VARIANT name,
3449             [in, optional] VARIANT index);
3450
3451     [id(DISPID_IHTMLELEMENTCOLLECTION_TAGS)]
3452     IDispatch *tags(
3453             [in] VARIANT tagName);
3454
3455     [id(DISPID_IHTMLELEMENTCOLLECTION2_URNS)]
3456     IDispatch *urns([in] VARIANT urn);
3457
3458     [id(DISPID_IHTMLELEMENTCOLLECTION3_NAMEDITEM)]
3459     IDispatch *namedItem([in] BSTR name);
3460 }
3461
3462 /*****************************************************************************
3463  *    IHTMLSelectElement interface
3464  */
3465 [
3466     odl,
3467     oleautomation,
3468     dual,
3469     uuid(3050f244-98b5-11cf-bb82-00aa00bdce0b)
3470 ]
3471 interface IHTMLSelectElement : IDispatch
3472 {
3473     [propput, id(DISPID_IHTMLSELECTELEMENT_SIZE), displaybind, bindable]
3474     HRESULT size([in] long v);
3475
3476     [propget, id(DISPID_IHTMLSELECTELEMENT_SIZE), displaybind, bindable]
3477     HRESULT size([retval, out] long *p);
3478
3479     [propput, id(DISPID_IHTMLSELECTELEMENT_MULTIPLE), displaybind, bindable]
3480     HRESULT multiple([in] VARIANT_BOOL v);
3481
3482     [propget, id(DISPID_IHTMLSELECTELEMENT_MULTIPLE), displaybind, bindable]
3483     HRESULT multiple([retval, out] VARIANT_BOOL *p);
3484
3485     [propput, id(DISPID_IHTMLSELECTELEMENT_NAME), displaybind, bindable]
3486     HRESULT name([in] BSTR v);
3487
3488     [propget, id(DISPID_IHTMLSELECTELEMENT_NAME), displaybind, bindable]
3489     HRESULT name([retval, out] BSTR *p);
3490
3491     [propget, id(DISPID_IHTMLSELECTELEMENT_OPTIONS)]
3492     HRESULT options([retval, out] IDispatch **p);
3493
3494     [propput, id(DISPID_IHTMLSELECTELEMENT_ONCHANGE), displaybind, bindable]
3495     HRESULT onchange([in] VARIANT v);
3496
3497     [propget, id(DISPID_IHTMLSELECTELEMENT_ONCHANGE), displaybind, bindable]
3498     HRESULT onchange([retval, out] VARIANT *p);
3499
3500     [propput, id(DISPID_IHTMLSELECTELEMENT_SELECTEDINDEX)]
3501     HRESULT selectedIndex([in] long v);
3502
3503     [propget, id(DISPID_IHTMLSELECTELEMENT_SELECTEDINDEX)]
3504     HRESULT selectedIndex([retval, out] long *p);
3505
3506     [propget, id(DISPID_IHTMLSELECTELEMENT_TYPE), displaybind, bindable]
3507     HRESULT type([retval, out] BSTR *p);
3508
3509     [propput, id(DISPID_IHTMLSELECTELEMENT_VALUE), displaybind, bindable]
3510     HRESULT value([in] BSTR v);
3511
3512     [propget, id(DISPID_IHTMLSELECTELEMENT_VALUE), displaybind, bindable]
3513     HRESULT value([retval, out] BSTR *p);
3514
3515     [propput, id(DISPID_IHTMLSELECTELEMENT_DISABLED), displaybind, bindable]
3516     HRESULT disabled([in] VARIANT_BOOL v);
3517
3518     [propget, id(DISPID_IHTMLSELECTELEMENT_DISABLED), displaybind, bindable]
3519     HRESULT disabled([retval, out] VARIANT_BOOL *p);
3520
3521     [propget, id(DISPID_IHTMLSELECTELEMENT_FORM)]
3522     HRESULT form([retval, out] IHTMLFormElement **p);
3523
3524     [id(DISPID_IHTMLSELECTELEMENT_ADD)]
3525     HRESULT add(
3526         [in] IHTMLElement *element,
3527         [optional, in] VARIANT before);
3528
3529     [id(DISPID_IHTMLSELECTELEMENT_REMOVE)]
3530     HRESULT remove([defaultvalue(-1), in] long index);
3531
3532     [propput, id(DISPID_IHTMLSELECTELEMENT_LENGTH)]
3533     HRESULT length([in] long v);
3534
3535     [propget, id(DISPID_IHTMLSELECTELEMENT_LENGTH)]
3536     HRESULT length([retval, out] long *p);
3537
3538     [propget, id(DISPID_IHTMLSELECTELEMENT__NEWENUM), hidden, restricted]
3539     HRESULT _newEnum([retval, out] IUnknown **p);
3540
3541     [id(DISPID_IHTMLSELECTELEMENT_ITEM)]
3542     HRESULT item(
3543         [optional, in] VARIANT name,
3544         [optional, in] VARIANT index,
3545         [retval, out] IDispatch **pdisp);
3546
3547     [id(DISPID_IHTMLSELECTELEMENT_TAGS)]
3548     HRESULT tags(
3549         [in] VARIANT tagName,
3550         [retval, out] IDispatch **pdisp);
3551 }
3552
3553 /*****************************************************************************
3554  *    IHTMLSelectionObject interface
3555  */
3556 [
3557     odl,
3558     oleautomation,
3559     dual,
3560     uuid(3050F25A-98B5-11CF-BB82-00AA00BDCE0B)
3561 ]
3562 interface IHTMLSelectionObject : IDispatch
3563 {
3564     [id(DISPID_IHTMLSELECTIONOBJECT_CREATERANGE)]
3565     HRESULT createRange([retval, out] IDispatch **range);
3566
3567     [id(DISPID_IHTMLSELECTIONOBJECT_EMPTY)]
3568     HRESULT empty();
3569
3570     [id(DISPID_IHTMLSELECTIONOBJECT_CLEAR)]
3571     HRESULT clear();
3572
3573     [propget, id(DISPID_IHTMLSELECTIONOBJECT_TYPE)]
3574     HRESULT type([retval, out] BSTR *p);
3575 }
3576
3577 /*****************************************************************************
3578  *    IHTMLOptionElement interface
3579  */
3580 [
3581     odl,
3582     oleautomation,
3583     dual,
3584     uuid(3050F211-98B5-11CF-BB82-00AA00BDCE0B)
3585 ]
3586 interface IHTMLOptionElement : IDispatch
3587 {
3588     [propput, id(DISPID_IHTMLOPTIONELEMENT_SELECTED)]
3589     HRESULT selected([in] VARIANT_BOOL v);
3590
3591     [propget, id(DISPID_IHTMLOPTIONELEMENT_SELECTED)]
3592     HRESULT selected([retval, out] VARIANT_BOOL *p);
3593
3594     [propput, id(DISPID_IHTMLOPTIONELEMENT_VALUE)]
3595     HRESULT value([in] BSTR v);
3596
3597     [propget, id(DISPID_IHTMLOPTIONELEMENT_VALUE)]
3598     HRESULT value([retval, out] BSTR *p);
3599
3600     [propput, id(DISPID_IHTMLOPTIONELEMENT_DEFAULTSELECTED)]
3601     HRESULT defaultSelected([in] VARIANT_BOOL v);
3602
3603     [propget, id(DISPID_IHTMLOPTIONELEMENT_DEFAULTSELECTED)]
3604     HRESULT defaultSelected([retval, out] VARIANT_BOOL *p);
3605
3606     [propput, id(DISPID_IHTMLOPTIONELEMENT_INDEX)]
3607     HRESULT index([in] LONG v);
3608
3609     [propget, id(DISPID_IHTMLOPTIONELEMENT_INDEX)]
3610     HRESULT index([retval, out] LONG *p);
3611
3612     [propput, id(DISPID_IHTMLOPTIONELEMENT_TEXT)]
3613     HRESULT text([in] BSTR v);
3614
3615     [propget, id(DISPID_IHTMLOPTIONELEMENT_TEXT)]
3616     HRESULT text([retval, out] BSTR *p);
3617
3618     [propget, id(DISPID_IHTMLOPTIONELEMENT_FORM)]
3619     HRESULT form([retval, out] IHTMLFormElement **p);
3620 }
3621
3622 /*****************************************************************************
3623  *    IHTMLOptionElementFactory interface
3624  */
3625 [
3626     odl,
3627     oleautomation,
3628     dual,
3629     uuid(3050F38C-98B5-11Cf-BB82-00AA00BDCE0B)
3630 ]
3631 interface IHTMLOptionElementFactory : IDispatch
3632 {
3633     [id(DISPID_IHTMLOPTIONELEMENTFACTORY_CREATE)]
3634     HRESULT create(
3635         [optional, in] VARIANT text,
3636         [optional, in] VARIANT value,
3637         [optional, in] VARIANT defaultselected,
3638         [optional, in] VARIANT selected,
3639         [retval, out] IHTMLOptionElement **optelem);
3640 }
3641
3642 /*****************************************************************************
3643  *    DispHTMLOptionElement dispinterface
3644  */
3645 [
3646     hidden,
3647     uuid(3050f52b-98b5-11cf-bb82-00aa00bdce0b)
3648 ]
3649 dispinterface DispHTMLOptionElement
3650 {
3651 properties:
3652 methods:
3653     [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)]
3654     void setAttribute(
3655             [in] BSTR strAttributeName,
3656             [in] VARIANT AttributeValue,
3657             [in, defaultvalue(1)] LONG lFlags);
3658
3659     [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)]
3660     VARIANT getAttribute(
3661              [in] BSTR strAttributeName,
3662              [in, defaultvalue(0)] LONG lFlags);
3663
3664     [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)]
3665     VARIANT_BOOL removeAttribute(
3666             [in] BSTR strAttributeName,
3667             [in, defaultvalue(1)] LONG lFlags);
3668
3669     [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable]
3670     void className(BSTR v);
3671
3672     [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable]
3673     BSTR className();
3674
3675     [propput, id(DISPID_IHTMLELEMENT_ID), bindable]
3676     void id(BSTR v);
3677
3678     [propget, id(DISPID_IHTMLELEMENT_ID), bindable]
3679     BSTR id();
3680
3681     [propget, id(DISPID_IHTMLELEMENT_TAGNAME)]
3682     BSTR tagName();
3683
3684     [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)]
3685     IHTMLElement *parentElement();
3686
3687     [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable]
3688     IHTMLStyle *style();
3689
3690     [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable]
3691     void onhelp(VARIANT v);
3692
3693     [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable]
3694     VARIANT onhelp();
3695
3696     [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable]
3697     void onclick(VARIANT v);
3698
3699     [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable]
3700     VARIANT onclick();
3701
3702     [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable]
3703     void ondblclick(VARIANT v);
3704
3705     [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable]
3706     VARIANT ondblclick();
3707
3708     [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable]
3709     void onkeydown(VARIANT v);
3710
3711     [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable]
3712     VARIANT onkeydown();
3713
3714     [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable]
3715     void onkeyup(VARIANT v);
3716
3717     [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable]
3718     VARIANT onkeyup();
3719
3720     [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable]
3721     void onkeypress(VARIANT v);
3722
3723     [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable]
3724     VARIANT onkeypress();
3725
3726     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable]
3727     void onmouseout(VARIANT v);
3728
3729     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable]
3730     VARIANT onmouseout();
3731
3732     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable]
3733     void onmouseover(VARIANT v);
3734
3735     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable]
3736     VARIANT onmouseover();
3737
3738     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable]
3739     void onmousemove(VARIANT v);
3740
3741     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable]
3742     VARIANT onmousemove();
3743
3744     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable]
3745     void onmousedown(VARIANT v);
3746
3747     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable]
3748     VARIANT onmousedown();
3749
3750     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable]
3751     void onmouseup(VARIANT v);
3752
3753     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable]
3754     VARIANT onmouseup();
3755
3756     [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)]
3757     IDispatch *document();
3758
3759     [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable]
3760     void title(BSTR v);
3761
3762     [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable]
3763     BSTR title();
3764
3765     [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable]
3766     void language(BSTR v);
3767
3768     [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable]
3769     BSTR language();
3770
3771     [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable]
3772     void onselectstart(VARIANT v);
3773
3774     [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable]
3775     VARIANT onselectstart();
3776
3777     [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)]
3778     void scrollIntoView([in, optional] VARIANT varargStart);
3779
3780     [id(DISPID_IHTMLELEMENT_CONTAINS)]
3781     VARIANT_BOOL contains([in] IHTMLElement *pChild);
3782
3783     [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable]
3784     long sourceIndex();
3785
3786     [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)]
3787     VARIANT recordNumber();
3788
3789     [propput, id(DISPID_IHTMLELEMENT_LANG)]
3790     void lang(BSTR v);
3791
3792     [propget, id(DISPID_IHTMLELEMENT_LANG)]
3793     BSTR lang();
3794
3795     [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)]
3796     long offsetLeft();
3797
3798     [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)]
3799     long offsetTop();
3800
3801     [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)]
3802     long offsetWidth();
3803
3804     [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)]
3805     long offsetHeight();
3806
3807     [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)]
3808     IHTMLElement *offsetParent();
3809
3810     [propput, id(DISPID_IHTMLELEMENT_INNERHTML)]
3811     void innerHTML(BSTR v);
3812
3813     [propget, id(DISPID_IHTMLELEMENT_INNERHTML)]
3814     BSTR innerHTML();
3815
3816     [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)]
3817     void innerText(BSTR v);
3818
3819     [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)]
3820     BSTR innerText();
3821
3822     [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)]
3823     void outerHTML(BSTR v);
3824
3825     [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)]
3826     BSTR outerHTML();
3827
3828     [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
3829     void outerText(BSTR v);
3830
3831     [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
3832     BSTR outerText();
3833
3834     [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)]
3835     void insertAdjacentHTML(
3836             [in] BSTR where,
3837             [in] BSTR html);
3838
3839     [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)]
3840     void insertAdjacentText(
3841             [in] BSTR where,
3842             [in] BSTR text);
3843
3844     [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)]
3845     IHTMLElement *parentTextEdit();
3846
3847     [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)]
3848     VARIANT_BOOL isTextEdit();
3849
3850     [id(DISPID_IHTMLELEMENT_CLICK)]
3851     void click();
3852
3853     [propget, id(DISPID_IHTMLELEMENT_FILTERS)]
3854     IHTMLFiltersCollection *filters();
3855
3856     [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable]
3857     void ondragstart(VARIANT v);
3858
3859     [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable]
3860     VARIANT ondragstart();
3861
3862     [id(DISPID_IHTMLELEMENT_TOSTRING)]
3863     BSTR toString();
3864
3865     [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable]
3866     void onbeforeupdate(VARIANT v);
3867
3868     [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable]
3869     VARIANT onbeforeupdate();
3870
3871     [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable]
3872     void onafterupdate(VARIANT v);
3873
3874     [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable]
3875     VARIANT onafterupdate();
3876
3877     [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable]
3878     void onerrorupdate(VARIANT v);
3879
3880     [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable]
3881     VARIANT onerrorupdate();
3882
3883     [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable]
3884     void onrowexit(VARIANT v);
3885
3886     [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable]
3887     VARIANT onrowexit();
3888
3889     [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable]
3890     void onrowenter(VARIANT v);
3891
3892     [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable]
3893     VARIANT onrowenter();
3894
3895     [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable]
3896     void ondatasetchanged(VARIANT v);
3897
3898     [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable]
3899     VARIANT ondatasetchanged();
3900
3901     [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable]
3902     void ondataavailable(VARIANT v);
3903
3904     [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable]
3905     VARIANT ondataavailable();
3906
3907     [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable]
3908     void ondatasetcomplete(VARIANT v);
3909
3910     [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable]
3911     VARIANT ondatasetcomplete();
3912
3913     [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable]
3914     void onfilterchange(VARIANT v);
3915
3916     [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable]
3917     VARIANT onfilterchange();
3918
3919     [propget, id(DISPID_IHTMLELEMENT_CHILDREN)]
3920     IDispatch *children();
3921
3922     [propget, id(DISPID_IHTMLELEMENT_ALL)]
3923     IDispatch *all();
3924
3925     [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)]
3926     BSTR scopeName();
3927
3928     [id(DISPID_IHTMLELEMENT2_SETCAPTURE)]
3929     void setCapture([in, defaultvalue(-1)] VARIANT_BOOL containerCapture);
3930
3931     [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)]
3932     void releaseCapture();
3933
3934     [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
3935     void onlosecapture(VARIANT v);
3936
3937     [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
3938     VARIANT onlosecapture();
3939
3940     [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)]
3941     BSTR componentFromPoint(
3942             [in] long x,
3943             [in] long y);
3944
3945     [id(DISPID_IHTMLELEMENT2_DOSCROLL)]
3946     void doScroll([in, optional] VARIANT component);
3947
3948     [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
3949     void onscroll(VARIANT v);
3950
3951     [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
3952     VARIANT onscroll();
3953
3954     [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
3955     void ondrag(VARIANT v);
3956
3957     [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
3958     VARIANT ondrag();
3959
3960     [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
3961     void ondragend(VARIANT v);
3962
3963     [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
3964     VARIANT ondragend();
3965
3966     [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
3967     void ondragenter(VARIANT v);
3968
3969     [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
3970     VARIANT ondragenter();
3971
3972     [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
3973     void ondragover(VARIANT v);
3974
3975     [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
3976     VARIANT ondragover();
3977
3978     [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
3979     void ondragleave(VARIANT v);
3980
3981     [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
3982     VARIANT ondragleave();
3983
3984     [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable]
3985     void ondrop(VARIANT v);
3986
3987     [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable]
3988     VARIANT ondrop();
3989
3990     [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable]
3991     void onbeforecut(VARIANT v);
3992
3993     [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable]
3994     VARIANT onbeforecut();
3995
3996     [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable]
3997     void oncut(VARIANT v);
3998
3999     [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable]
4000     VARIANT oncut();
4001
4002     [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable]
4003     void onbeforecopy(VARIANT v);
4004
4005     [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable]
4006     VARIANT onbeforecopy();
4007
4008     [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable]
4009     void oncopy(VARIANT v);
4010
4011     [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable]
4012     VARIANT oncopy();
4013
4014     [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable]
4015     void onbeforepaste(VARIANT v);
4016
4017     [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable]
4018     VARIANT onbeforepaste();
4019
4020     [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable]
4021     void onpaste(VARIANT v);
4022
4023     [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable]
4024     VARIANT onpaste();
4025
4026     [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable]
4027     IHTMLCurrentStyle *currentStyle();
4028
4029     [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable]
4030     void onpropertychange(VARIANT v);
4031
4032     [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable]
4033     VARIANT onpropertychange();
4034
4035     [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)]
4036     IHTMLRectCollection *getClientRects();
4037
4038     [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)]
4039     IHTMLRect *getBoundingClientRect();
4040
4041     [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)]
4042     void setExpression(
4043             [in] BSTR propname,
4044             [in] BSTR expression,
4045             [in, defaultvalue("")] BSTR language);
4046
4047     [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)]
4048     VARIANT getExpression([in] BSTR propname);
4049
4050     [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)]
4051     VARIANT_BOOL removeExpression([in] BSTR propname);
4052
4053     [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable]
4054     void tabIndex(short v);
4055
4056     [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable]
4057     short tabIndex();
4058
4059     [id(DISPID_IHTMLELEMENT2_FOCUS)]
4060     void focus();
4061
4062     [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable]
4063     void accessKey(BSTR v);
4064
4065     [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable]
4066     BSTR accessKey();
4067
4068     [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable]
4069     void onblur(VARIANT v);
4070
4071     [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable]
4072     VARIANT onblur();
4073
4074     [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable]
4075     void onfocus(VARIANT v);
4076
4077     [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable]
4078     VARIANT onfocus();
4079
4080     [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable]
4081     void onresize(VARIANT v);
4082
4083     [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable]
4084     VARIANT onresize();
4085
4086     [id(DISPID_IHTMLELEMENT2_BLUR)]
4087     void blur();
4088
4089     [id(DISPID_IHTMLELEMENT2_ADDFILTER)]
4090     void addFilter([in] IUnknown *pUnk);
4091
4092     [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)]
4093     void removeFilter([in] IUnknown *pUnk);
4094
4095     [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable]
4096     long clientHeight();
4097
4098     [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable]
4099     long clientWidth();
4100
4101     [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable]
4102     long clientTop();
4103
4104     [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable]
4105     long clientLeft();
4106
4107     [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)]
4108     VARIANT_BOOL attachEvent(
4109             [in] BSTR event,
4110             [in] IDispatch *pDisp);
4111
4112     [id(DISPID_IHTMLELEMENT2_DETACHEVENT)]
4113     void detachEvent(
4114             [in] BSTR event,
4115             [in] IDispatch *pDisp);
4116
4117     [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)]
4118     VARIANT readyState();
4119
4120     [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable]
4121     void onreadystatechange(VARIANT v);
4122
4123     [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable]
4124     VARIANT onreadystatechange();
4125
4126     [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable]
4127     void onrowsdelete(VARIANT v);
4128
4129     [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable]
4130     VARIANT onrowsdelete();
4131
4132     [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable]
4133     void onrowsinserted(VARIANT v);
4134
4135     [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable]
4136      VARIANT onrowsinserted();
4137
4138     [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable]
4139      void oncellchange(VARIANT v);
4140
4141     [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable]
4142     VARIANT oncellchange();
4143
4144     [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable]
4145     void dir(BSTR v);
4146
4147     [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable]
4148     BSTR dir();
4149
4150     [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)]
4151     IDispatch *createControlRange();
4152
4153     [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable]
4154     long scrollHeight();
4155
4156     [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable]
4157     long scrollWidth();
4158
4159     [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable]
4160     void scrollTop(long v);
4161
4162     [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable]
4163     long scrollTop();
4164
4165     [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable]
4166     void scrollLeft(long v);
4167
4168     [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable]
4169     long scrollLeft();
4170
4171     [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)]
4172     void clearAttributes();
4173
4174     [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable]
4175     void oncontextmenu(VARIANT v);
4176
4177     [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable]
4178     VARIANT oncontextmenu();
4179
4180     [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)]
4181     IHTMLElement *insertAdjacentElement(
4182             [in] BSTR where,
4183             [in] IHTMLElement *insertedElement);
4184
4185     [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)]
4186     IHTMLElement *applyElement(
4187             [in] IHTMLElement *apply,
4188             [in] BSTR where);
4189
4190     [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)]
4191     BSTR getAdjacentText([in] BSTR where);
4192
4193     [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)]
4194     BSTR replaceAdjacentText(
4195             [in] BSTR where,
4196             [in] BSTR newText);
4197
4198     [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)]
4199     VARIANT_BOOL canHaveChildren();
4200
4201     [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)]
4202     long addBehavior(
4203             [in] BSTR bstrUrl,
4204             [in, optional] VARIANT *pvarFactory);
4205
4206     [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)]
4207     VARIANT_BOOL removeBehavior([in] long cookie);
4208
4209     [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable]
4210     IHTMLStyle *runtimeStyle();
4211
4212     [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)]
4213     IDispatch *behaviorUrns();
4214
4215     [propput, id(DISPID_IHTMLELEMENT2_TAGURN)]
4216     void tagUrn(BSTR v);
4217
4218     [propget, id(DISPID_IHTMLELEMENT2_TAGURN)]
4219     BSTR tagUrn();
4220
4221     [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable]
4222     void onbeforeeditfocus(VARIANT v);
4223
4224     [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable]
4225     VARIANT onbeforeeditfocus();
4226
4227     [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted]
4228     long readyStateValue();
4229
4230     [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)]
4231     IHTMLElementCollection *getElementsByTagName([in] BSTR v);
4232
4233     [id(DISPID_IHTMLELEMENT3_MERGEATTRIBUTES)]
4234     void mergeAttributes(
4235             [in] IHTMLElement *mergeThis,
4236             [in, optional] VARIANT *pvarFlags);
4237
4238     [propget, id(DISPID_IHTMLELEMENT3_ISMULTILINE)]
4239     VARIANT_BOOL isMultiLine();
4240
4241     [propget, id(DISPID_IHTMLELEMENT3_CANHAVEHTML)]
4242     VARIANT_BOOL canHaveHTML();
4243
4244     [propput, id(DISPID_IHTMLELEMENT3_ONLAYOUTCOMPLETE), displaybind, bindable]
4245     void onlayoutcomplete(VARIANT v);
4246
4247     [propget, id(DISPID_IHTMLELEMENT3_ONLAYOUTCOMPLETE), displaybind, bindable]
4248     VARIANT onlayoutcomplete();
4249
4250     [propput, id(DISPID_IHTMLELEMENT3_ONPAGE), displaybind, bindable]
4251     void onpage(VARIANT v);
4252
4253     [propget, id(DISPID_IHTMLELEMENT3_ONPAGE), displaybind, bindable]
4254     VARIANT onpage();
4255
4256     [propput, id(DISPID_IHTMLELEMENT3_INFLATEBLOCK), hidden, restricted, nonbrowsable]
4257     void inflateBlock(VARIANT_BOOL v);
4258
4259     [propget, id(DISPID_IHTMLELEMENT3_INFLATEBLOCK), hidden, restricted, nonbrowsable]
4260     VARIANT_BOOL inflateBlock();
4261
4262     [propput, id(DISPID_IHTMLELEMENT3_ONBEFOREDEACTIVATE), displaybind, bindable]
4263     void onbeforedeactivate(VARIANT v);
4264
4265     [propget, id(DISPID_IHTMLELEMENT3_ONBEFOREDEACTIVATE), displaybind, bindable]
4266     VARIANT onbeforedeactivate();
4267
4268     [id(DISPID_IHTMLELEMENT3_SETACTIVE)]
4269     void setActive();
4270
4271     [propput, id(DISPID_IHTMLELEMENT3_CONTENTEDITABLE), displaybind, bindable]
4272     void contentEditable(BSTR v);
4273
4274     [propget, id(DISPID_IHTMLELEMENT3_CONTENTEDITABLE), displaybind, bindable]
4275     BSTR contentEditable();
4276
4277     [propget, id(DISPID_IHTMLELEMENT3_ISCONTENTEDITABLE)]
4278     VARIANT_BOOL isContentEditable();
4279
4280     [propput, id(DISPID_IHTMLELEMENT3_HIDEFOCUS), displaybind, bindable]
4281     void hideFocus(VARIANT_BOOL v);
4282
4283     [propget, id(DISPID_IHTMLELEMENT3_HIDEFOCUS), displaybind, bindable]
4284     VARIANT_BOOL hideFocus();
4285
4286     [propput, id(DISPID_IHTMLELEMENT3_DISABLED), displaybind, bindable]
4287     void disabled(VARIANT_BOOL v);
4288
4289     [propget, id(DISPID_IHTMLELEMENT3_DISABLED), displaybind, bindable]
4290     VARIANT_BOOL disabled();
4291
4292     [propget, id(DISPID_IHTMLELEMENT3_ISDISABLED)]
4293     VARIANT_BOOL isDisabled();
4294
4295     [propput, id(DISPID_IHTMLELEMENT3_ONMOVE), displaybind, bindable]
4296     void onmove(VARIANT v);
4297
4298     [propget, id(DISPID_IHTMLELEMENT3_ONMOVE), displaybind, bindable]
4299     VARIANT onmove();
4300
4301     [propput, id(DISPID_IHTMLELEMENT3_ONCONTROLSELECT), displaybind, bindable]
4302     void oncontrolselect(VARIANT v);
4303
4304     [propget, id(DISPID_IHTMLELEMENT3_ONCONTROLSELECT), displaybind, bindable]
4305     VARIANT oncontrolselect();
4306
4307     [id(DISPID_IHTMLELEMENT3_FIREEVENT)]
4308     VARIANT_BOOL fireEvent(
4309             [in] BSTR bstrEventName,
4310             [in, optional] VARIANT *pvarEventObject);
4311
4312     [propput, id(DISPID_IHTMLELEMENT3_ONRESIZESTART), displaybind, bindable]
4313     void onresizestart(VARIANT v);
4314
4315     [propget, id(DISPID_IHTMLELEMENT3_ONRESIZESTART), displaybind, bindable]
4316     VARIANT onresizestart();
4317
4318     [propput, id(DISPID_IHTMLELEMENT3_ONRESIZEEND), displaybind, bindable]
4319     void onresizeend(VARIANT v);
4320
4321     [propget, id(DISPID_IHTMLELEMENT3_ONRESIZEEND), displaybind, bindable]
4322     VARIANT onresizeend();
4323
4324     [propput, id(DISPID_IHTMLELEMENT3_ONMOVESTART), displaybind, bindable]
4325     void onmovestart(VARIANT v);
4326
4327     [propget, id(DISPID_IHTMLELEMENT3_ONMOVESTART), displaybind, bindable]
4328     VARIANT onmovestart();
4329
4330     [propput, id(DISPID_IHTMLELEMENT3_ONMOVEEND), displaybind, bindable]
4331     void onmoveend(VARIANT v);
4332
4333     [propget, id(DISPID_IHTMLELEMENT3_ONMOVEEND), displaybind, bindable]
4334     VARIANT onmoveend();
4335
4336     [propput, id(DISPID_IHTMLELEMENT3_ONMOUSEENTER), displaybind, bindable]
4337     void onmouseenter(VARIANT v);
4338
4339     [propget, id(DISPID_IHTMLELEMENT3_ONMOUSEENTER), displaybind, bindable]
4340     VARIANT onmouseenter();
4341
4342     [propput, id(DISPID_IHTMLELEMENT3_ONMOUSELEAVE), displaybind, bindable]
4343     void onmouseleave(VARIANT v);
4344
4345     [propget, id(DISPID_IHTMLELEMENT3_ONMOUSELEAVE), displaybind, bindable]
4346     VARIANT onmouseleave();
4347
4348     [propput, id(DISPID_IHTMLELEMENT3_ONACTIVATE), displaybind, bindable]
4349     void onactivate(VARIANT v);
4350
4351     [propget, id(DISPID_IHTMLELEMENT3_ONACTIVATE), displaybind, bindable]
4352     VARIANT onactivate();
4353
4354     [propput, id(DISPID_IHTMLELEMENT3_ONDEACTIVATE), displaybind, bindable]
4355     void ondeactivate(VARIANT v);
4356
4357     [propget, id(DISPID_IHTMLELEMENT3_ONDEACTIVATE), displaybind, bindable]
4358     VARIANT ondeactivate();
4359
4360     [id(DISPID_IHTMLELEMENT3_DRAGDROP)]
4361     VARIANT_BOOL dragDrop();
4362
4363     [propget, id(DISPID_IHTMLELEMENT3_GLYPHMODE), hidden, restricted, nonbrowsable]
4364     LONG glyphMode();
4365
4366     [propput, id(DISPID_IHTMLELEMENT4_ONMOUSEWHEEL), displaybind, bindable]
4367     void onmousewheel(VARIANT v);
4368
4369     [propget, id(DISPID_IHTMLELEMENT4_ONMOUSEWHEEL), displaybind, bindable]
4370     VARIANT onmousewheel();
4371
4372     [id(DISPID_IHTMLELEMENT4_NORMALIZE)]
4373     void normalize();
4374
4375     [id(DISPID_IHTMLELEMENT4_GETATTRIBUTENODE)]
4376     IHTMLDOMAttribute *getAttributeNode([in] BSTR bstrname);
4377
4378     [id(DISPID_IHTMLELEMENT4_SETATTRIBUTENODE)]
4379     IHTMLDOMAttribute *setAttributeNode([in] IHTMLDOMAttribute *pattr);
4380
4381     [id(DISPID_IHTMLELEMENT4_REMOVEATTRIBUTENODE)]
4382     IHTMLDOMAttribute *removeAttributeNode([in] IHTMLDOMAttribute *pattr);
4383
4384     [propput, id(DISPID_IHTMLELEMENT4_ONBEFOREACTIVATE), displaybind, bindable]
4385     void onbeforeactivate(VARIANT v);
4386
4387     [propget, id(DISPID_IHTMLELEMENT4_ONBEFOREACTIVATE), displaybind, bindable]
4388     VARIANT onbeforeactivate();
4389
4390     [propput, id(DISPID_IHTMLELEMENT4_ONFOCUSIN), displaybind, bindable]
4391     void onfocusin(VARIANT v);
4392
4393     [propget, id(DISPID_IHTMLELEMENT4_ONFOCUSIN), displaybind, bindable]
4394     VARIANT onfocusin();
4395
4396     [propput, id(DISPID_IHTMLELEMENT4_ONFOCUSOUT), displaybind, bindable]
4397     void onfocusout(VARIANT v);
4398
4399     [propget, id(DISPID_IHTMLELEMENT4_ONFOCUSOUT), displaybind, bindable]
4400     VARIANT onfocusout();
4401
4402     [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden]
4403     long uniqueNumber();
4404
4405     [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden]
4406     BSTR uniqueID();
4407
4408     [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)]
4409     long nodeType();
4410
4411     [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)]
4412     IHTMLDOMNode *parentNode();
4413
4414     [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)]
4415     VARIANT_BOOL hasChildNodes();
4416
4417     [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)]
4418     IDispatch *childNodes();
4419
4420     [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)]
4421     IDispatch *attributes();
4422
4423     [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)]
4424     IHTMLDOMNode *insertBefore(
4425             [in] IHTMLDOMNode *newChild,
4426             [in, optional] VARIANT refChild);
4427
4428     [id(DISPID_IHTMLDOMNODE_REMOVECHILD)]
4429     IHTMLDOMNode *removeChild([in] IHTMLDOMNode *oldChild);
4430
4431     [id(DISPID_IHTMLDOMNODE_REPLACECHILD)]
4432     IHTMLDOMNode *replaceChild(
4433             [in] IHTMLDOMNode *newChild,
4434             [in] IHTMLDOMNode *oldChild);
4435
4436     [id(DISPID_IHTMLDOMNODE_CLONENODE)]
4437     IHTMLDOMNode *cloneNode([in] VARIANT_BOOL fDeep);
4438
4439     [id(DISPID_IHTMLDOMNODE_REMOVENODE)]
4440     IHTMLDOMNode *removeNode([in, defaultvalue(0)] VARIANT_BOOL fDeep);
4441
4442     [id(DISPID_IHTMLDOMNODE_SWAPNODE)]
4443     IHTMLDOMNode *swapNode([in] IHTMLDOMNode *otherNode);
4444
4445     [id(DISPID_IHTMLDOMNODE_REPLACENODE)]
4446     IHTMLDOMNode *replaceNode([in] IHTMLDOMNode *replacement);
4447
4448     [id(DISPID_IHTMLDOMNODE_APPENDCHILD)]
4449     IHTMLDOMNode *appendChild([in] IHTMLDOMNode *newChild);
4450
4451     [propget, id(DISPID_IHTMLDOMNODE_NODENAME)]
4452     BSTR nodeName();
4453
4454     [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)]
4455     void nodeValue(VARIANT v);
4456
4457     [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)]
4458     VARIANT nodeValue();
4459
4460     [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)]
4461     IHTMLDOMNode *firstChild();
4462
4463     [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)]
4464     IHTMLDOMNode *lastChild();
4465
4466     [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)]
4467     IHTMLDOMNode *previousSibling();
4468
4469     [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)]
4470     IHTMLDOMNode *nextSibling();
4471
4472     [propget, id(DISPID_IHTMLDOMNODE2_OWNERDOCUMENT)]
4473     IDispatch *ownerDocument();
4474
4475     [propput, id(DISPID_IHTMLDATABINDING_DATAFLD)]
4476     void dataFld(BSTR v);
4477
4478     [propget, id(DISPID_IHTMLDATABINDING_DATAFLD)]
4479     BSTR dataFld();
4480
4481     [propput, id(DISPID_IHTMLDATABINDING_DATASRC)]
4482     void dataSrc(BSTR v);
4483
4484     [propget, id(DISPID_IHTMLDATABINDING_DATASRC)]
4485     BSTR dataSrc();
4486
4487     [propput, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)]
4488     void dataFormatAs(BSTR v);
4489
4490     [propget, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)]
4491     BSTR dataFormatAs();
4492
4493     [propput, id(DISPID_IHTMLOPTIONELEMENT_SELECTED)]
4494     void selected(VARIANT_BOOL v);
4495
4496     [propget, id(DISPID_IHTMLOPTIONELEMENT_SELECTED)]
4497     VARIANT_BOOL selected();
4498
4499     [propput, id(DISPID_IHTMLOPTIONELEMENT_VALUE)]
4500     void value(BSTR v);
4501
4502     [propget, id(DISPID_IHTMLOPTIONELEMENT_VALUE)]
4503     BSTR value();
4504
4505     [propput, id(DISPID_IHTMLOPTIONELEMENT_DEFAULTSELECTED)]
4506     void defaultSelected(VARIANT_BOOL v);
4507
4508     [propget, id(DISPID_IHTMLOPTIONELEMENT_DEFAULTSELECTED)]
4509     VARIANT_BOOL defaultSelected();
4510
4511     [propput, id(DISPID_IHTMLOPTIONELEMENT_INDEX)]
4512     void index(LONG v);
4513
4514     [propget, id(DISPID_IHTMLOPTIONELEMENT_INDEX)]
4515     LONG index();
4516
4517     [propput, id(DISPID_IHTMLOPTIONELEMENT_TEXT)]
4518     void text(BSTR v);
4519
4520     [propget, id(DISPID_IHTMLOPTIONELEMENT_TEXT)]
4521     BSTR text();
4522
4523     [propget, id(DISPID_IHTMLOPTIONELEMENT_FORM)]
4524     IHTMLFormElement *form();
4525
4526     [propput, id(DISPID_IHTMLOPTIONELEMENT3_LABEL), displaybind, bindable]
4527     void label(BSTR v);
4528
4529     [propget, id(DISPID_IHTMLOPTIONELEMENT3_LABEL), displaybind, bindable]
4530     BSTR label();
4531 }
4532
4533 /*****************************************************************************
4534  *    IHTMLInputElement interface
4535  */
4536 [
4537     odl,
4538     oleautomation,
4539     dual,
4540     uuid(3050f5d2-98b5-11cf-bb82-00aa00bdce0b)
4541 ]
4542 interface IHTMLInputElement : IDispatch
4543 {
4544     [propput, id(DISPID_IHTMLINPUTELEMENT_TYPE)]
4545     HRESULT type([in] BSTR v);
4546
4547     [propget, id(DISPID_IHTMLINPUTELEMENT_TYPE)]
4548     HRESULT type([retval, out] BSTR *p);
4549
4550     [propput, id(DISPID_IHTMLINPUTELEMENT_VALUE), displaybind, bindable]
4551     HRESULT value([in] BSTR v);
4552
4553     [propget, id(DISPID_IHTMLINPUTELEMENT_VALUE), displaybind, bindable]
4554     HRESULT value([retval, out] BSTR *p);
4555
4556     [propput, id(DISPID_IHTMLINPUTELEMENT_NAME), displaybind, bindable]
4557     HRESULT name([in] BSTR v);
4558
4559     [propget, id(DISPID_IHTMLINPUTELEMENT_NAME), displaybind, bindable]
4560     HRESULT name([retval, out] BSTR *p);
4561
4562     [propput, id(DISPID_IHTMLINPUTELEMENT_STATUS)]
4563     HRESULT status([in] VARIANT_BOOL v);
4564
4565     [propget, id(DISPID_IHTMLINPUTELEMENT_STATUS)]
4566     HRESULT status([retval, out] VARIANT_BOOL *p);
4567
4568     [propput, id(DISPID_IHTMLINPUTELEMENT_DISABLED), displaybind, bindable]
4569     HRESULT disabled([in] VARIANT_BOOL v);
4570
4571     [propget, id(DISPID_IHTMLINPUTELEMENT_DISABLED), displaybind, bindable]
4572     HRESULT disabled([retval, out] VARIANT_BOOL *p);
4573
4574     [propget, id(DISPID_IHTMLINPUTELEMENT_FORM)]
4575     HRESULT form([retval, out] IHTMLFormElement **p);
4576
4577     [propput, id(DISPID_IHTMLINPUTELEMENT_SIZE), displaybind, bindable]
4578     HRESULT size([in] long v);
4579
4580     [propget, id(DISPID_IHTMLINPUTELEMENT_SIZE), displaybind, bindable]
4581     HRESULT size([retval, out] long *p);
4582
4583     [propput, id(DISPID_IHTMLINPUTELEMENT_MAXLENGTH), displaybind, bindable]
4584     HRESULT maxLength([in] long v);
4585
4586     [propget, id(DISPID_IHTMLINPUTELEMENT_MAXLENGTH), displaybind, bindable]
4587     HRESULT maxLength([retval, out] long *p);
4588
4589     [id(DISPID_IHTMLINPUTELEMENT_SELECT)]
4590     HRESULT select();
4591
4592     [propput, id(DISPID_IHTMLINPUTELEMENT_ONCHANGE), displaybind, bindable]
4593     HRESULT onchange([in] VARIANT v);
4594
4595     [propget, id(DISPID_IHTMLINPUTELEMENT_ONCHANGE), displaybind, bindable]
4596     HRESULT onchange([retval, out] VARIANT *p);
4597
4598     [propput, id(DISPID_IHTMLINPUTELEMENT_ONSELECT), displaybind, bindable]
4599     HRESULT onselect([in] VARIANT v);
4600
4601     [propget, id(DISPID_IHTMLINPUTELEMENT_ONSELECT), displaybind, bindable]
4602     HRESULT onselect([retval, out] VARIANT *p);
4603
4604     [propput, id(DISPID_IHTMLINPUTELEMENT_DEFAULTVALUE), displaybind, bindable, hidden]
4605     HRESULT defaultValue([in] BSTR v);
4606
4607     [propget, id(DISPID_IHTMLINPUTELEMENT_DEFAULTVALUE), displaybind, bindable, hidden]
4608     HRESULT defaultValue([retval, out] BSTR *p);
4609
4610     [propput, id(DISPID_IHTMLINPUTELEMENT_READONLY), displaybind, bindable]
4611     HRESULT readOnly([in] VARIANT_BOOL v);
4612
4613     [propget, id(DISPID_IHTMLINPUTELEMENT_READONLY), displaybind, bindable]
4614     HRESULT readOnly([retval, out] VARIANT_BOOL *p);
4615
4616     [id(DISPID_IHTMLINPUTELEMENT_CREATETEXTRANGE)]
4617     HRESULT createTextRange([retval, out] IHTMLTxtRange **range);
4618
4619     [propput, id(DISPID_IHTMLINPUTELEMENT_INDETERMINATE), bindable]
4620     HRESULT indeterminate([in] VARIANT_BOOL v);
4621
4622     [propget, id(DISPID_IHTMLINPUTELEMENT_INDETERMINATE), bindable]
4623     HRESULT indeterminate([retval, out] VARIANT_BOOL *p);
4624
4625     [propput, id(DISPID_IHTMLINPUTELEMENT_DEFAULTCHECKED), bindable]
4626     HRESULT defaultChecked([in] VARIANT_BOOL v);
4627
4628     [propget, id(DISPID_IHTMLINPUTELEMENT_DEFAULTCHECKED), bindable]
4629     HRESULT defaultChecked([retval, out] VARIANT_BOOL *p);
4630
4631     [propput, id(DISPID_IHTMLINPUTELEMENT_CHECKED), bindable]
4632     HRESULT checked([in] VARIANT_BOOL v);
4633
4634     [propget, id(DISPID_IHTMLINPUTELEMENT_CHECKED), bindable]
4635     HRESULT checked([retval, out] VARIANT_BOOL *p);
4636
4637     [propput, id(DISPID_IHTMLINPUTELEMENT_BORDER), displaybind, bindable]
4638     HRESULT border([in] VARIANT v);
4639
4640     [propget, id(DISPID_IHTMLINPUTELEMENT_BORDER), displaybind, bindable]
4641     HRESULT border([retval, out] VARIANT *p);
4642
4643     [propput, id(DISPID_IHTMLINPUTELEMENT_VSPACE), displaybind, bindable]
4644     HRESULT vspace([in] long v);
4645
4646     [propget, id(DISPID_IHTMLINPUTELEMENT_VSPACE), displaybind, bindable]
4647     HRESULT vspace([retval, out] long *p);
4648
4649     [propput, id(DISPID_IHTMLINPUTELEMENT_HSPACE), displaybind, bindable]
4650     HRESULT hspace([in] long v);
4651
4652     [propget, id(DISPID_IHTMLINPUTELEMENT_HSPACE), displaybind, bindable]
4653     HRESULT hspace([retval, out] long *p);
4654
4655     [propput, id(DISPID_IHTMLINPUTELEMENT_ALT), displaybind, bindable]
4656     HRESULT alt([in] BSTR v);
4657
4658     [propget, id(DISPID_IHTMLINPUTELEMENT_ALT), displaybind, bindable]
4659     HRESULT alt([retval, out] BSTR *p);
4660
4661     [propput, id(DISPID_IHTMLINPUTELEMENT_SRC), displaybind, bindable]
4662     HRESULT src([in] BSTR v);
4663
4664     [propget, id(DISPID_IHTMLINPUTELEMENT_SRC), displaybind, bindable]
4665     HRESULT src([retval, out] BSTR *p);
4666
4667     [propput, id(DISPID_IHTMLINPUTELEMENT_LOWSRC), displaybind, bindable]
4668     HRESULT lowsrc([in] BSTR v);
4669
4670     [propget, id(DISPID_IHTMLINPUTELEMENT_LOWSRC), displaybind, bindable]
4671     HRESULT lowsrc([retval, out] BSTR *p);
4672
4673     [propput, id(DISPID_IHTMLINPUTELEMENT_VRML), displaybind, bindable]
4674     HRESULT vrml([in] BSTR v);
4675
4676     [propget, id(DISPID_IHTMLINPUTELEMENT_VRML), displaybind, bindable]
4677     HRESULT vrml([retval, out] BSTR *p);
4678
4679     [propput, id(DISPID_IHTMLINPUTELEMENT_DYNSRC), displaybind, bindable]
4680     HRESULT dynsrc([in] BSTR v);
4681
4682     [propget, id(DISPID_IHTMLINPUTELEMENT_DYNSRC), displaybind, bindable]
4683     HRESULT dynsrc([retval, out] BSTR *p);
4684
4685     [propget, id(DISPID_IHTMLINPUTELEMENT_READYSTATE)]
4686     HRESULT readyState([retval, out] BSTR *p);
4687
4688     [propget, id(DISPID_IHTMLINPUTELEMENT_COMPLETE)]
4689     HRESULT complete([retval, out] VARIANT_BOOL *p);
4690
4691     [propput, id(DISPID_IHTMLINPUTELEMENT_LOOP), displaybind, bindable]
4692     HRESULT loop([in] VARIANT v);
4693
4694     [propget, id(DISPID_IHTMLINPUTELEMENT_LOOP), displaybind, bindable]
4695     HRESULT loop([retval, out] VARIANT *p);
4696
4697     [propput, id(DISPID_IHTMLINPUTELEMENT_ALIGN), displaybind, bindable]
4698     HRESULT align([in] BSTR v);
4699
4700     [propget, id(DISPID_IHTMLINPUTELEMENT_ALIGN), displaybind, bindable]
4701     HRESULT align([retval, out] BSTR *p);
4702
4703     [propput, id(DISPID_IHTMLINPUTELEMENT_ONLOAD), displaybind, bindable]
4704     HRESULT onload([in] VARIANT v);
4705
4706     [propget, id(DISPID_IHTMLINPUTELEMENT_ONLOAD), displaybind, bindable]
4707     HRESULT onload([retval, out] VARIANT *p);
4708
4709     [propput, id(DISPID_IHTMLINPUTELEMENT_ONERROR), displaybind, bindable]
4710     HRESULT onerror([in] VARIANT v);
4711
4712     [propget, id(DISPID_IHTMLINPUTELEMENT_ONERROR), displaybind, bindable]
4713     HRESULT onerror([retval, out] VARIANT *p);
4714
4715     [propput, id(DISPID_IHTMLINPUTELEMENT_ONABORT), displaybind, bindable]
4716     HRESULT onabort([in] VARIANT v);
4717
4718     [propget, id(DISPID_IHTMLINPUTELEMENT_ONABORT), displaybind, bindable]
4719     HRESULT onabort([retval, out] VARIANT *p);
4720
4721     [propput, id(DISPID_IHTMLINPUTELEMENT_WIDTH)]
4722     HRESULT width([in] long v);
4723
4724     [propget, id(DISPID_IHTMLINPUTELEMENT_WIDTH)]
4725     HRESULT width([retval, out] long *p);
4726
4727     [propput, id(DISPID_IHTMLINPUTELEMENT_HEIGHT)]
4728     HRESULT height([in] long v);
4729
4730     [propget, id(DISPID_IHTMLINPUTELEMENT_HEIGHT)]
4731     HRESULT height([retval, out] long *p);
4732
4733     [propput, id(DISPID_IHTMLINPUTELEMENT_START), displaybind, bindable]
4734     HRESULT start([in] BSTR v);
4735
4736     [propget, id(DISPID_IHTMLINPUTELEMENT_START), displaybind, bindable]
4737     HRESULT start([retval, out] BSTR *p);
4738 }
4739
4740 /*****************************************************************************
4741  *    IHTMLInputTextElement interface
4742  */
4743 [
4744     odl,
4745     oleautomation,
4746     dual,
4747     uuid(3050f2a6-98b5-11cf-bb82-00aa00bdce0b)
4748 ]
4749 interface IHTMLInputTextElement : IDispatch
4750 {
4751     [propget, id(DISPID_IHTMLINPUTTEXTELEMENT_TYPE)]
4752     HRESULT type([retval, out] BSTR *p);
4753
4754     [propput, id(DISPID_IHTMLINPUTTEXTELEMENT_VALUE), displaybind, bindable]
4755     HRESULT value([in] BSTR v);
4756
4757     [propget, id(DISPID_IHTMLINPUTTEXTELEMENT_VALUE), displaybind, bindable]
4758     HRESULT value([retval, out] BSTR *p);
4759
4760     [propput, id(DISPID_IHTMLINPUTTEXTELEMENT_NAME), displaybind, bindable]
4761     HRESULT name([in] BSTR v);
4762
4763     [propget, id(DISPID_IHTMLINPUTTEXTELEMENT_NAME), displaybind, bindable]
4764     HRESULT name([retval, out] BSTR *p);
4765
4766     [propput, id(DISPID_IHTMLINPUTTEXTELEMENT_STATUS)]
4767     HRESULT status([in] VARIANT v);
4768
4769     [propget, id(DISPID_IHTMLINPUTTEXTELEMENT_STATUS)]
4770     HRESULT status([retval, out] VARIANT *p);
4771
4772     [propput, id(DISPID_IHTMLINPUTTEXTELEMENT_DISABLED), displaybind, bindable]
4773     HRESULT disabled([in] VARIANT_BOOL v);
4774
4775     [propget, id(DISPID_IHTMLINPUTTEXTELEMENT_DISABLED), displaybind, bindable]
4776     HRESULT disabled([retval, out] VARIANT_BOOL *p);
4777
4778     [propget, id(DISPID_IHTMLINPUTTEXTELEMENT_FORM)]
4779     HRESULT form([retval, out] IHTMLFormElement **p);
4780
4781     [propput, id(DISPID_IHTMLINPUTTEXTELEMENT_DEFAULTVALUE), displaybind, bindable, hidden]
4782     HRESULT defaultValue([in] BSTR v);
4783
4784     [propget, id(DISPID_IHTMLINPUTTEXTELEMENT_DEFAULTVALUE), displaybind, bindable, hidden]
4785     HRESULT defaultValue([retval, out] BSTR *p);
4786
4787     [propput, id(DISPID_IHTMLINPUTTEXTELEMENT_SIZE), displaybind, bindable]
4788     HRESULT size([in] long v);
4789
4790     [propget, id(DISPID_IHTMLINPUTTEXTELEMENT_SIZE), displaybind, bindable]
4791     HRESULT size([retval, out] long *p);
4792
4793     [propput, id(DISPID_IHTMLINPUTTEXTELEMENT_MAXLENGTH), displaybind, bindable]
4794     HRESULT maxLength([in] long v);
4795
4796     [propget, id(DISPID_IHTMLINPUTTEXTELEMENT_MAXLENGTH), displaybind, bindable]
4797     HRESULT maxLength([retval, out] long *p);
4798
4799     [id(DISPID_IHTMLINPUTTEXTELEMENT_SELECT)]
4800     HRESULT select();
4801
4802     [propput, id(DISPID_IHTMLINPUTTEXTELEMENT_ONCHANGE), displaybind, bindable]
4803     HRESULT onchange([in] VARIANT v);
4804
4805     [propget, id(DISPID_IHTMLINPUTTEXTELEMENT_ONCHANGE), displaybind, bindable]
4806     HRESULT onchange([retval, out] VARIANT *p);
4807
4808     [propput, id(DISPID_IHTMLINPUTTEXTELEMENT_ONSELECT), displaybind, bindable]
4809     HRESULT onselect([in] VARIANT v);
4810
4811     [propget, id(DISPID_IHTMLINPUTTEXTELEMENT_ONSELECT), displaybind, bindable]
4812     HRESULT onselect([retval, out] VARIANT *p);
4813
4814     [propput, id(DISPID_IHTMLINPUTTEXTELEMENT_READONLY), displaybind, bindable]
4815     HRESULT readOnly([in] VARIANT_BOOL v);
4816
4817     [propget, id(DISPID_IHTMLINPUTTEXTELEMENT_READONLY), displaybind, bindable]
4818     HRESULT readOnly([retval, out] VARIANT_BOOL *p);
4819
4820     [id(DISPID_IHTMLINPUTTEXTELEMENT_CREATETEXTRANGE)]
4821     HRESULT createTextRange([retval, out] IHTMLTxtRange **range);
4822 }
4823
4824 [
4825     hidden,
4826     uuid(3050f57d-98b5-11cf-bb82-00aa00bdce0b)
4827 ]
4828 dispinterface DispHTMLInputElement
4829 {
4830 properties:
4831 methods:
4832     [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)]
4833     void setAttribute(
4834             [in] BSTR strAttributeName,
4835             [in] VARIANT AttributeValue,
4836             [in, defaultvalue(1)] LONG lFlags);
4837
4838     [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)]
4839     VARIANT getAttribute(
4840              [in] BSTR strAttributeName,
4841              [in, defaultvalue(0)] LONG lFlags);
4842
4843     [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)]
4844     VARIANT_BOOL removeAttribute(
4845             [in] BSTR strAttributeName,
4846             [in, defaultvalue(1)] LONG lFlags);
4847
4848     [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable]
4849     void className(BSTR v);
4850
4851     [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable]
4852     BSTR className();
4853
4854     [propput, id(DISPID_IHTMLELEMENT_ID), bindable]
4855     void id(BSTR v);
4856
4857     [propget, id(DISPID_IHTMLELEMENT_ID), bindable]
4858     BSTR id();
4859
4860     [propget, id(DISPID_IHTMLELEMENT_TAGNAME)]
4861     BSTR tagName();
4862
4863     [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)]
4864     IHTMLElement *parentElement();
4865
4866     [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable]
4867     IHTMLStyle *style();
4868
4869     [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable]
4870     void onhelp(VARIANT v);
4871
4872     [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable]
4873     VARIANT onhelp();
4874
4875     [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable]
4876     void onclick(VARIANT v);
4877
4878     [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable]
4879     VARIANT onclick();
4880
4881     [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable]
4882     void ondblclick(VARIANT v);
4883
4884     [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable]
4885     VARIANT ondblclick();
4886
4887     [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable]
4888     void onkeydown(VARIANT v);
4889
4890     [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable]
4891     VARIANT onkeydown();
4892
4893     [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable]
4894     void onkeyup(VARIANT v);
4895
4896     [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable]
4897     VARIANT onkeyup();
4898
4899     [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable]
4900     void onkeypress(VARIANT v);
4901
4902     [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable]
4903     VARIANT onkeypress();
4904
4905     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable]
4906     void onmouseout(VARIANT v);
4907
4908     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable]
4909     VARIANT onmouseout();
4910
4911     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable]
4912     void onmouseover(VARIANT v);
4913
4914     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable]
4915     VARIANT onmouseover();
4916
4917     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable]
4918     void onmousemove(VARIANT v);
4919
4920     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable]
4921     VARIANT onmousemove();
4922
4923     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable]
4924     void onmousedown(VARIANT v);
4925
4926     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable]
4927     VARIANT onmousedown();
4928
4929     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable]
4930     void onmouseup(VARIANT v);
4931
4932     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable]
4933     VARIANT onmouseup();
4934
4935     [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)]
4936     IDispatch *document();
4937
4938     [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable]
4939     void title(BSTR v);
4940
4941     [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable]
4942     BSTR title();
4943
4944     [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable]
4945     void language(BSTR v);
4946
4947     [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable]
4948     BSTR language();
4949
4950     [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable]
4951     void onselectstart(VARIANT v);
4952
4953     [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable]
4954     VARIANT onselectstart();
4955
4956     [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)]
4957     void scrollIntoView([in, optional] VARIANT varargStart);
4958
4959     [id(DISPID_IHTMLELEMENT_CONTAINS)]
4960     VARIANT_BOOL contains([in] IHTMLElement *pChild);
4961
4962     [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable]
4963     long sourceIndex();
4964
4965     [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)]
4966     VARIANT recordNumber();
4967
4968     [propput, id(DISPID_IHTMLELEMENT_LANG)]
4969     void lang(BSTR v);
4970
4971     [propget, id(DISPID_IHTMLELEMENT_LANG)]
4972     BSTR lang();
4973
4974     [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)]
4975     long offsetLeft();
4976
4977     [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)]
4978     long offsetTop();
4979
4980     [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)]
4981     long offsetWidth();
4982
4983     [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)]
4984     long offsetHeight();
4985
4986     [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)]
4987     IHTMLElement *offsetParent();
4988
4989     [propput, id(DISPID_IHTMLELEMENT_INNERHTML)]
4990     void innerHTML(BSTR v);
4991
4992     [propget, id(DISPID_IHTMLELEMENT_INNERHTML)]
4993     BSTR innerHTML();
4994
4995     [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)]
4996     void innerText(BSTR v);
4997
4998     [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)]
4999     BSTR innerText();
5000
5001     [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)]
5002     void outerHTML(BSTR v);
5003
5004     [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)]
5005     BSTR outerHTML();
5006
5007     [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
5008     void outerText(BSTR v);
5009
5010     [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
5011     BSTR outerText();
5012
5013     [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)]
5014     void insertAdjacentHTML(
5015             [in] BSTR where,
5016             [in] BSTR html);
5017
5018     [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)]
5019     void insertAdjacentText(
5020             [in] BSTR where,
5021             [in] BSTR text);
5022
5023     [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)]
5024     IHTMLElement *parentTextEdit();
5025
5026     [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)]
5027     VARIANT_BOOL isTextEdit();
5028
5029     [id(DISPID_IHTMLELEMENT_CLICK)]
5030     void click();
5031
5032     [propget, id(DISPID_IHTMLELEMENT_FILTERS)]
5033     IHTMLFiltersCollection *filters();
5034
5035     [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable]
5036     void ondragstart(VARIANT v);
5037
5038     [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable]
5039     VARIANT ondragstart();
5040
5041     [id(DISPID_IHTMLELEMENT_TOSTRING)]
5042     BSTR toString();
5043
5044     [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable]
5045     void onbeforeupdate(VARIANT v);
5046
5047     [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable]
5048     VARIANT onbeforeupdate();
5049
5050     [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable]
5051     void onafterupdate(VARIANT v);
5052
5053     [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable]
5054     VARIANT onafterupdate();
5055
5056     [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable]
5057     void onerrorupdate(VARIANT v);
5058
5059     [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable]
5060     VARIANT onerrorupdate();
5061
5062     [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable]
5063     void onrowexit(VARIANT v);
5064
5065     [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable]
5066     VARIANT onrowexit();
5067
5068     [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable]
5069     void onrowenter(VARIANT v);
5070
5071     [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable]
5072     VARIANT onrowenter();
5073
5074     [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable]
5075     void ondatasetchanged(VARIANT v);
5076
5077     [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable]
5078     VARIANT ondatasetchanged();
5079
5080     [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable]
5081     void ondataavailable(VARIANT v);
5082
5083     [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable]
5084     VARIANT ondataavailable();
5085
5086     [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable]
5087     void ondatasetcomplete(VARIANT v);
5088
5089     [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable]
5090     VARIANT ondatasetcomplete();
5091
5092     [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable]
5093     void onfilterchange(VARIANT v);
5094
5095     [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable]
5096     VARIANT onfilterchange();
5097
5098     [propget, id(DISPID_IHTMLELEMENT_CHILDREN)]
5099     IDispatch *children();
5100
5101     [propget, id(DISPID_IHTMLELEMENT_ALL)]
5102     IDispatch *all();
5103
5104     [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)]
5105     BSTR scopeName();
5106
5107     [id(DISPID_IHTMLELEMENT2_SETCAPTURE)]
5108     void setCapture([in, defaultvalue(-1)] VARIANT_BOOL containerCapture);
5109
5110     [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)]
5111     void releaseCapture();
5112
5113     [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
5114     void onlosecapture(VARIANT v);
5115
5116     [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
5117     VARIANT onlosecapture();
5118
5119     [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)]
5120     BSTR componentFromPoint(
5121             [in] long x,
5122             [in] long y);
5123
5124     [id(DISPID_IHTMLELEMENT2_DOSCROLL)]
5125     void doScroll([in, optional] VARIANT component);
5126
5127     [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
5128     void onscroll(VARIANT v);
5129
5130     [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
5131     VARIANT onscroll();
5132
5133     [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
5134     void ondrag(VARIANT v);
5135
5136     [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
5137     VARIANT ondrag();
5138
5139     [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
5140     void ondragend(VARIANT v);
5141
5142     [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
5143     VARIANT ondragend();
5144
5145     [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
5146     void ondragenter(VARIANT v);
5147
5148     [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
5149     VARIANT ondragenter();
5150
5151     [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
5152     void ondragover(VARIANT v);
5153
5154     [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
5155     VARIANT ondragover();
5156
5157     [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
5158     void ondragleave(VARIANT v);
5159
5160     [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
5161     VARIANT ondragleave();
5162
5163     [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable]
5164     void ondrop(VARIANT v);
5165
5166     [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable]
5167     VARIANT ondrop();
5168
5169     [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable]
5170     void onbeforecut(VARIANT v);
5171
5172     [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable]
5173     VARIANT onbeforecut();
5174
5175     [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable]
5176     void oncut(VARIANT v);
5177
5178     [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable]
5179     VARIANT oncut();
5180
5181     [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable]
5182     void onbeforecopy(VARIANT v);
5183
5184     [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable]
5185     VARIANT onbeforecopy();
5186
5187     [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable]
5188     void oncopy(VARIANT v);
5189
5190     [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable]
5191     VARIANT oncopy();
5192
5193     [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable]
5194     void onbeforepaste(VARIANT v);
5195
5196     [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable]
5197     VARIANT onbeforepaste();
5198
5199     [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable]
5200     void onpaste(VARIANT v);
5201
5202     [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable]
5203     VARIANT onpaste();
5204
5205     [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable]
5206     IHTMLCurrentStyle *currentStyle();
5207
5208     [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable]
5209     void onpropertychange(VARIANT v);
5210
5211     [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable]
5212     VARIANT onpropertychange();
5213
5214     [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)]
5215     IHTMLRectCollection *getClientRects();
5216
5217     [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)]
5218     IHTMLRect *getBoundingClientRect();
5219
5220     [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)]
5221     void setExpression(
5222             [in] BSTR propname,
5223             [in] BSTR expression,
5224             [in, defaultvalue("")] BSTR language);
5225
5226     [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)]
5227     VARIANT getExpression([in] BSTR propname);
5228
5229     [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)]
5230     VARIANT_BOOL removeExpression([in] BSTR propname);
5231
5232     [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable]
5233     void tabIndex(short v);
5234
5235     [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable]
5236     short tabIndex();
5237
5238     [id(DISPID_IHTMLELEMENT2_FOCUS)]
5239     void focus();
5240
5241     [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable]
5242     void accessKey(BSTR v);
5243
5244     [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable]
5245     BSTR accessKey();
5246
5247     [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable]
5248     void onblur(VARIANT v);
5249
5250     [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable]
5251     VARIANT onblur();
5252
5253     [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable]
5254     void onfocus(VARIANT v);
5255
5256     [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable]
5257     VARIANT onfocus();
5258
5259     [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable]
5260     void onresize(VARIANT v);
5261
5262     [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable]
5263     VARIANT onresize();
5264
5265     [id(DISPID_IHTMLELEMENT2_BLUR)]
5266     void blur();
5267
5268     [id(DISPID_IHTMLELEMENT2_ADDFILTER)]
5269     void addFilter([in] IUnknown *pUnk);
5270
5271     [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)]
5272     void removeFilter([in] IUnknown *pUnk);
5273
5274     [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable]
5275     long clientHeight();
5276
5277     [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable]
5278     long clientWidth();
5279
5280     [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable]
5281     long clientTop();
5282
5283     [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable]
5284     long clientLeft();
5285
5286     [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)]
5287     VARIANT_BOOL attachEvent(
5288             [in] BSTR event,
5289             [in] IDispatch *pDisp);
5290
5291     [id(DISPID_IHTMLELEMENT2_DETACHEVENT)]
5292     void detachEvent(
5293             [in] BSTR event,
5294             [in] IDispatch *pDisp);
5295
5296     [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)]
5297     VARIANT readyState();
5298
5299     [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable]
5300     void onreadystatechange(VARIANT v);
5301
5302     [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable]
5303     VARIANT onreadystatechange();
5304
5305     [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable]
5306     void onrowsdelete(VARIANT v);
5307
5308     [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable]
5309     VARIANT onrowsdelete();
5310
5311     [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable]
5312     void onrowsinserted(VARIANT v);
5313
5314     [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable]
5315      VARIANT onrowsinserted();
5316
5317     [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable]
5318      void oncellchange(VARIANT v);
5319
5320     [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable]
5321     VARIANT oncellchange();
5322
5323     [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable]
5324     void dir(BSTR v);
5325
5326     [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable]
5327     BSTR dir();
5328
5329     [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)]
5330     IDispatch *createControlRange();
5331
5332     [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable]
5333     long scrollHeight();
5334
5335     [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable]
5336     long scrollWidth();
5337
5338     [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable]
5339     void scrollTop(long v);
5340
5341     [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable]
5342     long scrollTop();
5343
5344     [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable]
5345     void scrollLeft(long v);
5346
5347     [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable]
5348     long scrollLeft();
5349
5350     [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)]
5351     void clearAttributes();
5352
5353     [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable]
5354     void oncontextmenu(VARIANT v);
5355
5356     [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable]
5357     VARIANT oncontextmenu();
5358
5359     [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)]
5360     IHTMLElement *insertAdjacentElement(
5361             [in] BSTR where,
5362             [in] IHTMLElement *insertedElement);
5363
5364     [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)]
5365     IHTMLElement *applyElement(
5366             [in] IHTMLElement *apply,
5367             [in] BSTR where);
5368
5369     [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)]
5370     BSTR getAdjacentText([in] BSTR where);
5371
5372     [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)]
5373     BSTR replaceAdjacentText(
5374             [in] BSTR where,
5375             [in] BSTR newText);
5376
5377     [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)]
5378     VARIANT_BOOL canHaveChildren();
5379
5380     [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)]
5381     long addBehavior(
5382             [in] BSTR bstrUrl,
5383             [in, optional] VARIANT *pvarFactory);
5384
5385     [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)]
5386     VARIANT_BOOL removeBehavior([in] long cookie);
5387
5388     [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable]
5389     IHTMLStyle *runtimeStyle();
5390
5391     [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)]
5392     IDispatch *behaviorUrns();
5393
5394     [propput, id(DISPID_IHTMLELEMENT2_TAGURN)]
5395     void tagUrn(BSTR v);
5396
5397     [propget, id(DISPID_IHTMLELEMENT2_TAGURN)]
5398     BSTR tagUrn();
5399
5400     [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable]
5401     void onbeforeeditfocus(VARIANT v);
5402
5403     [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable]
5404     VARIANT onbeforeeditfocus();
5405
5406     [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted]
5407     long readyStateValue();
5408
5409     [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)]
5410     IHTMLElementCollection *getElementsByTagName([in] BSTR v);
5411
5412     [id(DISPID_IHTMLELEMENT3_MERGEATTRIBUTES)]
5413     void mergeAttributes(
5414             [in] IHTMLElement *mergeThis,
5415             [in, optional] VARIANT *pvarFlags);
5416
5417     [propget, id(DISPID_IHTMLELEMENT3_ISMULTILINE)]
5418     VARIANT_BOOL isMultiLine();
5419
5420     [propget, id(DISPID_IHTMLELEMENT3_CANHAVEHTML)]
5421     VARIANT_BOOL canHaveHTML();
5422
5423     [propput, id(DISPID_IHTMLELEMENT3_ONLAYOUTCOMPLETE), displaybind, bindable]
5424     void onlayoutcomplete(VARIANT v);
5425
5426     [propget, id(DISPID_IHTMLELEMENT3_ONLAYOUTCOMPLETE), displaybind, bindable]
5427     VARIANT onlayoutcomplete();
5428
5429     [propput, id(DISPID_IHTMLELEMENT3_ONPAGE), displaybind, bindable]
5430     void onpage(VARIANT v);
5431
5432     [propget, id(DISPID_IHTMLELEMENT3_ONPAGE), displaybind, bindable]
5433     VARIANT onpage();
5434
5435     [propput, id(DISPID_IHTMLELEMENT3_INFLATEBLOCK), hidden, restricted, nonbrowsable]
5436     void inflateBlock(VARIANT_BOOL v);
5437
5438     [propget, id(DISPID_IHTMLELEMENT3_INFLATEBLOCK), hidden, restricted, nonbrowsable]
5439     VARIANT_BOOL inflateBlock();
5440
5441     [propput, id(DISPID_IHTMLELEMENT3_ONBEFOREDEACTIVATE), displaybind, bindable]
5442     void onbeforedeactivate(VARIANT v);
5443
5444     [propget, id(DISPID_IHTMLELEMENT3_ONBEFOREDEACTIVATE), displaybind, bindable]
5445     VARIANT onbeforedeactivate();
5446
5447     [id(DISPID_IHTMLELEMENT3_SETACTIVE)]
5448     void setActive();
5449
5450     [propput, id(DISPID_IHTMLELEMENT3_CONTENTEDITABLE), displaybind, bindable]
5451     void contentEditable(BSTR v);
5452
5453     [propget, id(DISPID_IHTMLELEMENT3_CONTENTEDITABLE), displaybind, bindable]
5454     BSTR contentEditable();
5455
5456     [propget, id(DISPID_IHTMLELEMENT3_ISCONTENTEDITABLE)]
5457     VARIANT_BOOL isContentEditable();
5458
5459     [propput, id(DISPID_IHTMLELEMENT3_HIDEFOCUS), displaybind, bindable]
5460     void hideFocus(VARIANT_BOOL v);
5461
5462     [propget, id(DISPID_IHTMLELEMENT3_HIDEFOCUS), displaybind, bindable]
5463     VARIANT_BOOL hideFocus();
5464
5465     [propput, id(DISPID_IHTMLELEMENT3_DISABLED), displaybind, bindable]
5466     void disabled(VARIANT_BOOL v);
5467
5468     [propget, id(DISPID_IHTMLELEMENT3_DISABLED), displaybind, bindable]
5469     VARIANT_BOOL disabled();
5470
5471     [propget, id(DISPID_IHTMLELEMENT3_ISDISABLED)]
5472     VARIANT_BOOL isDisabled();
5473
5474     [propput, id(DISPID_IHTMLELEMENT3_ONMOVE), displaybind, bindable]
5475     void onmove(VARIANT v);
5476
5477     [propget, id(DISPID_IHTMLELEMENT3_ONMOVE), displaybind, bindable]
5478     VARIANT onmove();
5479
5480     [propput, id(DISPID_IHTMLELEMENT3_ONCONTROLSELECT), displaybind, bindable]
5481     void oncontrolselect(VARIANT v);
5482
5483     [propget, id(DISPID_IHTMLELEMENT3_ONCONTROLSELECT), displaybind, bindable]
5484     VARIANT oncontrolselect();
5485
5486     [id(DISPID_IHTMLELEMENT3_FIREEVENT)]
5487     VARIANT_BOOL fireEvent(
5488             [in] BSTR bstrEventName,
5489             [in, optional] VARIANT *pvarEventObject);
5490
5491     [propput, id(DISPID_IHTMLELEMENT3_ONRESIZESTART), displaybind, bindable]
5492     void onresizestart(VARIANT v);
5493
5494     [propget, id(DISPID_IHTMLELEMENT3_ONRESIZESTART), displaybind, bindable]
5495     VARIANT onresizestart();
5496
5497     [propput, id(DISPID_IHTMLELEMENT3_ONRESIZEEND), displaybind, bindable]
5498     void onresizeend(VARIANT v);
5499
5500     [propget, id(DISPID_IHTMLELEMENT3_ONRESIZEEND), displaybind, bindable]
5501     VARIANT onresizeend();
5502
5503     [propput, id(DISPID_IHTMLELEMENT3_ONMOVESTART), displaybind, bindable]
5504     void onmovestart(VARIANT v);
5505
5506     [propget, id(DISPID_IHTMLELEMENT3_ONMOVESTART), displaybind, bindable]
5507     VARIANT onmovestart();
5508
5509     [propput, id(DISPID_IHTMLELEMENT3_ONMOVEEND), displaybind, bindable]
5510     void onmoveend(VARIANT v);
5511
5512     [propget, id(DISPID_IHTMLELEMENT3_ONMOVEEND), displaybind, bindable]
5513     VARIANT onmoveend();
5514
5515     [propput, id(DISPID_IHTMLELEMENT3_ONMOUSEENTER), displaybind, bindable]
5516     void onmouseenter(VARIANT v);
5517
5518     [propget, id(DISPID_IHTMLELEMENT3_ONMOUSEENTER), displaybind, bindable]
5519     VARIANT onmouseenter();
5520
5521     [propput, id(DISPID_IHTMLELEMENT3_ONMOUSELEAVE), displaybind, bindable]
5522     void onmouseleave(VARIANT v);
5523
5524     [propget, id(DISPID_IHTMLELEMENT3_ONMOUSELEAVE), displaybind, bindable]
5525     VARIANT onmouseleave();
5526
5527     [propput, id(DISPID_IHTMLELEMENT3_ONACTIVATE), displaybind, bindable]
5528     void onactivate(VARIANT v);
5529
5530     [propget, id(DISPID_IHTMLELEMENT3_ONACTIVATE), displaybind, bindable]
5531     VARIANT onactivate();
5532
5533     [propput, id(DISPID_IHTMLELEMENT3_ONDEACTIVATE), displaybind, bindable]
5534     void ondeactivate(VARIANT v);
5535
5536     [propget, id(DISPID_IHTMLELEMENT3_ONDEACTIVATE), displaybind, bindable]
5537     VARIANT ondeactivate();
5538
5539     [id(DISPID_IHTMLELEMENT3_DRAGDROP)]
5540     VARIANT_BOOL dragDrop();
5541
5542     [propget, id(DISPID_IHTMLELEMENT3_GLYPHMODE), hidden, restricted, nonbrowsable]
5543     LONG glyphMode();
5544
5545     [propput, id(DISPID_IHTMLELEMENT4_ONMOUSEWHEEL), displaybind, bindable]
5546     void onmousewheel(VARIANT v);
5547
5548     [propget, id(DISPID_IHTMLELEMENT4_ONMOUSEWHEEL), displaybind, bindable]
5549     VARIANT onmousewheel();
5550
5551     [id(DISPID_IHTMLELEMENT4_NORMALIZE)]
5552     void normalize();
5553
5554     [id(DISPID_IHTMLELEMENT4_GETATTRIBUTENODE)]
5555     IHTMLDOMAttribute *getAttributeNode([in] BSTR bstrname);
5556
5557     [id(DISPID_IHTMLELEMENT4_SETATTRIBUTENODE)]
5558     IHTMLDOMAttribute *setAttributeNode([in] IHTMLDOMAttribute *pattr);
5559
5560     [id(DISPID_IHTMLELEMENT4_REMOVEATTRIBUTENODE)]
5561     IHTMLDOMAttribute *removeAttributeNode([in] IHTMLDOMAttribute *pattr);
5562
5563     [propput, id(DISPID_IHTMLELEMENT4_ONBEFOREACTIVATE), displaybind, bindable]
5564     void onbeforeactivate(VARIANT v);
5565
5566     [propget, id(DISPID_IHTMLELEMENT4_ONBEFOREACTIVATE), displaybind, bindable]
5567     VARIANT onbeforeactivate();
5568
5569     [propput, id(DISPID_IHTMLELEMENT4_ONFOCUSIN), displaybind, bindable]
5570     void onfocusin(VARIANT v);
5571
5572     [propget, id(DISPID_IHTMLELEMENT4_ONFOCUSIN), displaybind, bindable]
5573     VARIANT onfocusin();
5574
5575     [propput, id(DISPID_IHTMLELEMENT4_ONFOCUSOUT), displaybind, bindable]
5576     void onfocusout(VARIANT v);
5577
5578     [propget, id(DISPID_IHTMLELEMENT4_ONFOCUSOUT), displaybind, bindable]
5579     VARIANT onfocusout();
5580
5581     [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden]
5582     long uniqueNumber();
5583
5584     [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden]
5585     BSTR uniqueID();
5586
5587     [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)]
5588     long nodeType();
5589
5590     [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)]
5591     IHTMLDOMNode *parentNode();
5592
5593     [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)]
5594     VARIANT_BOOL hasChildNodes();
5595
5596     [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)]
5597     IDispatch *childNodes();
5598
5599     [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)]
5600     IDispatch *attributes();
5601
5602     [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)]
5603     IHTMLDOMNode *insertBefore(
5604             [in] IHTMLDOMNode *newChild,
5605             [in, optional] VARIANT refChild);
5606
5607     [id(DISPID_IHTMLDOMNODE_REMOVECHILD)]
5608     IHTMLDOMNode *removeChild([in] IHTMLDOMNode *oldChild);
5609
5610     [id(DISPID_IHTMLDOMNODE_REPLACECHILD)]
5611     IHTMLDOMNode *replaceChild(
5612             [in] IHTMLDOMNode *newChild,
5613             [in] IHTMLDOMNode *oldChild);
5614
5615     [id(DISPID_IHTMLDOMNODE_CLONENODE)]
5616     IHTMLDOMNode *cloneNode([in] VARIANT_BOOL fDeep);
5617
5618     [id(DISPID_IHTMLDOMNODE_REMOVENODE)]
5619     IHTMLDOMNode *removeNode([in, defaultvalue(0)] VARIANT_BOOL fDeep);
5620
5621     [id(DISPID_IHTMLDOMNODE_SWAPNODE)]
5622     IHTMLDOMNode *swapNode([in] IHTMLDOMNode *otherNode);
5623
5624     [id(DISPID_IHTMLDOMNODE_REPLACENODE)]
5625     IHTMLDOMNode *replaceNode([in] IHTMLDOMNode *replacement);
5626
5627     [id(DISPID_IHTMLDOMNODE_APPENDCHILD)]
5628     IHTMLDOMNode *appendChild([in] IHTMLDOMNode *newChild);
5629
5630     [propget, id(DISPID_IHTMLDOMNODE_NODENAME)]
5631     BSTR nodeName();
5632
5633     [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)]
5634     void nodeValue(VARIANT v);
5635
5636     [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)]
5637     VARIANT nodeValue();
5638
5639     [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)]
5640     IHTMLDOMNode *firstChild();
5641
5642     [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)]
5643     IHTMLDOMNode *lastChild();
5644
5645     [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)]
5646     IHTMLDOMNode *previousSibling();
5647
5648     [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)]
5649     IHTMLDOMNode *nextSibling();
5650
5651     [propget, id(DISPID_IHTMLDOMNODE2_OWNERDOCUMENT)]
5652     IDispatch *ownerDocument();
5653
5654     [propput, id(DISPID_IHTMLDATABINDING_DATAFLD)]
5655     void dataFld(BSTR v);
5656
5657     [propget, id(DISPID_IHTMLDATABINDING_DATAFLD)]
5658     BSTR dataFld();
5659
5660     [propput, id(DISPID_IHTMLDATABINDING_DATASRC)]
5661     void dataSrc(BSTR v);
5662
5663     [propget, id(DISPID_IHTMLDATABINDING_DATASRC)]
5664     BSTR dataSrc();
5665
5666     [propput, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)]
5667     void dataFormatAs(BSTR v);
5668
5669     [propget, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)]
5670     BSTR dataFormatAs();
5671
5672     [propput, id(DISPID_IHTMLINPUTELEMENT_TYPE)]
5673     void type(BSTR v);
5674
5675     [propget, id(DISPID_IHTMLINPUTELEMENT_TYPE)]
5676     BSTR type();
5677
5678     [propput, id(DISPID_IHTMLINPUTELEMENT_VALUE), displaybind, bindable]
5679     void value(BSTR v);
5680
5681     [propget, id(DISPID_IHTMLINPUTELEMENT_VALUE), displaybind, bindable]
5682     BSTR value();
5683
5684     [propput, id(DISPID_IHTMLINPUTELEMENT_NAME), displaybind, bindable]
5685     void name(BSTR v);
5686
5687     [propget, id(DISPID_IHTMLINPUTELEMENT_NAME), displaybind, bindable]
5688     BSTR name();
5689
5690     [propput, id(DISPID_IHTMLINPUTELEMENT_STATUS)]
5691     void status(VARIANT_BOOL v);
5692
5693     [propget, id(DISPID_IHTMLINPUTELEMENT_STATUS)]
5694     VARIANT_BOOL status();
5695
5696     [propget, id(DISPID_IHTMLINPUTELEMENT_FORM)]
5697     IHTMLFormElement *form();
5698
5699     [propput, id(DISPID_IHTMLINPUTELEMENT_SIZE), displaybind, bindable]
5700     void size(long v);
5701
5702     [propget, id(DISPID_IHTMLINPUTELEMENT_SIZE), displaybind, bindable]
5703     long size();
5704
5705     [propput, id(DISPID_IHTMLINPUTELEMENT_MAXLENGTH), displaybind, bindable]
5706     void maxLength(long v);
5707
5708     [propget, id(DISPID_IHTMLINPUTELEMENT_MAXLENGTH), displaybind, bindable]
5709     long maxLength();
5710
5711     [id(DISPID_IHTMLINPUTELEMENT_SELECT)]
5712     void select();
5713
5714     [propput, id(DISPID_IHTMLINPUTELEMENT_ONCHANGE), displaybind, bindable]
5715     void onchange(VARIANT v);
5716
5717     [propget, id(DISPID_IHTMLINPUTELEMENT_ONCHANGE), displaybind, bindable]
5718     VARIANT onchange();
5719
5720     [propput, id(DISPID_IHTMLINPUTELEMENT_ONSELECT), displaybind, bindable]
5721     void onselect(VARIANT v);
5722
5723     [propget, id(DISPID_IHTMLINPUTELEMENT_ONSELECT), displaybind, bindable]
5724     VARIANT onselect();
5725
5726     [propput, id(DISPID_IHTMLINPUTELEMENT_DEFAULTVALUE), displaybind, bindable, hidden]
5727     void defaultValue(BSTR v);
5728
5729     [propget, id(DISPID_IHTMLINPUTELEMENT_DEFAULTVALUE), displaybind, bindable, hidden]
5730     BSTR defaultValue();
5731
5732     [propput, id(DISPID_IHTMLINPUTELEMENT_READONLY), displaybind, bindable]
5733     void readOnly(VARIANT_BOOL v);
5734
5735     [propget, id(DISPID_IHTMLINPUTELEMENT_READONLY), displaybind, bindable]
5736     VARIANT_BOOL readOnly();
5737
5738     [id(DISPID_IHTMLINPUTELEMENT_CREATETEXTRANGE)]
5739     IHTMLTxtRange *createTextRange();
5740
5741     [propput, id(DISPID_IHTMLINPUTELEMENT_INDETERMINATE), bindable]
5742     void indeterminate(VARIANT_BOOL v);
5743
5744     [propget, id(DISPID_IHTMLINPUTELEMENT_INDETERMINATE), bindable]
5745     VARIANT_BOOL indeterminate();
5746
5747     [propput, id(DISPID_IHTMLINPUTELEMENT_DEFAULTCHECKED), bindable]
5748     void defaultChecked(VARIANT_BOOL v);
5749
5750     [propget, id(DISPID_IHTMLINPUTELEMENT_DEFAULTCHECKED), bindable]
5751     VARIANT_BOOL defaultChecked();
5752
5753     [propput, id(DISPID_IHTMLINPUTELEMENT_CHECKED), bindable]
5754     void checked(VARIANT_BOOL v);
5755
5756     [propget, id(DISPID_IHTMLINPUTELEMENT_CHECKED), bindable]
5757     VARIANT_BOOL checked();
5758
5759     [propput, id(DISPID_IHTMLINPUTELEMENT_BORDER), displaybind, bindable]
5760     void border(VARIANT v);
5761
5762     [propget, id(DISPID_IHTMLINPUTELEMENT_BORDER), displaybind, bindable]
5763     VARIANT border();
5764
5765     [propput, id(DISPID_IHTMLINPUTELEMENT_VSPACE), displaybind, bindable]
5766     void vspace(long v);
5767
5768     [propget, id(DISPID_IHTMLINPUTELEMENT_VSPACE), displaybind, bindable]
5769     long vspace();
5770
5771     [propput, id(DISPID_IHTMLINPUTELEMENT_HSPACE), displaybind, bindable]
5772     void hspace(long v);
5773
5774     [propget, id(DISPID_IHTMLINPUTELEMENT_HSPACE), displaybind, bindable]
5775     long hspace();
5776
5777     [propput, id(DISPID_IHTMLINPUTELEMENT_ALT), displaybind, bindable]
5778     void alt(BSTR v);
5779
5780     [propget, id(DISPID_IHTMLINPUTELEMENT_ALT), displaybind, bindable]
5781     BSTR alt();
5782
5783     [propput, id(DISPID_IHTMLINPUTELEMENT_SRC), displaybind, bindable]
5784     void src(BSTR v);
5785
5786     [propget, id(DISPID_IHTMLINPUTELEMENT_SRC), displaybind, bindable]
5787     BSTR src();
5788
5789     [propput, id(DISPID_IHTMLINPUTELEMENT_LOWSRC), displaybind, bindable]
5790     void lowsrc(BSTR v);
5791
5792     [propget, id(DISPID_IHTMLINPUTELEMENT_LOWSRC), displaybind, bindable]
5793     BSTR lowsrc();
5794
5795     [propput, id(DISPID_IHTMLINPUTELEMENT_VRML), displaybind, bindable]
5796     void vrml(BSTR v);
5797
5798     [propget, id(DISPID_IHTMLINPUTELEMENT_VRML), displaybind, bindable]
5799     BSTR vrml();
5800
5801     [propput, id(DISPID_IHTMLINPUTELEMENT_DYNSRC), displaybind, bindable]
5802     void dynsrc(BSTR v);
5803
5804     [propget, id(DISPID_IHTMLINPUTELEMENT_DYNSRC), displaybind, bindable]
5805     BSTR dynsrc();
5806
5807     [propget, id(DISPID_IHTMLINPUTELEMENT_COMPLETE)]
5808     VARIANT_BOOL complete();
5809
5810     [propput, id(DISPID_IHTMLINPUTELEMENT_LOOP), displaybind, bindable]
5811     void loop(VARIANT v);
5812
5813     [propget, id(DISPID_IHTMLINPUTELEMENT_LOOP), displaybind, bindable]
5814     VARIANT loop();
5815
5816     [propput, id(DISPID_IHTMLINPUTELEMENT_ALIGN), displaybind, bindable]
5817     void align(BSTR v);
5818
5819     [propget, id(DISPID_IHTMLINPUTELEMENT_ALIGN), displaybind, bindable]
5820     BSTR align();
5821
5822     [propput, id(DISPID_IHTMLINPUTELEMENT_ONLOAD), displaybind, bindable]
5823     void onload(VARIANT v);
5824
5825     [propget, id(DISPID_IHTMLINPUTELEMENT_ONLOAD), displaybind, bindable]
5826     VARIANT onload();
5827
5828     [propput, id(DISPID_IHTMLINPUTELEMENT_ONERROR), displaybind, bindable]
5829     void onerror(VARIANT v);
5830
5831     [propget, id(DISPID_IHTMLINPUTELEMENT_ONERROR), displaybind, bindable]
5832     VARIANT onerror();
5833
5834     [propput, id(DISPID_IHTMLINPUTELEMENT_ONABORT), displaybind, bindable]
5835     void onabort(VARIANT v);
5836
5837     [propget, id(DISPID_IHTMLINPUTELEMENT_ONABORT), displaybind, bindable]
5838     VARIANT onabort();
5839
5840     [propput, id(DISPID_IHTMLINPUTELEMENT_WIDTH)]
5841     void width(long v);
5842
5843     [propget, id(DISPID_IHTMLINPUTELEMENT_WIDTH)]
5844     long width();
5845
5846     [propput, id(DISPID_IHTMLINPUTELEMENT_HEIGHT)]
5847     void height(long v);
5848
5849     [propget, id(DISPID_IHTMLINPUTELEMENT_HEIGHT)]
5850     long height();
5851
5852     [propput, id(DISPID_IHTMLINPUTELEMENT_START), displaybind, bindable]
5853     void start(BSTR v);
5854
5855     [propget, id(DISPID_IHTMLINPUTELEMENT_START), displaybind, bindable]
5856     BSTR start();
5857
5858     [propput, id(DISPID_IHTMLINPUTELEMENT2_ACCEPT), displaybind, bindable]
5859     void accept(BSTR v);
5860
5861     [propget, id(DISPID_IHTMLINPUTELEMENT2_ACCEPT), displaybind, bindable]
5862     BSTR accept();
5863
5864     [propput, id(DISPID_IHTMLINPUTELEMENT2_USEMAP), displaybind, bindable]
5865     void useMap(BSTR v);
5866
5867     [propget, id(DISPID_IHTMLINPUTELEMENT2_USEMAP), displaybind, bindable]
5868     BSTR useMap();
5869 }
5870
5871 /*****************************************************************************
5872  *    IHTMLTextAreaElement interface
5873  */
5874 [
5875     odl,
5876     oleautomation,
5877     dual,
5878     uuid(3050f2aa-98b5-11cf-bb82-00aa00bdce0b)
5879 ]
5880 interface IHTMLTextAreaElement : IDispatch
5881 {
5882     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_TYPE)]
5883     HRESULT type([retval, out] BSTR *p);
5884
5885     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_VALUE), displaybind, bindable]
5886     HRESULT value([in] BSTR v);
5887
5888     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_VALUE), displaybind, bindable]
5889     HRESULT value([retval, out] BSTR *p);
5890
5891     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_NAME), displaybind, bindable]
5892     HRESULT name([in] BSTR v);
5893
5894     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_NAME), displaybind, bindable]
5895     HRESULT name([retval, out] BSTR *p);
5896
5897     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_STATUS)]
5898     HRESULT status([in] VARIANT v);
5899
5900     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_STATUS)]
5901     HRESULT status([retval, out] VARIANT *p);
5902
5903     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_DISABLED), displaybind, bindable]
5904     HRESULT disabled([in] VARIANT_BOOL v);
5905
5906     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_DISABLED), displaybind, bindable]
5907     HRESULT disabled([retval, out] VARIANT_BOOL *p);
5908
5909     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_FORM)]
5910     HRESULT form([retval, out] IHTMLFormElement **p);
5911
5912     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_DEFAULTVALUE), displaybind, bindable, hidden]
5913     HRESULT defaultValue([in] BSTR v);
5914
5915     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_DEFAULTVALUE), displaybind, bindable, hidden]
5916     HRESULT defaultValue([retval, out] BSTR *p);
5917
5918     [id(DISPID_IHTMLTEXTAREAELEMENT_SELECT)]
5919     HRESULT select();
5920
5921     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_ONCHANGE), displaybind, bindable]
5922     HRESULT onchange([in] VARIANT v);
5923
5924     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_ONCHANGE), displaybind, bindable]
5925     HRESULT onchange([retval, out] VARIANT *p);
5926
5927     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_ONSELECT), displaybind, bindable]
5928     HRESULT onselect([in] VARIANT v);
5929
5930     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_ONSELECT), displaybind, bindable]
5931     HRESULT onselect([retval, out] VARIANT *p);
5932
5933     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_READONLY), displaybind, bindable]
5934     HRESULT readOnly([in] VARIANT_BOOL v);
5935
5936     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_READONLY), displaybind, bindable]
5937     HRESULT readOnly([retval, out] VARIANT_BOOL *p);
5938
5939     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_ROWS), displaybind, bindable]
5940     HRESULT rows([in] long v);
5941
5942     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_ROWS), displaybind, bindable]
5943     HRESULT rows([retval, out] long *p);
5944
5945     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_COLS), displaybind, bindable]
5946     HRESULT cols([in] long v);
5947
5948     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_COLS), displaybind, bindable]
5949     HRESULT cols([retval, out] long *p);
5950
5951     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_WRAP), displaybind, bindable]
5952     HRESULT wrap([in] BSTR v);
5953
5954     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_WRAP), displaybind, bindable]
5955     HRESULT wrap([retval, out] BSTR *p);
5956
5957     [id(DISPID_IHTMLTEXTAREAELEMENT_CREATETEXTRANGE)]
5958     HRESULT createTextRange([retval, out] IHTMLTxtRange **range);
5959 }
5960
5961 /*****************************************************************************
5962  *    DispHTMLUnknownElement interface
5963  */
5964 [
5965     hidden,
5966     uuid(3050f539-98b5-11cf-bb82-00aa00bdce0b)
5967 ]
5968 dispinterface DispHTMLUnknownElement
5969 {
5970 properties:
5971 methods:
5972     [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)]
5973     void setAttribute(
5974             [in] BSTR strAttributeName,
5975             [in] VARIANT AttributeValue,
5976             [in, defaultvalue(1)] LONG lFlags);
5977
5978     [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)]
5979     VARIANT getAttribute(
5980              [in] BSTR strAttributeName,
5981              [in, defaultvalue(0)] LONG lFlags);
5982
5983     [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)]
5984     VARIANT_BOOL removeAttribute(
5985             [in] BSTR strAttributeName,
5986             [in, defaultvalue(1)] LONG lFlags);
5987
5988     [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable]
5989     void className(BSTR v);
5990
5991     [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable]
5992     BSTR className();
5993
5994     [propput, id(DISPID_IHTMLELEMENT_ID), bindable]
5995     void id(BSTR v);
5996
5997     [propget, id(DISPID_IHTMLELEMENT_ID), bindable]
5998     BSTR id();
5999
6000     [propget, id(DISPID_IHTMLELEMENT_TAGNAME)]
6001     BSTR tagName();
6002
6003     [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)]
6004     IHTMLElement *parentElement();
6005
6006     [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable]
6007     IHTMLStyle *style();
6008
6009     [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable]
6010     void onhelp(VARIANT v);
6011
6012     [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable]
6013     VARIANT onhelp();
6014
6015     [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable]
6016     void onclick(VARIANT v);
6017
6018     [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable]
6019     VARIANT onclick();
6020
6021     [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable]
6022     void ondblclick(VARIANT v);
6023
6024     [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable]
6025     VARIANT ondblclick();
6026
6027     [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable]
6028     void onkeydown(VARIANT v);
6029
6030     [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable]
6031     VARIANT onkeydown();
6032
6033     [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable]
6034     void onkeyup(VARIANT v);
6035
6036     [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable]
6037     VARIANT onkeyup();
6038
6039     [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable]
6040     void onkeypress(VARIANT v);
6041
6042     [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable]
6043     VARIANT onkeypress();
6044
6045     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable]
6046     void onmouseout(VARIANT v);
6047
6048     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable]
6049     VARIANT onmouseout();
6050
6051     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable]
6052     void onmouseover(VARIANT v);
6053
6054     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable]
6055     VARIANT onmouseover();
6056
6057     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable]
6058     void onmousemove(VARIANT v);
6059
6060     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable]
6061     VARIANT onmousemove();
6062
6063     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable]
6064     void onmousedown(VARIANT v);
6065
6066     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable]
6067     VARIANT onmousedown();
6068
6069     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable]
6070     void onmouseup(VARIANT v);
6071
6072     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable]
6073     VARIANT onmouseup();
6074
6075     [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)]
6076     IDispatch *document();
6077
6078     [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable]
6079     void title(BSTR v);
6080
6081     [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable]
6082     BSTR title();
6083
6084     [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable]
6085     void language(BSTR v);
6086
6087     [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable]
6088     BSTR language();
6089
6090     [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable]
6091     void onselectstart(VARIANT v);
6092
6093     [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable]
6094     VARIANT onselectstart();
6095
6096     [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)]
6097     void scrollIntoView([in, optional] VARIANT varargStart);
6098
6099     [id(DISPID_IHTMLELEMENT_CONTAINS)]
6100     VARIANT_BOOL contains([in] IHTMLElement *pChild);
6101
6102     [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable]
6103     long sourceIndex();
6104
6105     [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)]
6106     VARIANT recordNumber();
6107
6108     [propput, id(DISPID_IHTMLELEMENT_LANG)]
6109     void lang(BSTR v);
6110
6111     [propget, id(DISPID_IHTMLELEMENT_LANG)]
6112     BSTR lang();
6113
6114     [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)]
6115     long offsetLeft();
6116
6117     [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)]
6118     long offsetTop();
6119
6120     [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)]
6121     long offsetWidth();
6122
6123     [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)]
6124     long offsetHeight();
6125
6126     [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)]
6127     IHTMLElement *offsetParent();
6128
6129     [propput, id(DISPID_IHTMLELEMENT_INNERHTML)]
6130     void innerHTML(BSTR v);
6131
6132     [propget, id(DISPID_IHTMLELEMENT_INNERHTML)]
6133     BSTR innerHTML();
6134
6135     [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)]
6136     void innerText(BSTR v);
6137
6138     [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)]
6139     BSTR innerText();
6140
6141     [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)]
6142     void outerHTML(BSTR v);
6143
6144     [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)]
6145     BSTR outerHTML();
6146
6147     [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
6148     void outerText(BSTR v);
6149
6150     [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
6151     BSTR outerText();
6152
6153     [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)]
6154     void insertAdjacentHTML(
6155             [in] BSTR where,
6156             [in] BSTR html);
6157
6158     [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)]
6159     void insertAdjacentText(
6160             [in] BSTR where,
6161             [in] BSTR text);
6162
6163     [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)]
6164     IHTMLElement *parentTextEdit();
6165
6166     [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)]
6167     VARIANT_BOOL isTextEdit();
6168
6169     [id(DISPID_IHTMLELEMENT_CLICK)]
6170     void click();
6171
6172     [propget, id(DISPID_IHTMLELEMENT_FILTERS)]
6173     IHTMLFiltersCollection *filters();
6174
6175     [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable]
6176     void ondragstart(VARIANT v);
6177
6178     [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable]
6179     VARIANT ondragstart();
6180
6181     [id(DISPID_IHTMLELEMENT_TOSTRING)]
6182     BSTR toString();
6183
6184     [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable]
6185     void onbeforeupdate(VARIANT v);
6186
6187     [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable]
6188     VARIANT onbeforeupdate();
6189
6190     [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable]
6191     void onafterupdate(VARIANT v);
6192
6193     [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable]
6194     VARIANT onafterupdate();
6195
6196     [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable]
6197     void onerrorupdate(VARIANT v);
6198
6199     [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable]
6200     VARIANT onerrorupdate();
6201
6202     [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable]
6203     void onrowexit(VARIANT v);
6204
6205     [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable]
6206     VARIANT onrowexit();
6207
6208     [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable]
6209     void onrowenter(VARIANT v);
6210
6211     [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable]
6212     VARIANT onrowenter();
6213
6214     [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable]
6215     void ondatasetchanged(VARIANT v);
6216
6217     [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable]
6218     VARIANT ondatasetchanged();
6219
6220     [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable]
6221     void ondataavailable(VARIANT v);
6222
6223     [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable]
6224     VARIANT ondataavailable();
6225
6226     [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable]
6227     void ondatasetcomplete(VARIANT v);
6228
6229     [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable]
6230     VARIANT ondatasetcomplete();
6231
6232     [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable]
6233     void onfilterchange(VARIANT v);
6234
6235     [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable]
6236     VARIANT onfilterchange();
6237
6238     [propget, id(DISPID_IHTMLELEMENT_CHILDREN)]
6239     IDispatch *children();
6240
6241     [propget, id(DISPID_IHTMLELEMENT_ALL)]
6242     IDispatch *all();
6243
6244     [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)]
6245     BSTR scopeName();
6246
6247     [id(DISPID_IHTMLELEMENT2_SETCAPTURE)]
6248     void setCapture([in, defaultvalue(-1)] VARIANT_BOOL containerCapture);
6249
6250     [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)]
6251     void releaseCapture();
6252
6253     [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
6254     void onlosecapture(VARIANT v);
6255
6256     [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable]
6257     VARIANT onlosecapture();
6258
6259     [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)]
6260     BSTR componentFromPoint(
6261             [in] long x,
6262             [in] long y);
6263
6264     [id(DISPID_IHTMLELEMENT2_DOSCROLL)]
6265     void doScroll([in, optional] VARIANT component);
6266
6267     [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
6268     void onscroll(VARIANT v);
6269
6270     [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable]
6271     VARIANT onscroll();
6272
6273     [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
6274     void ondrag(VARIANT v);
6275
6276     [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable]
6277     VARIANT ondrag();
6278
6279     [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
6280     void ondragend(VARIANT v);
6281
6282     [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable]
6283     VARIANT ondragend();
6284
6285     [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
6286     void ondragenter(VARIANT v);
6287
6288     [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable]
6289     VARIANT ondragenter();
6290
6291     [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
6292     void ondragover(VARIANT v);
6293
6294     [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable]
6295     VARIANT ondragover();
6296
6297     [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
6298     void ondragleave(VARIANT v);
6299
6300     [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable]
6301     VARIANT ondragleave();
6302
6303     [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable]
6304     void ondrop(VARIANT v);
6305
6306     [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable]
6307     VARIANT ondrop();
6308
6309     [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable]
6310     void onbeforecut(VARIANT v);
6311
6312     [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable]
6313     VARIANT onbeforecut();
6314
6315     [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable]
6316     void oncut(VARIANT v);
6317
6318     [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable]
6319     VARIANT oncut();
6320
6321     [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable]
6322     void onbeforecopy(VARIANT v);
6323
6324     [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable]
6325     VARIANT onbeforecopy();
6326
6327     [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable]
6328     void oncopy(VARIANT v);
6329
6330     [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable]
6331     VARIANT oncopy();
6332
6333     [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable]
6334     void onbeforepaste(VARIANT v);
6335
6336     [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable]
6337     VARIANT onbeforepaste();
6338
6339     [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable]
6340     void onpaste(VARIANT v);
6341
6342     [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable]
6343     VARIANT onpaste();
6344
6345     [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable]
6346     IHTMLCurrentStyle *currentStyle();
6347
6348     [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable]
6349     void onpropertychange(VARIANT v);
6350
6351     [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable]
6352     VARIANT onpropertychange();
6353
6354     [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)]
6355     IHTMLRectCollection *getClientRects();
6356
6357     [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)]
6358     IHTMLRect *getBoundingClientRect();
6359
6360     [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)]
6361     void setExpression(
6362             [in] BSTR propname,
6363             [in] BSTR expression,
6364             [in, defaultvalue("")] BSTR language);
6365
6366     [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)]
6367     VARIANT getExpression([in] BSTR propname);
6368
6369     [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)]
6370     VARIANT_BOOL removeExpression([in] BSTR propname);
6371
6372     [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable]
6373     void tabIndex(short v);
6374
6375     [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable]
6376     short tabIndex();
6377
6378     [id(DISPID_IHTMLELEMENT2_FOCUS)]
6379     void focus();
6380
6381     [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable]
6382     void accessKey(BSTR v);
6383
6384     [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable]
6385     BSTR accessKey();
6386
6387     [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable]
6388     void onblur(VARIANT v);
6389
6390     [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable]
6391     VARIANT onblur();
6392
6393     [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable]
6394     void onfocus(VARIANT v);
6395
6396     [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable]
6397     VARIANT onfocus();
6398
6399     [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable]
6400     void onresize(VARIANT v);
6401
6402     [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable]
6403     VARIANT onresize();
6404
6405     [id(DISPID_IHTMLELEMENT2_BLUR)]
6406     void blur();
6407
6408     [id(DISPID_IHTMLELEMENT2_ADDFILTER)]
6409     void addFilter([in] IUnknown *pUnk);
6410
6411     [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)]
6412     void removeFilter([in] IUnknown *pUnk);
6413
6414     [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable]
6415     long clientHeight();
6416
6417     [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable]
6418     long clientWidth();
6419
6420     [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable]
6421     long clientTop();
6422
6423     [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable]
6424     long clientLeft();
6425
6426     [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)]
6427     VARIANT_BOOL attachEvent(
6428             [in] BSTR event,
6429             [in] IDispatch *pDisp);
6430
6431     [id(DISPID_IHTMLELEMENT2_DETACHEVENT)]
6432     void detachEvent(
6433             [in] BSTR event,
6434             [in] IDispatch *pDisp);
6435
6436     [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)]
6437     VARIANT readyState();
6438
6439     [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable]
6440     void onreadystatechange(VARIANT v);
6441
6442     [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable]
6443     VARIANT onreadystatechange();
6444
6445     [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable]
6446     void onrowsdelete(VARIANT v);
6447
6448     [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable]
6449     VARIANT onrowsdelete();
6450
6451     [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable]
6452     void onrowsinserted(VARIANT v);
6453
6454     [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable]
6455      VARIANT onrowsinserted();
6456
6457     [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable]
6458      void oncellchange(VARIANT v);
6459
6460     [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable]
6461     VARIANT oncellchange();
6462
6463     [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable]
6464     void dir(BSTR v);
6465
6466     [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable]
6467     BSTR dir();
6468
6469     [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)]
6470     IDispatch *createControlRange();
6471
6472     [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable]
6473     long scrollHeight();
6474
6475     [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable]
6476     long scrollWidth();
6477
6478     [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable]
6479     void scrollTop(long v);
6480
6481     [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable]
6482     long scrollTop();
6483
6484     [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable]
6485     void scrollLeft(long v);
6486
6487     [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable]
6488     long scrollLeft();
6489
6490     [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)]
6491     void clearAttributes();
6492
6493     [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable]
6494     void oncontextmenu(VARIANT v);
6495
6496     [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable]
6497     VARIANT oncontextmenu();
6498
6499     [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)]
6500     IHTMLElement *insertAdjacentElement(
6501             [in] BSTR where,
6502             [in] IHTMLElement *insertedElement);
6503
6504     [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)]
6505     IHTMLElement *applyElement(
6506             [in] IHTMLElement *apply,
6507             [in] BSTR where);
6508
6509     [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)]
6510     BSTR getAdjacentText([in] BSTR where);
6511
6512     [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)]
6513     BSTR replaceAdjacentText(
6514             [in] BSTR where,
6515             [in] BSTR newText);
6516
6517     [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)]
6518     VARIANT_BOOL canHaveChildren();
6519
6520     [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)]
6521     long addBehavior(
6522             [in] BSTR bstrUrl,
6523             [in, optional] VARIANT *pvarFactory);
6524
6525     [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)]
6526     VARIANT_BOOL removeBehavior([in] long cookie);
6527
6528     [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable]
6529     IHTMLStyle *runtimeStyle();
6530
6531     [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)]
6532     IDispatch *behaviorUrns();
6533
6534     [propput, id(DISPID_IHTMLELEMENT2_TAGURN)]
6535     void tagUrn(BSTR v);
6536
6537     [propget, id(DISPID_IHTMLELEMENT2_TAGURN)]
6538     BSTR tagUrn();
6539
6540     [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable]
6541     void onbeforeeditfocus(VARIANT v);
6542
6543     [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable]
6544     VARIANT onbeforeeditfocus();
6545
6546     [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted]
6547     long readyStateValue();
6548
6549     [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)]
6550     IHTMLElementCollection *getElementsByTagName([in] BSTR v);
6551
6552     [id(DISPID_IHTMLELEMENT3_MERGEATTRIBUTES)]
6553     void mergeAttributes(
6554             [in] IHTMLElement *mergeThis,
6555             [in, optional] VARIANT *pvarFlags);
6556
6557     [propget, id(DISPID_IHTMLELEMENT3_ISMULTILINE)]
6558     VARIANT_BOOL isMultiLine();
6559
6560     [propget, id(DISPID_IHTMLELEMENT3_CANHAVEHTML)]
6561     VARIANT_BOOL canHaveHTML();
6562
6563     [propput, id(DISPID_IHTMLELEMENT3_ONLAYOUTCOMPLETE), displaybind, bindable]
6564     void onlayoutcomplete(VARIANT v);
6565
6566     [propget, id(DISPID_IHTMLELEMENT3_ONLAYOUTCOMPLETE), displaybind, bindable]
6567     VARIANT onlayoutcomplete();
6568
6569     [propput, id(DISPID_IHTMLELEMENT3_ONPAGE), displaybind, bindable]
6570     void onpage(VARIANT v);
6571
6572     [propget, id(DISPID_IHTMLELEMENT3_ONPAGE), displaybind, bindable]
6573     VARIANT onpage();
6574
6575     [propput, id(DISPID_IHTMLELEMENT3_INFLATEBLOCK), hidden, restricted, nonbrowsable]
6576     void inflateBlock(VARIANT_BOOL v);
6577
6578     [propget, id(DISPID_IHTMLELEMENT3_INFLATEBLOCK), hidden, restricted, nonbrowsable]
6579     VARIANT_BOOL inflateBlock();
6580
6581     [propput, id(DISPID_IHTMLELEMENT3_ONBEFOREDEACTIVATE), displaybind, bindable]
6582     void onbeforedeactivate(VARIANT v);
6583
6584     [propget, id(DISPID_IHTMLELEMENT3_ONBEFOREDEACTIVATE), displaybind, bindable]
6585     VARIANT onbeforedeactivate();
6586
6587     [id(DISPID_IHTMLELEMENT3_SETACTIVE)]
6588     void setActive();
6589
6590     [propput, id(DISPID_IHTMLELEMENT3_CONTENTEDITABLE), displaybind, bindable]
6591     void contentEditable(BSTR v);
6592
6593     [propget, id(DISPID_IHTMLELEMENT3_CONTENTEDITABLE), displaybind, bindable]
6594     BSTR contentEditable();
6595
6596     [propget, id(DISPID_IHTMLELEMENT3_ISCONTENTEDITABLE)]
6597     VARIANT_BOOL isContentEditable();
6598
6599     [propput, id(DISPID_IHTMLELEMENT3_HIDEFOCUS), displaybind, bindable]
6600     void hideFocus(VARIANT_BOOL v);
6601
6602     [propget, id(DISPID_IHTMLELEMENT3_HIDEFOCUS), displaybind, bindable]
6603     VARIANT_BOOL hideFocus();
6604
6605     [propput, id(DISPID_IHTMLELEMENT3_DISABLED), displaybind, bindable]
6606     void disabled(VARIANT_BOOL v);
6607
6608     [propget, id(DISPID_IHTMLELEMENT3_DISABLED), displaybind, bindable]
6609     VARIANT_BOOL disabled();
6610
6611     [propget, id(DISPID_IHTMLELEMENT3_ISDISABLED)]
6612     VARIANT_BOOL isDisabled();
6613
6614     [propput, id(DISPID_IHTMLELEMENT3_ONMOVE), displaybind, bindable]
6615     void onmove(VARIANT v);
6616
6617     [propget, id(DISPID_IHTMLELEMENT3_ONMOVE), displaybind, bindable]
6618     VARIANT onmove();
6619
6620     [propput, id(DISPID_IHTMLELEMENT3_ONCONTROLSELECT), displaybind, bindable]
6621     void oncontrolselect(VARIANT v);
6622
6623     [propget, id(DISPID_IHTMLELEMENT3_ONCONTROLSELECT), displaybind, bindable]
6624     VARIANT oncontrolselect();
6625
6626     [id(DISPID_IHTMLELEMENT3_FIREEVENT)]
6627     VARIANT_BOOL fireEvent(
6628             [in] BSTR bstrEventName,
6629             [in, optional] VARIANT *pvarEventObject);
6630
6631     [propput, id(DISPID_IHTMLELEMENT3_ONRESIZESTART), displaybind, bindable]
6632     void onresizestart(VARIANT v);
6633
6634     [propget, id(DISPID_IHTMLELEMENT3_ONRESIZESTART), displaybind, bindable]
6635     VARIANT onresizestart();
6636
6637     [propput, id(DISPID_IHTMLELEMENT3_ONRESIZEEND), displaybind, bindable]
6638     void onresizeend(VARIANT v);
6639
6640     [propget, id(DISPID_IHTMLELEMENT3_ONRESIZEEND), displaybind, bindable]
6641     VARIANT onresizeend();
6642
6643     [propput, id(DISPID_IHTMLELEMENT3_ONMOVESTART), displaybind, bindable]
6644     void onmovestart(VARIANT v);
6645
6646     [propget, id(DISPID_IHTMLELEMENT3_ONMOVESTART), displaybind, bindable]
6647     VARIANT onmovestart();
6648
6649     [propput, id(DISPID_IHTMLELEMENT3_ONMOVEEND), displaybind, bindable]
6650     void onmoveend(VARIANT v);
6651
6652     [propget, id(DISPID_IHTMLELEMENT3_ONMOVEEND), displaybind, bindable]
6653     VARIANT onmoveend();
6654
6655     [propput, id(DISPID_IHTMLELEMENT3_ONMOUSEENTER), displaybind, bindable]
6656     void onmouseenter(VARIANT v);
6657
6658     [propget, id(DISPID_IHTMLELEMENT3_ONMOUSEENTER), displaybind, bindable]
6659     VARIANT onmouseenter();
6660
6661     [propput, id(DISPID_IHTMLELEMENT3_ONMOUSELEAVE), displaybind, bindable]
6662     void onmouseleave(VARIANT v);
6663
6664     [propget, id(DISPID_IHTMLELEMENT3_ONMOUSELEAVE), displaybind, bindable]
6665     VARIANT onmouseleave();
6666
6667     [propput, id(DISPID_IHTMLELEMENT3_ONACTIVATE), displaybind, bindable]
6668     void onactivate(VARIANT v);
6669
6670     [propget, id(DISPID_IHTMLELEMENT3_ONACTIVATE), displaybind, bindable]
6671     VARIANT onactivate();
6672
6673     [propput, id(DISPID_IHTMLELEMENT3_ONDEACTIVATE), displaybind, bindable]
6674     void ondeactivate(VARIANT v);
6675
6676     [propget, id(DISPID_IHTMLELEMENT3_ONDEACTIVATE), displaybind, bindable]
6677     VARIANT ondeactivate();
6678
6679     [id(DISPID_IHTMLELEMENT3_DRAGDROP)]
6680     VARIANT_BOOL dragDrop();
6681
6682     [propget, id(DISPID_IHTMLELEMENT3_GLYPHMODE), hidden, restricted, nonbrowsable]
6683     LONG glyphMode();
6684
6685     [propput, id(DISPID_IHTMLELEMENT4_ONMOUSEWHEEL), displaybind, bindable]
6686     void onmousewheel(VARIANT v);
6687
6688     [propget, id(DISPID_IHTMLELEMENT4_ONMOUSEWHEEL), displaybind, bindable]
6689     VARIANT onmousewheel();
6690
6691     [id(DISPID_IHTMLELEMENT4_NORMALIZE)]
6692     void normalize();
6693
6694     [id(DISPID_IHTMLELEMENT4_GETATTRIBUTENODE)]
6695     IHTMLDOMAttribute *getAttributeNode([in] BSTR bstrname);
6696
6697     [id(DISPID_IHTMLELEMENT4_SETATTRIBUTENODE)]
6698     IHTMLDOMAttribute *setAttributeNode([in] IHTMLDOMAttribute *pattr);
6699
6700     [id(DISPID_IHTMLELEMENT4_REMOVEATTRIBUTENODE)]
6701     IHTMLDOMAttribute *removeAttributeNode([in] IHTMLDOMAttribute *pattr);
6702
6703     [propput, id(DISPID_IHTMLELEMENT4_ONBEFOREACTIVATE), displaybind, bindable]
6704     void onbeforeactivate(VARIANT v);
6705
6706     [propget, id(DISPID_IHTMLELEMENT4_ONBEFOREACTIVATE), displaybind, bindable]
6707     VARIANT onbeforeactivate();
6708
6709     [propput, id(DISPID_IHTMLELEMENT4_ONFOCUSIN), displaybind, bindable]
6710     void onfocusin(VARIANT v);
6711
6712     [propget, id(DISPID_IHTMLELEMENT4_ONFOCUSIN), displaybind, bindable]
6713     VARIANT onfocusin();
6714
6715     [propput, id(DISPID_IHTMLELEMENT4_ONFOCUSOUT), displaybind, bindable]
6716     void onfocusout(VARIANT v);
6717
6718     [propget, id(DISPID_IHTMLELEMENT4_ONFOCUSOUT), displaybind, bindable]
6719     VARIANT onfocusout();
6720
6721     [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden]
6722     long uniqueNumber();
6723
6724     [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden]
6725     BSTR uniqueID();
6726
6727     [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)]
6728     long nodeType();
6729
6730     [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)]
6731     IHTMLDOMNode *parentNode();
6732
6733     [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)]
6734     VARIANT_BOOL hasChildNodes();
6735
6736     [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)]
6737     IDispatch *childNodes();
6738
6739     [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)]
6740     IDispatch *attributes();
6741
6742     [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)]
6743     IHTMLDOMNode *insertBefore(
6744             [in] IHTMLDOMNode *newChild,
6745             [in, optional] VARIANT refChild);
6746
6747     [id(DISPID_IHTMLDOMNODE_REMOVECHILD)]
6748     IHTMLDOMNode *removeChild([in] IHTMLDOMNode *oldChild);
6749
6750     [id(DISPID_IHTMLDOMNODE_REPLACECHILD)]
6751     IHTMLDOMNode *replaceChild(
6752             [in] IHTMLDOMNode *newChild,
6753             [in] IHTMLDOMNode *oldChild);
6754
6755     [id(DISPID_IHTMLDOMNODE_CLONENODE)]
6756     IHTMLDOMNode *cloneNode([in] VARIANT_BOOL fDeep);
6757
6758     [id(DISPID_IHTMLDOMNODE_REMOVENODE)]
6759     IHTMLDOMNode *removeNode([in, defaultvalue(0)] VARIANT_BOOL fDeep);
6760
6761     [id(DISPID_IHTMLDOMNODE_SWAPNODE)]
6762     IHTMLDOMNode *swapNode([in] IHTMLDOMNode *otherNode);
6763
6764     [id(DISPID_IHTMLDOMNODE_REPLACENODE)]
6765     IHTMLDOMNode *replaceNode([in] IHTMLDOMNode *replacement);
6766
6767     [id(DISPID_IHTMLDOMNODE_APPENDCHILD)]
6768     IHTMLDOMNode *appendChild([in] IHTMLDOMNode *newChild);
6769
6770     [propget, id(DISPID_IHTMLDOMNODE_NODENAME)]
6771     BSTR nodeName();
6772
6773     [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)]
6774     void nodeValue(VARIANT v);
6775
6776     [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)]
6777     VARIANT nodeValue();
6778
6779     [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)]
6780     IHTMLDOMNode *firstChild();
6781
6782     [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)]
6783     IHTMLDOMNode *lastChild();
6784
6785     [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)]
6786     IHTMLDOMNode *previousSibling();
6787
6788     [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)]
6789     IHTMLDOMNode *nextSibling();
6790
6791     [propget, id(DISPID_IHTMLDOMNODE2_OWNERDOCUMENT)]
6792     IDispatch *ownerDocument();
6793 }
6794
6795 /*****************************************************************************
6796  *    IOmHistory interface
6797  */
6798 [
6799     odl,
6800     oleautomation,
6801     dual,
6802     uuid(FECEAAA2-8405-11CF-8BA1-00AA00476DA6)
6803 ]
6804 interface IOmHistory : IDispatch
6805 {
6806     [propget, id(DISPID_IOMHISTORY_LENGTH)]
6807     HRESULT length([retval, out] short *p);
6808
6809     [id(DISPID_IOMHISTORY_BACK)]
6810     HRESULT back([optional, in] VARIANT *pvargdistance);
6811
6812     [id(DISPID_IOMHISTORY_FORWARD)]
6813     HRESULT forward([optional, in] VARIANT *pvargdistance);
6814
6815     [id(DISPID_IOMHISTORY_GO)]
6816     HRESULT go([optional, in] VARIANT *pvargdistance);
6817 }
6818
6819 /*****************************************************************************
6820  *    IHTMLMimeTypesCollection interface
6821  */
6822 [
6823     odl,
6824     oleautomation,
6825     dual,
6826     uuid(3050F3FC-98B5-11CF-BB82-00AA00BDCE0B)
6827 ]
6828 interface IHTMLMimeTypesCollection : IDispatch
6829 {
6830     [propget, id(DISPID_IHTMLMIMETYPESCOLLECTION_LENGTH)]
6831     HRESULT length([retval, out] long *p);
6832 }
6833
6834 /*****************************************************************************
6835  *    IHTMLPluginsCollection interface
6836  */
6837 [
6838     odl,
6839     oleautomation,
6840     dual,
6841     uuid(3050F3FD-98B5-11CF-BB82-00AA00BDCE0B)
6842 ]
6843 interface IHTMLPluginsCollection : IDispatch
6844 {
6845     [propget, id(DISPID_IHTMLPLUGINSCOLLECTION_LENGTH)]
6846     HRESULT length([retval, out] long *p);
6847
6848     [id(DISPID_IHTMLPLUGINSCOLLECTION_REFRESH)]
6849     HRESULT refresh([defaultvalue(0), in] VARIANT_BOOL reload);
6850 }
6851
6852 /*****************************************************************************
6853  *    IHTMLOpsProfile interface
6854  */
6855 [
6856     odl,
6857     oleautomation,
6858     dual,
6859     uuid(3050F401-98B5-11CF-BB82-00AA00BDCE0B)
6860 ]
6861 interface IHTMLOpsProfile : IDispatch
6862 {
6863     [id(DISPID_IHTMLOPSPROFILE_ADDREQUEST)]
6864     HRESULT addRequest(
6865         [in] BSTR name,
6866         [optional, in] VARIANT reserved,
6867         [retval, out] VARIANT_BOOL *success);
6868
6869     [id(DISPID_IHTMLOPSPROFILE_CLEARREQUEST)]
6870     HRESULT clearRequest();
6871
6872     [id(DISPID_IHTMLOPSPROFILE_DOREQUEST)]
6873     HRESULT doRequest(
6874         [in] VARIANT usage,
6875         [optional, in] VARIANT fname,
6876         [optional, in] VARIANT domain,
6877         [optional, in] VARIANT path,
6878         [optional, in] VARIANT expire,
6879         [optional, in] VARIANT reserved);
6880
6881     [id(DISPID_IHTMLOPSPROFILE_GETATTRIBUTE)]
6882     HRESULT getAttribute(
6883         [in] BSTR name,
6884         [retval, out] BSTR *value);
6885
6886     [id(DISPID_IHTMLOPSPROFILE_SETATTRIBUTE)]
6887     HRESULT setAttribute(
6888         [in] BSTR name,
6889         [in] BSTR value,
6890         [optional, in] VARIANT prefs,
6891         [retval, out] VARIANT_BOOL *success);
6892
6893     [id(DISPID_IHTMLOPSPROFILE_COMMITCHANGES)]
6894     HRESULT commitChanges([retval, out] VARIANT_BOOL *success);
6895
6896     [id(DISPID_IHTMLOPSPROFILE_ADDREADREQUEST)]
6897     HRESULT addReadRequest(
6898         [in] BSTR name,
6899         [optional, in] VARIANT reserved,
6900         [retval, out] VARIANT_BOOL *success);
6901
6902     [id(DISPID_IHTMLOPSPROFILE_DOREADREQUEST)]
6903     HRESULT doReadRequest(
6904         [in] VARIANT usage,
6905         [optional, in] VARIANT fname,
6906         [optional, in] VARIANT domain,
6907         [optional, in] VARIANT path,
6908         [optional, in] VARIANT expire,
6909         [optional, in] VARIANT reserved);
6910
6911     [id(DISPID_IHTMLOPSPROFILE_DOWRITEREQUEST)]
6912     HRESULT doWriteRequest([retval, out] VARIANT_BOOL *success);
6913 }
6914
6915 /*****************************************************************************
6916  *    IOmNavigator interface
6917  */
6918 [
6919         odl,
6920         oleautomation,
6921         dual,
6922         uuid(FECEAAA5-8405-11CF-8BA1-00AA00476DA6)
6923 ]
6924 interface IOmNavigator : IDispatch
6925 {
6926     [propget, id(DISPID_IOMNAVIGATOR_APPCODENAME)]
6927     HRESULT appCodeName([retval, out] BSTR *p);
6928
6929     [propget, id(DISPID_IOMNAVIGATOR_APPNAME)]
6930     HRESULT appName([retval, out] BSTR *p);
6931
6932     [propget, id(DISPID_IOMNAVIGATOR_APPVERSION)]
6933     HRESULT appVersion([retval, out] BSTR *p);
6934
6935     [propget, id(DISPID_IOMNAVIGATOR_USERAGENT)]
6936     HRESULT userAgent([retval, out] BSTR *p);
6937
6938     [id(DISPID_IOMNAVIGATOR_JAVAENABLED)]
6939     HRESULT javaEnabled([retval, out] VARIANT_BOOL *enabled);
6940
6941     [id(DISPID_IOMNAVIGATOR_TAINTENABLED)]
6942     HRESULT taintEnabled([retval, out] VARIANT_BOOL *enabled);
6943
6944     [propget, id(DISPID_IOMNAVIGATOR_MIMETYPES)]
6945     HRESULT mimeTypes([retval, out] IHTMLMimeTypesCollection **p);
6946
6947     [propget, id(DISPID_IOMNAVIGATOR_PLUGINS)]
6948     HRESULT plugins([retval, out] IHTMLPluginsCollection **p);
6949
6950     [propget, id(DISPID_IOMNAVIGATOR_COOKIEENABLED)]
6951     HRESULT cookieEnabled([retval, out] VARIANT_BOOL *p);
6952
6953     [propget, id(DISPID_IOMNAVIGATOR_OPSPROFILE)]
6954     HRESULT opsProfile([retval, out] IHTMLOpsProfile **p);
6955
6956     [id(DISPID_IOMNAVIGATOR_TOSTRING)]
6957     HRESULT toString([retval, out] BSTR *String);
6958
6959     [propget, id(DISPID_IOMNAVIGATOR_CPUCLASS)]
6960     HRESULT cpuClass([retval, out] BSTR *p);
6961
6962     [propget, id(DISPID_IOMNAVIGATOR_SYSTEMLANGUAGE)]
6963     HRESULT systemLanguage([retval, out] BSTR *p);
6964
6965     [propget, id(DISPID_IOMNAVIGATOR_BROWSERLANGUAGE)]
6966     HRESULT browserLanguage([retval, out] BSTR *p);
6967
6968     [propget, id(DISPID_IOMNAVIGATOR_USERLANGUAGE)]
6969     HRESULT userLanguage([retval, out] BSTR *p);
6970
6971     [propget, id(DISPID_IOMNAVIGATOR_PLATFORM)]
6972     HRESULT platform([retval, out] BSTR *p);
6973
6974     [propget, id(DISPID_IOMNAVIGATOR_APPMINORVERSION)]
6975     HRESULT appMinorVersion([retval, out] BSTR *p);
6976
6977     [propget, id(DISPID_IOMNAVIGATOR_CONNECTIONSPEED)]
6978     HRESULT connectionSpeed([retval, out] long *p);
6979
6980     [propget, id(DISPID_IOMNAVIGATOR_ONLINE)]
6981     HRESULT onLine([retval, out] VARIANT_BOOL *p);
6982
6983     [propget, id(DISPID_IOMNAVIGATOR_USERPROFILE)]
6984     HRESULT userProfile([retval, out] IHTMLOpsProfile **p);
6985 }
6986
6987 /*****************************************************************************
6988  *    IHTMLLocation interface
6989  */
6990 [
6991     odl,
6992     oleautomation,
6993     dual,
6994     uuid(163BB1E0-6E00-11cf-837A-48DC04C10000)
6995 ]
6996 interface IHTMLLocation : IDispatch
6997 {
6998     [propput, id(DISPID_IHTMLLOCATION_HREF)]
6999     HRESULT href([in] BSTR v);
7000
7001     [propget, id(DISPID_IHTMLLOCATION_HREF)]
7002     HRESULT href([retval, out] BSTR *p);
7003
7004     [propput, id(DISPID_IHTMLLOCATION_PROTOCOL)]
7005     HRESULT protocol([in] BSTR v);
7006
7007     [propget, id(DISPID_IHTMLLOCATION_PROTOCOL)]
7008     HRESULT protocol([retval, out] BSTR *p);
7009
7010     [propput, id(DISPID_IHTMLLOCATION_HOST)]
7011     HRESULT host([in] BSTR v);
7012
7013     [propget, id(DISPID_IHTMLLOCATION_HOST)]
7014     HRESULT host([retval, out] BSTR *p);
7015
7016     [propput, id(DISPID_IHTMLLOCATION_HOSTNAME)]
7017     HRESULT hostname([in] BSTR v);
7018
7019     [propget, id(DISPID_IHTMLLOCATION_HOSTNAME)]
7020     HRESULT hostname([retval, out] BSTR *p);
7021
7022     [propput, id(DISPID_IHTMLLOCATION_PORT)]
7023     HRESULT port([in] BSTR v);
7024
7025     [propget, id(DISPID_IHTMLLOCATION_PORT)]
7026     HRESULT port([retval, out] BSTR *p);
7027
7028     [propput, id(DISPID_IHTMLLOCATION_PATHNAME)]
7029     HRESULT pathname([in] BSTR v);
7030
7031     [propget, id(DISPID_IHTMLLOCATION_PATHNAME)]
7032     HRESULT pathname([retval, out] BSTR *p);
7033
7034     [propput, id(DISPID_IHTMLLOCATION_SEARCH)]
7035     HRESULT search([in] BSTR v);
7036
7037     [propget, id(DISPID_IHTMLLOCATION_SEARCH)]
7038     HRESULT search([retval, out] BSTR *p);
7039
7040     [propput, id(DISPID_IHTMLLOCATION_HASH)]
7041     HRESULT hash([in] BSTR v);
7042
7043     [propget, id(DISPID_IHTMLLOCATION_HASH)]
7044     HRESULT hash([retval, out] BSTR *p);
7045
7046     [id(DISPID_IHTMLLOCATION_RELOAD)]
7047     HRESULT reload([defaultvalue(0), in] VARIANT_BOOL flag);
7048
7049     [id(DISPID_IHTMLLOCATION_REPLACE)]
7050     HRESULT replace([in] BSTR bstr);
7051
7052     [id(DISPID_IHTMLLOCATION_ASSIGN)]
7053     HRESULT assign([in] BSTR bstr);
7054
7055     [id(DISPID_IHTMLLOCATION_TOSTRING)]
7056     HRESULT toString([retval, out] BSTR *String);
7057 }
7058
7059 /*****************************************************************************
7060  *    IHTMLDataTransfer interface
7061  */
7062 [
7063     odl,
7064     oleautomation,
7065     dual,
7066     uuid(3050f4b3-98b5-11cf-bb82-00aa00bdce0b)
7067 ]
7068 interface IHTMLDataTransfer : IDispatch
7069 {
7070     [id(DISPID_IHTMLDATATRANSFER_SETDATA)]
7071     HRESULT setData(
7072             [in] BSTR format,
7073             [in] VARIANT *data,
7074             [out, retval] VARIANT_BOOL *pret);
7075
7076     [id(DISPID_IHTMLDATATRANSFER_GETDATA)]
7077     HRESULT getData(
7078             [in] BSTR format,
7079             [out, retval] VARIANT *pvarRet);
7080
7081     [id(DISPID_IHTMLDATATRANSFER_CLEARDATA)]
7082     HRESULT clearData(
7083             [in] BSTR format,
7084             [out, retval] VARIANT_BOOL *pret);
7085
7086     [propput, id(DISPID_IHTMLDATATRANSFER_DROPEFFECT)]
7087     HRESULT dropEffect([in] BSTR v);
7088
7089     [propget, id(DISPID_IHTMLDATATRANSFER_DROPEFFECT)]
7090     HRESULT dropEffect([out, retval] BSTR *p);
7091
7092     [propput, id(DISPID_IHTMLDATATRANSFER_EFFECTALLOWED)]
7093     HRESULT effectAllowed([in] BSTR v);
7094
7095     [propget, id(DISPID_IHTMLDATATRANSFER_EFFECTALLOWED)]
7096     HRESULT effectAllowed([out, retval] BSTR *p);
7097 }
7098
7099 /*****************************************************************************
7100  *    IHTMLEventObj interface
7101  */
7102 [
7103     odl,
7104     oleautomation,
7105     dual,
7106     uuid(3050F32D-98B5-11CF-BB82-00AA00BDCE0B)
7107 ]
7108 interface IHTMLEventObj : IDispatch
7109 {
7110     [propget, id(DISPID_IHTMLEVENTOBJ_SRCELEMENT)]
7111     HRESULT srcElement([retval, out] IHTMLElement **p);
7112
7113     [propget, id(DISPID_IHTMLEVENTOBJ_ALTKEY)]
7114     HRESULT altKey([retval, out] VARIANT_BOOL *p);
7115
7116     [propget, id(DISPID_IHTMLEVENTOBJ_CTRLKEY)]
7117     HRESULT ctrlKey([retval, out] VARIANT_BOOL *p);
7118
7119     [propget, id(DISPID_IHTMLEVENTOBJ_SHIFTKEY)]
7120     HRESULT shiftKey([retval, out] VARIANT_BOOL *p);
7121
7122     [propput, id(DISPID_IHTMLEVENTOBJ_RETURNVALUE)]
7123     HRESULT returnValue([in] VARIANT v);
7124
7125     [propget, id(DISPID_IHTMLEVENTOBJ_RETURNVALUE)]
7126     HRESULT returnValue([retval, out] VARIANT *p);
7127
7128     [propput, id(DISPID_IHTMLEVENTOBJ_CANCELBUBBLE)]
7129     HRESULT cancelBubble([in] VARIANT_BOOL v);
7130
7131     [propget, id(DISPID_IHTMLEVENTOBJ_CANCELBUBBLE)]
7132     HRESULT cancelBubble([retval, out] VARIANT_BOOL *p);
7133
7134     [propget, id(DISPID_IHTMLEVENTOBJ_FROMELEMENT)]
7135     HRESULT fromElement([retval, out] IHTMLElement **p);
7136
7137     [propget, id(DISPID_IHTMLEVENTOBJ_TOELEMENT)]
7138     HRESULT toElement([retval, out] IHTMLElement **p);
7139
7140     [propput, id(DISPID_IHTMLEVENTOBJ_KEYCODE)]
7141     HRESULT keyCode([in] long v);
7142
7143     [propget, id(DISPID_IHTMLEVENTOBJ_KEYCODE)]
7144     HRESULT keyCode([retval, out] long *p);
7145
7146     [propget, id(DISPID_IHTMLEVENTOBJ_BUTTON)]
7147     HRESULT button([retval, out] long *p);
7148
7149     [propget, id(DISPID_IHTMLEVENTOBJ_TYPE)]
7150     HRESULT type([retval, out] BSTR *p);
7151
7152     [propget, id(DISPID_IHTMLEVENTOBJ_QUALIFIER)]
7153     HRESULT qualifier([retval, out] BSTR *p);
7154
7155     [propget, id(DISPID_IHTMLEVENTOBJ_REASON)]
7156     HRESULT reason([retval, out] long *p);
7157
7158     [propget, id(DISPID_IHTMLEVENTOBJ_X)]
7159     HRESULT x([retval, out] long *p);
7160
7161     [propget, id(DISPID_IHTMLEVENTOBJ_Y)]
7162     HRESULT y([retval, out] long *p);
7163
7164     [propget, id(DISPID_IHTMLEVENTOBJ_CLIENTX)]
7165     HRESULT clientX([retval, out] long *p);
7166
7167     [propget, id(DISPID_IHTMLEVENTOBJ_CLIENTY)]
7168     HRESULT clientY([retval, out] long *p);
7169
7170     [propget, id(DISPID_IHTMLEVENTOBJ_OFFSETX)]
7171     HRESULT offsetX([retval, out] long *p);
7172
7173     [propget, id(DISPID_IHTMLEVENTOBJ_OFFSETY)]
7174     HRESULT offsetY([retval, out] long *p);
7175
7176     [propget, id(DISPID_IHTMLEVENTOBJ_SCREENX)]
7177     HRESULT screenX([retval, out] long *p);
7178
7179     [propget, id(DISPID_IHTMLEVENTOBJ_SCREENY)]
7180     HRESULT screenY([retval, out] long *p);
7181
7182     [propget, id(DISPID_IHTMLEVENTOBJ_SRCFILTER)]
7183     HRESULT srcFilter([retval, out] IDispatch **p);
7184 }
7185
7186 /*****************************************************************************
7187  *    IHTMLFramesCollection2 interface
7188  */
7189 [
7190     odl,
7191     oleautomation,
7192     dual,
7193     uuid(332C4426-26CB-11D0-B483-00C04FD90119)
7194 ]
7195 interface IHTMLFramesCollection2 : IDispatch
7196 {
7197     [id(DISPID_IHTMLFRAMESCOLLECTION2_ITEM)]
7198     HRESULT item(
7199         [in] VARIANT *pvarIndex,
7200         [retval, out] VARIANT *pvarResult);
7201
7202     [propget, id(DISPID_IHTMLFRAMESCOLLECTION2_LENGTH)]
7203     HRESULT length([retval, out] long *p);
7204 }
7205
7206 /*****************************************************************************
7207  *    IHTMLScreen interface
7208  */
7209 [
7210     odl,
7211     oleautomation,
7212     dual,
7213     uuid(3050f35C-98B5-11CF-BB82-00AA00BDCE0B)
7214 ]
7215 interface IHTMLScreen : IDispatch
7216 {
7217     [propget, id(DISPID_IHTMLSCREEN_COLORDEPTH)]
7218     HRESULT colorDepth([retval, out] long *p);
7219
7220     [propput, id(DISPID_IHTMLSCREEN_BUFFERDEPTH)]
7221     HRESULT bufferDepth([in] long v);
7222
7223     [propget, id(DISPID_IHTMLSCREEN_BUFFERDEPTH)]
7224     HRESULT bufferDepth([retval, out] long *p);
7225
7226     [propget, id(DISPID_IHTMLSCREEN_WIDTH)]
7227     HRESULT width([retval, out] long *p);
7228
7229     [propget, id(DISPID_IHTMLSCREEN_HEIGHT)]
7230     HRESULT height([retval, out] long *p);
7231
7232     [propput, id(DISPID_IHTMLSCREEN_UPDATEINTERVAL)]
7233     HRESULT updateInterval([in] long v);
7234
7235     [propget, id(DISPID_IHTMLSCREEN_UPDATEINTERVAL)]
7236     HRESULT updateInterval([retval, out] long *p);
7237
7238     [propget, id(DISPID_IHTMLSCREEN_AVAILHEIGHT)]
7239     HRESULT availHeight([retval, out] long *p);
7240
7241     [propget, id(DISPID_IHTMLSCREEN_AVAILWIDTH)]
7242     HRESULT availWidth([retval, out] long *p);
7243
7244     [propget, id(DISPID_IHTMLSCREEN_FONTSMOOTHINGENABLED)]
7245     HRESULT fontSmoothingEnabled([retval, out] VARIANT_BOOL *p);
7246 }
7247
7248 /*****************************************************************************
7249  *    IHTMLWindow2 interface
7250  */
7251 [
7252     odl,
7253     oleautomation,
7254     dual,
7255     uuid(332C4427-26CB-11D0-B483-00C04FD90119)
7256 ]
7257 interface IHTMLWindow2 : IHTMLFramesCollection2
7258 {
7259     [propget, id(DISPID_IHTMLWINDOW2_FRAMES)]
7260     HRESULT frames([retval, out] IHTMLFramesCollection2 **p);
7261
7262     [propput, id(DISPID_IHTMLWINDOW2_DEFAULTSTATUS)]
7263     HRESULT defaultStatus([in] BSTR v);
7264
7265     [propget, id(DISPID_IHTMLWINDOW2_DEFAULTSTATUS)]
7266     HRESULT defaultStatus([retval, out] BSTR *p);
7267
7268     [propput, id(DISPID_IHTMLWINDOW2_STATUS)]
7269     HRESULT status([in] BSTR v);
7270
7271     [propget, id(DISPID_IHTMLWINDOW2_STATUS)]
7272     HRESULT status([retval, out] BSTR *p);
7273
7274     [id(DISPID_IHTMLWINDOW2_SETTIMEOUT)]
7275     HRESULT setTimeout(
7276         [in] BSTR expression,
7277         [in] long msec,
7278         [optional, in] VARIANT *language,
7279         [retval, out] long *timerID);
7280
7281     [id(DISPID_IHTMLWINDOW2_CLEARTIMEOUT)]
7282     HRESULT clearTimeout([in] long timerID);
7283
7284     [id(DISPID_IHTMLWINDOW2_ALERT)]
7285     HRESULT alert([defaultvalue(""), in] BSTR message);
7286
7287     [id(DISPID_IHTMLWINDOW2_CONFIRM)]
7288     HRESULT confirm(
7289         [defaultvalue(""), in] BSTR message,
7290         [retval, out] VARIANT_BOOL *confirmed);
7291
7292     [id(DISPID_IHTMLWINDOW2_PROMPT)]
7293     HRESULT prompt(
7294         [defaultvalue(""), in] BSTR message,
7295         [defaultvalue("undefined"), in] BSTR defstr,
7296         [retval, out] VARIANT *textdata);
7297
7298     [propget, id(DISPID_IHTMLWINDOW2_IMAGE)]
7299     HRESULT Image([retval, out] IHTMLImageElementFactory **p);
7300
7301     [propget, id(DISPID_IHTMLWINDOW2_LOCATION)]
7302     HRESULT location([retval, out] IHTMLLocation **p);
7303
7304     [propget, id(DISPID_IHTMLWINDOW2_HISTORY)]
7305     HRESULT history([retval, out] IOmHistory **p);
7306
7307     [id(DISPID_IHTMLWINDOW2_CLOSE)]
7308     HRESULT close();
7309
7310     [propput, id(DISPID_IHTMLWINDOW2_OPENER)]
7311     HRESULT opener([in] VARIANT v);
7312
7313     [propget, id(DISPID_IHTMLWINDOW2_OPENER)]
7314     HRESULT opener([retval, out] VARIANT *p);
7315
7316     [propget, id(DISPID_IHTMLWINDOW2_NAVIGATOR)]
7317     HRESULT navigator([retval, out] IOmNavigator **p);
7318
7319     [propput, id(DISPID_IHTMLWINDOW2_NAME)]
7320     HRESULT name([in] BSTR v);
7321
7322     [propget, id(DISPID_IHTMLWINDOW2_NAME)]
7323     HRESULT name([retval, out] BSTR *p);
7324
7325     [propget, id(DISPID_IHTMLWINDOW2_PARENT)]
7326     HRESULT parent([retval, out] IHTMLWindow2 **p);
7327
7328     [id(DISPID_IHTMLWINDOW2_OPEN)]
7329     HRESULT open(
7330         [defaultvalue(""), in] BSTR url,
7331         [defaultvalue(""), in] BSTR name,
7332         [defaultvalue(""), in] BSTR features,
7333         [defaultvalue(0), in] VARIANT_BOOL replace,
7334         [retval, out] IHTMLWindow2 **pomWindowResult);
7335
7336     [propget, id(DISPID_IHTMLWINDOW2_SELF)]
7337     HRESULT self([retval, out] IHTMLWindow2 **p);
7338
7339     [propget, id(DISPID_IHTMLWINDOW2_TOP)]
7340     HRESULT top([retval, out] IHTMLWindow2 **p);
7341
7342     [propget, id(DISPID_IHTMLWINDOW2_WINDOW)]
7343     HRESULT window([retval, out] IHTMLWindow2 **p);
7344
7345     [id(DISPID_IHTMLWINDOW2_NAVIGATE)]
7346     HRESULT navigate([in] BSTR url);
7347
7348     [propput, id(DISPID_IHTMLWINDOW2_ONFOCUS)]
7349     HRESULT onfocus([in] VARIANT v);
7350
7351     [propget, id(DISPID_IHTMLWINDOW2_ONFOCUS)]
7352     HRESULT onfocus([retval, out] VARIANT *p);
7353
7354     [propput, id(DISPID_IHTMLWINDOW2_ONBLUR)]
7355     HRESULT onblur([in] VARIANT v);
7356
7357     [propget, id(DISPID_IHTMLWINDOW2_ONBLUR)]
7358     HRESULT onblur([retval, out] VARIANT *p);
7359
7360     [propput, id(DISPID_IHTMLWINDOW2_ONLOAD)]
7361     HRESULT onload([in] VARIANT v);
7362
7363     [propget, id(DISPID_IHTMLWINDOW2_ONLOAD)]
7364     HRESULT onload([retval, out] VARIANT *p);
7365
7366     [propput, id(DISPID_IHTMLWINDOW2_ONBEFOREUNLOAD)]
7367     HRESULT onbeforeunload([in] VARIANT v);
7368
7369     [propget, id(DISPID_IHTMLWINDOW2_ONBEFOREUNLOAD)]
7370     HRESULT onbeforeunload([retval, out] VARIANT *p);
7371
7372     [propput, id(DISPID_IHTMLWINDOW2_ONUNLOAD)]
7373     HRESULT onunload([in] VARIANT v);
7374
7375     [propget, id(DISPID_IHTMLWINDOW2_ONUNLOAD)]
7376     HRESULT onunload([retval, out] VARIANT *p);
7377
7378     [propput, id(DISPID_IHTMLWINDOW2_ONHELP)]
7379     HRESULT onhelp([in] VARIANT v);
7380
7381     [propget, id(DISPID_IHTMLWINDOW2_ONHELP)]
7382     HRESULT onhelp([retval, out] VARIANT *p);
7383
7384     [propput, id(DISPID_IHTMLWINDOW2_ONERROR)]
7385     HRESULT onerror([in] VARIANT v);
7386
7387     [propget, id(DISPID_IHTMLWINDOW2_ONERROR)]
7388     HRESULT onerror([retval, out] VARIANT *p);
7389
7390     [propput, id(DISPID_IHTMLWINDOW2_ONRESIZE)]
7391     HRESULT onresize([in] VARIANT v);
7392
7393     [propget, id(DISPID_IHTMLWINDOW2_ONRESIZE)]
7394     HRESULT onresize([retval, out] VARIANT *p);
7395
7396     [propput, id(DISPID_IHTMLWINDOW2_ONSCROLL)]
7397     HRESULT onscroll([in] VARIANT v);
7398
7399     [propget, id(DISPID_IHTMLWINDOW2_ONSCROLL)]
7400     HRESULT onscroll([retval, out] VARIANT *p);
7401
7402     [propget, id(DISPID_IHTMLWINDOW2_DOCUMENT)]
7403     HRESULT document([retval, out] IHTMLDocument2 **p);
7404
7405     [propget, id(DISPID_IHTMLWINDOW2_EVENT)]
7406     HRESULT event([retval, out] IHTMLEventObj **p);
7407
7408     [propget, id(DISPID_IHTMLWINDOW2__NEWENUM)]
7409     HRESULT _newEnum([retval, out] IUnknown **p);
7410
7411     [id(DISPID_IHTMLWINDOW2_SHOWMODALDIALOG)]
7412     HRESULT showModalDialog(
7413         [in] BSTR dialog,
7414         [optional, in] VARIANT *varArgIn,
7415         [optional, in] VARIANT *varOptions,
7416         [retval, out] VARIANT *varArgOut);
7417
7418     [id(DISPID_IHTMLWINDOW2_SHOWHELP)]
7419     HRESULT showHelp(
7420         [in] BSTR helpURL,
7421         [optional, in] VARIANT helpArg,
7422         [defaultvalue(""), in] BSTR features);
7423
7424     [propget, id(DISPID_IHTMLWINDOW2_SCREEN)]
7425     HRESULT screen([retval, out] IHTMLScreen **p);
7426
7427     [propget, id(DISPID_IHTMLWINDOW2_OPTION)]
7428     HRESULT Option([retval, out] IHTMLOptionElementFactory **p);
7429
7430     [id(DISPID_IHTMLWINDOW2_FOCUS)]
7431     HRESULT focus();
7432
7433     [propget, id(DISPID_IHTMLWINDOW2_CLOSED)]
7434     HRESULT closed([retval, out] VARIANT_BOOL *p);
7435
7436     [id(DISPID_IHTMLWINDOW2_BLUR)]
7437     HRESULT blur();
7438
7439     [id(DISPID_IHTMLWINDOW2_SCROLL)]
7440     HRESULT scroll([in] long x, [in] long y);
7441
7442     [propget, id(DISPID_IHTMLWINDOW2_CLIENTINFORMATION)]
7443     HRESULT clientInformation([retval, out] IOmNavigator **p);
7444
7445     [id(DISPID_IHTMLWINDOW2_SETINTERVAL)]
7446     HRESULT setInterval([
7447         in] BSTR expression,
7448         [in] long msec,
7449         [optional, in] VARIANT *language,
7450         [retval, out] long *timerID);
7451
7452     [id(DISPID_IHTMLWINDOW2_CLEARINTERVAL)]
7453     HRESULT clearInterval([in] long timerID);
7454
7455     [propput, id(DISPID_IHTMLWINDOW2_OFFSCREENBUFFERING)]
7456     HRESULT offscreenBuffering([in] VARIANT v);
7457
7458     [propget, id(DISPID_IHTMLWINDOW2_OFFSCREENBUFFERING)]
7459     HRESULT offscreenBuffering([retval, out] VARIANT *p);
7460
7461     [id(DISPID_IHTMLWINDOW2_EXECSCRIPT)]
7462     HRESULT execScript(
7463         [in] BSTR scode,
7464         [defaultvalue("JScript"), in] BSTR language,
7465         [retval, out] VARIANT *pvarRet);
7466
7467     [id(DISPID_IHTMLWINDOW2_TOSTRING)]
7468     HRESULT toString([retval, out] BSTR *String);
7469
7470     [id(DISPID_IHTMLWINDOW2_SCROLLBY)]
7471     HRESULT scrollBy([in] long x, [in] long y);
7472
7473     [id(DISPID_IHTMLWINDOW2_SCROLLTO)]
7474     HRESULT scrollTo([in] long x, [in] long y);
7475
7476     [id(DISPID_IHTMLWINDOW2_MOVETO)]
7477     HRESULT moveTo([in] long x, [in] long y);
7478
7479     [id(DISPID_IHTMLWINDOW2_MOVEBY)]
7480     HRESULT moveBy([in] long x, [in] long y);
7481
7482     [id(DISPID_IHTMLWINDOW2_RESIZETO)]
7483     HRESULT resizeTo([in] long x, [in] long y);
7484
7485     [id(DISPID_IHTMLWINDOW2_RESIZEBY)]
7486     HRESULT resizeBy([in] long x, [in] long y);
7487
7488     [propget, id(DISPID_IHTMLWINDOW2_EXTERNAL)]
7489     HRESULT external([retval, out] IDispatch **p);
7490 }
7491
7492 /*****************************************************************************
7493  *    IHTMLWindow3 interface
7494  */
7495 [
7496     odl,
7497     oleautomation,
7498     dual,
7499     uuid(3050f4ae-98b5-11cf-bb82-00aa00bdce0b)
7500 ]
7501 interface IHTMLWindow3 : IDispatch
7502 {
7503     [propget, id(DISPID_IHTMLWINDOW3_SCREENLEFT)]
7504     HRESULT screenLeft([out, retval] long *p);
7505
7506     [propget, id(DISPID_IHTMLWINDOW3_SCREENTOP)]
7507     HRESULT screenTop([out, retval] long *p);
7508
7509     [id(DISPID_IHTMLWINDOW3_ATTACHEVENT)]
7510     HRESULT attachEvent(
7511             [in] BSTR event,
7512             [in] IDispatch *pDisp,
7513             [out, retval] VARIANT_BOOL *pfResult);
7514
7515     [id(DISPID_IHTMLWINDOW3_DETACHEVENT)]
7516     HRESULT detachEvent(
7517             [in] BSTR event,
7518             [in] IDispatch *pDisp);
7519
7520     [id(DISPID_IHTMLWINDOW3_SETTIMEOUT)]
7521     HRESULT setTimeout(
7522             [in] VARIANT *expression,
7523             [in] long msec,
7524             [in, optional] VARIANT *language,
7525             [out, retval] long *timerID);
7526
7527     [id(DISPID_IHTMLWINDOW3_SETINTERVAL)]
7528     HRESULT setInterval(
7529             [in] VARIANT *expression,
7530             [in] long msec,
7531             [in, optional] VARIANT *language,
7532             [out, retval] long *timerID);
7533
7534     [id(DISPID_IHTMLWINDOW3_PRINT)]
7535     HRESULT print();
7536
7537     [propput, id(DISPID_IHTMLWINDOW3_ONBEFOREPRINT), displaybind, bindable]
7538     HRESULT onbeforeprint([in] VARIANT v);
7539
7540     [propget, id(DISPID_IHTMLWINDOW3_ONBEFOREPRINT), displaybind, bindable]
7541     HRESULT onbeforeprint([out, retval] VARIANT *p);
7542
7543     [propput, id(DISPID_IHTMLWINDOW3_ONAFTERPRINT), displaybind, bindable]
7544     HRESULT onafterprint([in] VARIANT v);
7545
7546     [propget, id(DISPID_IHTMLWINDOW3_ONAFTERPRINT), displaybind, bindable]
7547     HRESULT onafterprint([out, retval] VARIANT *p);
7548
7549     [propget, id(DISPID_IHTMLWINDOW3_CLIPBOARDDATA)]
7550     HRESULT clipboardData([out, retval] IHTMLDataTransfer **p);
7551
7552     [id(DISPID_IHTMLWINDOW3_SHOWMODELESSDIALOG)]
7553     HRESULT showModelessDialog(
7554             [in, defaultvalue("")] BSTR url,
7555             [in, optional] VARIANT *varArgIn,
7556             [in, optional] VARIANT *options,
7557             [out, retval] IHTMLWindow2 **pDialog);
7558 }
7559
7560 /*****************************************************************************
7561  *    DispHTMLWindow2 dispinterface
7562  */
7563 [
7564     hidden,
7565     uuid(3050f55d-98b5-11cf-bb82-00aa00bdce0b)
7566 ]
7567 dispinterface DispHTMLWindow2
7568 {
7569 properties:
7570 methods:
7571     [id(DISPID_IHTMLFRAMESCOLLECTION2_ITEM)]
7572     VARIANT item([in] VARIANT *pvarIndex);
7573
7574     [propget, id(DISPID_IHTMLFRAMESCOLLECTION2_LENGTH)]
7575     long length();
7576
7577     [propget, id(DISPID_IHTMLWINDOW2_FRAMES)]
7578     IHTMLFramesCollection2 *frames();
7579
7580     [propput, id(DISPID_IHTMLWINDOW2_DEFAULTSTATUS)]
7581     void defaultStatus(BSTR v);
7582
7583     [propget, id(DISPID_IHTMLWINDOW2_DEFAULTSTATUS)]
7584     BSTR defaultStatus();
7585
7586     [propput, id(DISPID_IHTMLWINDOW2_STATUS)]
7587     void status(BSTR v);
7588
7589     [propget, id(DISPID_IHTMLWINDOW2_STATUS)]
7590     BSTR status();
7591
7592     [id(DISPID_IHTMLWINDOW2_CLEARTIMEOUT)]
7593     void clearTimeout([in] long timerID);
7594
7595     [id(DISPID_IHTMLWINDOW2_ALERT)]
7596     void alert([in, defaultvalue("")] BSTR message);
7597
7598     [id(DISPID_IHTMLWINDOW2_CONFIRM)]
7599     VARIANT_BOOL confirm([in, defaultvalue("")] BSTR message);
7600
7601     [id(DISPID_IHTMLWINDOW2_PROMPT)]
7602     VARIANT prompt(
7603             [in, defaultvalue("")] BSTR message,
7604             [in, defaultvalue("undefined")] BSTR defstr);
7605
7606     [propget, id(DISPID_IHTMLWINDOW2_IMAGE)]
7607     IHTMLImageElementFactory *Image();
7608
7609     [propget, id(DISPID_IHTMLWINDOW2_LOCATION)]
7610     IHTMLLocation *location();
7611
7612     [propget, id(DISPID_IHTMLWINDOW2_HISTORY)]
7613     IOmHistory *history();
7614
7615     [id(DISPID_IHTMLWINDOW2_CLOSE)]
7616     void close();
7617
7618     [propput, id(DISPID_IHTMLWINDOW2_OPENER)]
7619     void opener(VARIANT v);
7620
7621     [propget, id(DISPID_IHTMLWINDOW2_OPENER)]
7622     VARIANT opener();
7623
7624     [propget, id(DISPID_IHTMLWINDOW2_NAVIGATOR)]
7625     IOmNavigator *navigator();
7626
7627     [propput, id(DISPID_IHTMLWINDOW2_NAME)]
7628     void name(BSTR v);
7629
7630     [propget, id(DISPID_IHTMLWINDOW2_NAME)]
7631     BSTR name();
7632
7633     [propget, id(DISPID_IHTMLWINDOW2_PARENT)]
7634     IHTMLWindow2 *parent();
7635
7636     [id(DISPID_IHTMLWINDOW2_OPEN)]
7637     IHTMLWindow2 *open(
7638             [in, defaultvalue("")] BSTR url,
7639             [in, defaultvalue("")] BSTR name,
7640             [in, defaultvalue("")] BSTR features,
7641             [in, defaultvalue(0)]  VARIANT_BOOL replace);
7642
7643     [propget, id(DISPID_IHTMLWINDOW2_SELF)]
7644     IHTMLWindow2 *self();
7645
7646     [propget, id(DISPID_IHTMLWINDOW2_TOP)]
7647     IHTMLWindow2 *top();
7648
7649     [propget, id(DISPID_IHTMLWINDOW2_WINDOW)]
7650     IHTMLWindow2 *window();
7651
7652     [id(DISPID_IHTMLWINDOW2_NAVIGATE)]
7653     void navigate([in] BSTR url);
7654
7655     [propput, id(DISPID_IHTMLWINDOW2_ONFOCUS), displaybind, bindable]
7656     void onfocus(VARIANT v);
7657
7658     [propget, id(DISPID_IHTMLWINDOW2_ONFOCUS), displaybind, bindable]
7659     VARIANT onfocus();
7660
7661     [propput, id(DISPID_IHTMLWINDOW2_ONBLUR), displaybind, bindable]
7662     void onblur(VARIANT v);
7663
7664     [propget, id(DISPID_IHTMLWINDOW2_ONBLUR), displaybind, bindable]
7665     VARIANT onblur();
7666
7667     [propget, id(DISPID_IHTMLWINDOW2_ONLOAD), displaybind, bindable]
7668     VARIANT onload();
7669
7670     [propput, id(DISPID_IHTMLWINDOW2_ONBEFOREUNLOAD), displaybind, bindable]
7671     void onbeforeunload(VARIANT v);
7672
7673     [propget, id(DISPID_IHTMLWINDOW2_ONBEFOREUNLOAD), displaybind, bindable]
7674     VARIANT onbeforeunload();
7675
7676     [propput, id(DISPID_IHTMLWINDOW2_ONUNLOAD), displaybind, bindable]
7677     void onunload(VARIANT v);
7678
7679     [propget, id(DISPID_IHTMLWINDOW2_ONUNLOAD), displaybind, bindable]
7680     VARIANT onunload();
7681
7682     [propput, id(DISPID_IHTMLWINDOW2_ONHELP), displaybind, bindable]
7683     void onhelp(VARIANT v);
7684
7685     [propget, id(DISPID_IHTMLWINDOW2_ONHELP), displaybind, bindable]
7686     VARIANT onhelp();
7687
7688     [propput, id(DISPID_IHTMLWINDOW2_ONERROR), displaybind, bindable]
7689     void onerror(VARIANT v);
7690
7691     [propget, id(DISPID_IHTMLWINDOW2_ONERROR), displaybind, bindable]
7692     VARIANT onerror();
7693
7694     [propput, id(DISPID_IHTMLWINDOW2_ONRESIZE), displaybind, bindable]
7695     void onresize(VARIANT v);
7696
7697     [propget, id(DISPID_IHTMLWINDOW2_ONRESIZE), displaybind, bindable]
7698     VARIANT onresize();
7699
7700     [propput, id(DISPID_IHTMLWINDOW2_ONSCROLL), displaybind, bindable]
7701     void onscroll(VARIANT v);
7702
7703     [propget, id(DISPID_IHTMLWINDOW2_ONSCROLL), displaybind, bindable]
7704     VARIANT onscroll();
7705
7706     [propget, id(DISPID_IHTMLWINDOW2_DOCUMENT), source]
7707     IHTMLDocument2 *document();
7708
7709     [propget, id(DISPID_IHTMLWINDOW2_EVENT)]
7710     IHTMLEventObj *event();
7711
7712     [propget, id(DISPID_IHTMLWINDOW2__NEWENUM), hidden, restricted]
7713     IUnknown *_newEnum();
7714
7715     [id(DISPID_IHTMLWINDOW2_SHOWMODALDIALOG)]
7716     VARIANT showModalDialog(
7717             [in] BSTR dialog,
7718             [in, optional] VARIANT *varArgIn,
7719             [in, optional] VARIANT *varOptions);
7720
7721     [id(DISPID_IHTMLWINDOW2_SHOWHELP)]
7722     void showHelp(
7723             [in] BSTR helpURL,
7724             [in, optional] VARIANT helpArg,
7725             [in, defaultvalue("")] BSTR features);
7726
7727     [propget, id(DISPID_IHTMLWINDOW2_SCREEN)]
7728     IHTMLScreen *screen();
7729
7730     [propget, id(DISPID_IHTMLWINDOW2_OPTION)]
7731     IHTMLOptionElementFactory *Option();
7732
7733     [id(DISPID_IHTMLWINDOW2_FOCUS)]
7734     void focus();
7735
7736     [propget, id(DISPID_IHTMLWINDOW2_CLOSED)]
7737     VARIANT_BOOL closed();
7738
7739     [id(DISPID_IHTMLWINDOW2_BLUR)]
7740     void blur();
7741
7742     [id(DISPID_IHTMLWINDOW2_SCROLL)]
7743     void scroll([in] long x, [in] long y);
7744
7745     [propget, id(DISPID_IHTMLWINDOW2_CLIENTINFORMATION)]
7746     IOmNavigator *clientInformation();
7747
7748     [id(DISPID_IHTMLWINDOW2_CLEARINTERVAL)]
7749     void clearInterval([in] long timerID);
7750
7751     [propput, id(DISPID_IHTMLWINDOW2_OFFSCREENBUFFERING)]
7752     void offscreenBuffering(VARIANT v);
7753
7754     [propget, id(DISPID_IHTMLWINDOW2_OFFSCREENBUFFERING)]
7755     VARIANT offscreenBuffering();
7756
7757     [id(DISPID_IHTMLWINDOW2_EXECSCRIPT)]
7758     VARIANT execScript(
7759             [in] BSTR _code,
7760             [in, defaultvalue("JScript")] BSTR language);
7761
7762     [id(DISPID_IHTMLWINDOW2_TOSTRING)]
7763     BSTR toString();
7764
7765     [id(DISPID_IHTMLWINDOW2_SCROLLBY)]
7766     void scrollBy([in] long x, [in] long y);
7767
7768     [id(DISPID_IHTMLWINDOW2_SCROLLTO)]
7769     void scrollTo([in] long x, [in] long y);
7770
7771     [id(DISPID_IHTMLWINDOW2_MOVETO)]
7772     void moveTo([in] long x, [in] long y);
7773
7774     [id(DISPID_IHTMLWINDOW2_MOVEBY)]
7775     void moveBy([in] long x, [in] long y);
7776
7777     [id(DISPID_IHTMLWINDOW2_RESIZETO)]
7778     void resizeTo([in] long x, [in] long y);
7779
7780     [id(DISPID_IHTMLWINDOW2_RESIZEBY)]
7781     void resizeBy([in] long x, [in] long y);
7782
7783     [propget, id(DISPID_IHTMLWINDOW2_EXTERNAL)]
7784     IDispatch *external();
7785
7786     [propget, id(DISPID_IHTMLWINDOW3_SCREENLEFT)]
7787     long screenLeft();
7788
7789     [propget, id(DISPID_IHTMLWINDOW3_SCREENTOP)]
7790     long screenTop();
7791
7792     [id(DISPID_IHTMLWINDOW3_ATTACHEVENT)]
7793     VARIANT_BOOL attachEvent(
7794              [in] BSTR event,
7795              [in] IDispatch *pDisp);
7796
7797     [id(DISPID_IHTMLWINDOW3_DETACHEVENT)]
7798     void detachEvent(
7799             [in] BSTR event,
7800             [in] IDispatch *pDisp);
7801
7802     [id(DISPID_IHTMLWINDOW3_SETTIMEOUT)]
7803     long setTimeout(
7804             [in] VARIANT *expression,
7805             [in] long msec,
7806             [in, optional] VARIANT *language);
7807
7808     [id(DISPID_IHTMLWINDOW3_SETINTERVAL)]
7809     long setInterval(
7810             [in] VARIANT *expression,
7811             [in] long msec,
7812             [in, optional] VARIANT *language);
7813
7814     [id(DISPID_IHTMLWINDOW3_PRINT)]
7815     void print();
7816
7817     [propput, id(DISPID_IHTMLWINDOW3_ONBEFOREPRINT), displaybind, bindable]
7818     void onbeforeprint(VARIANT v);
7819
7820     [propget, id(DISPID_IHTMLWINDOW3_ONBEFOREPRINT), displaybind, bindable]
7821     VARIANT onbeforeprint();
7822
7823     [propput, id(DISPID_IHTMLWINDOW3_ONAFTERPRINT), displaybind, bindable]
7824     void onafterprint(VARIANT v);
7825
7826     [propget, id(DISPID_IHTMLWINDOW3_ONAFTERPRINT), displaybind, bindable]
7827     VARIANT onafterprint();
7828
7829     [propget, id(DISPID_IHTMLWINDOW3_CLIPBOARDDATA)]
7830     IHTMLDataTransfer *clipboardData();
7831
7832     [id(DISPID_IHTMLWINDOW3_SHOWMODELESSDIALOG)]
7833     IHTMLWindow2 *showModelessDialog(
7834             [in, defaultvalue("")] BSTR url,
7835             [in, optional] VARIANT *varArgIn,
7836             [in, optional] VARIANT *options);
7837
7838     [id(DISPID_IHTMLWINDOW4_CREATEPOPUP)]
7839     IDispatch *createPopup([in, optional] VARIANT *varArgIn);
7840
7841     [propget, id(DISPID_IHTMLWINDOW4_FRAMEELEMENT)]
7842     IHTMLFrameBase *frameElement();
7843 }
7844
7845 /*****************************************************************************
7846  *    HTMLDocumentEvents2 interface
7847  */
7848 [
7849     hidden,
7850     uuid(3050f613-98b5-11cf-bb82-00aa00bdce0b)
7851 ]
7852 dispinterface HTMLDocumentEvents2
7853 {
7854     properties:
7855     methods:
7856     [id(DISPID_HTMLDOCUMENTEVENTS2_ONHELP)]
7857     VARIANT_BOOL onhelp([in] IHTMLEventObj *pEvtObj);
7858
7859     [id(DISPID_HTMLDOCUMENTEVENTS2_ONCLICK)]
7860     VARIANT_BOOL onclick([in] IHTMLEventObj *pEvtObj);
7861
7862     [id(DISPID_HTMLDOCUMENTEVENTS2_ONDBLCLICK)]
7863     VARIANT_BOOL ondblclick([in] IHTMLEventObj *pEvtObj);
7864
7865     [id(DISPID_HTMLDOCUMENTEVENTS2_ONKEYDOWN)]
7866     void onkeydown([in] IHTMLEventObj *pEvtObj);
7867
7868     [id(DISPID_HTMLDOCUMENTEVENTS2_ONKEYUP)]
7869     void onkeyup([in] IHTMLEventObj *pEvtObj);
7870
7871     [id(DISPID_HTMLDOCUMENTEVENTS2_ONKEYPRESS)]
7872     VARIANT_BOOL onkeypress([in] IHTMLEventObj *pEvtObj);
7873
7874     [id(DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEDOWN)]
7875     void onmousedown([in] IHTMLEventObj *pEvtObj);
7876
7877     [id(DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEMOVE)]
7878     void onmousemove([in] IHTMLEventObj *pEvtObj);
7879
7880     [id(DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEUP)]
7881     void onmouseup([in] IHTMLEventObj *pEvtObj);
7882
7883     [id(DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEOUT)]
7884     void onmouseout([in] IHTMLEventObj *pEvtObj);
7885
7886     [id(DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEOVER)]
7887     void onmouseover([in] IHTMLEventObj *pEvtObj);
7888
7889     [id(DISPID_HTMLDOCUMENTEVENTS2_ONREADYSTATECHANGE)]
7890     void onreadystatechange([in] IHTMLEventObj *pEvtObj);
7891
7892     [id(DISPID_HTMLDOCUMENTEVENTS2_ONBEFOREUPDATE)]
7893     VARIANT_BOOL onbeforeupdate([in] IHTMLEventObj *pEvtObj);
7894
7895     [id(DISPID_HTMLDOCUMENTEVENTS2_ONAFTERUPDATE)]
7896     void onafterupdate([in] IHTMLEventObj *pEvtObj);
7897
7898     [id(DISPID_HTMLDOCUMENTEVENTS2_ONROWEXIT)]
7899     VARIANT_BOOL onrowexit([in] IHTMLEventObj *pEvtObj);
7900
7901     [id(DISPID_HTMLDOCUMENTEVENTS2_ONROWENTER)]
7902     void onrowenter([in] IHTMLEventObj *pEvtObj);
7903
7904     [id(DISPID_HTMLDOCUMENTEVENTS2_ONDRAGSTART)]
7905     VARIANT_BOOL ondragstart([in] IHTMLEventObj *pEvtObj);
7906
7907     [id(DISPID_HTMLDOCUMENTEVENTS2_ONSELECTSTART)]
7908     VARIANT_BOOL onselectstart([in] IHTMLEventObj *pEvtObj);
7909
7910     [id(DISPID_HTMLDOCUMENTEVENTS2_ONERRORUPDATE)]
7911     VARIANT_BOOL onerrorupdate([in] IHTMLEventObj *pEvtObj);
7912
7913     [id(DISPID_HTMLDOCUMENTEVENTS2_ONCONTEXTMENU)]
7914     VARIANT_BOOL oncontextmenu([in] IHTMLEventObj *pEvtObj);
7915
7916     [id(DISPID_HTMLDOCUMENTEVENTS2_ONSTOP)]
7917     VARIANT_BOOL onstop([in] IHTMLEventObj *pEvtObj);
7918
7919     [id(DISPID_HTMLDOCUMENTEVENTS2_ONROWSDELETE)]
7920     void onrowsdelete([in] IHTMLEventObj *pEvtObj);
7921
7922     [id(DISPID_HTMLDOCUMENTEVENTS2_ONROWSINSERTED)]
7923     void onrowsinserted([in] IHTMLEventObj *pEvtObj);
7924
7925     [id(DISPID_HTMLDOCUMENTEVENTS2_ONCELLCHANGE)]
7926     void oncellchange([in] IHTMLEventObj *pEvtObj);
7927
7928     [id(DISPID_HTMLDOCUMENTEVENTS2_ONPROPERTYCHANGE)]
7929     void onpropertychange([in] IHTMLEventObj *pEvtObj);
7930
7931     [id(DISPID_HTMLDOCUMENTEVENTS2_ONDATASETCHANGED)]
7932     void ondatasetchanged([in] IHTMLEventObj *pEvtObj);
7933
7934     [id(DISPID_HTMLDOCUMENTEVENTS2_ONDATAAVAILABLE)]
7935     void ondataavailable([in] IHTMLEventObj *pEvtObj);
7936
7937     [id(DISPID_HTMLDOCUMENTEVENTS2_ONDATASETCOMPLETE)]
7938     void ondatasetcomplete([in] IHTMLEventObj *pEvtObj);
7939
7940     [id(DISPID_HTMLDOCUMENTEVENTS2_ONBEFOREEDITFOCUS)]
7941     void onbeforeeditfocus([in] IHTMLEventObj *pEvtObj);
7942
7943     [id(DISPID_HTMLDOCUMENTEVENTS2_ONSELECTIONCHANGE)]
7944     void onselectionchange([in] IHTMLEventObj *pEvtObj);
7945
7946     [id(DISPID_HTMLDOCUMENTEVENTS2_ONCONTROLSELECT)]
7947     VARIANT_BOOL oncontrolselect([in] IHTMLEventObj *pEvtObj);
7948
7949     [id(DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEWHEEL)]
7950     VARIANT_BOOL onmousewheel([in] IHTMLEventObj *pEvtObj);
7951
7952     [id(DISPID_HTMLDOCUMENTEVENTS2_ONFOCUSIN)]
7953     void onfocusin([in] IHTMLEventObj *pEvtObj);
7954
7955     [id(DISPID_HTMLDOCUMENTEVENTS2_ONFOCUSOUT)]
7956     void onfocusout([in] IHTMLEventObj *pEvtObj);
7957
7958     [id(DISPID_HTMLDOCUMENTEVENTS2_ONACTIVATE)]
7959     void onactivate([in] IHTMLEventObj *pEvtObj);
7960
7961     [id(DISPID_HTMLDOCUMENTEVENTS2_ONDEACTIVATE)]
7962     void ondeactivate([in] IHTMLEventObj *pEvtObj);
7963
7964     [id(DISPID_HTMLDOCUMENTEVENTS2_ONBEFOREACTIVATE)]
7965     VARIANT_BOOL onbeforeactivate([in] IHTMLEventObj *pEvtObj);
7966
7967     [id(DISPID_HTMLDOCUMENTEVENTS2_ONBEFOREDEACTIVATE)]
7968     VARIANT_BOOL onbeforedeactivate([in] IHTMLEventObj *pEvtObj);
7969 }
7970
7971 /*****************************************************************************
7972  *    HTMLDocumentEvents interface
7973  */
7974 [
7975     hidden,
7976     uuid(3050f260-98b5-11cf-bb82-00aa00bdce0b)
7977 ]
7978 dispinterface HTMLDocumentEvents
7979 {
7980     properties:
7981     methods:
7982     [id(DISPID_HTMLDOCUMENTEVENTS_ONHELP)]
7983     VARIANT_BOOL onhelp();
7984
7985     [id(DISPID_HTMLDOCUMENTEVENTS_ONCLICK)]
7986     VARIANT_BOOL onclick();
7987
7988     [id(DISPID_HTMLDOCUMENTEVENTS_ONDBLCLICK)]
7989     VARIANT_BOOL ondblclick();
7990
7991     [id(DISPID_HTMLDOCUMENTEVENTS_ONKEYDOWN)]
7992     void onkeydown();
7993
7994     [id(DISPID_HTMLDOCUMENTEVENTS_ONKEYUP)]
7995     void onkeyup();
7996
7997     [id(DISPID_HTMLDOCUMENTEVENTS_ONKEYPRESS)]
7998     VARIANT_BOOL onkeypress();
7999
8000     [id(DISPID_HTMLDOCUMENTEVENTS_ONMOUSEDOWN)]
8001     void onmousedown();
8002
8003     [id(DISPID_HTMLDOCUMENTEVENTS_ONMOUSEMOVE)]
8004     void onmousemove();
8005
8006     [id(DISPID_HTMLDOCUMENTEVENTS_ONMOUSEUP)]
8007     void onmouseup();
8008
8009     [id(DISPID_HTMLDOCUMENTEVENTS_ONMOUSEOUT)]
8010     void onmouseout();
8011
8012     [id(DISPID_HTMLDOCUMENTEVENTS_ONMOUSEOVER)]
8013     void onmouseover();
8014
8015     [id(DISPID_HTMLDOCUMENTEVENTS_ONREADYSTATECHANGE)]
8016     void onreadystatechange();
8017
8018     [id(DISPID_HTMLDOCUMENTEVENTS_ONBEFOREUPDATE)]
8019     VARIANT_BOOL onbeforeupdate();
8020
8021     [id(DISPID_HTMLDOCUMENTEVENTS_ONAFTERUPDATE)]
8022     void onafterupdate();
8023
8024     [id(DISPID_HTMLDOCUMENTEVENTS_ONROWEXIT)]
8025     VARIANT_BOOL onrowexit();
8026
8027     [id(DISPID_HTMLDOCUMENTEVENTS_ONROWENTER)]
8028     void onrowenter();
8029
8030     [id(DISPID_HTMLDOCUMENTEVENTS_ONDRAGSTART)]
8031     VARIANT_BOOL ondragstart();
8032
8033     [id(DISPID_HTMLDOCUMENTEVENTS_ONSELECTSTART)]
8034     VARIANT_BOOL onselectstart();
8035
8036     [id(DISPID_HTMLDOCUMENTEVENTS_ONERRORUPDATE)]
8037     VARIANT_BOOL onerrorupdate();
8038
8039     [id(DISPID_HTMLDOCUMENTEVENTS_ONCONTEXTMENU)]
8040     VARIANT_BOOL oncontextmenu();
8041
8042     [id(DISPID_HTMLDOCUMENTEVENTS_ONSTOP)]
8043     VARIANT_BOOL onstop();
8044
8045     [id(DISPID_HTMLDOCUMENTEVENTS_ONROWSDELETE)]
8046     void onrowsdelete();
8047
8048     [id(DISPID_HTMLDOCUMENTEVENTS_ONROWSINSERTED)]
8049     void onrowsinserted();
8050
8051     [id(DISPID_HTMLDOCUMENTEVENTS_ONCELLCHANGE)]
8052     void oncellchange();
8053
8054     [id(DISPID_HTMLDOCUMENTEVENTS_ONPROPERTYCHANGE)]
8055     void onpropertychange();
8056
8057     [id(DISPID_HTMLDOCUMENTEVENTS_ONDATASETCHANGED)]
8058     void ondatasetchanged();
8059
8060     [id(DISPID_HTMLDOCUMENTEVENTS_ONDATAAVAILABLE)]
8061     void ondataavailable();
8062
8063     [id(DISPID_HTMLDOCUMENTEVENTS_ONDATASETCOMPLETE)]
8064     void ondatasetcomplete();
8065
8066     [id(DISPID_HTMLDOCUMENTEVENTS_ONBEFOREEDITFOCUS)]
8067     void onbeforeeditfocus();
8068
8069     [id(DISPID_HTMLDOCUMENTEVENTS_ONSELECTIONCHANGE)]
8070     void onselectionchange();
8071
8072     [id(DISPID_HTMLDOCUMENTEVENTS_ONCONTROLSELECT)]
8073     VARIANT_BOOL oncontrolselect();
8074
8075     [id(DISPID_HTMLDOCUMENTEVENTS_ONMOUSEWHEEL)]
8076     VARIANT_BOOL onmousewheel();
8077
8078     [id(DISPID_HTMLDOCUMENTEVENTS_ONFOCUSIN)]
8079     void onfocusin();
8080
8081     [id(DISPID_HTMLDOCUMENTEVENTS_ONFOCUSOUT)]
8082     void onfocusout();
8083
8084     [id(DISPID_HTMLDOCUMENTEVENTS_ONACTIVATE)]
8085     void onactivate();
8086
8087     [id(DISPID_HTMLDOCUMENTEVENTS_ONDEACTIVATE)]
8088     void ondeactivate();
8089
8090     [id(DISPID_HTMLDOCUMENTEVENTS_ONBEFOREACTIVATE)]
8091     VARIANT_BOOL onbeforeactivate();
8092
8093     [id(DISPID_HTMLDOCUMENTEVENTS_ONBEFOREDEACTIVATE)]
8094     VARIANT_BOOL onbeforedeactivate();
8095 }
8096
8097 /*****************************************************************************
8098  *    HTMLTextContainerEvents interface
8099  */
8100 [
8101     hidden,
8102     uuid(1ff6aa72-5842-11cf-a707-00aa00c0098d)
8103 ]
8104 dispinterface HTMLTextContainerEvents
8105 {
8106 properties:
8107
8108 methods:
8109     [id(DISPID_HTMLELEMENTEVENTS_ONHELP)]
8110     VARIANT_BOOL onhelp();
8111
8112     [id(DISPID_HTMLELEMENTEVENTS_ONCLICK)]
8113     VARIANT_BOOL onclick();
8114
8115     [id(DISPID_HTMLELEMENTEVENTS_ONDBLCLICK)]
8116     VARIANT_BOOL ondblclick();
8117
8118     [id(DISPID_HTMLELEMENTEVENTS_ONKEYPRESS)]
8119     VARIANT_BOOL onkeypress();
8120
8121     [id(DISPID_HTMLELEMENTEVENTS_ONKEYDOWN)]
8122     void onkeydown();
8123
8124     [id(DISPID_HTMLELEMENTEVENTS_ONKEYUP)]
8125     void onkeyup();
8126
8127     [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOUT)]
8128     void onmouseout();
8129
8130     [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOVER)]
8131     void onmouseover();
8132
8133     [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEMOVE)]
8134     void onmousemove();
8135
8136     [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEDOWN)]
8137     void onmousedown();
8138
8139     [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEUP)]
8140     void onmouseup();
8141
8142     [id(DISPID_HTMLELEMENTEVENTS_ONSELECTSTART)]
8143     VARIANT_BOOL onselectstart();
8144
8145     [id(DISPID_HTMLELEMENTEVENTS_ONFILTERCHANGE)]
8146     void onfilterchange();
8147
8148     [id(DISPID_HTMLELEMENTEVENTS_ONDRAGSTART)]
8149     VARIANT_BOOL ondragstart();
8150
8151     [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREUPDATE)]
8152     VARIANT_BOOL onbeforeupdate();
8153
8154     [id(DISPID_HTMLELEMENTEVENTS_ONAFTERUPDATE)]
8155     void onafterupdate();
8156
8157     [id(DISPID_HTMLELEMENTEVENTS_ONERRORUPDATE)]
8158     VARIANT_BOOL onerrorupdate();
8159
8160     [id(DISPID_HTMLELEMENTEVENTS_ONROWEXIT)]
8161     VARIANT_BOOL onrowexit();
8162
8163     [id(DISPID_HTMLELEMENTEVENTS_ONROWENTER)]
8164     void onrowenter();
8165
8166     [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCHANGED)]
8167     void ondatasetchanged();
8168
8169     [id(DISPID_HTMLELEMENTEVENTS_ONDATAAVAILABLE)]
8170     void ondataavailable();
8171
8172     [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCOMPLETE)]
8173     void ondatasetcomplete();
8174
8175     [id(DISPID_HTMLELEMENTEVENTS_ONLOSECAPTURE)]
8176     void onlosecapture();
8177
8178     [id(DISPID_HTMLELEMENTEVENTS_ONPROPERTYCHANGE)]
8179     void onpropertychange();
8180
8181     [id(DISPID_HTMLELEMENTEVENTS_ONSCROLL)]
8182     void onscroll();
8183
8184     [id(DISPID_HTMLELEMENTEVENTS_ONFOCUS)]
8185     void onfocus();
8186
8187     [id(DISPID_HTMLELEMENTEVENTS_ONBLUR)]
8188     void onblur();
8189
8190     [id(DISPID_HTMLELEMENTEVENTS_ONRESIZE)]
8191     void onresize();
8192
8193     [id(DISPID_HTMLELEMENTEVENTS_ONDRAG)]
8194     VARIANT_BOOL ondrag();
8195
8196     [id(DISPID_HTMLELEMENTEVENTS_ONDRAGEND)]
8197     void ondragend();
8198
8199     [id(DISPID_HTMLELEMENTEVENTS_ONDRAGENTER)]
8200     VARIANT_BOOL ondragenter();
8201
8202     [id(DISPID_HTMLELEMENTEVENTS_ONDRAGOVER)]
8203     VARIANT_BOOL ondragover();
8204
8205     [id(DISPID_HTMLELEMENTEVENTS_ONDRAGLEAVE)]
8206     void ondragleave();
8207
8208     [id(DISPID_HTMLELEMENTEVENTS_ONDROP)]
8209     VARIANT_BOOL ondrop();
8210
8211     [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECUT)]
8212     VARIANT_BOOL onbeforecut();
8213
8214     [id(DISPID_HTMLELEMENTEVENTS_ONCUT)]
8215     VARIANT_BOOL oncut();
8216
8217     [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECOPY)]
8218     VARIANT_BOOL onbeforecopy();
8219
8220     [id(DISPID_HTMLELEMENTEVENTS_ONCOPY)]
8221     VARIANT_BOOL oncopy();
8222
8223     [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREPASTE)]
8224     VARIANT_BOOL onbeforepaste();
8225
8226     [id(DISPID_HTMLELEMENTEVENTS_ONPASTE)]
8227     VARIANT_BOOL onpaste();
8228
8229     [id(DISPID_HTMLELEMENTEVENTS_ONCONTEXTMENU)]
8230     VARIANT_BOOL oncontextmenu();
8231
8232     [id(DISPID_HTMLELEMENTEVENTS_ONROWSDELETE)]
8233     void onrowsdelete();
8234
8235     [id(DISPID_HTMLELEMENTEVENTS_ONROWSINSERTED)]
8236     void onrowsinserted();
8237
8238     [id(DISPID_HTMLELEMENTEVENTS_ONCELLCHANGE)]
8239     void oncellchange();
8240
8241     [id(DISPID_HTMLELEMENTEVENTS_ONREADYSTATECHANGE)]
8242     void onreadystatechange();
8243
8244     [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREEDITFOCUS)]
8245     void onbeforeeditfocus();
8246
8247     [id(DISPID_HTMLELEMENTEVENTS_ONLAYOUTCOMPLETE)]
8248     void onlayoutcomplete();
8249
8250     [id(DISPID_HTMLELEMENTEVENTS_ONPAGE)]
8251     void onpage();
8252
8253     [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREDEACTIVATE)]
8254     VARIANT_BOOL onbeforedeactivate();
8255
8256     [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREACTIVATE)]
8257     VARIANT_BOOL onbeforeactivate();
8258
8259     [id(DISPID_HTMLELEMENTEVENTS_ONMOVE)]
8260     void onmove();
8261
8262     [id(DISPID_HTMLELEMENTEVENTS_ONCONTROLSELECT)]
8263     VARIANT_BOOL oncontrolselect();
8264
8265     [id(DISPID_HTMLELEMENTEVENTS_ONMOVESTART)]
8266     VARIANT_BOOL onmovestart();
8267
8268     [id(DISPID_HTMLELEMENTEVENTS_ONMOVEEND)]
8269     void onmoveend();
8270
8271     [id(DISPID_HTMLELEMENTEVENTS_ONRESIZESTART)]
8272     VARIANT_BOOL onresizestart();
8273
8274     [id(DISPID_HTMLELEMENTEVENTS_ONRESIZEEND)]
8275     void onresizeend();
8276
8277     [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEENTER)]
8278     void onmouseenter();
8279
8280     [id(DISPID_HTMLELEMENTEVENTS_ONMOUSELEAVE)]
8281     void onmouseleave();
8282
8283     [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEWHEEL)]
8284     VARIANT_BOOL onmousewheel();
8285
8286     [id(DISPID_HTMLELEMENTEVENTS_ONACTIVATE)]
8287     void onactivate();
8288
8289     [id(DISPID_HTMLELEMENTEVENTS_ONDEACTIVATE)]
8290     void ondeactivate();
8291
8292     [id(DISPID_HTMLELEMENTEVENTS_ONFOCUSIN)]
8293     void onfocusin();
8294
8295     [id(DISPID_HTMLELEMENTEVENTS_ONFOCUSOUT)]
8296     void onfocusout();
8297
8298     [id(DISPID_HTMLTEXTCONTAINEREVENTS_ONCHANGE)]
8299     void onchange();
8300
8301     [id(DISPID_HTMLTEXTCONTAINEREVENTS_ONSELECT)]
8302     void onselect();
8303 };
8304
8305 /*****************************************************************************
8306  *    IHTMLDocument interface
8307  */
8308 [
8309     odl,
8310     oleautomation,
8311     dual,
8312     uuid(626FC520-A41E-11CF-A731-00A0C9082637)
8313 ]
8314 interface IHTMLDocument : IDispatch
8315 {
8316     [propget, id(DISPID_IHTMLDOCUMENT_SCRIPT)]
8317     HRESULT Script([retval, out] IDispatch **p);
8318 }
8319
8320 /*****************************************************************************
8321  *    IHTMLDocument2 interface
8322  */
8323 [
8324     odl,
8325     oleautomation,
8326     dual,
8327     uuid(332C4425-26CB-11D0-B483-00C04FD90119)
8328 ]
8329 interface IHTMLDocument2 : IHTMLDocument
8330 {
8331     [propget, id(DISPID_IHTMLDOCUMENT2_ALL)]
8332     HRESULT all([retval, out] IHTMLElementCollection **p);
8333
8334     [propget, id(DISPID_IHTMLDOCUMENT2_BODY)]
8335     HRESULT body([retval, out] IHTMLElement **p);
8336
8337     [propget, id(DISPID_IHTMLDOCUMENT2_ACTIVEELEMENT)]
8338     HRESULT activeElement([retval, out] IHTMLElement **p);
8339
8340     [propget, id(DISPID_IHTMLDOCUMENT2_IMAGES)]
8341     HRESULT images([retval, out] IHTMLElementCollection **p);
8342
8343     [propget, id(DISPID_IHTMLDOCUMENT2_APPLETS)]
8344     HRESULT applets([retval, out] IHTMLElementCollection **p);
8345
8346     [propget, id(DISPID_IHTMLDOCUMENT2_LINKS)]
8347     HRESULT links([retval, out] IHTMLElementCollection **p);
8348
8349     [propget, id(DISPID_IHTMLDOCUMENT2_FORMS)]
8350     HRESULT forms([retval, out] IHTMLElementCollection **p);
8351
8352     [propget, id(DISPID_IHTMLDOCUMENT2_ANCHORS)]
8353     HRESULT anchors([retval, out] IHTMLElementCollection **p);
8354
8355     [propput, id(DISPID_IHTMLDOCUMENT2_TITLE)]
8356     HRESULT title([in] BSTR v);
8357
8358     [propget, id(DISPID_IHTMLDOCUMENT2_TITLE)]
8359     HRESULT title([retval, out] BSTR *p);
8360
8361     [propget, id(DISPID_IHTMLDOCUMENT2_SCRIPTS)]
8362     HRESULT scripts([retval, out] IHTMLElementCollection **p);
8363
8364     [propput, id(DISPID_IHTMLDOCUMENT2_DESIGNMODE)]
8365     HRESULT designMode([in] BSTR v);
8366
8367     [propget, id(DISPID_IHTMLDOCUMENT2_DESIGNMODE)]
8368     HRESULT designMode([retval, out] BSTR *p);
8369
8370     [propget, id(DISPID_IHTMLDOCUMENT2_SELECTION)]
8371     HRESULT selection([retval, out] IHTMLSelectionObject **p);
8372
8373     [propget, id(DISPID_IHTMLDOCUMENT2_READYSTATE)]
8374      HRESULT readyState([retval, out] BSTR *p);
8375
8376     [propget, id(DISPID_IHTMLDOCUMENT2_FRAMES)]
8377     HRESULT frames([retval, out] IHTMLFramesCollection2 **p);
8378
8379     [propget, id(DISPID_IHTMLDOCUMENT2_EMBEDS)]
8380     HRESULT embeds([retval, out] IHTMLElementCollection **p);
8381
8382     [propget, id(DISPID_IHTMLDOCUMENT2_PLUGINS)]
8383     HRESULT plugins([retval, out] IHTMLElementCollection **p);
8384
8385     [propput, id(DISPID_IHTMLDOCUMENT2_ALINKCOLOR)]
8386     HRESULT alinkColor([in] VARIANT v);
8387
8388     [propget, id(DISPID_IHTMLDOCUMENT2_ALINKCOLOR)]
8389     HRESULT alinkColor([retval, out] VARIANT *p);
8390
8391     [propput, id(DISPID_IHTMLDOCUMENT2_BGCOLOR)]
8392     HRESULT bgColor([in] VARIANT v);
8393
8394     [propget, id(DISPID_IHTMLDOCUMENT2_BGCOLOR)]
8395     HRESULT bgColor([retval, out] VARIANT *p);
8396
8397     [propput, id(DISPID_IHTMLDOCUMENT2_FGCOLOR)]
8398     HRESULT fgColor([in] VARIANT v);
8399
8400     [propget, id(DISPID_IHTMLDOCUMENT2_FGCOLOR)]
8401     HRESULT fgColor([retval, out] VARIANT *p);
8402
8403     [propput, id(DISPID_IHTMLDOCUMENT2_LINKCOLOR)]
8404     HRESULT linkColor([in] VARIANT v);
8405
8406     [propget, id(DISPID_IHTMLDOCUMENT2_LINKCOLOR)]
8407     HRESULT linkColor([retval, out] VARIANT *p);
8408
8409     [propput, id(DISPID_IHTMLDOCUMENT2_VLINKCOLOR)]
8410     HRESULT vlinkColor([in] VARIANT v);
8411
8412     [propget, id(DISPID_IHTMLDOCUMENT2_VLINKCOLOR)]
8413     HRESULT vlinkColor([retval, out] VARIANT *p);
8414
8415     [propget, id(DISPID_IHTMLDOCUMENT2_REFERRER)]
8416     HRESULT referrer([retval, out] BSTR *p);
8417
8418     [propget, id(DISPID_IHTMLDOCUMENT2_LOCATION)]
8419     HRESULT location([retval, out] IHTMLLocation **p);
8420
8421     [propget, id(DISPID_IHTMLDOCUMENT2_LASTMODIFIED)]
8422     HRESULT lastModified([retval, out] BSTR *p);
8423
8424     [propput, id(DISPID_IHTMLDOCUMENT2_URL)]
8425     HRESULT URL([in] BSTR v);
8426
8427     [propget, id(DISPID_IHTMLDOCUMENT2_URL)]
8428     HRESULT URL([retval, out] BSTR *p);
8429
8430     [propput, id(DISPID_IHTMLDOCUMENT2_DOMAIN)]
8431     HRESULT domain([in] BSTR v);
8432
8433     [propget, id(DISPID_IHTMLDOCUMENT2_DOMAIN)]
8434     HRESULT domain([retval, out] BSTR *p);
8435
8436     [propput, id(DISPID_IHTMLDOCUMENT2_COOKIE)]
8437     HRESULT cookie([in] BSTR v);
8438
8439     [propget, id(DISPID_IHTMLDOCUMENT2_COOKIE)]
8440     HRESULT cookie([retval, out] BSTR *p);
8441
8442     [propput, id(DISPID_IHTMLDOCUMENT2_EXPANDO)]
8443     HRESULT expando([in] VARIANT_BOOL v);
8444
8445     [propget, id(DISPID_IHTMLDOCUMENT2_EXPANDO)]
8446     HRESULT expando([retval, out] VARIANT_BOOL *p);
8447
8448     [propput, id(DISPID_IHTMLDOCUMENT2_CHARSET)]
8449      HRESULT charset([in] BSTR v);
8450
8451     [propget, id(DISPID_IHTMLDOCUMENT2_CHARSET)]
8452     HRESULT charset([retval, out] BSTR *p);
8453
8454     [propput, id(DISPID_IHTMLDOCUMENT2_DEFAULTCHARSET)]
8455     HRESULT defaultCharset([in] BSTR v);
8456
8457     [propget, id(DISPID_IHTMLDOCUMENT2_DEFAULTCHARSET)]
8458     HRESULT defaultCharset([retval, out] BSTR *p);
8459
8460     [propget, id(DISPID_IHTMLDOCUMENT2_MIMETYPE)]
8461     HRESULT mimeType([retval, out] BSTR *p);
8462
8463     [propget, id(DISPID_IHTMLDOCUMENT2_FILESIZE)]
8464     HRESULT fileSize([retval, out] BSTR *p);
8465
8466     [propget, id(DISPID_IHTMLDOCUMENT2_FILECREATEDDATE)]
8467     HRESULT fileCreatedDate([retval, out] BSTR *p);
8468
8469     [propget, id(DISPID_IHTMLDOCUMENT2_FILEMODIFIEDDATE)]
8470     HRESULT fileModifiedDate([retval, out] BSTR *p);
8471
8472     [propget, id(DISPID_IHTMLDOCUMENT2_FILEUPDATEDDATE)]
8473     HRESULT fileUpdatedDate([retval, out] BSTR *p);
8474
8475     [propget, id(DISPID_IHTMLDOCUMENT2_SECURITY)]
8476     HRESULT security([retval, out] BSTR *p);
8477
8478     [propget, id(DISPID_IHTMLDOCUMENT2_PROTOCOL)]
8479     HRESULT protocol([retval, out] BSTR *p);
8480
8481     [propget, id(DISPID_IHTMLDOCUMENT2_NAMEPROP)]
8482      HRESULT nameProp([retval, out] BSTR *p);
8483
8484     [vararg, id(DISPID_IHTMLDOCUMENT2_WRITE)]
8485     HRESULT write([in] SAFEARRAY(VARIANT) psarray);
8486
8487     [vararg, id(DISPID_IHTMLDOCUMENT2_WRITELN)]
8488     HRESULT writeln([in] SAFEARRAY(VARIANT) psarray);
8489
8490     [id(DISPID_IHTMLDOCUMENT2_OPEN)]
8491     HRESULT open(
8492         [defaultvalue("text/html"), in] BSTR url,
8493         [optional, in] VARIANT name,
8494         [optional, in] VARIANT features,
8495         [optional, in] VARIANT replace,
8496         [retval, out]  IDispatch **pomWindowResult);
8497
8498     [id(DISPID_IHTMLDOCUMENT2_CLOSE)]
8499     HRESULT close();
8500
8501     [id(DISPID_IHTMLDOCUMENT2_CLEAR)]
8502     HRESULT clear();
8503
8504     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDSUPPORTED)]
8505     HRESULT queryCommandSupported(
8506         [in] BSTR cmdID,
8507         [retval, out] VARIANT_BOOL *pfRet);
8508
8509     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDENABLED)]
8510     HRESULT queryCommandEnabled(
8511         [in] BSTR cmdID,
8512         [retval, out] VARIANT_BOOL *pfRet);
8513
8514     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDSTATE)]
8515     HRESULT queryCommandState(
8516         [in] BSTR cmdID,
8517         [retval, out] VARIANT_BOOL *pfRet);
8518
8519     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDINDETERM)]
8520     HRESULT queryCommandIndeterm(
8521         [in] BSTR cmdID,
8522         [retval, out] VARIANT_BOOL *pfRet);
8523
8524     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDTEXT)]
8525     HRESULT queryCommandText(
8526         [in] BSTR cmdID,
8527         [retval, out] BSTR *pcmdText);
8528
8529     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDVALUE)]
8530     HRESULT queryCommandValue(
8531         [in] BSTR cmdID,
8532         [retval, out] VARIANT *pcmdValue);
8533
8534     [id(DISPID_IHTMLDOCUMENT2_EXECCOMMAND)]
8535     HRESULT execCommand(
8536         [in] BSTR cmdID,
8537         [defaultvalue(0), in] VARIANT_BOOL showUI,
8538         [optional, in] VARIANT value,
8539         [retval, out] VARIANT_BOOL *pfRet);
8540
8541     [id(DISPID_IHTMLDOCUMENT2_EXECCOMMANDSHOWHELP)]
8542     HRESULT execCommandShowHelp(
8543         [in] BSTR cmdID,
8544         [retval, out] VARIANT_BOOL *pfRet);
8545
8546     [id(DISPID_IHTMLDOCUMENT2_CREATEELEMENT)]
8547      HRESULT createElement(
8548         [in] BSTR eTag,
8549         [retval, out] IHTMLElement **newElem);
8550
8551     [propput, id(DISPID_IHTMLDOCUMENT2_ONHELP)]
8552     HRESULT onhelp([in] VARIANT v);
8553
8554     [propget, id(DISPID_IHTMLDOCUMENT2_ONHELP)]
8555     HRESULT onhelp([retval, out] VARIANT *p);
8556
8557     [propput, id(DISPID_IHTMLDOCUMENT2_ONCLICK)]
8558     HRESULT onclick([in] VARIANT v);
8559
8560     [propget, id(DISPID_IHTMLDOCUMENT2_ONCLICK)]
8561     HRESULT onclick([retval, out] VARIANT *p);
8562
8563     [propput, id(DISPID_IHTMLDOCUMENT2_ONDBLCLICK)]
8564     HRESULT ondblclick([in] VARIANT v);
8565
8566     [propget, id(DISPID_IHTMLDOCUMENT2_ONDBLCLICK)]
8567     HRESULT ondblclick([retval, out] VARIANT *p);
8568
8569     [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYUP)]
8570     HRESULT onkeyup([in] VARIANT v);
8571
8572     [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYUP)]
8573     HRESULT onkeyup([retval, out] VARIANT *p);
8574
8575     [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYDOWN)]
8576     HRESULT onkeydown([in] VARIANT v);
8577
8578     [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYDOWN)]
8579     HRESULT onkeydown([retval, out] VARIANT *p);
8580
8581     [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYPRESS)]
8582      HRESULT onkeypress([in] VARIANT v);
8583
8584     [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYPRESS)]
8585     HRESULT onkeypress([retval, out] VARIANT *p);
8586
8587     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEUP)]
8588     HRESULT onmouseup([in] VARIANT v);
8589
8590     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEUP)]
8591     HRESULT onmouseup([retval, out] VARIANT *p);
8592
8593     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEDOWN)]
8594     HRESULT onmousedown([in] VARIANT v);
8595
8596     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEDOWN)]
8597     HRESULT onmousedown([retval, out] VARIANT *p);
8598
8599     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEMOVE)]
8600     HRESULT onmousemove([in] VARIANT v);
8601
8602     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEMOVE)]
8603     HRESULT onmousemove([retval, out] VARIANT *p);
8604
8605     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOUT)]
8606     HRESULT onmouseout([in] VARIANT v);
8607
8608     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOUT)]
8609     HRESULT onmouseout([retval, out] VARIANT *p);
8610
8611     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOVER)]
8612     HRESULT onmouseover([in] VARIANT v);
8613
8614     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOVER)]
8615     HRESULT onmouseover([retval, out] VARIANT *p);
8616
8617     [propput, id(DISPID_IHTMLDOCUMENT2_ONREADYSTATECHANGE)]
8618     HRESULT onreadystatechange([in] VARIANT v);
8619
8620     [propget, id(DISPID_IHTMLDOCUMENT2_ONREADYSTATECHANGE)]
8621     HRESULT onreadystatechange([retval, out] VARIANT *p);
8622
8623     [propput, id(DISPID_IHTMLDOCUMENT2_ONAFTERUPDATE)]
8624     HRESULT onafterupdate([in] VARIANT v);
8625
8626     [propget, id(DISPID_IHTMLDOCUMENT2_ONAFTERUPDATE)]
8627     HRESULT onafterupdate([retval, out] VARIANT *p);
8628
8629     [propput, id(DISPID_IHTMLDOCUMENT2_ONROWEXIT)]
8630     HRESULT onrowexit([in] VARIANT v);
8631
8632     [propget, id(DISPID_IHTMLDOCUMENT2_ONROWEXIT)]
8633     HRESULT onrowexit([retval, out] VARIANT *p);
8634
8635     [propput, id(DISPID_IHTMLDOCUMENT2_ONROWENTER)]
8636     HRESULT onrowenter([in] VARIANT v);
8637
8638     [propget, id(DISPID_IHTMLDOCUMENT2_ONROWENTER)]
8639     HRESULT onrowenter([retval, out] VARIANT *p);
8640
8641     [propput, id(DISPID_IHTMLDOCUMENT2_ONDRAGSTART)]
8642     HRESULT ondragstart([in] VARIANT v);
8643
8644     [propget, id(DISPID_IHTMLDOCUMENT2_ONDRAGSTART)]
8645     HRESULT ondragstart([retval, out] VARIANT *p);
8646
8647     [propput, id(DISPID_IHTMLDOCUMENT2_ONSELECTSTART)]
8648     HRESULT onselectstart([in] VARIANT v);
8649
8650     [propget, id(DISPID_IHTMLDOCUMENT2_ONSELECTSTART)]
8651     HRESULT onselectstart([retval, out] VARIANT *p);
8652
8653     [id(DISPID_IHTMLDOCUMENT2_ELEMENTFROMPOINT)]
8654     HRESULT elementFromPoint(
8655         [in] long x,
8656         [in] long y,
8657         [retval, out] IHTMLElement **elementHit);
8658
8659     [propget, id(DISPID_IHTMLDOCUMENT2_PARENTWINDOW)]
8660     HRESULT parentWindow([retval, out] IHTMLWindow2 **p);
8661
8662     [propget, id(DISPID_IHTMLDOCUMENT2_STYLESHEETS)]
8663     HRESULT styleSheets([retval, out] IHTMLStyleSheetsCollection **p);
8664
8665     [propput, id(DISPID_IHTMLDOCUMENT2_ONBEFOREUPDATE)]
8666     HRESULT onbeforeupdate([in] VARIANT v);
8667
8668     [propget, id(DISPID_IHTMLDOCUMENT2_ONBEFOREUPDATE)]
8669     HRESULT onbeforeupdate([retval, out] VARIANT *p);
8670
8671     [propput, id(DISPID_IHTMLDOCUMENT2_ONERRORUPDATE)]
8672     HRESULT onerrorupdate([in] VARIANT v);
8673
8674     [propget, id(DISPID_IHTMLDOCUMENT2_ONERRORUPDATE)]
8675     HRESULT onerrorupdate([retval, out] VARIANT *p);
8676
8677     [id(DISPID_IHTMLDOCUMENT2_TOSTRING)]
8678     HRESULT toString([retval, out] BSTR *String);
8679
8680     [id(DISPID_IHTMLDOCUMENT2_CREATESTYLESHEET)]
8681     HRESULT createStyleSheet(
8682         [defaultvalue(""), in] BSTR bstrHref,
8683         [defaultvalue(-1), in] long lIndex,
8684         [retval, out] IHTMLStyleSheet **ppnewStyleSheet);
8685 }
8686
8687 /*****************************************************************************
8688  *    IHTMLDocument3 interface
8689  */
8690 [
8691     odl,
8692     oleautomation,
8693     dual,
8694     uuid(3050f485-98b5-11cf-bb82-00aa00bdce0b)
8695 ]
8696 interface IHTMLDocument3 : IDispatch
8697 {
8698     [id(DISPID_IHTMLDOCUMENT3_RELEASECAPTURE)]
8699     HRESULT releaseCapture();
8700
8701     [id(DISPID_IHTMLDOCUMENT3_RECALC)]
8702     HRESULT recalc([defaultvalue(0), in] VARIANT_BOOL fForce);
8703
8704     [id(DISPID_IHTMLDOCUMENT3_CREATETEXTNODE)]
8705     HRESULT createTextNode(
8706         [in] BSTR text,
8707         [retval, out] IHTMLDOMNode **newTextNode);
8708
8709     [propget, id(DISPID_IHTMLDOCUMENT3_DOCUMENTELEMENT)]
8710     HRESULT documentElement([retval, out] IHTMLElement **p);
8711
8712     [propget, id(DISPID_IHTMLDOCUMENT3_UNIQUEID), hidden]
8713     HRESULT uniqueID([retval, out] BSTR *p);
8714
8715     [id(DISPID_IHTMLDOCUMENT3_ATTACHEVENT)]
8716     HRESULT attachEvent(
8717         [in] BSTR event,
8718         [in] IDispatch* pDisp,
8719         [retval, out] VARIANT_BOOL *pfResult);
8720
8721     [id(DISPID_IHTMLDOCUMENT3_DETACHEVENT)]
8722     HRESULT detachEvent(
8723         [in] BSTR event,
8724         [in] IDispatch *pDisp);
8725
8726     [propput, id(DISPID_IHTMLDOCUMENT3_ONROWSDELETE), displaybind, bindable]
8727     HRESULT onrowsdelete([in] VARIANT v);
8728
8729     [propget, id(DISPID_IHTMLDOCUMENT3_ONROWSDELETE), displaybind, bindable]
8730     HRESULT onrowsdelete([retval, out] VARIANT *p);
8731
8732     [propput, id(DISPID_IHTMLDOCUMENT3_ONROWSINSERTED), displaybind, bindable]
8733     HRESULT onrowsinserted([in] VARIANT v);
8734
8735     [propget, id(DISPID_IHTMLDOCUMENT3_ONROWSINSERTED), displaybind, bindable]
8736     HRESULT onrowsinserted([retval, out] VARIANT *p);
8737
8738     [propput, id(DISPID_IHTMLDOCUMENT3_ONCELLCHANGE), displaybind, bindable]
8739     HRESULT oncellchange([in] VARIANT v);
8740
8741     [propget, id(DISPID_IHTMLDOCUMENT3_ONCELLCHANGE), displaybind, bindable]
8742     HRESULT oncellchange([retval, out] VARIANT *p);
8743
8744     [propput, id(DISPID_IHTMLDOCUMENT3_ONDATASETCHANGED), displaybind, bindable]
8745     HRESULT ondatasetchanged([in] VARIANT v);
8746
8747     [propget, id(DISPID_IHTMLDOCUMENT3_ONDATASETCHANGED), displaybind, bindable]
8748     HRESULT ondatasetchanged([retval, out] VARIANT *p);
8749
8750     [propput, id(DISPID_IHTMLDOCUMENT3_ONDATAAVAILABLE), displaybind, bindable]
8751     HRESULT ondataavailable([in] VARIANT v);
8752
8753     [propget, id(DISPID_IHTMLDOCUMENT3_ONDATAAVAILABLE), displaybind, bindable]
8754     HRESULT ondataavailable([retval, out] VARIANT * p);
8755
8756     [propput, id(DISPID_IHTMLDOCUMENT3_ONDATASETCOMPLETE), displaybind, bindable]
8757     HRESULT ondatasetcomplete([in] VARIANT v);
8758
8759     [propget, id(DISPID_IHTMLDOCUMENT3_ONDATASETCOMPLETE), displaybind, bindable]
8760     HRESULT ondatasetcomplete([retval, out] VARIANT *p);
8761
8762     [propput, id(DISPID_IHTMLDOCUMENT3_ONPROPERTYCHANGE), displaybind, bindable]
8763     HRESULT onpropertychange([in] VARIANT v);
8764
8765     [propget, id(DISPID_IHTMLDOCUMENT3_ONPROPERTYCHANGE), displaybind, bindable]
8766     HRESULT onpropertychange([retval, out] VARIANT *p);
8767
8768     [propput, id(DISPID_IHTMLDOCUMENT3_DIR)]
8769     HRESULT dir([in] BSTR v);
8770
8771     [propget, id(DISPID_IHTMLDOCUMENT3_DIR)]
8772     HRESULT dir([retval, out] BSTR *p);
8773
8774     [propput, id(DISPID_IHTMLDOCUMENT3_ONCONTEXTMENU), displaybind, bindable]
8775     HRESULT oncontextmenu([in] VARIANT v);
8776
8777     [propget, id(DISPID_IHTMLDOCUMENT3_ONCONTEXTMENU), displaybind, bindable]
8778     HRESULT oncontextmenu([retval, out] VARIANT *p);
8779
8780     [propput, id(DISPID_IHTMLDOCUMENT3_ONSTOP), displaybind, bindable]
8781     HRESULT onstop([in] VARIANT v);
8782
8783     [propget, id(DISPID_IHTMLDOCUMENT3_ONSTOP), displaybind, bindable]
8784     HRESULT onstop([retval, out] VARIANT *p);
8785
8786     [id(DISPID_IHTMLDOCUMENT3_CREATEDOCUMENTFRAGMENT)]
8787     HRESULT createDocumentFragment([retval, out] IHTMLDocument2 **pNewDoc);
8788
8789     [propget, id(DISPID_IHTMLDOCUMENT3_PARENTDOCUMENT), hidden, restricted]
8790     HRESULT parentDocument([retval, out] IHTMLDocument2 **p);
8791
8792     [propput, id(DISPID_IHTMLDOCUMENT3_ENABLEDOWNLOAD), hidden, restricted]
8793     HRESULT enableDownload([in] VARIANT_BOOL v);
8794
8795     [propget, id(DISPID_IHTMLDOCUMENT3_ENABLEDOWNLOAD), hidden, restricted]
8796     HRESULT enableDownload([retval, out] VARIANT_BOOL *p);
8797
8798     [propput, id(DISPID_IHTMLDOCUMENT3_BASEURL), hidden, restricted]
8799     HRESULT baseUrl([in] BSTR v);
8800
8801     [propget, id(DISPID_IHTMLDOCUMENT3_BASEURL), hidden, restricted]
8802     HRESULT baseUrl([retval, out] BSTR *p);
8803
8804     [propget, id(DISPID_IHTMLDOCUMENT3_CHILDNODES)]
8805     HRESULT childNodes([retval, out] IDispatch **p);
8806
8807     [propput, id(DISPID_IHTMLDOCUMENT3_INHERITSTYLESHEETS), hidden, restricted]
8808     HRESULT inheritStyleSheets([in] VARIANT_BOOL v);
8809
8810     [propget, id(DISPID_IHTMLDOCUMENT3_INHERITSTYLESHEETS), hidden, restricted]
8811     HRESULT inheritStyleSheets([retval, out] VARIANT_BOOL *p);
8812
8813     [propput, id(DISPID_IHTMLDOCUMENT3_ONBEFOREEDITFOCUS), displaybind, bindable]
8814     HRESULT onbeforeeditfocus([in] VARIANT v);
8815
8816     [propget, id(DISPID_IHTMLDOCUMENT3_ONBEFOREEDITFOCUS), displaybind, bindable]
8817     HRESULT onbeforeeditfocus([retval, out] VARIANT *p);
8818
8819     [id(DISPID_IHTMLDOCUMENT3_GETELEMENTSBYNAME)]
8820     HRESULT getElementsByName(
8821         [in] BSTR v,
8822         [retval, out] IHTMLElementCollection **pelColl);
8823
8824     [id(DISPID_IHTMLDOCUMENT3_GETELEMENTBYID)]
8825     HRESULT getElementById(
8826         [in] BSTR v,
8827         [retval, out] IHTMLElement **pel);
8828
8829     [id(DISPID_IHTMLDOCUMENT3_GETELEMENTSBYTAGNAME)]
8830     HRESULT getElementsByTagName(
8831         [in] BSTR v,
8832         [retval, out] IHTMLElementCollection **pelColl);
8833 }
8834
8835 /*****************************************************************************
8836  *    IHTMLDocument4 interface
8837  */
8838 [
8839     odl,
8840     oleautomation,
8841     dual,
8842     uuid(3050f69a-98b5-11cf-bb82-00aa00bdce0b)
8843 ]
8844 interface IHTMLDocument4 : IDispatch
8845 {
8846     [id(DISPID_IHTMLDOCUMENT4_FOCUS)]
8847     HRESULT focus();
8848
8849     [id(DISPID_IHTMLDOCUMENT4_HASFOCUS)]
8850     HRESULT hasFocus([retval, out] VARIANT_BOOL *pfFocus);
8851
8852     [propput, id(DISPID_IHTMLDOCUMENT4_ONSELECTIONCHANGE), displaybind, bindable]
8853     HRESULT onselectionchange([in] VARIANT v);
8854
8855     [propget, id(DISPID_IHTMLDOCUMENT4_ONSELECTIONCHANGE), displaybind, bindable]
8856     HRESULT onselectionchange([retval, out] VARIANT *p);
8857
8858     [propget, id(DISPID_IHTMLDOCUMENT4_NAMESPACES)]
8859     HRESULT namespaces([retval, out] IDispatch **p);
8860
8861     [id(DISPID_IHTMLDOCUMENT4_CREATEDOCUMENTFROMURL)]
8862     HRESULT createDocumentFromUrl(
8863         [in] BSTR bstrUrl,
8864         [in] BSTR bstrOptions,
8865         [retval, out] IHTMLDocument2 **newDoc);
8866
8867     [propput, id(DISPID_IHTMLDOCUMENT4_MEDIA)]
8868     HRESULT media([in] BSTR v);
8869
8870     [propget, id(DISPID_IHTMLDOCUMENT4_MEDIA)]
8871     HRESULT media([retval, out] BSTR *p);
8872
8873     [id(DISPID_IHTMLDOCUMENT4_CREATEEVENTOBJECT)]
8874     HRESULT createEventObject(
8875         [optional, in] VARIANT *pvarEventObject,
8876         [retval, out] IHTMLEventObj **ppEventObj);
8877
8878     [id(DISPID_IHTMLDOCUMENT4_FIREEVENT)]
8879     HRESULT fireEvent(
8880         [in] BSTR bstrEventName,
8881         [optional, in] VARIANT *pvarEventObject,
8882         [retval, out] VARIANT_BOOL *pfCancelled);
8883
8884     [id(DISPID_IHTMLDOCUMENT4_CREATERENDERSTYLE)]
8885     HRESULT createRenderStyle(
8886         [in] BSTR v,
8887         [retval, out] IHTMLRenderStyle **ppIHTMLRenderStyle);
8888
8889     [propput, id(DISPID_IHTMLDOCUMENT4_ONCONTROLSELECT), displaybind, bindable]
8890     HRESULT oncontrolselect([in] VARIANT v);
8891
8892     [propget, id(DISPID_IHTMLDOCUMENT4_ONCONTROLSELECT), displaybind, bindable]
8893     HRESULT oncontrolselect([retval, out] VARIANT *p);
8894
8895     [propget, id(DISPID_IHTMLDOCUMENT4_URLUNENCODED)]
8896     HRESULT URLUnencoded([retval, out] BSTR *p);
8897 }
8898
8899 /*****************************************************************************
8900  *    IHTMLDocument5 interface
8901  */
8902 [
8903     odl,
8904     oleautomation,
8905     dual,
8906     uuid(3050f80c-98b5-11cf-bb82-00aa00bdce0b)
8907 ]
8908 interface IHTMLDocument5 : IDispatch
8909 {
8910     [propput, id(DISPID_IHTMLDOCUMENT5_ONMOUSEWHEEL), displaybind, bindable]
8911     HRESULT onmousewheel([in] VARIANT v);
8912
8913     [propget, id(DISPID_IHTMLDOCUMENT5_ONMOUSEWHEEL), displaybind, bindable]
8914     HRESULT onmousewheel([retval, out] VARIANT *p);
8915
8916     [propget, id(DISPID_IHTMLDOCUMENT5_DOCTYPE)]
8917     HRESULT doctype([retval, out] IHTMLDOMNode **p);
8918
8919     [propget, id(DISPID_IHTMLDOCUMENT5_IMPLEMENTATION)]
8920     HRESULT implementation([retval, out] IHTMLDOMImplementation **p);
8921
8922     [id(DISPID_IHTMLDOCUMENT5_CREATEATTRIBUTE)]
8923     HRESULT createAttribute(
8924         [in] BSTR bstrattrName,
8925         [retval, out] IHTMLDOMAttribute **ppattribute);
8926
8927     [id(DISPID_IHTMLDOCUMENT5_CREATECOMMENT)]
8928     HRESULT createComment(
8929         [in] BSTR bstrdata,
8930         [retval, out] IHTMLDOMNode **ppRetNode);
8931
8932     [propput, id(DISPID_IHTMLDOCUMENT5_ONFOCUSIN), displaybind, bindable]
8933     HRESULT onfocusin([in] VARIANT v);
8934
8935     [propget, id(DISPID_IHTMLDOCUMENT5_ONFOCUSIN), displaybind, bindable]
8936     HRESULT onfocusin([retval, out] VARIANT *p);
8937
8938     [propput, id(DISPID_IHTMLDOCUMENT5_ONFOCUSOUT), displaybind, bindable]
8939     HRESULT onfocusout([in] VARIANT v);
8940
8941     [propget, id(DISPID_IHTMLDOCUMENT5_ONFOCUSOUT), displaybind, bindable]
8942     HRESULT onfocusout([retval, out] VARIANT *p);
8943
8944     [propput, id(DISPID_IHTMLDOCUMENT5_ONACTIVATE), displaybind, bindable]
8945     HRESULT onactivate([in] VARIANT v);
8946
8947     [propget, id(DISPID_IHTMLDOCUMENT5_ONACTIVATE), displaybind, bindable]
8948     HRESULT onactivate([retval, out] VARIANT *p);
8949
8950     [propput, id(DISPID_IHTMLDOCUMENT5_ONDEACTIVATE), displaybind, bindable]
8951     HRESULT ondeactivate([in] VARIANT v);
8952
8953     [propget, id(DISPID_IHTMLDOCUMENT5_ONDEACTIVATE), displaybind, bindable]
8954     HRESULT ondeactivate([retval, out] VARIANT *p);
8955
8956     [propput, id(DISPID_IHTMLDOCUMENT5_ONBEFOREACTIVATE), displaybind, bindable]
8957     HRESULT onbeforeactivate([in] VARIANT v);
8958
8959     [propget, id(DISPID_IHTMLDOCUMENT5_ONBEFOREACTIVATE), displaybind, bindable]
8960     HRESULT onbeforeactivate([retval, out] VARIANT *p);
8961
8962     [propput, id(DISPID_IHTMLDOCUMENT5_ONBEFOREDEACTIVATE), displaybind, bindable]
8963     HRESULT onbeforedeactivate([in] VARIANT v);
8964
8965     [propget, id(DISPID_IHTMLDOCUMENT5_ONBEFOREDEACTIVATE), displaybind, bindable]
8966     HRESULT onbeforedeactivate([retval, out] VARIANT *p);
8967
8968     [propget, id(DISPID_IHTMLDOCUMENT5_COMPATMODE)]
8969     HRESULT compatMode([retval, out] BSTR *p);
8970 }
8971
8972 /*****************************************************************************
8973  *    DispHTMLDocument dispinterface
8974  */
8975 [
8976     hidden,
8977     uuid(3050f55f-98b5-11cf-bb82-00aa00bdce0b)
8978 ]
8979 dispinterface DispHTMLDocument
8980 {
8981 properties:
8982 methods:
8983     [propget, id(DISPID_IHTMLDOCUMENT_SCRIPT), hidden, nonbrowsable]
8984     IDispatch *Script();
8985
8986     [propget, id(DISPID_IHTMLDOCUMENT2_ALL)]
8987     IHTMLElementCollection *all();
8988
8989     [propget, id(DISPID_IHTMLDOCUMENT2_BODY)]
8990     IHTMLElement *body();
8991
8992     [propget, id(DISPID_IHTMLDOCUMENT2_ACTIVEELEMENT)]
8993     IHTMLElement *activeElement();
8994
8995     [propget, id(DISPID_IHTMLDOCUMENT2_IMAGES)]
8996     IHTMLElementCollection *images();
8997
8998     [propget, id(DISPID_IHTMLDOCUMENT2_APPLETS)]
8999     IHTMLElementCollection *applets();
9000
9001     [propget, id(DISPID_IHTMLDOCUMENT2_LINKS)]
9002     IHTMLElementCollection *links();
9003
9004     [propget, id(DISPID_IHTMLDOCUMENT2_FORMS)]
9005     IHTMLElementCollection *forms();
9006
9007     [propget, id(DISPID_IHTMLDOCUMENT2_ANCHORS)]
9008     IHTMLElementCollection *anchors();
9009
9010     [propput, id(DISPID_IHTMLDOCUMENT2_TITLE)]
9011     void title(BSTR v);
9012
9013     [propget, id(DISPID_IHTMLDOCUMENT2_TITLE)]
9014     BSTR title();
9015
9016     [propget, id(DISPID_IHTMLDOCUMENT2_SCRIPTS)]
9017     IHTMLElementCollection *scripts();
9018
9019     [propput, id(DISPID_IHTMLDOCUMENT2_DESIGNMODE), hidden]
9020     void designMode(BSTR v);
9021
9022     [propget, id(DISPID_IHTMLDOCUMENT2_DESIGNMODE), hidden]
9023     BSTR designMode();
9024
9025     [propget, id(DISPID_IHTMLDOCUMENT2_SELECTION)]
9026     IHTMLSelectionObject *selection();
9027
9028     [propget, id(DISPID_IHTMLDOCUMENT2_READYSTATE), bindable]
9029     BSTR readyState();
9030
9031     [propget, id(DISPID_IHTMLDOCUMENT2_FRAMES)]
9032     IHTMLFramesCollection2 *frames();
9033
9034     [propget, id(DISPID_IHTMLDOCUMENT2_EMBEDS)]
9035     IHTMLElementCollection *embeds();
9036
9037     [propget, id(DISPID_IHTMLDOCUMENT2_PLUGINS)]
9038     IHTMLElementCollection *plugins();
9039
9040     [propput, id(DISPID_IHTMLDOCUMENT2_ALINKCOLOR)]
9041     void alinkColor(VARIANT v);
9042
9043     [propget, id(DISPID_IHTMLDOCUMENT2_ALINKCOLOR)]
9044     VARIANT alinkColor();
9045
9046     [propput, id(DISPID_IHTMLDOCUMENT2_BGCOLOR)]
9047     void bgColor(VARIANT v);
9048
9049     [propget, id(DISPID_IHTMLDOCUMENT2_BGCOLOR)]
9050     VARIANT bgColor();
9051
9052     [propput, id(DISPID_IHTMLDOCUMENT2_FGCOLOR)]
9053     void fgColor(VARIANT v);
9054
9055     [propget, id(DISPID_IHTMLDOCUMENT2_FGCOLOR)]
9056     VARIANT fgColor();
9057
9058     [propput, id(DISPID_IHTMLDOCUMENT2_LINKCOLOR)]
9059     void linkColor(VARIANT v);
9060
9061     [propget, id(DISPID_IHTMLDOCUMENT2_LINKCOLOR)]
9062     VARIANT linkColor();
9063
9064     [propput, id(DISPID_IHTMLDOCUMENT2_VLINKCOLOR)]
9065     void vlinkColor(VARIANT v);
9066
9067     [propget, id(DISPID_IHTMLDOCUMENT2_VLINKCOLOR)]
9068     VARIANT vlinkColor();
9069
9070     [propget, id(DISPID_IHTMLDOCUMENT2_REFERRER)]
9071     BSTR referrer();
9072
9073     [propget, id(DISPID_IHTMLDOCUMENT2_LOCATION)]
9074     IHTMLLocation *location();
9075
9076     [propget, id(DISPID_IHTMLDOCUMENT2_LASTMODIFIED)]
9077     BSTR lastModified();
9078
9079     [propput, id(DISPID_IHTMLDOCUMENT2_URL)]
9080     void URL(BSTR v);
9081
9082     [propget, id(DISPID_IHTMLDOCUMENT2_URL)]
9083     BSTR URL();
9084
9085     [propput, id(DISPID_IHTMLDOCUMENT2_DOMAIN)]
9086     void domain(BSTR v);
9087
9088     [propget, id(DISPID_IHTMLDOCUMENT2_DOMAIN)]
9089     BSTR domain();
9090
9091     [propput, id(DISPID_IHTMLDOCUMENT2_COOKIE)]
9092     void cookie(BSTR v);
9093
9094     [propget, id(DISPID_IHTMLDOCUMENT2_COOKIE)]
9095     BSTR cookie();
9096
9097     [propput, id(DISPID_IHTMLDOCUMENT2_EXPANDO), bindable, hidden]
9098     void expando(VARIANT_BOOL v);
9099
9100     [propget, id(DISPID_IHTMLDOCUMENT2_EXPANDO), bindable, hidden]
9101     VARIANT_BOOL expando();
9102
9103     [propput, id(DISPID_IHTMLDOCUMENT2_CHARSET), hidden]
9104     void charset(BSTR v);
9105
9106     [propget, id(DISPID_IHTMLDOCUMENT2_CHARSET), hidden]
9107     BSTR charset();
9108
9109     [propput, id(DISPID_IHTMLDOCUMENT2_DEFAULTCHARSET)]
9110     void defaultCharset(BSTR v);
9111
9112     [propget, id(DISPID_IHTMLDOCUMENT2_DEFAULTCHARSET)]
9113     BSTR defaultCharset();
9114
9115     [propget, id(DISPID_IHTMLDOCUMENT2_MIMETYPE)]
9116     BSTR mimeType();
9117
9118     [propget, id(DISPID_IHTMLDOCUMENT2_FILESIZE)]
9119     BSTR fileSize();
9120
9121     [propget, id(DISPID_IHTMLDOCUMENT2_FILECREATEDDATE)]
9122     BSTR fileCreatedDate();
9123
9124     [propget, id(DISPID_IHTMLDOCUMENT2_FILEMODIFIEDDATE)]
9125     BSTR fileModifiedDate();
9126
9127     [propget, id(DISPID_IHTMLDOCUMENT2_FILEUPDATEDDATE)]
9128     BSTR fileUpdatedDate();
9129
9130     [propget, id(DISPID_IHTMLDOCUMENT2_SECURITY)]
9131     BSTR security();
9132
9133     [propget, id(DISPID_IHTMLDOCUMENT2_PROTOCOL)]
9134     BSTR protocol();
9135
9136     [propget, id(DISPID_IHTMLDOCUMENT2_NAMEPROP)]
9137     BSTR nameProp();
9138
9139     [vararg, id(DISPID_IHTMLDOCUMENT2_WRITE)]
9140     void write([in] SAFEARRAY(VARIANT) psarray);
9141
9142     [vararg, id(DISPID_IHTMLDOCUMENT2_WRITELN)]
9143     void writeln([in] SAFEARRAY(VARIANT) psarray);
9144
9145     [id(DISPID_IHTMLDOCUMENT2_OPEN)]
9146     IDispatch *open(
9147         [defaultvalue("text/html"), in] BSTR url,
9148         [optional, in] VARIANT name,
9149         [optional, in] VARIANT features,
9150         [optional, in] VARIANT replace);
9151
9152     [id(DISPID_IHTMLDOCUMENT2_CLOSE)]
9153     void close();
9154
9155     [id(DISPID_IHTMLDOCUMENT2_CLEAR)]
9156     void clear();
9157
9158     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDSUPPORTED)]
9159     VARIANT_BOOL queryCommandSupported([in] BSTR cmdID);
9160
9161     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDENABLED)]
9162     VARIANT_BOOL queryCommandEnabled([in] BSTR cmdID);
9163
9164     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDSTATE)]
9165     VARIANT_BOOL queryCommandState([in] BSTR cmdID);
9166
9167     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDINDETERM)]
9168     VARIANT_BOOL queryCommandIndeterm([in] BSTR cmdID);
9169
9170     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDTEXT)]
9171     BSTR queryCommandText([in] BSTR cmdID);
9172
9173     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDVALUE)]
9174     VARIANT queryCommandValue([in] BSTR cmdID);
9175
9176     [id(DISPID_IHTMLDOCUMENT2_EXECCOMMAND)]
9177     VARIANT_BOOL execCommand(
9178         [in] BSTR cmdID,
9179         [defaultvalue(0), in] VARIANT_BOOL showUI,
9180         [optional, in] VARIANT value);
9181
9182     [id(DISPID_IHTMLDOCUMENT2_EXECCOMMANDSHOWHELP)]
9183     VARIANT_BOOL execCommandShowHelp([in] BSTR cmdID);
9184
9185     [id(DISPID_IHTMLDOCUMENT2_CREATEELEMENT)]
9186     IHTMLElement *createElement([in] BSTR eTag);
9187
9188     [propput, id(DISPID_IHTMLDOCUMENT2_ONHELP), displaybind, bindable]
9189     void onhelp(VARIANT v);
9190
9191     [propget, id(DISPID_IHTMLDOCUMENT2_ONHELP), displaybind, bindable]
9192     VARIANT onhelp();
9193
9194     [propput, id(DISPID_IHTMLDOCUMENT2_ONCLICK), displaybind, bindable]
9195     void onclick(VARIANT v);
9196
9197     [propget, id(DISPID_IHTMLDOCUMENT2_ONCLICK), displaybind, bindable]
9198     VARIANT onclick();
9199
9200     [propput, id(DISPID_IHTMLDOCUMENT2_ONDBLCLICK), displaybind, bindable]
9201     void ondblclick(VARIANT v);
9202
9203     [propget, id(DISPID_IHTMLDOCUMENT2_ONDBLCLICK), displaybind, bindable]
9204     VARIANT ondblclick();
9205
9206     [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYUP), displaybind, bindable]
9207     void onkeyup(VARIANT v);
9208
9209     [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYUP), displaybind, bindable]
9210     VARIANT onkeyup();
9211
9212     [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYDOWN), displaybind, bindable]
9213     void onkeydown(VARIANT v);
9214
9215     [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYDOWN), displaybind, bindable]
9216     VARIANT onkeydown();
9217
9218     [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYPRESS), displaybind, bindable]
9219     void onkeypress(VARIANT v);
9220
9221     [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYPRESS), displaybind, bindable]
9222     VARIANT onkeypress();
9223
9224     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEUP), displaybind, bindable]
9225     void onmouseup(VARIANT v);
9226
9227     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEUP), displaybind, bindable]
9228     VARIANT onmouseup();
9229
9230     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEDOWN), displaybind, bindable]
9231     void onmousedown(VARIANT v);
9232
9233     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEDOWN), displaybind, bindable]
9234     VARIANT onmousedown();
9235
9236     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEMOVE), displaybind, bindable]
9237     void onmousemove(VARIANT v);
9238
9239     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEMOVE), displaybind, bindable]
9240     VARIANT onmousemove();
9241
9242     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOUT), displaybind, bindable]
9243     void onmouseout(VARIANT v);
9244
9245     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOUT), displaybind, bindable]
9246     VARIANT onmouseout();
9247
9248     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOVER), displaybind, bindable]
9249     void onmouseover(VARIANT v);
9250
9251     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOVER), displaybind, bindable]
9252     VARIANT onmouseover();
9253
9254     [propput, id(DISPID_IHTMLDOCUMENT2_ONREADYSTATECHANGE), displaybind, bindable]
9255     void onreadystatechange(VARIANT v);
9256
9257     [propget, id(DISPID_IHTMLDOCUMENT2_ONREADYSTATECHANGE), displaybind, bindable]
9258     VARIANT onreadystatechange();
9259
9260     [propput, id(DISPID_IHTMLDOCUMENT2_ONAFTERUPDATE), displaybind, bindable]
9261     void onafterupdate(VARIANT v);
9262
9263     [propget, id(DISPID_IHTMLDOCUMENT2_ONAFTERUPDATE), displaybind, bindable]
9264     VARIANT onafterupdate();
9265
9266     [propput, id(DISPID_IHTMLDOCUMENT2_ONROWEXIT), displaybind, bindable]
9267     void onrowexit(VARIANT v);
9268
9269     [propget, id(DISPID_IHTMLDOCUMENT2_ONROWEXIT), displaybind, bindable]
9270     VARIANT onrowexit();
9271
9272     [propput, id(DISPID_IHTMLDOCUMENT2_ONROWENTER), displaybind, bindable]
9273     void onrowenter(VARIANT v);
9274
9275     [propget, id(DISPID_IHTMLDOCUMENT2_ONROWENTER), displaybind, bindable]
9276     VARIANT onrowenter();
9277
9278     [propput, id(DISPID_IHTMLDOCUMENT2_ONDRAGSTART), displaybind, bindable]
9279     void ondragstart(VARIANT v);
9280
9281     [propget, id(DISPID_IHTMLDOCUMENT2_ONDRAGSTART), displaybind, bindable]
9282     VARIANT ondragstart();
9283
9284     [propput, id(DISPID_IHTMLDOCUMENT2_ONSELECTSTART), displaybind, bindable]
9285     void onselectstart(VARIANT v);
9286
9287     [propget, id(DISPID_IHTMLDOCUMENT2_ONSELECTSTART), displaybind, bindable]
9288     VARIANT onselectstart();
9289
9290     [id(DISPID_IHTMLDOCUMENT2_ELEMENTFROMPOINT)]
9291     IHTMLElement *elementFromPoint(
9292         [in] long x,
9293         [in] long y);
9294
9295     [propget, id(DISPID_IHTMLDOCUMENT2_PARENTWINDOW)]
9296     IHTMLWindow2 *parentWindow();
9297
9298     [propget, id(DISPID_IHTMLDOCUMENT2_STYLESHEETS)]
9299     IHTMLStyleSheetsCollection *styleSheets();
9300
9301     [propput, id(DISPID_IHTMLDOCUMENT2_ONBEFOREUPDATE), displaybind, bindable]
9302     void onbeforeupdate(VARIANT v);
9303
9304     [propget, id(DISPID_IHTMLDOCUMENT2_ONBEFOREUPDATE), displaybind, bindable]
9305     VARIANT onbeforeupdate();
9306
9307     [propput, id(DISPID_IHTMLDOCUMENT2_ONERRORUPDATE), displaybind, bindable]
9308     void onerrorupdate(VARIANT v);
9309
9310     [propget, id(DISPID_IHTMLDOCUMENT2_ONERRORUPDATE), displaybind, bindable]
9311     VARIANT onerrorupdate();
9312
9313     [id(DISPID_IHTMLDOCUMENT2_TOSTRING)]
9314     BSTR toString();
9315
9316     [id(DISPID_IHTMLDOCUMENT2_CREATESTYLESHEET)]
9317     IHTMLStyleSheet *createStyleSheet(
9318         [defaultvalue(""), in] BSTR bstrHref,
9319         [defaultvalue(-1), in] long lIndex);
9320
9321     [id(DISPID_IHTMLDOCUMENT3_RELEASECAPTURE)]
9322     void releaseCapture();
9323
9324     [id(DISPID_IHTMLDOCUMENT3_RECALC)]
9325     void recalc([defaultvalue(0), in] VARIANT_BOOL fForce);
9326
9327     [id(DISPID_IHTMLDOCUMENT3_CREATETEXTNODE)]
9328     IHTMLDOMNode *createTextNode([in] BSTR text);
9329
9330     [propget, id(DISPID_IHTMLDOCUMENT3_DOCUMENTELEMENT)]
9331     IHTMLElement *documentElement();
9332
9333     [propget, id(DISPID_IHTMLDOCUMENT3_UNIQUEID), hidden]
9334     BSTR uniqueID();
9335
9336     [id(DISPID_IHTMLDOCUMENT3_ATTACHEVENT)]
9337     VARIANT_BOOL attachEvent(
9338         [in] BSTR event,
9339         [in] IDispatch *pDisp);
9340
9341     [id(DISPID_IHTMLDOCUMENT3_DETACHEVENT)]
9342     void detachEvent(
9343         [in] BSTR event,
9344         [in] IDispatch *pDisp);
9345
9346     [propput, id(DISPID_IHTMLDOCUMENT3_ONROWSDELETE), displaybind, bindable]
9347     void onrowsdelete(VARIANT v);
9348
9349     [propget, id(DISPID_IHTMLDOCUMENT3_ONROWSDELETE), displaybind, bindable]
9350     VARIANT onrowsdelete();
9351
9352     [propput, id(DISPID_IHTMLDOCUMENT3_ONROWSINSERTED), displaybind, bindable]
9353     void onrowsinserted(VARIANT v);
9354
9355     [propget, id(DISPID_IHTMLDOCUMENT3_ONROWSINSERTED), displaybind, bindable]
9356     VARIANT onrowsinserted();
9357
9358     [propput, id(DISPID_IHTMLDOCUMENT3_ONCELLCHANGE), displaybind, bindable]
9359     void oncellchange(VARIANT v);
9360
9361     [propget, id(DISPID_IHTMLDOCUMENT3_ONCELLCHANGE), displaybind, bindable]
9362     VARIANT oncellchange();
9363
9364     [propput, id(DISPID_IHTMLDOCUMENT3_ONDATASETCHANGED), displaybind, bindable]
9365     void ondatasetchanged(VARIANT v);
9366
9367     [propget, id(DISPID_IHTMLDOCUMENT3_ONDATASETCHANGED), displaybind, bindable]
9368     VARIANT ondatasetchanged();
9369
9370     [propput, id(DISPID_IHTMLDOCUMENT3_ONDATAAVAILABLE), displaybind, bindable]
9371     void ondataavailable(VARIANT v);
9372
9373     [propget, id(DISPID_IHTMLDOCUMENT3_ONDATAAVAILABLE), displaybind, bindable]
9374     VARIANT ondataavailable();
9375
9376     [propput, id(DISPID_IHTMLDOCUMENT3_ONDATASETCOMPLETE), displaybind, bindable]
9377     void ondatasetcomplete(VARIANT v);
9378
9379     [propget, id(DISPID_IHTMLDOCUMENT3_ONDATASETCOMPLETE), displaybind, bindable]
9380     VARIANT ondatasetcomplete();
9381
9382     [propput, id(DISPID_IHTMLDOCUMENT3_ONPROPERTYCHANGE), displaybind, bindable]
9383     void onpropertychange(VARIANT v);
9384
9385     [propget, id(DISPID_IHTMLDOCUMENT3_ONPROPERTYCHANGE), displaybind, bindable]
9386     VARIANT onpropertychange();
9387
9388     [propput, id(DISPID_IHTMLDOCUMENT3_DIR)]
9389     void dir(BSTR v);
9390
9391     [propget, id(DISPID_IHTMLDOCUMENT3_DIR)]
9392     BSTR dir();
9393
9394     [propput, id(DISPID_IHTMLDOCUMENT3_ONCONTEXTMENU), displaybind, bindable]
9395     void oncontextmenu(VARIANT v);
9396
9397     [propget, id(DISPID_IHTMLDOCUMENT3_ONCONTEXTMENU), displaybind, bindable]
9398     VARIANT oncontextmenu();
9399
9400     [propput, id(DISPID_IHTMLDOCUMENT3_ONSTOP), displaybind, bindable]
9401     void onstop(VARIANT v);
9402
9403     [propget, id(DISPID_IHTMLDOCUMENT3_ONSTOP), displaybind, bindable]
9404     VARIANT onstop();
9405
9406     [id(DISPID_IHTMLDOCUMENT3_CREATEDOCUMENTFRAGMENT)]
9407     IHTMLDocument2 *createDocumentFragment();
9408
9409     [propget, id(DISPID_IHTMLDOCUMENT3_PARENTDOCUMENT), hidden, restricted]
9410     IHTMLDocument2 *parentDocument();
9411
9412     [propput, id(DISPID_IHTMLDOCUMENT3_ENABLEDOWNLOAD), hidden, restricted]
9413     void enableDownload(VARIANT_BOOL v);
9414
9415     [propget, id(DISPID_IHTMLDOCUMENT3_ENABLEDOWNLOAD), hidden, restricted]
9416     VARIANT_BOOL enableDownload();
9417
9418     [propput, id(DISPID_IHTMLDOCUMENT3_BASEURL), hidden, restricted]
9419     void baseUrl(BSTR v);
9420
9421     [propget, id(DISPID_IHTMLDOCUMENT3_BASEURL), hidden, restricted]
9422     BSTR baseUrl();
9423
9424     [propput, id(DISPID_IHTMLDOCUMENT3_INHERITSTYLESHEETS), hidden, restricted]
9425     void inheritStyleSheets(VARIANT_BOOL v);
9426
9427     [propget, id(DISPID_IHTMLDOCUMENT3_INHERITSTYLESHEETS), hidden, restricted]
9428     VARIANT_BOOL inheritStyleSheets();
9429
9430     [propput, id(DISPID_IHTMLDOCUMENT3_ONBEFOREEDITFOCUS), displaybind, bindable]
9431     void onbeforeeditfocus(VARIANT v);
9432
9433     [propget, id(DISPID_IHTMLDOCUMENT3_ONBEFOREEDITFOCUS), displaybind, bindable]
9434     VARIANT onbeforeeditfocus();
9435
9436     [id(DISPID_IHTMLDOCUMENT3_GETELEMENTSBYNAME)]
9437     IHTMLElementCollection *getElementsByName([in] BSTR v);
9438
9439     [id(DISPID_IHTMLDOCUMENT3_GETELEMENTBYID)]
9440     IHTMLElement *getElementById([in] BSTR v);
9441
9442     [id(DISPID_IHTMLDOCUMENT3_GETELEMENTSBYTAGNAME)]
9443     IHTMLElementCollection *getElementsByTagName([in] BSTR v);
9444
9445     [id(DISPID_IHTMLDOCUMENT4_FOCUS)]
9446     void focus();
9447
9448     [id(DISPID_IHTMLDOCUMENT4_HASFOCUS)]
9449     VARIANT_BOOL hasFocus();
9450
9451     [propput, id(DISPID_IHTMLDOCUMENT4_ONSELECTIONCHANGE), displaybind, bindable]
9452     void onselectionchange(VARIANT v);
9453
9454     [propget, id(DISPID_IHTMLDOCUMENT4_ONSELECTIONCHANGE), displaybind, bindable]
9455     VARIANT onselectionchange();
9456
9457     [propget, id(DISPID_IHTMLDOCUMENT4_NAMESPACES)]
9458     IDispatch *namespaces();
9459
9460     [id(DISPID_IHTMLDOCUMENT4_CREATEDOCUMENTFROMURL)]
9461     IHTMLDocument2 *createDocumentFromUrl(
9462         [in] BSTR bstrUrl,
9463         [in] BSTR bstrOptions);
9464
9465     [propput, id(DISPID_IHTMLDOCUMENT4_MEDIA)]
9466     void media(BSTR v);
9467
9468     [propget, id(DISPID_IHTMLDOCUMENT4_MEDIA)]
9469     BSTR media();
9470
9471     [id(DISPID_IHTMLDOCUMENT4_CREATEEVENTOBJECT)]
9472     IHTMLEventObj *createEventObject([optional, in] VARIANT *pvarEventObject);
9473
9474     [id(DISPID_IHTMLDOCUMENT4_FIREEVENT)]
9475     VARIANT_BOOL fireEvent(
9476         [in] BSTR bstrEventName,
9477         [optional, in] VARIANT *pvarEventObject);
9478
9479     [id(DISPID_IHTMLDOCUMENT4_CREATERENDERSTYLE)]
9480     IHTMLRenderStyle *createRenderStyle([in] BSTR v);
9481
9482     [propput, id(DISPID_IHTMLDOCUMENT4_ONCONTROLSELECT), displaybind, bindable]
9483     void oncontrolselect(VARIANT v);
9484
9485     [propget, id(DISPID_IHTMLDOCUMENT4_ONCONTROLSELECT), displaybind, bindable]
9486     VARIANT oncontrolselect();
9487
9488     [propget, id(DISPID_IHTMLDOCUMENT4_URLUNENCODED)]
9489     BSTR URLUnencoded();
9490
9491     [propput, id(DISPID_IHTMLDOCUMENT5_ONMOUSEWHEEL), displaybind, bindable]
9492     void onmousewheel(VARIANT v);
9493
9494     [propget, id(DISPID_IHTMLDOCUMENT5_ONMOUSEWHEEL), displaybind, bindable]
9495     VARIANT onmousewheel();
9496
9497     [propget, id(DISPID_IHTMLDOCUMENT5_DOCTYPE)]
9498     IHTMLDOMNode *doctype();
9499
9500     [propget, id(DISPID_IHTMLDOCUMENT5_IMPLEMENTATION)]
9501     IHTMLDOMImplementation *implementation();
9502
9503     [id(DISPID_IHTMLDOCUMENT5_CREATEATTRIBUTE)]
9504     IHTMLDOMAttribute *createAttribute([in] BSTR bstrattrName);
9505
9506     [id(DISPID_IHTMLDOCUMENT5_CREATECOMMENT)]
9507     IHTMLDOMNode *createComment([in] BSTR bstrdata);
9508
9509     [propput, id(DISPID_IHTMLDOCUMENT5_ONFOCUSIN), displaybind, bindable]
9510     void onfocusin(VARIANT v);
9511
9512     [propget, id(DISPID_IHTMLDOCUMENT5_ONFOCUSIN), displaybind, bindable]
9513     VARIANT onfocusin();
9514
9515     [propput, id(DISPID_IHTMLDOCUMENT5_ONFOCUSOUT), displaybind, bindable]
9516     void onfocusout(VARIANT v);
9517
9518     [propget, id(DISPID_IHTMLDOCUMENT5_ONFOCUSOUT), displaybind, bindable]
9519     VARIANT onfocusout();
9520
9521     [propput, id(DISPID_IHTMLDOCUMENT5_ONACTIVATE), displaybind, bindable]
9522     void onactivate(VARIANT v);
9523
9524     [propget, id(DISPID_IHTMLDOCUMENT5_ONACTIVATE), displaybind, bindable]
9525     VARIANT onactivate();
9526
9527     [propput, id(DISPID_IHTMLDOCUMENT5_ONDEACTIVATE), displaybind, bindable]
9528     void ondeactivate(VARIANT v);
9529
9530     [propget, id(DISPID_IHTMLDOCUMENT5_ONDEACTIVATE), displaybind, bindable]
9531     VARIANT ondeactivate();
9532
9533     [propput, id(DISPID_IHTMLDOCUMENT5_ONBEFOREACTIVATE), displaybind, bindable]
9534     void onbeforeactivate(VARIANT v);
9535
9536     [propget, id(DISPID_IHTMLDOCUMENT5_ONBEFOREACTIVATE), displaybind, bindable]
9537     VARIANT onbeforeactivate();
9538
9539     [propput, id(DISPID_IHTMLDOCUMENT5_ONBEFOREDEACTIVATE), displaybind, bindable]
9540     void onbeforedeactivate(VARIANT v);
9541
9542     [propget, id(DISPID_IHTMLDOCUMENT5_ONBEFOREDEACTIVATE), displaybind, bindable]
9543     VARIANT onbeforedeactivate();
9544
9545     [propget, id(DISPID_IHTMLDOCUMENT5_COMPATMODE)]
9546     BSTR compatMode();
9547
9548     [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)]
9549     long nodeType();
9550
9551     [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)]
9552     IHTMLDOMNode *parentNode();
9553
9554     [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)]
9555     VARIANT_BOOL hasChildNodes();
9556
9557     [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)]
9558     IDispatch *childNodes();
9559
9560     [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)]
9561     IDispatch *attributes();
9562
9563     [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)]
9564     IHTMLDOMNode *insertBefore(
9565         [in] IHTMLDOMNode *newChild,
9566         [optional, in] VARIANT refChild);
9567
9568     [id(DISPID_IHTMLDOMNODE_REMOVECHILD)]
9569     IHTMLDOMNode *removeChild([in] IHTMLDOMNode *oldChild);
9570
9571     [id(DISPID_IHTMLDOMNODE_REPLACECHILD)]
9572     IHTMLDOMNode *replaceChild(
9573         [in] IHTMLDOMNode *newChild,
9574         [in] IHTMLDOMNode *oldChild);
9575
9576     [id(DISPID_IHTMLDOMNODE_CLONENODE)]
9577     IHTMLDOMNode *cloneNode([in] VARIANT_BOOL fDeep);
9578
9579     [id(DISPID_IHTMLDOMNODE_REMOVENODE)]
9580     IHTMLDOMNode *removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
9581
9582     [id(DISPID_IHTMLDOMNODE_SWAPNODE)]
9583     IHTMLDOMNode *swapNode([in] IHTMLDOMNode* otherNode);
9584
9585     [id(DISPID_IHTMLDOMNODE_REPLACENODE)]
9586     IHTMLDOMNode *replaceNode([in] IHTMLDOMNode *replacement);
9587
9588     [id(DISPID_IHTMLDOMNODE_APPENDCHILD)]
9589     IHTMLDOMNode *appendChild([in] IHTMLDOMNode *newChild);
9590
9591     [propget, id(DISPID_IHTMLDOMNODE_NODENAME)]
9592     BSTR nodeName();
9593
9594     [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)]
9595     void nodeValue(VARIANT v);
9596
9597     [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)]
9598     VARIANT nodeValue();
9599
9600     [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)]
9601     IHTMLDOMNode *firstChild();
9602
9603     [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)]
9604     IHTMLDOMNode *lastChild();
9605
9606     [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)]
9607     IHTMLDOMNode *previousSibling();
9608
9609     [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)]
9610     IHTMLDOMNode *nextSibling();
9611
9612     [propget, id(DISPID_IHTMLDOMNODE2_OWNERDOCUMENT)]
9613     IDispatch *ownerDocument();
9614 }
9615
9616 /*****************************************************************************
9617  *    HTMLDocument coclass
9618  */
9619 [
9620     uuid(25336920-03F9-11cf-8FD0-00AA00686F13)
9621 ]
9622 coclass HTMLDocument
9623 {
9624     [default]         dispinterface DispHTMLDocument;
9625     [source, default] dispinterface HTMLDocumentEvents;
9626     [source]          dispinterface HTMLDocumentEvents2;
9627                       interface IHTMLDocument2;
9628                       interface IHTMLDocument3;
9629                       interface IHTMLDocument4;
9630                       interface IHTMLDocument5;
9631                       interface IHTMLDOMNode;
9632                       interface IHTMLDOMNode2;
9633 }
9634
9635 /*****************************************************************************
9636  *    IHTMLCommentElement interface
9637  */
9638 [
9639     odl,
9640     oleautomation,
9641     dual,
9642     uuid(3050f20c-98b5-11cf-bb82-00aa00bdce0b)
9643 ]
9644 interface IHTMLCommentElement : IDispatch
9645 {
9646     [propput, id(DISPID_IHTMLCOMMENTELEMENT_TEXT), displaybind, bindable]
9647     HRESULT text([in] BSTR v);
9648
9649     [propget, id(DISPID_IHTMLCOMMENTELEMENT_TEXT), displaybind, bindable]
9650     HRESULT text([out, retval] BSTR *p);
9651
9652     [propput, id(DISPID_IHTMLCOMMENTELEMENT_ATOMIC), displaybind, bindable]
9653     HRESULT atomic([in] long v);
9654
9655     [propget, id(DISPID_IHTMLCOMMENTELEMENT_ATOMIC), displaybind, bindable]
9656     HRESULT atomic([out, retval] long *p);
9657 }
9658
9659 /*****************************************************************************
9660  *    IHTMLCommentElement2 interface
9661  */
9662 [
9663     odl,
9664     oleautomation,
9665     dual,
9666     uuid(3050f813-98b5-11cf-bb82-00aa00bdce0b)
9667 ]
9668 interface IHTMLCommentElement2 : IDispatch
9669 {
9670     [propput, id(DISPID_IHTMLCOMMENTELEMENT2_DATA)]
9671     HRESULT data([in] BSTR v);
9672
9673     [propget, id(DISPID_IHTMLCOMMENTELEMENT2_DATA)]
9674     HRESULT data([out, retval] BSTR *p);
9675
9676     [propget, id(DISPID_IHTMLCOMMENTELEMENT2_LENGTH)]
9677     HRESULT length([out, retval] long *p);
9678
9679     [id(DISPID_IHTMLCOMMENTELEMENT2_SUBSTRINGDATA)]
9680     HRESULT substringData(
9681             [in] long offset,
9682             [in] long Count,
9683             [out, retval] BSTR *pbstrsubString);
9684
9685     [id(DISPID_IHTMLCOMMENTELEMENT2_APPENDDATA)]
9686     HRESULT appendData([in] BSTR bstrstring);
9687
9688     [id(DISPID_IHTMLCOMMENTELEMENT2_INSERTDATA)]
9689     HRESULT insertData(
9690             [in] long offset,
9691             [in] BSTR bstrstring);
9692
9693     [id(DISPID_IHTMLCOMMENTELEMENT2_DELETEDATA)]
9694     HRESULT deleteData(
9695             [in] long offset,
9696             [in] long Count);
9697
9698     [id(DISPID_IHTMLCOMMENTELEMENT2_REPLACEDATA)]
9699     HRESULT replaceData(
9700             [in] long offset,
9701             [in] long Count,
9702             [in] BSTR bstrstring);
9703 }
9704
9705 /*****************************************************************************
9706  *    HTMLTableEvents dispinterface
9707  */
9708 [
9709     hidden,
9710     uuid(3050f407-98b5-11cf-bb82-00aa00bdce0b)
9711 ]
9712 dispinterface HTMLTableEvents
9713 {
9714 properties:
9715 methods:
9716     [id(DISPID_HTMLELEMENTEVENTS_ONHELP)]
9717     VARIANT_BOOL onhelp();
9718
9719     [id(DISPID_HTMLELEMENTEVENTS_ONCLICK)]
9720     VARIANT_BOOL onclick();
9721
9722     [id(DISPID_HTMLELEMENTEVENTS_ONDBLCLICK)]
9723     VARIANT_BOOL ondblclick();
9724
9725     [id(DISPID_HTMLELEMENTEVENTS_ONKEYPRESS)]
9726     VARIANT_BOOL onkeypress();
9727
9728     [id(DISPID_HTMLELEMENTEVENTS_ONKEYDOWN)]
9729     void onkeydown();
9730
9731     [id(DISPID_HTMLELEMENTEVENTS_ONKEYUP)]
9732     void onkeyup();
9733
9734     [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOUT)]
9735     void onmouseout();
9736
9737     [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOVER)]
9738     void onmouseover();
9739
9740     [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEMOVE)]
9741     void onmousemove();
9742
9743     [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEDOWN)]
9744     void onmousedown();
9745
9746     [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEUP)]
9747     void onmouseup();
9748
9749     [id(DISPID_HTMLELEMENTEVENTS_ONSELECTSTART)]
9750     VARIANT_BOOL onselectstart();
9751
9752     [id(DISPID_HTMLELEMENTEVENTS_ONFILTERCHANGE)]
9753     void onfilterchange();
9754
9755     [id(DISPID_HTMLELEMENTEVENTS_ONDRAGSTART)]
9756     VARIANT_BOOL ondragstart();
9757
9758     [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREUPDATE)]
9759     VARIANT_BOOL onbeforeupdate();
9760
9761     [id(DISPID_HTMLELEMENTEVENTS_ONAFTERUPDATE)]
9762     void onafterupdate();
9763
9764     [id(DISPID_HTMLELEMENTEVENTS_ONERRORUPDATE)]
9765     VARIANT_BOOL onerrorupdate();
9766
9767     [id(DISPID_HTMLELEMENTEVENTS_ONROWEXIT)]
9768     VARIANT_BOOL onrowexit();
9769
9770     [id(DISPID_HTMLELEMENTEVENTS_ONROWENTER)]
9771     void onrowenter();
9772
9773     [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCHANGED)]
9774     void ondatasetchanged();
9775
9776     [id(DISPID_HTMLELEMENTEVENTS_ONDATAAVAILABLE)]
9777     void ondataavailable();
9778
9779     [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCOMPLETE)]
9780     void ondatasetcomplete();
9781
9782     [id(DISPID_HTMLELEMENTEVENTS_ONLOSECAPTURE)]
9783     void onlosecapture();
9784
9785     [id(DISPID_HTMLELEMENTEVENTS_ONPROPERTYCHANGE)]
9786     void onpropertychange();
9787
9788     [id(DISPID_HTMLELEMENTEVENTS_ONSCROLL)]
9789     void onscroll();
9790
9791     [id(DISPID_HTMLELEMENTEVENTS_ONFOCUS)]
9792     void onfocus();
9793
9794     [id(DISPID_HTMLELEMENTEVENTS_ONBLUR)]
9795     void onblur();
9796
9797     [id(DISPID_HTMLELEMENTEVENTS_ONRESIZE)]
9798     void onresize();
9799
9800     [id(DISPID_HTMLELEMENTEVENTS_ONDRAG)]
9801     VARIANT_BOOL ondrag();
9802
9803     [id(DISPID_HTMLELEMENTEVENTS_ONDRAGEND)]
9804     void ondragend();
9805
9806     [id(DISPID_HTMLELEMENTEVENTS_ONDRAGENTER)]
9807     VARIANT_BOOL ondragenter();
9808
9809     [id(DISPID_HTMLELEMENTEVENTS_ONDRAGOVER)]
9810     VARIANT_BOOL ondragover();
9811
9812     [id(DISPID_HTMLELEMENTEVENTS_ONDRAGLEAVE)]
9813     void ondragleave();
9814
9815     [id(DISPID_HTMLELEMENTEVENTS_ONDROP)]
9816     VARIANT_BOOL ondrop();
9817
9818     [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECUT)]
9819     VARIANT_BOOL onbeforecut();
9820
9821     [id(DISPID_HTMLELEMENTEVENTS_ONCUT)]
9822     VARIANT_BOOL oncut();
9823
9824     [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECOPY)]
9825     VARIANT_BOOL onbeforecopy();
9826
9827     [id(DISPID_HTMLELEMENTEVENTS_ONCOPY)]
9828     VARIANT_BOOL oncopy();
9829
9830     [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREPASTE)]
9831     VARIANT_BOOL onbeforepaste();
9832
9833     [id(DISPID_HTMLELEMENTEVENTS_ONPASTE)]
9834     VARIANT_BOOL onpaste();
9835
9836     [id(DISPID_HTMLELEMENTEVENTS_ONCONTEXTMENU)]
9837     VARIANT_BOOL oncontextmenu();
9838
9839     [id(DISPID_HTMLELEMENTEVENTS_ONROWSDELETE)]
9840     void onrowsdelete();
9841
9842     [id(DISPID_HTMLELEMENTEVENTS_ONROWSINSERTED)]
9843     void onrowsinserted();
9844
9845     [id(DISPID_HTMLELEMENTEVENTS_ONCELLCHANGE)]
9846     void oncellchange();
9847
9848     [id(DISPID_HTMLELEMENTEVENTS_ONREADYSTATECHANGE)]
9849     void onreadystatechange();
9850
9851     [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREEDITFOCUS)]
9852     void onbeforeeditfocus();
9853
9854     [id(DISPID_HTMLELEMENTEVENTS_ONLAYOUTCOMPLETE)]
9855     void onlayoutcomplete();
9856
9857     [id(DISPID_HTMLELEMENTEVENTS_ONPAGE)]
9858     void onpage();
9859
9860     [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREDEACTIVATE)]
9861     VARIANT_BOOL onbeforedeactivate();
9862
9863     [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREACTIVATE)]
9864     VARIANT_BOOL onbeforeactivate();
9865
9866     [id(DISPID_HTMLELEMENTEVENTS_ONMOVE)]
9867     void onmove();
9868
9869     [id(DISPID_HTMLELEMENTEVENTS_ONCONTROLSELECT)]
9870     VARIANT_BOOL oncontrolselect();
9871
9872     [id(DISPID_HTMLELEMENTEVENTS_ONMOVESTART)]
9873     VARIANT_BOOL onmovestart();
9874
9875     [id(DISPID_HTMLELEMENTEVENTS_ONMOVEEND)]
9876     void onmoveend();
9877
9878     [id(DISPID_HTMLELEMENTEVENTS_ONRESIZESTART)]
9879     VARIANT_BOOL onresizestart();
9880
9881     [id(DISPID_HTMLELEMENTEVENTS_ONRESIZEEND)]
9882     void onresizeend();
9883
9884     [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEENTER)]
9885     void onmouseenter();
9886
9887     [id(DISPID_HTMLELEMENTEVENTS_ONMOUSELEAVE)]
9888     void onmouseleave();
9889
9890     [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEWHEEL)]
9891     VARIANT_BOOL onmousewheel();
9892
9893     [id(DISPID_HTMLELEMENTEVENTS_ONACTIVATE)]
9894     void onactivate();
9895
9896     [id(DISPID_HTMLELEMENTEVENTS_ONDEACTIVATE)]
9897     void ondeactivate();
9898
9899     [id(DISPID_HTMLELEMENTEVENTS_ONFOCUSIN)]
9900     void onfocusin();
9901
9902     [id(DISPID_HTMLELEMENTEVENTS_ONFOCUSOUT)]
9903     void onfocusout();
9904 }
9905
9906 /*****************************************************************************
9907  *    IHTMLTableCaption interface
9908  */
9909 [
9910     odl,
9911     oleautomation,
9912     dual,
9913     uuid(3050f2eb-98b5-11cf-bb82-00aa00bdce0b)
9914 ]
9915 interface IHTMLTableCaption : IDispatch
9916 {
9917     [propput, id(DISPID_IHTMLTABLECAPTION_ALIGN)]
9918     HRESULT align([in] BSTR v);
9919
9920     [propget, id(DISPID_IHTMLTABLECAPTION_ALIGN)]
9921     HRESULT align([retval, out] BSTR *p);
9922
9923     [propput, id(DISPID_IHTMLTABLECAPTION_VALIGN)]
9924     HRESULT vAlign([in] BSTR v);
9925
9926     [propget, id(DISPID_IHTMLTABLECAPTION_VALIGN)]
9927     HRESULT vAlign([retval, out] BSTR *p);
9928 }
9929
9930 interface IHTMLTableSection;
9931
9932 /*****************************************************************************
9933  *    IHTMLTable interface
9934  */
9935 [
9936     odl,
9937     oleautomation,
9938     dual,
9939     uuid(3050f21e-98b5-11cf-bb82-00aa00bdce0b)
9940 ]
9941 interface IHTMLTable : IDispatch
9942 {
9943     [propput, id(DISPID_IHTMLTABLE_COLS)]
9944     HRESULT cols([in] long v);
9945
9946     [propget, id(DISPID_IHTMLTABLE_COLS)]
9947     HRESULT cols([retval, out] long *p);
9948
9949     [propput, id(DISPID_IHTMLTABLE_BORDER)]
9950     HRESULT border([in] VARIANT v);
9951
9952     [propget, id(DISPID_IHTMLTABLE_BORDER)]
9953     HRESULT border([retval, out] VARIANT *p);
9954
9955     [propput, id(DISPID_IHTMLTABLE_FRAME)]
9956     HRESULT frame([in] BSTR v);
9957
9958     [propget, id(DISPID_IHTMLTABLE_FRAME)]
9959     HRESULT frame([retval, out] BSTR *p);
9960
9961     [propput, id(DISPID_IHTMLTABLE_RULES)]
9962     HRESULT rules([in] BSTR v);
9963
9964     [propget, id(DISPID_IHTMLTABLE_RULES)]
9965     HRESULT rules([retval, out] BSTR *p);
9966
9967     [propput, id(DISPID_IHTMLTABLE_CELLSPACING)]
9968     HRESULT cellSpacing([in] VARIANT v);
9969
9970     [propget, id(DISPID_IHTMLTABLE_CELLSPACING)]
9971     HRESULT cellSpacing([retval, out] VARIANT *p);
9972
9973     [propput, id(DISPID_IHTMLTABLE_CELLPADDING)]
9974     HRESULT cellPadding([in] VARIANT v);
9975
9976     [propget, id(DISPID_IHTMLTABLE_CELLPADDING)]
9977     HRESULT cellPadding([retval, out] VARIANT *p);
9978
9979     [propput, id(DISPID_IHTMLTABLE_BACKGROUND)]
9980     HRESULT background([in] BSTR v);
9981
9982     [propget, id(DISPID_IHTMLTABLE_BACKGROUND)]
9983     HRESULT background([retval, out] BSTR *p);
9984
9985     [propput, id(DISPID_IHTMLTABLE_BGCOLOR)]
9986     HRESULT bgColor([in] VARIANT v);
9987
9988     [propget, id(DISPID_IHTMLTABLE_BGCOLOR)]
9989     HRESULT bgColor([retval, out] VARIANT *p);
9990
9991     [propput, id(DISPID_IHTMLTABLE_BORDERCOLOR)]
9992     HRESULT borderColor([in] VARIANT v);
9993
9994     [propget, id(DISPID_IHTMLTABLE_BORDERCOLOR)]
9995     HRESULT borderColor([retval, out] VARIANT *p);
9996
9997     [propput, id(DISPID_IHTMLTABLE_BORDERCOLORLIGHT)]
9998     HRESULT borderColorLight([in] VARIANT v);
9999
10000     [propget, id(DISPID_IHTMLTABLE_BORDERCOLORLIGHT)]
10001     HRESULT borderColorLight([retval, out] VARIANT *p);
10002
10003     [propput, id(DISPID_IHTMLTABLE_BORDERCOLORDARK)]
10004     HRESULT borderColorDark([in] VARIANT v);
10005
10006     [propget, id(DISPID_IHTMLTABLE_BORDERCOLORDARK)]
10007     HRESULT borderColorDark([retval, out] VARIANT *p);
10008
10009     [propput, id(DISPID_IHTMLTABLE_ALIGN)]
10010     HRESULT align([in] BSTR v);
10011
10012     [propget, id(DISPID_IHTMLTABLE_ALIGN)]
10013     HRESULT align([retval, out] BSTR * p);
10014
10015     [id(DISPID_IHTMLTABLE_REFRESH)]
10016     HRESULT refresh();
10017
10018     [propget, id(DISPID_IHTMLTABLE_ROWS)]
10019     HRESULT rows([retval, out] IHTMLElementCollection **p);
10020
10021     [propput, id(DISPID_IHTMLTABLE_WIDTH)]
10022     HRESULT width([in] VARIANT v);
10023
10024     [propget, id(DISPID_IHTMLTABLE_WIDTH)]
10025     HRESULT width([retval, out] VARIANT *p);
10026
10027     [propput, id(DISPID_IHTMLTABLE_HEIGHT)]
10028     HRESULT height([in] VARIANT v);
10029
10030     [propget, id(DISPID_IHTMLTABLE_HEIGHT)]
10031     HRESULT height([retval, out] VARIANT *p);
10032
10033     [propput, id(DISPID_IHTMLTABLE_DATAPAGESIZE)]
10034     HRESULT dataPageSize([in] long v);
10035
10036     [propget, id(DISPID_IHTMLTABLE_DATAPAGESIZE)]
10037     HRESULT dataPageSize([retval, out] long *p);
10038
10039     [id(DISPID_IHTMLTABLE_NEXTPAGE)]
10040     HRESULT nextPage();
10041
10042     [id(DISPID_IHTMLTABLE_PREVIOUSPAGE)]
10043     HRESULT previousPage();
10044
10045     [propget, id(DISPID_IHTMLTABLE_THEAD)]
10046     HRESULT tHead([retval, out] IHTMLTableSection **p);
10047
10048     [propget, id(DISPID_IHTMLTABLE_TFOOT)]
10049     HRESULT tFoot([retval, out] IHTMLTableSection **p);
10050
10051     [propget, id(DISPID_IHTMLTABLE_TBODIES)]
10052     HRESULT tBodies([retval, out] IHTMLElementCollection **p);
10053
10054     [propget, id(DISPID_IHTMLTABLE_CAPTION)]
10055     HRESULT caption([retval, out] IHTMLTableCaption **p);
10056
10057     [id(DISPID_IHTMLTABLE_CREATETHEAD)]
10058     HRESULT createTHead([retval, out] IDispatch **head);
10059
10060     [id(DISPID_IHTMLTABLE_DELETETHEAD)]
10061     HRESULT deleteTHead();
10062
10063     [id(DISPID_IHTMLTABLE_CREATETFOOT)]
10064     HRESULT createTFoot([retval, out] IDispatch **foot);
10065
10066     [id(DISPID_IHTMLTABLE_DELETETFOOT)]
10067     HRESULT deleteTFoot();
10068
10069     [id(DISPID_IHTMLTABLE_CREATECAPTION)]
10070     HRESULT createCaption([retval, out] IHTMLTableCaption **caption);
10071
10072     [id(DISPID_IHTMLTABLE_DELETECAPTION)]
10073     HRESULT deleteCaption();
10074
10075     [id(DISPID_IHTMLTABLE_INSERTROW)]
10076     HRESULT insertRow(
10077             [defaultvalue(-1), in] long index,
10078             [retval, out] IDispatch **row);
10079
10080     [id(DISPID_IHTMLTABLE_DELETEROW)]
10081     HRESULT deleteRow([defaultvalue(-1), in] long index);
10082
10083     [propget, id(DISPID_IHTMLTABLE_READYSTATE)]
10084     HRESULT readyState([retval, out] BSTR *p);
10085
10086     [propput, id(DISPID_IHTMLTABLE_ONREADYSTATECHANGE), displaybind, bindable]
10087     HRESULT onreadystatechange([in] VARIANT v);
10088
10089     [propget, id(DISPID_IHTMLTABLE_ONREADYSTATECHANGE), displaybind, bindable]
10090     HRESULT onreadystatechange([retval, out] VARIANT *p);
10091 }
10092
10093 [
10094     odl,
10095     oleautomation,
10096     dual,
10097     uuid(3050f23b-98b5-11cf-bb82-00aa00bdce0b)
10098 ]
10099 interface IHTMLTableSection : IDispatch
10100 {
10101     [propput, id(DISPID_IHTMLTABLESECTION_ALIGN)]
10102     HRESULT align([in] BSTR v);
10103
10104     [propget, id(DISPID_IHTMLTABLESECTION_ALIGN)]
10105     HRESULT align([retval, out] BSTR *p);
10106
10107     [propput, id(DISPID_IHTMLTABLESECTION_VALIGN)]
10108     HRESULT vAlign([in] BSTR v);
10109
10110     [propget, id(DISPID_IHTMLTABLESECTION_VALIGN)]
10111     HRESULT vAlign([retval, out] BSTR *p);
10112
10113     [propput, id(DISPID_IHTMLTABLESECTION_BGCOLOR)]
10114     HRESULT bgColor([in] VARIANT v);
10115
10116     [propget, id(DISPID_IHTMLTABLESECTION_BGCOLOR)]
10117     HRESULT bgColor([retval, out] VARIANT *p);
10118
10119     [propget, id(DISPID_IHTMLTABLESECTION_ROWS)]
10120     HRESULT rows([retval, out] IHTMLElementCollection **p);
10121
10122     [id(DISPID_IHTMLTABLESECTION_INSERTROW)]
10123     HRESULT insertRow(
10124             [defaultvalue(-1), in] long index,
10125             [retval, out] IDispatch **row);
10126
10127     [id(DISPID_IHTMLTABLESECTION_DELETEROW)]
10128     HRESULT deleteRow([defaultvalue(-1), in] long index);
10129 }
10130
10131 /*****************************************************************************
10132  *    IHTMLScriptElement interface
10133  */
10134 [
10135     odl,
10136     oleautomation,
10137     dual,
10138     uuid(3050f28b-98b5-11cf-bb82-00aa00bdce0b)
10139 ]
10140 interface IHTMLScriptElement : IDispatch
10141 {
10142     [propput, id(DISPID_IHTMLSCRIPTELEMENT_SRC), displaybind, bindable]
10143     HRESULT src([in] BSTR v);
10144
10145     [propget, id(DISPID_IHTMLSCRIPTELEMENT_SRC), displaybind, bindable]
10146     HRESULT src([retval, out] BSTR *p);
10147
10148     [propput, id(DISPID_IHTMLSCRIPTELEMENT_HTMLFOR), displaybind, bindable]
10149     HRESULT htmlFor([in] BSTR v);
10150
10151     [propget, id(DISPID_IHTMLSCRIPTELEMENT_HTMLFOR), displaybind, bindable]
10152     HRESULT htmlFor([retval, out] BSTR *p);
10153
10154     [propput, id(DISPID_IHTMLSCRIPTELEMENT_EVENT), displaybind, bindable]
10155     HRESULT event([in] BSTR v);
10156
10157     [propget, id(DISPID_IHTMLSCRIPTELEMENT_EVENT), displaybind, bindable]
10158     HRESULT event([retval, out] BSTR *p);
10159
10160     [propput, id(DISPID_IHTMLSCRIPTELEMENT_TEXT), displaybind, bindable]
10161     HRESULT text([in] BSTR v);
10162
10163     [propget, id(DISPID_IHTMLSCRIPTELEMENT_TEXT), displaybind, bindable]
10164     HRESULT text([retval, out] BSTR *p);
10165
10166     [propput, id(DISPID_IHTMLSCRIPTELEMENT_DEFER), displaybind, bindable]
10167     HRESULT defer([in] VARIANT_BOOL v);
10168
10169     [propget, id(DISPID_IHTMLSCRIPTELEMENT_DEFER), displaybind, bindable]
10170     HRESULT defer([retval, out] VARIANT_BOOL *p);
10171
10172     [propget, id(DISPID_IHTMLSCRIPTELEMENT_READYSTATE)]
10173     HRESULT readyState([retval, out] BSTR *p);
10174
10175     [propput, id(DISPID_IHTMLSCRIPTELEMENT_ONERROR), displaybind, bindable]
10176     HRESULT onerror([in] VARIANT v);
10177
10178     [propget, id(DISPID_IHTMLSCRIPTELEMENT_ONERROR), displaybind, bindable]
10179     HRESULT onerror([retval, out] VARIANT *p);
10180
10181     [propput, id(DISPID_IHTMLSCRIPTELEMENT_TYPE), displaybind, bindable]
10182     HRESULT type([in] BSTR v);
10183
10184     [propget, id(DISPID_IHTMLSCRIPTELEMENT_TYPE), displaybind, bindable]
10185     HRESULT type([retval, out] BSTR *p);
10186 }
10187
10188 /*****************************************************************************
10189  *    IHTMLScriptElement2 interface
10190  */
10191 [
10192     odl,
10193     oleautomation,
10194     dual,
10195     uuid(3050f828-98b5-11cf-bb82-00aa00bdce0b)
10196 ]
10197 interface IHTMLScriptElement2 : IDispatch
10198 {
10199     [propput, id(DISPID_IHTMLSCRIPTELEMENT2_CHARSET), displaybind, bindable]
10200     HRESULT charset([in] BSTR v);
10201
10202     [propget, id(DISPID_IHTMLSCRIPTELEMENT2_CHARSET), displaybind, bindable]
10203     HRESULT charset([retval, out] BSTR *p);
10204 }
10205
10206 /*****************************************************************************
10207  *    IHTMLFrameBase interface
10208  */
10209 [
10210     odl,
10211     oleautomation,
10212     dual,
10213     uuid(3050f311-98b5-11cf-bb82-00aa00bdce0b)
10214 ]
10215 interface IHTMLFrameBase : IDispatch
10216 {
10217     [propput, id(DISPID_IHTMLFRAMEBASE_SRC)]
10218     HRESULT src([in] BSTR v);
10219
10220     [propget, id(DISPID_IHTMLFRAMEBASE_SRC)]
10221     HRESULT src([out, retval] BSTR *p);
10222
10223     [propput, id(DISPID_IHTMLFRAMEBASE_NAME)]
10224     HRESULT name([in] BSTR v);
10225
10226     [propget, id(DISPID_IHTMLFRAMEBASE_NAME)]
10227     HRESULT name([out, retval] BSTR *p);
10228
10229     [propput, id(DISPID_IHTMLFRAMEBASE_BORDER)]
10230     HRESULT border([in] VARIANT v);
10231
10232     [propget, id(DISPID_IHTMLFRAMEBASE_BORDER)]
10233     HRESULT border([out, retval] VARIANT *p);
10234
10235     [propput, id(DISPID_IHTMLFRAMEBASE_FRAMEBORDER)]
10236     HRESULT frameBorder([in] BSTR v);
10237
10238     [propget, id(DISPID_IHTMLFRAMEBASE_FRAMEBORDER)]
10239     HRESULT frameBorder([out, retval] BSTR *p);
10240
10241     [propput, id(DISPID_IHTMLFRAMEBASE_FRAMESPACING)]
10242     HRESULT frameSpacing([in] VARIANT v);
10243
10244     [propget, id(DISPID_IHTMLFRAMEBASE_FRAMESPACING)]
10245     HRESULT frameSpacing([out, retval] VARIANT *p);
10246
10247     [propput, id(DISPID_IHTMLFRAMEBASE_MARGINWIDTH)]
10248     HRESULT marginWidth([in] VARIANT v);
10249
10250     [propget, id(DISPID_IHTMLFRAMEBASE_MARGINWIDTH)]
10251     HRESULT marginWidth([out, retval] VARIANT *p);
10252
10253     [propput, id(DISPID_IHTMLFRAMEBASE_MARGINHEIGHT)]
10254     HRESULT marginHeight([in] VARIANT v);
10255
10256     [propget, id(DISPID_IHTMLFRAMEBASE_MARGINHEIGHT)]
10257     HRESULT marginHeight([out, retval] VARIANT *p);
10258
10259     [propput, id(DISPID_IHTMLFRAMEBASE_NORESIZE)]
10260     HRESULT noResize([in] VARIANT_BOOL v);
10261
10262     [propget, id(DISPID_IHTMLFRAMEBASE_NORESIZE)]
10263     HRESULT noResize([out, retval] VARIANT_BOOL *p);
10264
10265     [propput, id(DISPID_IHTMLFRAMEBASE_SCROLLING)]
10266     HRESULT scrolling([in] BSTR v);
10267
10268     [propget, id(DISPID_IHTMLFRAMEBASE_SCROLLING)]
10269     HRESULT scrolling([out, retval] BSTR *p);
10270 }
10271
10272 /*****************************************************************************
10273  *    IHTMLFrameBase2 interface
10274  */
10275 [
10276     odl,
10277     oleautomation,
10278     dual,
10279     uuid(3050f6db-98b5-11cf-bb82-00aa00bdce0b)
10280 ]
10281 interface IHTMLFrameBase2 : IDispatch
10282 {
10283     [propget, id(DISPID_IHTMLFRAMEBASE2_CONTENTWINDOW)]
10284     HRESULT contentWindow([retval, out] IHTMLWindow2 **p);
10285
10286     [propput, id(DISPID_IHTMLFRAMEBASE2_ONLOAD), displaybind, bindable]
10287     HRESULT onload([in] VARIANT v);
10288
10289     [propget, id(DISPID_IHTMLFRAMEBASE2_ONLOAD), displaybind, bindable]
10290     HRESULT onload([retval, out] VARIANT *p);
10291
10292     [propput, id(DISPID_IHTMLFRAMEBASE2_ONREADYSTATECHANGE), displaybind, bindable]
10293     HRESULT onreadystatechange([in] VARIANT v);
10294
10295     [propget, id(DISPID_IHTMLFRAMEBASE2_ONREADYSTATECHANGE), displaybind, bindable]
10296     HRESULT onreadystatechange([retval, out] VARIANT *p);
10297
10298     [propget, id(DISPID_IHTMLFRAMEBASE2_READYSTATE)]
10299     HRESULT readyState([retval, out] BSTR *p);
10300
10301     [propput, id(DISPID_IHTMLFRAMEBASE2_ALLOWTRANSPARENCY)]
10302     HRESULT allowTransparency([in] VARIANT_BOOL v);
10303
10304     [propget, id(DISPID_IHTMLFRAMEBASE2_ALLOWTRANSPARENCY)]
10305     HRESULT allowTransparency([retval, out] VARIANT_BOOL *p);
10306 }
10307
10308 } /* library MSHTML */