mshtml: Added more interfaces to mshtml.idl.
[wine] / include / mshtml.idl
1 /*
2  * Copyright 2004-2006 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17  */
18
19 #include <mshtmdid.h>
20 #include <mshtmcid.h>
21 #include <olectl.h>
22
23 import "ocidl.idl";
24 /* import "dimm.idl"; */
25
26 cpp_quote("#include <olectl.h>")
27
28 interface IHTMLDocument2;
29 interface IHTMLStyleSheetsCollection;
30
31 /*****************************************************************************
32  *    IHTMLFiltersCollection interface
33  */
34 [
35     odl,
36     oleautomation,
37     dual,
38     uuid(3050F3EE-98B5-11Cf-BB82-00AA00BDCE0B)
39 ]
40 interface IHTMLFiltersCollection : IDispatch
41 {
42     [propget, id(DISPID_IHTMLFILTERSCOLLECTION_LENGTH)]
43     HRESULT length([retval, out] long *p);
44
45     [propget, id(DISPID_IHTMLFILTERSCOLLECTION__NEWENUM)]
46     HRESULT _newEnum([retval, out] IUnknown **p);
47
48     [id(DISPID_IHTMLFILTERSCOLLECTION_ITEM)]
49     HRESULT item(
50         [in] VARIANT *pvarIndex,
51         [retval, out] VARIANT *pvarResult);
52 }
53
54 [
55     uuid(3050F1C5-98B5-11CF-BB82-00AA00BDCE0B)
56 ]
57 library MSHTML
58 {
59
60 /*****************************************************************************
61  *    IHTMLStyle interface
62  */
63 [
64     odl,
65     oleautomation,
66     dual,
67     uuid(3050F25E-98B5-11CF-BB82-00AA00BDCE0B)
68 ]
69 interface IHTMLStyle : IDispatch
70 {
71     [propput, id(DISPID_IHTMLSTYLE_FONTFAMILY)]
72     HRESULT fontFamily([in] BSTR v);
73
74     [propget, id(DISPID_IHTMLSTYLE_FONTFAMILY)]
75     HRESULT fontFamily([retval, out] BSTR *p);
76
77     [propput, id(DISPID_IHTMLSTYLE_FONTSTYLE)]
78     HRESULT fontStyle([in] BSTR v);
79
80     [propget, id(DISPID_IHTMLSTYLE_FONTSTYLE)]
81     HRESULT fontStyle([retval, out] BSTR *p);
82
83     [propput, id(DISPID_IHTMLSTYLE_FONTVARIANT)]
84     HRESULT fontVariant([in] BSTR v);
85
86     [propget, id(DISPID_IHTMLSTYLE_FONTVARIANT)]
87     HRESULT fontVariant([retval, out] BSTR *p);
88
89     [propput, id(DISPID_IHTMLSTYLE_FONTWEIGHT)]
90     HRESULT fontWeight([in] BSTR v);
91
92     [propget, id(DISPID_IHTMLSTYLE_FONTWEIGHT)]
93     HRESULT fontWeight([retval, out] BSTR *p);
94
95     [propput, id(DISPID_IHTMLSTYLE_FONTSIZE)]
96     HRESULT fontSize([in] VARIANT v);
97
98     [propget, id(DISPID_IHTMLSTYLE_FONTSIZE)]
99     HRESULT fontSize([retval, out] VARIANT *p);
100
101     [propput, id(DISPID_IHTMLSTYLE_FONT)]
102     HRESULT font([in] BSTR v);
103
104     [propget, id(DISPID_IHTMLSTYLE_FONT)]
105     HRESULT font([retval, out] BSTR *p);
106
107     [propput, id(DISPID_IHTMLSTYLE_COLOR)]
108     HRESULT color([in] VARIANT v);
109
110     [propget, id(DISPID_IHTMLSTYLE_COLOR)]
111     HRESULT color([retval, out] VARIANT *p);
112
113     [propput, id(DISPID_IHTMLSTYLE_BACKGROUND)]
114     HRESULT background([in] BSTR v);
115
116     [propget, id(DISPID_IHTMLSTYLE_BACKGROUND)]
117     HRESULT background([retval, out] BSTR *p);
118
119     [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDCOLOR)]
120     HRESULT backgroundColor([in] VARIANT v);
121
122     [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDCOLOR)]
123     HRESULT backgroundColor([retval, out] VARIANT *p);
124
125     [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDIMAGE)]
126     HRESULT backgroundImage([in] BSTR v);
127
128     [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDIMAGE)]
129     HRESULT backgroundImage([retval, out] BSTR *p);
130
131     [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDREPEAT)]
132     HRESULT backgroundRepeat([in] BSTR v);
133
134     [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDREPEAT)]
135     HRESULT backgroundRepeat([retval, out] BSTR *p);
136
137     [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDATTACHMENT)]
138     HRESULT backgroundAttachment([in] BSTR v);
139
140     [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDATTACHMENT)]
141     HRESULT backgroundAttachment([retval, out] BSTR *p);
142
143     [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDPOSITION)]
144     HRESULT backgroundPosition([in] BSTR v);
145
146     [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDPOSITION)]
147     HRESULT backgroundPosition([retval, out] BSTR *p);
148
149     [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDPOSITIONX)]
150     HRESULT backgroundPositionX([in] VARIANT v);
151
152     [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDPOSITIONX)]
153     HRESULT backgroundPositionX([retval, out] VARIANT *p);
154
155     [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDPOSITIONY)]
156     HRESULT backgroundPositionY([in] VARIANT v);
157
158     [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDPOSITIONY)]
159     HRESULT backgroundPositionY([retval, out] VARIANT *p);
160
161     [propput, id(DISPID_IHTMLSTYLE_WORDSPACING)]
162     HRESULT wordSpacing([in] VARIANT v);
163
164     [propget, id(DISPID_IHTMLSTYLE_WORDSPACING)]
165     HRESULT wordSpacing([retval, out] VARIANT *p);
166
167     [propput, id(DISPID_IHTMLSTYLE_LETTERSPACING)]
168     HRESULT letterSpacing([in] VARIANT v);
169
170     [propget, id(DISPID_IHTMLSTYLE_LETTERSPACING)]
171     HRESULT letterSpacing([retval, out] VARIANT *p);
172
173     [propput, id(DISPID_IHTMLSTYLE_TEXTDECORATION)]
174     HRESULT textDecoration([in] BSTR v);
175
176     [propget, id(DISPID_IHTMLSTYLE_TEXTDECORATION)]
177     HRESULT textDecoration([retval, out] BSTR *p);
178
179     [propput, id(DISPID_IHTMLSTYLE_TEXTDECORATIONNONE)]
180     HRESULT textDecorationNone([in] VARIANT_BOOL v);
181
182     [propget, id(DISPID_IHTMLSTYLE_TEXTDECORATIONNONE)]
183     HRESULT textDecorationNone([retval, out] VARIANT_BOOL *p);
184
185     [propput, id(DISPID_IHTMLSTYLE_TEXTDECORATIONUNDERLINE)]
186     HRESULT textDecorationUnderline([in] VARIANT_BOOL v);
187
188     [propget, id(DISPID_IHTMLSTYLE_TEXTDECORATIONUNDERLINE)]
189     HRESULT textDecorationUnderline([retval, out] VARIANT_BOOL *p);
190
191     [propput, id(DISPID_IHTMLSTYLE_TEXTDECORATIONOVERLINE)]
192     HRESULT textDecorationOverline([in] VARIANT_BOOL v);
193
194     [propget, id(DISPID_IHTMLSTYLE_TEXTDECORATIONOVERLINE)]
195     HRESULT textDecorationOverline([retval, out] VARIANT_BOOL *p);
196
197     [propput, id(DISPID_IHTMLSTYLE_TEXTDECORATIONLINETHROUGH)]
198     HRESULT textDecorationLineThrough([in] VARIANT_BOOL v);
199
200     [propget, id(DISPID_IHTMLSTYLE_TEXTDECORATIONLINETHROUGH)]
201     HRESULT textDecorationLineThrough([retval, out] VARIANT_BOOL *p);
202
203     [propput, id(DISPID_IHTMLSTYLE_TEXTDECORATIONBLINK)]
204     HRESULT textDecorationBlink([in] VARIANT_BOOL v);
205
206     [propget, id(DISPID_IHTMLSTYLE_TEXTDECORATIONBLINK)]
207     HRESULT textDecorationBlink([retval, out] VARIANT_BOOL *p);
208
209     [propput, id(DISPID_IHTMLSTYLE_VERTICALALIGN)]
210     HRESULT verticalAlign([in] VARIANT v);
211
212     [propget, id(DISPID_IHTMLSTYLE_VERTICALALIGN)]
213     HRESULT verticalAlign([retval, out] VARIANT *p);
214
215     [propput, id(DISPID_IHTMLSTYLE_TEXTTRANSFORM)]
216     HRESULT textTransform([in] BSTR v);
217
218     [propget, id(DISPID_IHTMLSTYLE_TEXTTRANSFORM)]
219     HRESULT textTransform([retval, out] BSTR *p);
220
221     [propput, id(DISPID_IHTMLSTYLE_TEXTALIGN)]
222     HRESULT textAlign([in] BSTR v);
223
224     [propget, id(DISPID_IHTMLSTYLE_TEXTALIGN)]
225     HRESULT textAlign([retval, out] BSTR *p);
226
227     [propput, id(DISPID_IHTMLSTYLE_TEXTINDENT)]
228     HRESULT textIndent([in] VARIANT v);
229
230     [propget, id(DISPID_IHTMLSTYLE_TEXTINDENT)]
231     HRESULT textIndent([retval, out] VARIANT *p);
232
233     [propput, id(DISPID_IHTMLSTYLE_LINEHEIGHT)]
234     HRESULT lineHeight([in] VARIANT v);
235
236     [propget, id(DISPID_IHTMLSTYLE_LINEHEIGHT)]
237     HRESULT lineHeight([retval, out] VARIANT *p);
238
239     [propput, id(DISPID_IHTMLSTYLE_MARGINTOP)]
240     HRESULT marginTop([in] VARIANT v);
241
242     [propget, id(DISPID_IHTMLSTYLE_MARGINTOP)]
243     HRESULT marginTop([retval, out] VARIANT *p);
244
245     [propput, id(DISPID_IHTMLSTYLE_MARGINRIGHT)]
246     HRESULT marginRight([in] VARIANT v);
247
248     [propget, id(DISPID_IHTMLSTYLE_MARGINRIGHT)]
249     HRESULT marginRight([retval, out] VARIANT *p);
250
251     [propput, id(DISPID_IHTMLSTYLE_MARGINBOTTOM)]
252     HRESULT marginBottom([in] VARIANT v);
253
254     [propget, id(DISPID_IHTMLSTYLE_MARGINBOTTOM)]
255     HRESULT marginBottom([retval, out] VARIANT *p);
256
257     [propput, id(DISPID_IHTMLSTYLE_MARGINLEFT)]
258     HRESULT marginLeft([in] VARIANT v);
259
260     [propget, id(DISPID_IHTMLSTYLE_MARGINLEFT)]
261     HRESULT marginLeft([retval, out] VARIANT *p);
262
263     [propput, id(DISPID_IHTMLSTYLE_MARGIN)]
264     HRESULT margin([in] BSTR v);
265
266     [propget, id(DISPID_IHTMLSTYLE_MARGIN)]
267     HRESULT margin([retval, out] BSTR *p);
268
269     [propput, id(DISPID_IHTMLSTYLE_PADDINGTOP)]
270     HRESULT paddingTop([in] VARIANT v);
271
272     [propget, id(DISPID_IHTMLSTYLE_PADDINGTOP)]
273     HRESULT paddingTop([retval, out] VARIANT *p);
274
275     [propput, id(DISPID_IHTMLSTYLE_PADDINGRIGHT)]
276     HRESULT paddingRight([in] VARIANT v);
277
278     [propget, id(DISPID_IHTMLSTYLE_PADDINGRIGHT)]
279     HRESULT paddingRight([retval, out] VARIANT *p);
280
281     [propput, id(DISPID_IHTMLSTYLE_PADDINGBOTTOM)]
282     HRESULT paddingBottom([in] VARIANT v);
283
284     [propget, id(DISPID_IHTMLSTYLE_PADDINGBOTTOM)]
285     HRESULT paddingBottom([retval, out] VARIANT *p);
286
287     [propput, id(DISPID_IHTMLSTYLE_PADDINGLEFT)]
288     HRESULT paddingLeft([in] VARIANT v);
289
290     [propget, id(DISPID_IHTMLSTYLE_PADDINGLEFT)]
291     HRESULT paddingLeft([retval, out] VARIANT *p);
292
293     [propput, id(DISPID_IHTMLSTYLE_PADDING)]
294     HRESULT padding([in] BSTR v);
295
296     [propget, id(DISPID_IHTMLSTYLE_PADDING)]
297     HRESULT padding([retval, out] BSTR *p);
298
299     [propput, id(DISPID_IHTMLSTYLE_BORDER)]
300     HRESULT border([in] BSTR v);
301
302     [propget, id(DISPID_IHTMLSTYLE_BORDER)]
303     HRESULT border([retval, out] BSTR *p);
304
305     [propput, id(DISPID_IHTMLSTYLE_BORDERTOP)]
306     HRESULT borderTop([in] BSTR v);
307
308     [propget, id(DISPID_IHTMLSTYLE_BORDERTOP)]
309     HRESULT borderTop([retval, out] BSTR *p);
310
311     [propput, id(DISPID_IHTMLSTYLE_BORDERRIGHT)]
312     HRESULT borderRight([in] BSTR v);
313
314     [propget, id(DISPID_IHTMLSTYLE_BORDERRIGHT)]
315     HRESULT borderRight([retval, out] BSTR *p);
316
317     [propput, id(DISPID_IHTMLSTYLE_BORDERBOTTOM)]
318     HRESULT borderBottom([in] BSTR v);
319
320     [propget, id(DISPID_IHTMLSTYLE_BORDERBOTTOM)]
321     HRESULT borderBottom([retval, out] BSTR *p);
322
323     [propput, id(DISPID_IHTMLSTYLE_BORDERLEFT)]
324     HRESULT borderLeft([in] BSTR v);
325
326     [propget, id(DISPID_IHTMLSTYLE_BORDERLEFT)]
327     HRESULT borderLeft([retval, out] BSTR *p);
328
329     [propput, id(DISPID_IHTMLSTYLE_BORDERCOLOR)]
330     HRESULT borderColor([in] BSTR v);
331
332     [propget, id(DISPID_IHTMLSTYLE_BORDERCOLOR)]
333     HRESULT borderColor([retval, out] BSTR *p);
334
335     [propput, id(DISPID_IHTMLSTYLE_BORDERTOPCOLOR)]
336     HRESULT borderTopColor([in] VARIANT v);
337
338     [propget, id(DISPID_IHTMLSTYLE_BORDERTOPCOLOR)]
339     HRESULT borderTopColor([retval, out] VARIANT *p);
340
341     [propput, id(DISPID_IHTMLSTYLE_BORDERRIGHTCOLOR)]
342     HRESULT borderRightColor([in] VARIANT v);
343
344     [propget, id(DISPID_IHTMLSTYLE_BORDERRIGHTCOLOR)]
345     HRESULT borderRightColor([retval, out] VARIANT *p);
346
347     [propput, id(DISPID_IHTMLSTYLE_BORDERBOTTOMCOLOR)]
348     HRESULT borderBottomColor([in] VARIANT v);
349
350     [propget, id(DISPID_IHTMLSTYLE_BORDERBOTTOMCOLOR)]
351     HRESULT borderBottomColor([retval, out] VARIANT *p);
352
353     [propput, id(DISPID_IHTMLSTYLE_BORDERLEFTCOLOR)]
354     HRESULT borderLeftColor([in] VARIANT v);
355
356     [propget, id(DISPID_IHTMLSTYLE_BORDERLEFTCOLOR)]
357     HRESULT borderLeftColor([retval, out] VARIANT *p);
358
359     [propput, id(DISPID_IHTMLSTYLE_BORDERWIDTH)]
360     HRESULT borderWidth([in] BSTR v);
361
362     [propget, id(DISPID_IHTMLSTYLE_BORDERWIDTH)]
363     HRESULT borderWidth([retval, out] BSTR *p);
364
365     [propput, id(DISPID_IHTMLSTYLE_BORDERTOPWIDTH)]
366     HRESULT borderTopWidth([in] VARIANT v);
367
368     [propget, id(DISPID_IHTMLSTYLE_BORDERTOPWIDTH)]
369     HRESULT borderTopWidth([retval, out] VARIANT *p);
370
371     [propput, id(DISPID_IHTMLSTYLE_BORDERRIGHTWIDTH)]
372     HRESULT borderRightWidth([in] VARIANT v);
373
374     [propget, id(DISPID_IHTMLSTYLE_BORDERRIGHTWIDTH)]
375     HRESULT borderRightWidth([retval, out] VARIANT *p);
376
377     [propput, id(DISPID_IHTMLSTYLE_BORDERBOTTOMWIDTH)]
378     HRESULT borderBottomWidth([in] VARIANT v);
379
380     [propget, id(DISPID_IHTMLSTYLE_BORDERBOTTOMWIDTH)]
381     HRESULT borderBottomWidth([retval, out] VARIANT *p);
382
383     [propput, id(DISPID_IHTMLSTYLE_BORDERLEFTWIDTH)]
384     HRESULT borderLeftWidth([in] VARIANT v);
385
386     [propget, id(DISPID_IHTMLSTYLE_BORDERLEFTWIDTH)]
387     HRESULT borderLeftWidth([retval, out] VARIANT *p);
388
389     [propput, id(DISPID_IHTMLSTYLE_BORDERSTYLE)]
390     HRESULT borderStyle([in] BSTR v);
391
392     [propget, id(DISPID_IHTMLSTYLE_BORDERSTYLE)]
393     HRESULT borderStyle([retval, out] BSTR *p);
394
395     [propput, id(DISPID_IHTMLSTYLE_BORDERTOPSTYLE)]
396     HRESULT borderTopStyle([in] BSTR v);
397
398     [propget, id(DISPID_IHTMLSTYLE_BORDERTOPSTYLE)]
399     HRESULT borderTopStyle([retval, out] BSTR *p);
400
401     [propput, id(DISPID_IHTMLSTYLE_BORDERRIGHTSTYLE)]
402     HRESULT borderRightStyle([in] BSTR v);
403
404     [propget, id(DISPID_IHTMLSTYLE_BORDERRIGHTSTYLE)]
405     HRESULT borderRightStyle([retval, out] BSTR *p);
406
407     [propput, id(DISPID_IHTMLSTYLE_BORDERBOTTOMSTYLE)]
408     HRESULT borderBottomStyle([in] BSTR v);
409
410     [propget, id(DISPID_IHTMLSTYLE_BORDERBOTTOMSTYLE)]
411     HRESULT borderBottomStyle([retval, out] BSTR *p);
412
413     [propput, id(DISPID_IHTMLSTYLE_BORDERLEFTSTYLE)]
414     HRESULT borderLeftStyle([in] BSTR v);
415
416     [propget, id(DISPID_IHTMLSTYLE_BORDERLEFTSTYLE)]
417     HRESULT borderLeftStyle([retval, out] BSTR *p);
418
419     [propput, id(DISPID_IHTMLSTYLE_WIDTH)]
420     HRESULT width([in] VARIANT v);
421
422     [propget, id(DISPID_IHTMLSTYLE_WIDTH)]
423     HRESULT width([retval, out] VARIANT *p);
424
425     [propput, id(DISPID_IHTMLSTYLE_HEIGHT)]
426     HRESULT height([in] VARIANT v);
427
428     [propget, id(DISPID_IHTMLSTYLE_HEIGHT)]
429     HRESULT height([retval, out] VARIANT *p);
430
431     [propput, id(DISPID_IHTMLSTYLE_STYLEFLOAT)]
432     HRESULT styleFloat([in] BSTR v);
433
434     [propget, id(DISPID_IHTMLSTYLE_STYLEFLOAT)]
435     HRESULT styleFloat([retval, out] BSTR *p);
436
437     [propput, id(DISPID_IHTMLSTYLE_CLEAR)]
438     HRESULT clear([in] BSTR v);
439
440     [propget, id(DISPID_IHTMLSTYLE_CLEAR)]
441     HRESULT clear([retval, out] BSTR *p);
442
443     [propput, id(DISPID_IHTMLSTYLE_DISPLAY)]
444     HRESULT display([in] BSTR v);
445
446     [propget, id(DISPID_IHTMLSTYLE_DISPLAY)]
447     HRESULT display([retval, out] BSTR *p);
448
449     [propput, id(DISPID_IHTMLSTYLE_VISIBILITY)]
450     HRESULT visibility([in] BSTR v);
451
452     [propget, id(DISPID_IHTMLSTYLE_VISIBILITY)]
453     HRESULT visibility([retval, out] BSTR *p);
454
455     [propput, id(DISPID_IHTMLSTYLE_LISTSTYLETYPE)]
456     HRESULT listStyleType([in] BSTR v);
457
458     [propget, id(DISPID_IHTMLSTYLE_LISTSTYLETYPE)]
459     HRESULT listStyleType([retval, out] BSTR *p);
460
461     [propput, id(DISPID_IHTMLSTYLE_LISTSTYLEPOSITION)]
462     HRESULT listStylePosition([in] BSTR v);
463
464     [propget, id(DISPID_IHTMLSTYLE_LISTSTYLEPOSITION)]
465     HRESULT listStylePosition([retval, out] BSTR *p);
466
467     [propput, id(DISPID_IHTMLSTYLE_LISTSTYLEIMAGE)]
468     HRESULT listStyleImage([in] BSTR v);
469
470     [propget, id(DISPID_IHTMLSTYLE_LISTSTYLEIMAGE)]
471     HRESULT listStyleImage([retval, out] BSTR *p);
472
473     [propput, id(DISPID_IHTMLSTYLE_LISTSTYLE)]
474     HRESULT listStyle([in] BSTR v);
475
476     [propget, id(DISPID_IHTMLSTYLE_LISTSTYLE)]
477     HRESULT listStyle([retval, out] BSTR *p);
478
479     [propput, id(DISPID_IHTMLSTYLE_WHITESPACE)]
480     HRESULT whiteSpace([in] BSTR v);
481
482     [propget, id(DISPID_IHTMLSTYLE_WHITESPACE)]
483     HRESULT whiteSpace([retval, out] BSTR *p);
484
485     [propput, id(DISPID_IHTMLSTYLE_TOP)]
486     HRESULT top([in] VARIANT v);
487
488     [propget, id(DISPID_IHTMLSTYLE_TOP)]
489     HRESULT top([retval, out] VARIANT *p);
490
491     [propput, id(DISPID_IHTMLSTYLE_LEFT)]
492     HRESULT left([in] VARIANT v);
493
494     [propget, id(DISPID_IHTMLSTYLE_LEFT)]
495     HRESULT left([retval, out] VARIANT *p);
496
497     [propget, id(DISPID_IHTMLSTYLE_POSITION)]
498     HRESULT position([retval, out] BSTR *p);
499
500     [propput, id(DISPID_IHTMLSTYLE_ZINDEX)]
501     HRESULT zIndex([in] VARIANT v);
502
503     [propget, id(DISPID_IHTMLSTYLE_ZINDEX)]
504     HRESULT zIndex([retval, out] VARIANT *p);
505
506     [propput, id(DISPID_IHTMLSTYLE_OVERFLOW)]
507     HRESULT overflow([in] BSTR v);
508
509     [propget, id(DISPID_IHTMLSTYLE_OVERFLOW)]
510     HRESULT overflow([retval, out] BSTR *p);
511
512     [propput, id(DISPID_IHTMLSTYLE_PAGEBREAKBEFORE)]
513     HRESULT pageBreakBefore([in] BSTR v);
514
515     [propget, id(DISPID_IHTMLSTYLE_PAGEBREAKBEFORE)]
516     HRESULT pageBreakBefore([retval, out] BSTR *p);
517
518     [propput, id(DISPID_IHTMLSTYLE_PAGEBREAKAFTER)]
519     HRESULT pageBreakAfter([in] BSTR v);
520
521     [propget, id(DISPID_IHTMLSTYLE_PAGEBREAKAFTER)]
522     HRESULT pageBreakAfter([retval, out] BSTR *p);
523
524     [propput, id(DISPID_IHTMLSTYLE_CSSTEXT)]
525     HRESULT cssText([in] BSTR v);
526
527     [propget, id(DISPID_IHTMLSTYLE_CSSTEXT)]
528     HRESULT cssText([retval, out] BSTR *p);
529
530     [propput, id(DISPID_IHTMLSTYLE_PIXELTOP)]
531     HRESULT pixelTop([in] long v);
532
533     [propget, id(DISPID_IHTMLSTYLE_PIXELTOP)]
534     HRESULT pixelTop([retval, out] long *p);
535
536     [propput, id(DISPID_IHTMLSTYLE_PIXELLEFT)]
537     HRESULT pixelLeft([in] long v);
538
539     [propget, id(DISPID_IHTMLSTYLE_PIXELLEFT)]
540     HRESULT pixelLeft([retval, out] long *p);
541
542     [propput, id(DISPID_IHTMLSTYLE_PIXELWIDTH)]
543     HRESULT pixelWidth([in] long v);
544
545     [propget, id(DISPID_IHTMLSTYLE_PIXELWIDTH)]
546     HRESULT pixelWidth([retval, out] long *p);
547
548     [propput, id(DISPID_IHTMLSTYLE_PIXELHEIGHT)]
549     HRESULT pixelHeight([in] long v);
550
551     [propget, id(DISPID_IHTMLSTYLE_PIXELHEIGHT)]
552     HRESULT pixelHeight([retval, out] long *p);
553
554     [propput, id(DISPID_IHTMLSTYLE_POSTOP)]
555     HRESULT posTop([in] float v);
556
557     [propget, id(DISPID_IHTMLSTYLE_POSTOP)]
558     HRESULT posTop([retval, out] float *p);
559
560     [propput, id(DISPID_IHTMLSTYLE_POSLEFT)]
561     HRESULT posLeft([in] float v);
562
563     [propget, id(DISPID_IHTMLSTYLE_POSLEFT)]
564     HRESULT posLeft([retval, out] float *p);
565
566     [propput, id(DISPID_IHTMLSTYLE_POSWIDTH)]
567     HRESULT posWidth([in] float v);
568
569     [propget, id(DISPID_IHTMLSTYLE_POSWIDTH)]
570     HRESULT posWidth([retval, out] float *p);
571
572     [propput, id(DISPID_IHTMLSTYLE_POSHEIGHT)]
573     HRESULT posHeight([in] float v);
574
575     [propget, id(DISPID_IHTMLSTYLE_POSHEIGHT)]
576     HRESULT posHeight([retval, out] float *p);
577
578     [propput, id(DISPID_IHTMLSTYLE_CURSOR)]
579     HRESULT cursor([in] BSTR v);
580
581     [propget, id(DISPID_IHTMLSTYLE_CURSOR)]
582     HRESULT cursor([retval, out] BSTR *p);
583
584     [propput, id(DISPID_IHTMLSTYLE_CLIP)]
585     HRESULT clip([in] BSTR v);
586
587     [propget, id(DISPID_IHTMLSTYLE_CLIP)]
588     HRESULT clip([retval, out] BSTR *p);
589
590     [propput, id(DISPID_IHTMLSTYLE_FILTER)]
591     HRESULT filter([in] BSTR v);
592
593     [propget, id(DISPID_IHTMLSTYLE_FILTER)]
594     HRESULT filter([retval, out] BSTR *p);
595
596     [id(DISPID_IHTMLSTYLE_SETATTRIBUTE)]
597     HRESULT setAttribute(
598         [in] BSTR strAttributeName,
599         [in] VARIANT AttributeValue,
600         [defaultvalue(1), in] LONG lFlags);
601
602     [id(DISPID_IHTMLSTYLE_GETATTRIBUTE)]
603     HRESULT getAttribute(
604         [in] BSTR strAttributeName,
605         [defaultvalue(0), in] LONG lFlags,
606         [retval, out] VARIANT *AttributeValue);
607
608     [id(DISPID_IHTMLSTYLE_REMOVEATTRIBUTE)]
609     HRESULT removeAttribute(
610         [in] BSTR strAttributeName,
611         [defaultvalue(1), in]
612         LONG lFlags,
613         [retval, out] VARIANT_BOOL *pfSuccess);
614
615     [id(DISPID_IHTMLSTYLE_TOSTRING)]
616     HRESULT toString([retval, out] BSTR *String);
617 }
618
619 /*****************************************************************************
620  *    IHTMLRuleStyle interface
621  */
622 [
623         odl,
624         oleautomation,
625         dual,
626         uuid(3050F3CF-98B5-11CF-BB82-00AA00BDCE0B)
627 ]
628 interface IHTMLRuleStyle : IDispatch
629 {
630     [propput, id(DISPID_IHTMLRULESTYLE_FONTFAMILY)]
631     HRESULT fontFamily([in] BSTR v);
632
633     [propget, id(DISPID_IHTMLRULESTYLE_FONTFAMILY)]
634     HRESULT fontFamily([retval, out] BSTR *p);
635
636     [propput, id(DISPID_IHTMLRULESTYLE_FONTSTYLE)]
637     HRESULT fontStyle([in] BSTR v);
638
639     [propget, id(DISPID_IHTMLRULESTYLE_FONTSTYLE)]
640     HRESULT fontStyle([retval, out] BSTR *p);
641
642     [propput, id(DISPID_IHTMLRULESTYLE_FONTVARIANT)]
643     HRESULT fontVariant([in] BSTR v);
644
645     [propget, id(DISPID_IHTMLRULESTYLE_FONTVARIANT)]
646     HRESULT fontVariant([retval, out] BSTR *p);
647
648     [propput, id(DISPID_IHTMLRULESTYLE_FONTWEIGHT)]
649     HRESULT fontWeight([in] BSTR v);
650
651     [propget, id(DISPID_IHTMLRULESTYLE_FONTWEIGHT)]
652     HRESULT fontWeight([retval, out] BSTR *p);
653
654     [propput, id(DISPID_IHTMLRULESTYLE_FONTSIZE)]
655     HRESULT fontSize([in] VARIANT v);
656
657     [propget, id(DISPID_IHTMLRULESTYLE_FONTSIZE)]
658     HRESULT fontSize([retval, out] VARIANT *p);
659
660     [propput, id(DISPID_IHTMLRULESTYLE_FONT)]
661     HRESULT font([in] BSTR v);
662
663     [propget, id(DISPID_IHTMLRULESTYLE_FONT)]
664     HRESULT font([retval, out] BSTR *p);
665
666     [propput, id(DISPID_IHTMLRULESTYLE_COLOR)]
667     HRESULT color([in] VARIANT v);
668
669     [propget, id(DISPID_IHTMLRULESTYLE_COLOR)]
670     HRESULT color([retval, out] VARIANT *p);
671
672     [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUND)]
673     HRESULT background([in] BSTR v);
674
675     [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUND)]
676     HRESULT background([retval, out] BSTR *p);
677
678     [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDCOLOR)]
679     HRESULT backgroundColor([in] VARIANT v);
680
681     [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDCOLOR)]
682     HRESULT backgroundColor([retval, out] VARIANT *p);
683
684     [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDIMAGE)]
685     HRESULT backgroundImage([in] BSTR v);
686
687     [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDIMAGE)]
688     HRESULT backgroundImage([retval, out] BSTR *p);
689
690     [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDREPEAT)]
691     HRESULT backgroundRepeat([in] BSTR v);
692
693     [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDREPEAT)]
694     HRESULT backgroundRepeat([retval, out] BSTR *p);
695
696     [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDATTACHMENT)]
697     HRESULT backgroundAttachment([in] BSTR v);
698
699     [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDATTACHMENT)]
700     HRESULT backgroundAttachment([retval, out] BSTR *p);
701
702     [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITION)]
703     HRESULT backgroundPosition([in] BSTR v);
704
705     [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITION)]
706     HRESULT backgroundPosition([retval, out] BSTR *p);
707
708     [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITIONX)]
709     HRESULT backgroundPositionX([in] VARIANT v);
710
711     [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITIONX)]
712     HRESULT backgroundPositionX([retval, out] VARIANT *p);
713
714     [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITIONY)]
715     HRESULT backgroundPositionY([in] VARIANT v);
716
717     [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITIONY)]
718     HRESULT backgroundPositionY([retval, out] VARIANT *p);
719
720     [propput, id(DISPID_IHTMLRULESTYLE_WORDSPACING)]
721     HRESULT wordSpacing([in] VARIANT v);
722
723     [propget, id(DISPID_IHTMLRULESTYLE_WORDSPACING)]
724     HRESULT wordSpacing([retval, out] VARIANT *p);
725
726     [propput, id(DISPID_IHTMLRULESTYLE_LETTERSPACING)]
727     HRESULT letterSpacing([in] VARIANT v);
728
729     [propget, id(DISPID_IHTMLRULESTYLE_LETTERSPACING)]
730     HRESULT letterSpacing([retval, out] VARIANT *p);
731
732     [propput, id(DISPID_IHTMLRULESTYLE_TEXTDECORATION)]
733     HRESULT textDecoration([in] BSTR v);
734
735     [propget, id(DISPID_IHTMLRULESTYLE_TEXTDECORATION)]
736     HRESULT textDecoration([retval, out] BSTR *p);
737
738     [propput, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONNONE)]
739     HRESULT textDecorationNone([in] VARIANT_BOOL v);
740
741     [propget, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONNONE)]
742     HRESULT textDecorationNone([retval, out] VARIANT_BOOL *p);
743
744     [propput, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONUNDERLINE)]
745     HRESULT textDecorationUnderline([in] VARIANT_BOOL v);
746
747     [propget, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONUNDERLINE)]
748     HRESULT textDecorationUnderline([retval, out] VARIANT_BOOL *p);
749
750     [propput, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONOVERLINE)]
751     HRESULT textDecorationOverline([in] VARIANT_BOOL v);
752
753     [propget, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONOVERLINE)]
754     HRESULT textDecorationOverline([retval, out] VARIANT_BOOL *p);
755
756     [propput, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONLINETHROUGH)]
757     HRESULT textDecorationLineThrough([in] VARIANT_BOOL v);
758
759     [propget, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONLINETHROUGH)]
760     HRESULT textDecorationLineThrough([retval, out] VARIANT_BOOL *p);
761
762     [propput, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONBLINK)]
763     HRESULT textDecorationBlink([in] VARIANT_BOOL v);
764
765     [propget, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONBLINK)]
766     HRESULT textDecorationBlink([retval, out] VARIANT_BOOL *p);
767
768     [propput, id(DISPID_IHTMLRULESTYLE_VERTICALALIGN)]
769     HRESULT verticalAlign([in] VARIANT v);
770
771     [propget, id(DISPID_IHTMLRULESTYLE_VERTICALALIGN)]
772     HRESULT verticalAlign([retval, out] VARIANT *p);
773
774     [propput, id(DISPID_IHTMLRULESTYLE_TEXTTRANSFORM)]
775     HRESULT textTransform([in] BSTR v);
776
777     [propget, id(DISPID_IHTMLRULESTYLE_TEXTTRANSFORM)]
778     HRESULT textTransform([retval, out] BSTR *p);
779
780     [propput, id(DISPID_IHTMLRULESTYLE_TEXTALIGN)]
781     HRESULT textAlign([in] BSTR v);
782
783     [propget, id(DISPID_IHTMLRULESTYLE_TEXTALIGN)]
784     HRESULT textAlign([retval, out] BSTR *p);
785
786     [propput, id(DISPID_IHTMLRULESTYLE_TEXTINDENT)]
787     HRESULT textIndent([in] VARIANT v);
788
789     [propget, id(DISPID_IHTMLRULESTYLE_TEXTINDENT)]
790     HRESULT textIndent([retval, out] VARIANT *p);
791
792     [propput, id(DISPID_IHTMLRULESTYLE_LINEHEIGHT)]
793     HRESULT lineHeight([in] VARIANT v);
794
795     [propget, id(DISPID_IHTMLRULESTYLE_LINEHEIGHT)]
796     HRESULT lineHeight([retval, out] VARIANT *p);
797
798     [propput, id(DISPID_IHTMLRULESTYLE_MARGINTOP)]
799     HRESULT marginTop([in] VARIANT v);
800
801     [propget, id(DISPID_IHTMLRULESTYLE_MARGINTOP)]
802     HRESULT marginTop([retval, out] VARIANT *p);
803
804     [propput, id(DISPID_IHTMLRULESTYLE_MARGINRIGHT)]
805     HRESULT marginRight([in] VARIANT v);
806
807     [propget, id(DISPID_IHTMLRULESTYLE_MARGINRIGHT)]
808     HRESULT marginRight([retval, out] VARIANT *p);
809
810     [propput, id(DISPID_IHTMLRULESTYLE_MARGINBOTTOM)]
811     HRESULT marginBottom([in] VARIANT v);
812
813     [propget, id(DISPID_IHTMLRULESTYLE_MARGINBOTTOM)]
814     HRESULT marginBottom([retval, out] VARIANT *p);
815
816     [propput, id(DISPID_IHTMLRULESTYLE_MARGINLEFT)]
817     HRESULT marginLeft([in] VARIANT v);
818
819     [propget, id(DISPID_IHTMLRULESTYLE_MARGINLEFT)]
820     HRESULT marginLeft([retval, out] VARIANT *p);
821
822     [propput, id(DISPID_IHTMLRULESTYLE_MARGIN)]
823     HRESULT margin([in] BSTR v);
824
825     [propget, id(DISPID_IHTMLRULESTYLE_MARGIN)]
826     HRESULT margin([retval, out] BSTR *p);
827
828     [propput, id(DISPID_IHTMLRULESTYLE_PADDINGTOP)]
829     HRESULT paddingTop([in] VARIANT v);
830
831     [propget, id(DISPID_IHTMLRULESTYLE_PADDINGTOP)]
832     HRESULT paddingTop([retval, out] VARIANT *p);
833
834     [propput, id(DISPID_IHTMLRULESTYLE_PADDINGRIGHT)]
835     HRESULT paddingRight([in] VARIANT v);
836
837     [propget, id(DISPID_IHTMLRULESTYLE_PADDINGRIGHT)]
838     HRESULT paddingRight([retval, out] VARIANT *p);
839
840     [propput, id(DISPID_IHTMLRULESTYLE_PADDINGBOTTOM)]
841     HRESULT paddingBottom([in] VARIANT v);
842
843     [propget, id(DISPID_IHTMLRULESTYLE_PADDINGBOTTOM)]
844     HRESULT paddingBottom([retval, out] VARIANT *p);
845
846     [propput, id(DISPID_IHTMLRULESTYLE_PADDINGLEFT)]
847     HRESULT paddingLeft([in] VARIANT v);
848
849     [propget, id(DISPID_IHTMLRULESTYLE_PADDINGLEFT)]
850     HRESULT paddingLeft([retval, out] VARIANT *p);
851
852     [propput, id(DISPID_IHTMLRULESTYLE_PADDING)]
853     HRESULT padding([in] BSTR v);
854
855     [propget, id(DISPID_IHTMLRULESTYLE_PADDING)]
856     HRESULT padding([retval, out] BSTR *p);
857
858     [propput, id(DISPID_IHTMLRULESTYLE_BORDER)]
859     HRESULT border([in] BSTR v);
860
861     [propget, id(DISPID_IHTMLRULESTYLE_BORDER)]
862     HRESULT border([retval, out] BSTR *p);
863
864     [propput, id(DISPID_IHTMLRULESTYLE_BORDERTOP)]
865     HRESULT borderTop([in] BSTR v);
866
867     [propget, id(DISPID_IHTMLRULESTYLE_BORDERTOP)]
868     HRESULT borderTop([retval, out] BSTR *p);
869
870     [propput, id(DISPID_IHTMLRULESTYLE_BORDERRIGHT)]
871     HRESULT borderRight([in] BSTR v);
872
873     [propget, id(DISPID_IHTMLRULESTYLE_BORDERRIGHT)]
874     HRESULT borderRight([retval, out] BSTR *p);
875
876     [propput, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOM)]
877     HRESULT borderBottom([in] BSTR v);
878
879     [propget, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOM)]
880     HRESULT borderBottom([retval, out] BSTR *p);
881
882     [propput, id(DISPID_IHTMLRULESTYLE_BORDERLEFT)]
883     HRESULT borderLeft([in] BSTR v);
884
885     [propget, id(DISPID_IHTMLRULESTYLE_BORDERLEFT)]
886     HRESULT borderLeft([retval, out] BSTR *p);
887
888     [propput, id(DISPID_IHTMLRULESTYLE_BORDERCOLOR)]
889     HRESULT borderColor([in] BSTR v);
890
891     [propget, id(DISPID_IHTMLRULESTYLE_BORDERCOLOR)]
892     HRESULT borderColor([retval, out] BSTR *p);
893
894     [propput, id(DISPID_IHTMLRULESTYLE_BORDERTOPCOLOR)]
895     HRESULT borderTopColor([in] VARIANT v);
896
897     [propget, id(DISPID_IHTMLRULESTYLE_BORDERTOPCOLOR)]
898     HRESULT borderTopColor([retval, out] VARIANT *p);
899
900     [propput, id(DISPID_IHTMLRULESTYLE_BORDERRIGHTCOLOR)]
901     HRESULT borderRightColor([in] VARIANT v);
902
903     [propget, id(DISPID_IHTMLRULESTYLE_BORDERRIGHTCOLOR)]
904     HRESULT borderRightColor([retval, out] VARIANT *p);
905
906     [propput, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOMCOLOR)]
907     HRESULT borderBottomColor([in] VARIANT v);
908
909     [propget, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOMCOLOR)]
910     HRESULT borderBottomColor([retval, out] VARIANT *p);
911
912     [propput, id(DISPID_IHTMLRULESTYLE_BORDERLEFTCOLOR)]
913     HRESULT borderLeftColor([in] VARIANT v);
914
915     [propget, id(DISPID_IHTMLRULESTYLE_BORDERLEFTCOLOR)]
916     HRESULT borderLeftColor([retval, out] VARIANT *p);
917
918     [propput, id(DISPID_IHTMLRULESTYLE_BORDERWIDTH)]
919     HRESULT borderWidth([in] BSTR v);
920
921     [propget, id(DISPID_IHTMLRULESTYLE_BORDERWIDTH)]
922     HRESULT borderWidth([retval, out] BSTR *p);
923
924     [propput, id(DISPID_IHTMLRULESTYLE_BORDERTOPWIDTH)]
925     HRESULT borderTopWidth([in] VARIANT v);
926
927     [propget, id(DISPID_IHTMLRULESTYLE_BORDERTOPWIDTH)]
928     HRESULT borderTopWidth([retval, out] VARIANT *p);
929
930     [propput, id(DISPID_IHTMLRULESTYLE_BORDERRIGHTWIDTH)]
931     HRESULT borderRightWidth([in] VARIANT v);
932
933     [propget, id(DISPID_IHTMLRULESTYLE_BORDERRIGHTWIDTH)]
934     HRESULT borderRightWidth([retval, out] VARIANT *p);
935
936     [propput, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOMWIDTH)]
937     HRESULT borderBottomWidth([in] VARIANT v);
938
939     [propget, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOMWIDTH)]
940     HRESULT borderBottomWidth([retval, out] VARIANT *p);
941
942     [propput, id(DISPID_IHTMLRULESTYLE_BORDERLEFTWIDTH)]
943     HRESULT borderLeftWidth([in] VARIANT v);
944
945     [propget, id(DISPID_IHTMLRULESTYLE_BORDERLEFTWIDTH)]
946     HRESULT borderLeftWidth([retval, out] VARIANT *p);
947
948     [propput, id(DISPID_IHTMLRULESTYLE_BORDERSTYLE)]
949     HRESULT borderStyle([in] BSTR v);
950
951     [propget, id(DISPID_IHTMLRULESTYLE_BORDERSTYLE)]
952     HRESULT borderStyle([retval, out] BSTR *p);
953
954     [propput, id(DISPID_IHTMLRULESTYLE_BORDERTOPSTYLE)]
955     HRESULT borderTopStyle([in] BSTR v);
956
957     [propget, id(DISPID_IHTMLRULESTYLE_BORDERTOPSTYLE)]
958     HRESULT borderTopStyle([retval, out] BSTR *p);
959
960     [propput, id(DISPID_IHTMLRULESTYLE_BORDERRIGHTSTYLE)]
961     HRESULT borderRightStyle([in] BSTR v);
962
963     [propget, id(DISPID_IHTMLRULESTYLE_BORDERRIGHTSTYLE)]
964     HRESULT borderRightStyle([retval, out] BSTR *p);
965
966     [propput, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOMSTYLE)]
967     HRESULT borderBottomStyle([in] BSTR v);
968
969     [propget, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOMSTYLE)]
970     HRESULT borderBottomStyle([retval, out] BSTR *p);
971
972     [propput, id(DISPID_IHTMLRULESTYLE_BORDERLEFTSTYLE)]
973     HRESULT borderLeftStyle([in] BSTR v);
974
975     [propget, id(DISPID_IHTMLRULESTYLE_BORDERLEFTSTYLE)]
976     HRESULT borderLeftStyle([retval, out] BSTR *p);
977
978     [propput, id(DISPID_IHTMLRULESTYLE_WIDTH)]
979     HRESULT width([in] VARIANT v);
980
981     [propget, id(DISPID_IHTMLRULESTYLE_WIDTH)]
982     HRESULT width([retval, out] VARIANT *p);
983
984     [propput, id(DISPID_IHTMLRULESTYLE_HEIGHT)]
985     HRESULT height([in] VARIANT v);
986
987     [propget, id(DISPID_IHTMLRULESTYLE_HEIGHT)]
988     HRESULT height([retval, out] VARIANT *p);
989
990     [propput, id(DISPID_IHTMLRULESTYLE_STYLEFLOAT)]
991     HRESULT styleFloat([in] BSTR v);
992
993     [propget, id(DISPID_IHTMLRULESTYLE_STYLEFLOAT)]
994     HRESULT styleFloat([retval, out] BSTR *p);
995
996     [propput, id(DISPID_IHTMLRULESTYLE_CLEAR)]
997     HRESULT clear([in] BSTR v);
998
999     [propget, id(DISPID_IHTMLRULESTYLE_CLEAR)]
1000     HRESULT clear([retval, out] BSTR *p);
1001
1002     [propput, id(DISPID_IHTMLRULESTYLE_DISPLAY)]
1003     HRESULT display([in] BSTR v);
1004
1005     [propget, id(DISPID_IHTMLRULESTYLE_DISPLAY)]
1006     HRESULT display([retval, out] BSTR *p);
1007
1008     [propput, id(DISPID_IHTMLRULESTYLE_VISIBILITY)]
1009     HRESULT visibility([in] BSTR v);
1010
1011     [propget, id(DISPID_IHTMLRULESTYLE_VISIBILITY)]
1012     HRESULT visibility([retval, out] BSTR *p);
1013
1014     [propput, id(DISPID_IHTMLRULESTYLE_LISTSTYLETYPE)]
1015     HRESULT listStyleType([in] BSTR v);
1016
1017     [propget, id(DISPID_IHTMLRULESTYLE_LISTSTYLETYPE)]
1018     HRESULT listStyleType([retval, out] BSTR *p);
1019
1020     [propput, id(DISPID_IHTMLRULESTYLE_LISTSTYLEPOSITION)]
1021     HRESULT listStylePosition([in] BSTR v);
1022
1023     [propget, id(DISPID_IHTMLRULESTYLE_LISTSTYLEPOSITION)]
1024     HRESULT listStylePosition([retval, out] BSTR *p);
1025
1026     [propput, id(DISPID_IHTMLRULESTYLE_LISTSTYLEIMAGE)]
1027     HRESULT listStyleImage([in] BSTR v);
1028
1029     [propget, id(DISPID_IHTMLRULESTYLE_LISTSTYLEIMAGE)]
1030     HRESULT listStyleImage([retval, out] BSTR *p);
1031
1032     [propput, id(DISPID_IHTMLRULESTYLE_LISTSTYLE)]
1033     HRESULT listStyle([in] BSTR v);
1034
1035     [propget, id(DISPID_IHTMLRULESTYLE_LISTSTYLE)]
1036     HRESULT listStyle([retval, out] BSTR *p);
1037
1038     [propput, id(DISPID_IHTMLRULESTYLE_WHITESPACE)]
1039     HRESULT whiteSpace([in] BSTR v);
1040
1041     [propget, id(DISPID_IHTMLRULESTYLE_WHITESPACE)]
1042     HRESULT whiteSpace([retval, out] BSTR *p);
1043
1044     [propput, id(DISPID_IHTMLRULESTYLE_TOP)]
1045     HRESULT top([in] VARIANT v);
1046
1047     [propget, id(DISPID_IHTMLRULESTYLE_TOP)]
1048     HRESULT top([retval, out] VARIANT *p);
1049
1050     [propput, id(DISPID_IHTMLRULESTYLE_LEFT)]
1051     HRESULT left([in] VARIANT v);
1052
1053     [propget, id(DISPID_IHTMLRULESTYLE_LEFT)]
1054     HRESULT left([retval, out] VARIANT *p);
1055
1056     [propget, id(DISPID_IHTMLRULESTYLE_POSITION)]
1057     HRESULT position([retval, out] BSTR *p);
1058
1059     [propput, id(DISPID_IHTMLRULESTYLE_ZINDEX)]
1060     HRESULT zIndex([in] VARIANT v);
1061
1062     [propget, id(DISPID_IHTMLRULESTYLE_ZINDEX)]
1063     HRESULT zIndex([retval, out] VARIANT *p);
1064
1065     [propput, id(DISPID_IHTMLRULESTYLE_OVERFLOW)]
1066     HRESULT overflow([in] BSTR v);
1067
1068     [propget, id(DISPID_IHTMLRULESTYLE_OVERFLOW)]
1069     HRESULT overflow([retval, out] BSTR *p);
1070
1071     [propput, id(DISPID_IHTMLRULESTYLE_PAGEBREAKBEFORE)]
1072     HRESULT pageBreakBefore([in] BSTR v);
1073
1074     [propget, id(DISPID_IHTMLRULESTYLE_PAGEBREAKBEFORE)]
1075     HRESULT pageBreakBefore([retval, out] BSTR *p);
1076
1077     [propput, id(DISPID_IHTMLRULESTYLE_PAGEBREAKAFTER)]
1078     HRESULT pageBreakAfter([in] BSTR v);
1079
1080     [propget, id(DISPID_IHTMLRULESTYLE_PAGEBREAKAFTER)]
1081     HRESULT pageBreakAfter([retval, out] BSTR *p);
1082
1083     [propput, id(DISPID_IHTMLRULESTYLE_CSSTEXT)]
1084     HRESULT cssText([in] BSTR v);
1085
1086     [propget, id(DISPID_IHTMLRULESTYLE_CSSTEXT)]
1087     HRESULT cssText([retval, out] BSTR *p);
1088
1089     [propput, id(DISPID_IHTMLRULESTYLE_CURSOR)]
1090     HRESULT cursor([in] BSTR v);
1091
1092     [propget, id(DISPID_IHTMLRULESTYLE_CURSOR)]
1093     HRESULT cursor([retval, out] BSTR *p);
1094
1095     [propput, id(DISPID_IHTMLRULESTYLE_CLIP)]
1096     HRESULT clip([in] BSTR v);
1097
1098     [propget, id(DISPID_IHTMLRULESTYLE_CLIP)]
1099     HRESULT clip([retval, out] BSTR *p);
1100
1101     [propput, id(DISPID_IHTMLRULESTYLE_FILTER)]
1102     HRESULT filter([in] BSTR v);
1103
1104     [propget, id(DISPID_IHTMLRULESTYLE_FILTER)]
1105     HRESULT filter([retval, out] BSTR *p);
1106
1107     [id(DISPID_IHTMLRULESTYLE_SETATTRIBUTE)]
1108     HRESULT setAttribute(
1109         [in] BSTR strAttributeName,
1110         [in] VARIANT AttributeValue,
1111         [defaultvalue(1), in] LONG lFlags);
1112
1113     [id(DISPID_IHTMLRULESTYLE_GETATTRIBUTE)]
1114     HRESULT getAttribute(
1115         [in] BSTR strAttributeName,
1116         [defaultvalue(0), in] LONG lFlags,
1117         [retval, out] VARIANT *AttributeValue);
1118
1119     [id(DISPID_IHTMLRULESTYLE_REMOVEATTRIBUTE)]
1120     HRESULT removeAttribute(
1121         [in] BSTR strAttributeName,
1122         [defaultvalue(1), in] LONG lFlags,
1123         [retval, out] VARIANT_BOOL *pfSuccess);
1124 }
1125
1126 /*****************************************************************************
1127  *    IHTMLRenderStyle interface
1128  */
1129 [
1130     odl,
1131     oleautomation,
1132     dual,
1133     uuid(3050f6ae-98b5-11cf-bb82-00aa00bdce0b)
1134 ]
1135 interface IHTMLRenderStyle : IDispatch
1136 {
1137     [propput, id(DISPID_IHTMLRENDERSTYLE_TEXTLINETHROUGHSTYLE), displaybind, bindable]
1138     HRESULT textLineThroughStyle([in] BSTR v);
1139
1140     [propget, id(DISPID_IHTMLRENDERSTYLE_TEXTLINETHROUGHSTYLE), displaybind, bindable]
1141     HRESULT textLineThroughStyle([retval, out] BSTR *p);
1142
1143     [propput, id(DISPID_IHTMLRENDERSTYLE_TEXTUNDERLINESTYLE), displaybind, bindable]
1144     HRESULT textUnderlineStyle([in] BSTR v);
1145
1146     [propget, id(DISPID_IHTMLRENDERSTYLE_TEXTUNDERLINESTYLE), displaybind, bindable]
1147     HRESULT textUnderlineStyle([retval, out] BSTR *p);
1148
1149     [propput, id(DISPID_IHTMLRENDERSTYLE_TEXTEFFECT), displaybind, bindable]
1150     HRESULT textEffect([in] BSTR v);
1151
1152     [propget, id(DISPID_IHTMLRENDERSTYLE_TEXTEFFECT), displaybind, bindable]
1153     HRESULT textEffect([retval, out] BSTR *p);
1154
1155     [propput, id(DISPID_IHTMLRENDERSTYLE_TEXTCOLOR), displaybind, bindable]
1156     HRESULT textColor([in] VARIANT v);
1157
1158     [propget, id(DISPID_IHTMLRENDERSTYLE_TEXTCOLOR), displaybind, bindable]
1159     HRESULT textColor([retval, out] VARIANT *p);
1160
1161     [propput, id(DISPID_IHTMLRENDERSTYLE_TEXTBACKGROUNDCOLOR), displaybind, bindable]
1162     HRESULT textBackgroundColor([in] VARIANT v);
1163
1164     [propget, id(DISPID_IHTMLRENDERSTYLE_TEXTBACKGROUNDCOLOR), displaybind, bindable]
1165     HRESULT textBackgroundColor([retval, out] VARIANT *p);
1166
1167     [propput, id(DISPID_IHTMLRENDERSTYLE_TEXTDECORATIONCOLOR), displaybind, bindable]
1168     HRESULT textDecorationColor([in] VARIANT v);
1169
1170     [propget, id(DISPID_IHTMLRENDERSTYLE_TEXTDECORATIONCOLOR), displaybind, bindable]
1171     HRESULT textDecorationColor([retval, out] VARIANT *p);
1172
1173     [propput, id(DISPID_IHTMLRENDERSTYLE_RENDERINGPRIORITY), displaybind, bindable]
1174     HRESULT renderingPriority([in] long v);
1175
1176     [propget, id(DISPID_IHTMLRENDERSTYLE_RENDERINGPRIORITY), displaybind, bindable]
1177     HRESULT renderingPriority([retval, out] long *p);
1178
1179     [propput, id(DISPID_IHTMLRENDERSTYLE_DEFAULTTEXTSELECTION), displaybind, bindable]
1180     HRESULT defaultTextSelection([in] BSTR v);
1181
1182     [propget, id(DISPID_IHTMLRENDERSTYLE_DEFAULTTEXTSELECTION), displaybind, bindable]
1183     HRESULT defaultTextSelection([retval, out] BSTR *p);
1184
1185     [propput, id(DISPID_IHTMLRENDERSTYLE_TEXTDECORATION), displaybind, bindable]
1186     HRESULT textDecoration([in] BSTR v);
1187
1188     [propget, id(DISPID_IHTMLRENDERSTYLE_TEXTDECORATION), displaybind, bindable]
1189     HRESULT textDecoration([retval, out] BSTR *p);
1190 }
1191
1192 /*****************************************************************************
1193  *    IHTMLDOMNode interface
1194  */
1195 [
1196     odl,
1197     oleautomation,
1198     dual,
1199     uuid(3050f5da-98b5-11cf-bb82-00aa00bdce0b)
1200 ]
1201 interface IHTMLDOMNode : IDispatch
1202 {
1203     [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)]
1204     HRESULT nodeType([retval, out] long *p);
1205
1206     [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)]
1207     HRESULT parentNode([retval, out] IHTMLDOMNode **p);
1208
1209     [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)]
1210     HRESULT hasChildNodes([retval, out] VARIANT_BOOL *fChildren);
1211
1212     [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)]
1213     HRESULT childNodes([retval, out] IDispatch **p);
1214
1215     [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)]
1216     HRESULT attributes([retval, out] IDispatch **p);
1217
1218     [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)]
1219     HRESULT insertBefore(
1220         [in] IHTMLDOMNode *newChild,
1221         [optional, in] VARIANT refChild,
1222         [retval, out] IHTMLDOMNode **node);
1223
1224     [id(DISPID_IHTMLDOMNODE_REMOVECHILD)]
1225     HRESULT removeChild(
1226         [in] IHTMLDOMNode *oldChild,
1227         [retval, out] IHTMLDOMNode **node);
1228
1229     [id(DISPID_IHTMLDOMNODE_REPLACECHILD)]
1230     HRESULT replaceChild(
1231         [in] IHTMLDOMNode *newChild,
1232         [in] IHTMLDOMNode *oldChild,
1233         [retval, out] IHTMLDOMNode **node);
1234
1235     [id(DISPID_IHTMLDOMNODE_CLONENODE)]
1236     HRESULT cloneNode(
1237         [in] VARIANT_BOOL fDeep,
1238         [retval, out] IHTMLDOMNode **clonedNode);
1239
1240     [id(DISPID_IHTMLDOMNODE_REMOVENODE)]
1241     HRESULT removeNode(
1242         [defaultvalue(0), in] VARIANT_BOOL fDeep,
1243         [retval, out] IHTMLDOMNode **removed);
1244
1245     [id(DISPID_IHTMLDOMNODE_SWAPNODE)]
1246     HRESULT swapNode(
1247         [in] IHTMLDOMNode *otherNode,
1248         [retval, out] IHTMLDOMNode **swappedNode);
1249
1250     [id(DISPID_IHTMLDOMNODE_REPLACENODE)]
1251     HRESULT replaceNode(
1252         [in] IHTMLDOMNode *replacement,
1253         [retval, out] IHTMLDOMNode **replaced);
1254
1255     [id(DISPID_IHTMLDOMNODE_APPENDCHILD)]
1256     HRESULT appendChild(
1257         [in] IHTMLDOMNode *newChild,
1258         [retval, out] IHTMLDOMNode **node);
1259
1260     [propget, id(DISPID_IHTMLDOMNODE_NODENAME)]
1261     HRESULT nodeName([retval, out] BSTR *p);
1262
1263     [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)]
1264     HRESULT nodeValue([in] VARIANT v);
1265
1266     [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)]
1267     HRESULT nodeValue([retval, out] VARIANT *p);
1268
1269     [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)]
1270     HRESULT firstChild([retval, out] IHTMLDOMNode **p);
1271
1272     [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)]
1273     HRESULT lastChild([retval, out] IHTMLDOMNode **p);
1274
1275     [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)]
1276     HRESULT previousSibling([retval, out] IHTMLDOMNode **p);
1277
1278     [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)]
1279     HRESULT nextSibling([retval, out] IHTMLDOMNode **p);
1280 }
1281
1282 /*****************************************************************************
1283  *    IHTMLDOMAttribute interface
1284  */
1285 [
1286     odl,
1287     oleautomation,
1288     dual,
1289     uuid(3050f4b0-98b5-11cf-bb82-00aa00bdce0b)
1290 ]
1291 interface IHTMLDOMAttribute : IDispatch
1292 {
1293     [propget, id(DISPID_IHTMLDOMATTRIBUTE_NODENAME)]
1294     HRESULT nodeName([retval, out] BSTR *p);
1295
1296     [propput, id(DISPID_IHTMLDOMATTRIBUTE_NODEVALUE)]
1297     HRESULT nodeValue([in] VARIANT v);
1298
1299     [propget, id(DISPID_IHTMLDOMATTRIBUTE_NODEVALUE)]
1300     HRESULT nodeValue([retval, out] VARIANT *p);
1301
1302     [propget, id(DISPID_IHTMLDOMATTRIBUTE_SPECIFIED)]
1303     HRESULT specified([retval, out] VARIANT_BOOL *p);
1304 }
1305
1306 /*****************************************************************************
1307  *    IHTMLDOMImplementation interface
1308  */
1309 [
1310     odl,
1311     oleautomation,
1312     dual,
1313     uuid(3050f80d-98b5-11cf-bb82-00aa00bdce0b)
1314 ]
1315 interface IHTMLDOMImplementation : IDispatch
1316 {
1317     [id(DISPID_IHTMLDOMIMPLEMENTATION_HASFEATURE)]
1318     HRESULT hasFeature(
1319         [in] BSTR bstrfeature,
1320         [optional, in] VARIANT version,
1321         [retval, out] VARIANT_BOOL *pfHasFeature);
1322 }
1323
1324 /*****************************************************************************
1325  *    IHTMLElement interface
1326  */
1327 [
1328     odl,
1329     dual,
1330     oleautomation,
1331     uuid(3050f1FF-98B5-11CF-BB82-00AA00BDCE0B)
1332 ]
1333 interface IHTMLElement : IDispatch
1334 {
1335     [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)]
1336     HRESULT setAttribute(
1337         [in] BSTR strAttributeName,
1338         [in] VARIANT AttributeValue,
1339         [defaultvalue(1), in] LONG lFlags);
1340
1341     [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)]
1342     HRESULT getAttribute(
1343         [in] BSTR strAttributeName,
1344         [defaultvalue(0), in] LONG lFlags,
1345         [retval, out] VARIANT *AttributeValue);
1346
1347     [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)]
1348     HRESULT removeAttribute(
1349         [in] BSTR strAttributeName,
1350         [defaultvalue(1), in] LONG lFlags,
1351         [retval, out] VARIANT_BOOL *pfSuccess);
1352
1353     [propput, id(DISPID_IHTMLELEMENT_CLASSNAME)]
1354     HRESULT className([in] BSTR v);
1355
1356     [propget, id(DISPID_IHTMLELEMENT_CLASSNAME)]
1357     HRESULT className([retval, out] BSTR *p);
1358
1359     [propput, id(DISPID_IHTMLELEMENT_ID)]
1360     HRESULT id([in] BSTR v);
1361
1362     [propget, id(DISPID_IHTMLELEMENT_ID)]
1363     HRESULT id([retval, out] BSTR *p);
1364
1365     [propget, id(DISPID_IHTMLELEMENT_TAGNAME)]
1366     HRESULT tagName([retval, out] BSTR *p);
1367
1368     [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)]
1369     HRESULT parentElement([retval, out] IHTMLElement **p);
1370
1371     [propget, id(DISPID_IHTMLELEMENT_STYLE)]
1372     HRESULT style([retval, out] IHTMLStyle **p);
1373
1374     [propput, id(DISPID_IHTMLELEMENT_ONHELP)]
1375     HRESULT onhelp([in] VARIANT v);
1376
1377     [propget, id(DISPID_IHTMLELEMENT_ONHELP)]
1378     HRESULT onhelp([retval, out] VARIANT *p);
1379
1380     [propput, id(DISPID_IHTMLELEMENT_ONCLICK)]
1381     HRESULT onclick([in] VARIANT v);
1382
1383     [propget, id(DISPID_IHTMLELEMENT_ONCLICK)]
1384     HRESULT onclick([retval, out] VARIANT *p);
1385
1386     [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK)]
1387     HRESULT ondblclick([in] VARIANT v);
1388
1389     [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK)]
1390     HRESULT ondblclick([retval, out] VARIANT *p);
1391
1392     [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN)]
1393     HRESULT onkeydown([in] VARIANT v);
1394
1395     [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN)]
1396     HRESULT onkeydown([retval, out] VARIANT *p);
1397
1398     [propput, id(DISPID_IHTMLELEMENT_ONKEYUP)]
1399     HRESULT onkeyup([in] VARIANT v);
1400     
1401     [propget, id(DISPID_IHTMLELEMENT_ONKEYUP)]
1402     HRESULT onkeyup([retval, out] VARIANT *p);
1403
1404     [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS)]
1405     HRESULT onkeypress([in] VARIANT v);
1406
1407     [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS)]
1408     HRESULT onkeypress([retval, out] VARIANT *p);
1409
1410     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT)]
1411     HRESULT onmouseout([in] VARIANT v);
1412
1413     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT)]
1414     HRESULT onmouseout([retval, out] VARIANT *p);
1415
1416     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER)]
1417     HRESULT onmouseover([in] VARIANT v);
1418
1419     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER)]
1420     HRESULT onmouseover([retval, out] VARIANT *p);
1421
1422     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE)]
1423     HRESULT onmousemove([in] VARIANT v);
1424
1425     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE)]
1426     HRESULT onmousemove([retval, out] VARIANT *p);
1427
1428     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN)]
1429     HRESULT onmousedown([in] VARIANT v);
1430
1431     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN)]
1432     HRESULT onmousedown([retval, out] VARIANT *p);
1433
1434     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP)]
1435     HRESULT onmouseup([in] VARIANT v);
1436
1437     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP)]
1438     HRESULT onmouseup([retval, out] VARIANT *p);
1439
1440     [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)]
1441     HRESULT document([retval, out] IDispatch **p);
1442
1443     [propput, id(DISPID_IHTMLELEMENT_TITLE)]
1444     HRESULT title([in] BSTR v);
1445
1446     [propget, id(DISPID_IHTMLELEMENT_TITLE)]
1447     HRESULT title([retval, out] BSTR *p);
1448
1449     [propput, id(DISPID_IHTMLELEMENT_LANGUAGE)]
1450     HRESULT language([in] BSTR v);
1451
1452     [propget, id(DISPID_IHTMLELEMENT_LANGUAGE)]
1453     HRESULT language([retval, out] BSTR *p);
1454
1455     [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART)]
1456     HRESULT onselectstart([in] VARIANT v);
1457
1458     [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART)]
1459     HRESULT onselectstart([retval, out] VARIANT *p);
1460
1461     [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)]
1462     HRESULT scrollIntoView([optional, in] VARIANT varargStart);
1463
1464     [id(DISPID_IHTMLELEMENT_CONTAINS)]
1465     HRESULT contains(
1466         [in] IHTMLElement *pChild,
1467         [retval, out] VARIANT_BOOL *pfResult);
1468
1469     [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX)]
1470     HRESULT sourceIndex([retval, out] long *p);
1471
1472     [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)]
1473     HRESULT recordNumber([retval, out] VARIANT *p);
1474
1475     [propput, id(DISPID_IHTMLELEMENT_LANG)]
1476     HRESULT lang([in] BSTR v);
1477
1478     [propget, id(DISPID_IHTMLELEMENT_LANG)]
1479     HRESULT lang([retval, out] BSTR *p);
1480
1481     [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)]
1482     HRESULT offsetLeft([retval, out] long *p);
1483
1484     [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)]
1485     HRESULT offsetTop([retval, out] long *p);
1486
1487     [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)]
1488     HRESULT offsetWidth([retval, out] long *p);
1489
1490     [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)]
1491     HRESULT offsetHeight([retval, out] long *p);
1492
1493     [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)]
1494     HRESULT offsetParent([retval, out] IHTMLElement **p);
1495
1496     [propput, id(DISPID_IHTMLELEMENT_INNERHTML)]
1497     HRESULT innerHTML([in] BSTR v);
1498
1499     [propget, id(DISPID_IHTMLELEMENT_INNERHTML)]
1500     HRESULT innerHTML([retval, out] BSTR *p);
1501
1502     [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)]
1503     HRESULT innerText([in] BSTR v);
1504
1505     [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)]
1506     HRESULT innerText([retval, out] BSTR *p);
1507
1508     [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)]
1509     HRESULT outerHTML([in] BSTR v);
1510
1511     [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)]
1512     HRESULT outerHTML([retval, out] BSTR *p);
1513
1514     [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
1515     HRESULT outerText([in] BSTR v);
1516
1517     [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
1518     HRESULT outerText([retval, out] BSTR *p);
1519
1520     [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)]
1521     HRESULT insertAdjacentHTML([in] BSTR where, [in] BSTR html);
1522
1523     [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)]
1524     HRESULT insertAdjacentText([in] BSTR where, [in] BSTR text);
1525
1526     [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)]
1527     HRESULT parentTextEdit([retval, out] IHTMLElement **p);
1528
1529     [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)]
1530     HRESULT isTextEdit([retval, out] VARIANT_BOOL *p);
1531
1532     [id(DISPID_IHTMLELEMENT_CLICK)]
1533     HRESULT click();
1534
1535     [propget, id(DISPID_IHTMLELEMENT_FILTERS)]
1536     HRESULT filters([retval, out] IHTMLFiltersCollection **p);
1537
1538     [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART)]
1539     HRESULT ondragstart([in] VARIANT v);
1540
1541     [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART)]
1542     HRESULT ondragstart([retval, out] VARIANT *p);
1543
1544     [id(DISPID_IHTMLELEMENT_TOSTRING)]
1545     HRESULT toString([retval, out] BSTR *String);
1546
1547     [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE)]
1548     HRESULT onbeforeupdate([in] VARIANT v);
1549
1550     [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE)]
1551     HRESULT onbeforeupdate([retval, out] VARIANT *p);
1552
1553     [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE)]
1554     HRESULT onafterupdate([in] VARIANT v);
1555
1556     [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE)]
1557     HRESULT onafterupdate([retval, out] VARIANT *p);
1558
1559     [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE)]
1560     HRESULT onerrorupdate([in] VARIANT v);
1561
1562     [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE)]
1563     HRESULT onerrorupdate([retval, out] VARIANT *p);
1564
1565     [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT)]
1566     HRESULT onrowexit([in] VARIANT v);
1567
1568     [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT)]
1569     HRESULT onrowexit([retval, out] VARIANT *p);
1570
1571     [propput, id(DISPID_IHTMLELEMENT_ONROWENTER)]
1572     HRESULT onrowenter([in] VARIANT v);
1573
1574     [propget, id(DISPID_IHTMLELEMENT_ONROWENTER)]
1575     HRESULT onrowenter([retval, out] VARIANT *p);
1576
1577     [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED)]
1578     HRESULT ondatasetchanged([in] VARIANT v);
1579
1580     [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED)]
1581     HRESULT ondatasetchanged([retval, out] VARIANT *p);
1582
1583     [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE)]
1584     HRESULT ondataavailable([in] VARIANT v);
1585
1586     [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE)]
1587     HRESULT ondataavailable([retval, out] VARIANT *p);
1588
1589     [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE)]
1590     HRESULT ondatasetcomplete([in] VARIANT v);
1591
1592     [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE)]
1593     HRESULT ondatasetcomplete([retval, out] VARIANT *p);
1594
1595     [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE)]
1596     HRESULT onfilterchange([in] VARIANT v);
1597
1598     [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE)]
1599     HRESULT onfilterchange([retval, out] VARIANT *p);
1600
1601     [propget, id(DISPID_IHTMLELEMENT_CHILDREN)]
1602     HRESULT children([retval, out] IDispatch **p);
1603
1604     [propget, id(DISPID_IHTMLELEMENT_ALL)]
1605     HRESULT all([retval, out] IDispatch **p);
1606 }
1607
1608 /*****************************************************************************
1609  *    IHTMLStyleSheetRule interface
1610  */
1611 [
1612     odl,
1613     oleautomation,
1614     dual,
1615     uuid(3050F357-98B5-11CF-BB82-00AA00BDCE0B)
1616 ]
1617 interface IHTMLStyleSheetRule : IDispatch
1618 {
1619     [propput, id(DISPID_IHTMLSTYLESHEETRULE_SELECTORTEXT)]
1620     HRESULT selectorText([in] BSTR v);
1621
1622     [propget, id(DISPID_IHTMLSTYLESHEETRULE_SELECTORTEXT)]
1623     HRESULT selectorText([retval, out] BSTR *p);
1624
1625     [propget, id(DISPID_IHTMLSTYLESHEETRULE_STYLE)]
1626     HRESULT style([retval, out] IHTMLRuleStyle **p);
1627
1628     [propget, id(DISPID_IHTMLSTYLESHEETRULE_READONLY)]
1629     HRESULT readOnly([retval, out] VARIANT_BOOL *p);
1630 }
1631
1632 /*****************************************************************************
1633  *    IHTMLStyleSheetRulesCollection interface
1634  */
1635 [
1636     odl,
1637     oleautomation,
1638     dual,
1639     uuid(3050F2E5-98B5-11Cf-BB82-00AA00BDCE0B)
1640 ]
1641 interface IHTMLStyleSheetRulesCollection : IDispatch
1642 {
1643     [propget, id(DISPID_IHTMLSTYLESHEETRULESCOLLECTION_LENGTH)]
1644     HRESULT length([retval, out] long *p);
1645
1646     [id(DISPID_IHTMLSTYLESHEETRULESCOLLECTION_ITEM)]
1647     HRESULT item(
1648         [in] long index,
1649         [retval, out] IHTMLStyleSheetRule **ppHTMLStyleSheetRule);
1650 }
1651
1652 /*****************************************************************************
1653  *    IHTMLStyleSheet interface
1654  */
1655 [
1656     odl,
1657     oleautomation,
1658     dual,
1659     uuid(3050F2E3-98B5-11CF-BB82-00AA00BDCE0B)
1660 ]
1661 interface IHTMLStyleSheet : IDispatch
1662 {
1663     [propput, id(DISPID_IHTMLSTYLESHEET_TITLE)]
1664     HRESULT title([in] BSTR v);
1665
1666     [propget, id(DISPID_IHTMLSTYLESHEET_TITLE)]
1667     HRESULT title([retval, out] BSTR *p);
1668
1669     [propget, id(DISPID_IHTMLSTYLESHEET_PARENTSTYLESHEET)]
1670     HRESULT parentStyleSheet([retval, out] IHTMLStyleSheet **p);
1671
1672     [propget, id(DISPID_IHTMLSTYLESHEET_OWNINGELEMENT)]
1673     HRESULT owningElement([retval, out] IHTMLElement **p);
1674
1675     [propput, id(DISPID_IHTMLSTYLESHEET_DISABLED)]
1676     HRESULT disabled([in] VARIANT_BOOL v);
1677
1678     [propget, id(DISPID_IHTMLSTYLESHEET_DISABLED)]
1679     HRESULT disabled([retval, out] VARIANT_BOOL *p);
1680
1681     [propget, id(DISPID_IHTMLSTYLESHEET_READONLY)]
1682     HRESULT readOnly([retval, out] VARIANT_BOOL *p);
1683
1684     [propget, id(DISPID_IHTMLSTYLESHEET_IMPORTS)]
1685     HRESULT imports([retval, out] IHTMLStyleSheetsCollection **p);
1686
1687     [propput, id(DISPID_IHTMLSTYLESHEET_HREF)]
1688     HRESULT href([in] BSTR v);
1689
1690     [propget, id(DISPID_IHTMLSTYLESHEET_HREF)]
1691     HRESULT href([retval, out] BSTR *p);
1692
1693     [propget, id(DISPID_IHTMLSTYLESHEET_TYPE)]
1694     HRESULT type([retval, out] BSTR *p);
1695
1696     [propget, id(DISPID_IHTMLSTYLESHEET_ID)]
1697     HRESULT id([retval, out] BSTR *p);
1698
1699     [id(DISPID_IHTMLSTYLESHEET_ADDIMPORT)]
1700     HRESULT addImport(
1701         [in] BSTR bstrURL,
1702         [defaultvalue(-1), in] long lIndex,
1703         [retval, out] long *plIndex);
1704
1705     [id(DISPID_IHTMLSTYLESHEET_ADDRULE)]
1706     HRESULT addRule(
1707         [in] BSTR bstrSelector,
1708         [in] BSTR bstrStyle,
1709         [defaultvalue(-1), in] long lIndex,
1710         [retval, out] long *plNewIndex);
1711
1712     [id(DISPID_IHTMLSTYLESHEET_REMOVEIMPORT)]
1713     HRESULT removeImport([in] long lIndex);
1714
1715     [id(DISPID_IHTMLSTYLESHEET_REMOVERULE)]
1716     HRESULT removeRule([in] long lIndex);
1717
1718     [propput, id(DISPID_IHTMLSTYLESHEET_MEDIA)]
1719     HRESULT media([in] BSTR v);
1720
1721     [propget, id(DISPID_IHTMLSTYLESHEET_MEDIA)]
1722     HRESULT media([retval, out] BSTR *p);
1723
1724     [propput, id(DISPID_IHTMLSTYLESHEET_CSSTEXT)]
1725     HRESULT cssText([in] BSTR v);
1726
1727     [propget, id(DISPID_IHTMLSTYLESHEET_CSSTEXT)]
1728     HRESULT cssText([retval, out] BSTR *p);
1729
1730     [propget, id(DISPID_IHTMLSTYLESHEET_RULES)]
1731     HRESULT rules([retval, out] IHTMLStyleSheetRulesCollection **p);
1732 }
1733
1734 /*****************************************************************************
1735  *    IHTMLStyleSheetsCollection interface
1736  */
1737 [
1738     odl,
1739     oleautomation,
1740     dual,
1741     uuid(3050F37E-98B5-11CF-BB82-00AA00BDCE0B)
1742 ]
1743 interface IHTMLStyleSheetsCollection : IDispatch
1744 {
1745     [propget, id(DISPID_IHTMLSTYLESHEETSCOLLECTION_LENGTH)]
1746     HRESULT length([retval, out] long *p);
1747
1748     [propget, id(DISPID_IHTMLSTYLESHEETSCOLLECTION__NEWENUM)]
1749     HRESULT _newEnum([retval, out] IUnknown **p);
1750
1751     [id(DISPID_IHTMLSTYLESHEETSCOLLECTION_ITEM)]
1752     HRESULT item(
1753         [in] VARIANT *pvarIndex,
1754         [retval, out] VARIANT *pvarResult);
1755 }
1756
1757 /*****************************************************************************
1758  *    IHTMLTxtRange interface
1759  */
1760 [
1761     odl,
1762     oleautomation,
1763     dual,
1764     uuid(3050f220-98b5-11cf-bb82-00aa00bdce0b)
1765 ]
1766 interface IHTMLTxtRange : IDispatch
1767 {
1768     [propget, id(DISPID_IHTMLTXTRANGE_HTMLTEXT)]
1769     HRESULT htmlText([retval, out] BSTR *p);
1770
1771     [propput, id(DISPID_IHTMLTXTRANGE_TEXT)]
1772     HRESULT text([in] BSTR v);
1773
1774     [propget, id(DISPID_IHTMLTXTRANGE_TEXT)]
1775     HRESULT text([retval, out] BSTR *p);
1776
1777     [id(DISPID_IHTMLTXTRANGE_PARENTELEMENT)]
1778     HRESULT parentElement([retval, out] IHTMLElement **parent);
1779
1780     [id(DISPID_IHTMLTXTRANGE_DUPLICATE)]
1781     HRESULT duplicate([retval, out] IHTMLTxtRange **Duplicate);
1782
1783     [id(DISPID_IHTMLTXTRANGE_INRANGE)]
1784     HRESULT inRange(
1785         [in] IHTMLTxtRange *Range,
1786         [retval, out] VARIANT_BOOL *InRange);
1787
1788     [id(DISPID_IHTMLTXTRANGE_ISEQUAL)]
1789     HRESULT isEqual(
1790         [in] IHTMLTxtRange *Range,
1791         [retval, out] VARIANT_BOOL *IsEqual);
1792
1793     [id(DISPID_IHTMLTXTRANGE_SCROLLINTOVIEW)]
1794     HRESULT scrollIntoView([defaultvalue(-1), in] VARIANT_BOOL fStart);
1795
1796     [id(DISPID_IHTMLTXTRANGE_COLLAPSE)]
1797     HRESULT collapse([defaultvalue(-1), in] VARIANT_BOOL Start);
1798
1799     [id(DISPID_IHTMLTXTRANGE_EXPAND)]
1800     HRESULT expand(
1801         [in] BSTR Unit,
1802         [retval, out] VARIANT_BOOL *Success);
1803
1804     [id(DISPID_IHTMLTXTRANGE_MOVE)]
1805     HRESULT move(
1806         [in] BSTR Unit,
1807         [defaultvalue(1), in] long Count,
1808         [retval, out] long *ActualCount);
1809
1810     [id(DISPID_IHTMLTXTRANGE_MOVESTART)]
1811     HRESULT moveStart(
1812         [in] BSTR Unit,
1813         [defaultvalue(1), in] long Count,
1814         [retval, out] long *ActualCount);
1815
1816     [id(DISPID_IHTMLTXTRANGE_MOVEEND)]
1817     HRESULT moveEnd(
1818         [in] BSTR Unit,
1819         [defaultvalue(1), in] long Count,
1820         [retval, out] long *ActualCount);
1821
1822     [id(DISPID_IHTMLTXTRANGE_SELECT)]
1823     HRESULT select();
1824
1825     [id(DISPID_IHTMLTXTRANGE_PASTEHTML)]
1826     HRESULT pasteHTML([in] BSTR html);
1827
1828     [id(DISPID_IHTMLTXTRANGE_MOVETOELEMENTTEXT)]
1829     HRESULT moveToElementText([in] IHTMLElement *element);
1830
1831     [id(DISPID_IHTMLTXTRANGE_SETENDPOINT)]
1832     HRESULT setEndPoint(
1833         [in] BSTR how,
1834         [in] IHTMLTxtRange *SourceRange);
1835
1836     [id(DISPID_IHTMLTXTRANGE_COMPAREENDPOINTS)]
1837     HRESULT compareEndPoints(
1838         [in] BSTR how,
1839         [in] IHTMLTxtRange *SourceRange,
1840         [retval, out] long *ret);
1841
1842     [id(DISPID_IHTMLTXTRANGE_FINDTEXT)]
1843     HRESULT findText(
1844         [in] BSTR String,
1845         [defaultvalue(1073741823), in] long count,
1846         [defaultvalue(0), in] long Flags,
1847         [retval, out] VARIANT_BOOL *Success);
1848
1849     [id(DISPID_IHTMLTXTRANGE_MOVETOPOINT)]
1850     HRESULT moveToPoint(
1851         [in] long x,
1852         [in] long y);
1853
1854     [id(DISPID_IHTMLTXTRANGE_GETBOOKMARK)]
1855     HRESULT getBookmark([retval, out] BSTR *Boolmark);
1856
1857     [id(DISPID_IHTMLTXTRANGE_MOVETOBOOKMARK)]
1858     HRESULT moveToBookmark(
1859         [in] BSTR Bookmark,
1860         [retval, out] VARIANT_BOOL *Success);
1861
1862     [id(DISPID_IHTMLTXTRANGE_QUERYCOMMANDSUPPORTED)]
1863     HRESULT queryCommandSupported(
1864         [in] BSTR cmdID,
1865         [retval, out] VARIANT_BOOL *pfRet);
1866
1867     [id(DISPID_IHTMLTXTRANGE_QUERYCOMMANDENABLED)]
1868     HRESULT queryCommandEnabled(
1869         [in] BSTR cmdID,
1870         [retval, out] VARIANT_BOOL *pfRet);
1871
1872     [id(DISPID_IHTMLTXTRANGE_QUERYCOMMANDSTATE)]
1873     HRESULT queryCommandState(
1874         [in] BSTR cmdID,
1875         [retval, out] VARIANT_BOOL *pfRet);
1876
1877     [id(DISPID_IHTMLTXTRANGE_QUERYCOMMANDINDETERM)]
1878     HRESULT queryCommandIndeterm(
1879         [in] BSTR cmdID,
1880         [retval, out] VARIANT_BOOL *pfRet);
1881
1882     [id(DISPID_IHTMLTXTRANGE_QUERYCOMMANDTEXT)]
1883     HRESULT queryCommandText(
1884         [in] BSTR cmdID,
1885         [retval, out] BSTR *pcmdText);
1886
1887     [id(DISPID_IHTMLTXTRANGE_QUERYCOMMANDVALUE)]
1888     HRESULT queryCommandValue(
1889         [in] BSTR cmdID,
1890         [retval, out] VARIANT *pcmdValue);
1891
1892     [id(DISPID_IHTMLTXTRANGE_EXECCOMMAND)]
1893     HRESULT execCommand(
1894         [in] BSTR cmdID,
1895         [defaultvalue(0), in] VARIANT_BOOL showUI,
1896         [optional, in] VARIANT value,
1897         [retval, out] VARIANT_BOOL *pfRet);
1898
1899     [id(DISPID_IHTMLTXTRANGE_EXECCOMMANDSHOWHELP)]
1900     HRESULT execCommandShowHelp(
1901         [in] BSTR cmdID,
1902         [retval, out] VARIANT_BOOL *pfRet);
1903 }
1904
1905 /*****************************************************************************
1906  *    IHTMLFormElement interface
1907  */
1908 [
1909     odl,
1910     oleautomation,
1911     dual,
1912     uuid(3050F1F7-98B5-11CF-BB82-00AA00BDCE0B)
1913 ]
1914 interface IHTMLFormElement : IDispatch
1915 {
1916     [propput, id(DISPID_IHTMLFORMELEMENT_ACTION)]
1917     HRESULT action([in] BSTR v);
1918
1919     [propget, id(DISPID_IHTMLFORMELEMENT_ACTION)]
1920     HRESULT action([retval, out] BSTR *p);
1921
1922     [propput, id(DISPID_IHTMLFORMELEMENT_DIR)]
1923     HRESULT dir([in] BSTR v);
1924
1925     [propget, id(DISPID_IHTMLFORMELEMENT_DIR)]
1926     HRESULT dir([retval, out] BSTR *p);
1927
1928     [propput, id(DISPID_IHTMLFORMELEMENT_ENCODING)]
1929     HRESULT encoding([in] BSTR v);
1930
1931     [propget, id(DISPID_IHTMLFORMELEMENT_ENCODING)]
1932     HRESULT encoding([retval, out] BSTR *p);
1933
1934     [propput, id(DISPID_IHTMLFORMELEMENT_METHOD)]
1935     HRESULT method([in] BSTR v);
1936
1937     [propget, id(DISPID_IHTMLFORMELEMENT_METHOD)]
1938     HRESULT method([retval, out] BSTR *p);
1939
1940     [propget, id(DISPID_IHTMLFORMELEMENT_ELEMENTS)]
1941     HRESULT elements([retval, out] IDispatch **p);
1942
1943     [propput, id(DISPID_IHTMLFORMELEMENT_TARGET)]
1944     HRESULT target([in] BSTR v);
1945
1946     [propget, id(DISPID_IHTMLFORMELEMENT_TARGET)]
1947     HRESULT target([retval, out] BSTR *p);
1948
1949     [propput, id(DISPID_IHTMLFORMELEMENT_NAME)]
1950     HRESULT name([in] BSTR v);
1951
1952     [propget, id(DISPID_IHTMLFORMELEMENT_NAME)]
1953     HRESULT name([retval, out] BSTR *p);
1954
1955     [propput, id(DISPID_IHTMLFORMELEMENT_ONSUBMIT)]
1956     HRESULT onsubmit([in] VARIANT v);
1957
1958     [propget, id(DISPID_IHTMLFORMELEMENT_ONSUBMIT)]
1959     HRESULT onsubmit([retval, out] VARIANT *p);
1960
1961     [propput, id(DISPID_IHTMLFORMELEMENT_ONRESET)]
1962     HRESULT onreset([in] VARIANT v);
1963
1964     [propget, id(DISPID_IHTMLFORMELEMENT_ONRESET)]
1965     HRESULT onreset([retval, out] VARIANT *p);
1966
1967     [id(DISPID_IHTMLFORMELEMENT_SUBMIT)]
1968     HRESULT submit();
1969
1970     [id(DISPID_IHTMLFORMELEMENT_RESET)]
1971     HRESULT reset();
1972
1973     [propput, id(DISPID_IHTMLFORMELEMENT_LENGTH)]
1974     HRESULT length([in] long v);
1975
1976     [propget, id(DISPID_IHTMLFORMELEMENT_LENGTH)]
1977     HRESULT length([retval, out] long *p);
1978
1979     [propget, id(DISPID_IHTMLFORMELEMENT__NEWENUM)]
1980     HRESULT _newEnum([retval, out] IUnknown **p);
1981
1982     [id(DISPID_IHTMLFORMELEMENT_ITEM)]
1983     HRESULT item(
1984         [optional, in] VARIANT name,
1985         [optional, in] VARIANT index,
1986         [retval, out] IDispatch **pdisp);
1987
1988     [id(DISPID_IHTMLFORMELEMENT_TAGS)]
1989     HRESULT tags(
1990         [in] VARIANT tagName,
1991         [retval, out] IDispatch **pdisp);
1992 }
1993
1994 /*****************************************************************************
1995  *    IHTMLImgElement interface
1996  */
1997 [
1998     odl,
1999     oleautomation,
2000     dual,
2001     uuid(3050F240-98B5-11CF-BB82-00AA00BDCE0B)
2002 ]
2003 interface IHTMLImgElement : IDispatch
2004 {
2005     [propput, id(DISPID_IHTMLIMGELEMENT_ISMAP)]
2006     HRESULT isMap([in] VARIANT_BOOL v);
2007
2008     [propget, id(DISPID_IHTMLIMGELEMENT_ISMAP)]
2009     HRESULT isMap([retval, out] VARIANT_BOOL *p);
2010
2011     [propput, id(DISPID_IHTMLIMGELEMENT_USEMAP)]
2012     HRESULT useMap([in] BSTR v);
2013
2014     [propget, id(DISPID_IHTMLIMGELEMENT_USEMAP)]
2015     HRESULT useMap([retval, out] BSTR *p);
2016
2017     [propget, id(DISPID_IHTMLIMGELEMENT_MIMETYPE)]
2018     HRESULT mimeType([retval, out] BSTR *p);
2019
2020     [propget, id(DISPID_IHTMLIMGELEMENT_FILESIZE)]
2021     HRESULT fileSize([retval, out] BSTR *p);
2022
2023     [propget, id(DISPID_IHTMLIMGELEMENT_FILECREATEDDATE)]
2024     HRESULT fileCreatedDate([retval, out] BSTR *p);
2025
2026     [propget, id(DISPID_IHTMLIMGELEMENT_FILEMODIFIEDDATE)]
2027     HRESULT fileModifiedDate([retval, out] BSTR *p);
2028
2029     [propget, id(DISPID_IHTMLIMGELEMENT_FILEUPDATEDDATE)]
2030     HRESULT fileUpdatedDate([retval, out] BSTR *p);
2031
2032     [propget, id(DISPID_IHTMLIMGELEMENT_PROTOCOL)]
2033     HRESULT protocol([retval, out] BSTR *p);
2034
2035     [propget, id(DISPID_IHTMLIMGELEMENT_HREF)]
2036     HRESULT href([retval, out] BSTR *p);
2037
2038     [propget, id(DISPID_IHTMLIMGELEMENT_NAMEPROP)]
2039     HRESULT nameProp([retval, out] BSTR *p);
2040
2041     [propput, id(DISPID_IHTMLIMGELEMENT_BORDER)]
2042     HRESULT border([in] VARIANT v);
2043
2044     [propget, id(DISPID_IHTMLIMGELEMENT_BORDER)]
2045     HRESULT border([retval, out] VARIANT *p);
2046
2047     [propput, id(DISPID_IHTMLIMGELEMENT_VSPACE)]
2048     HRESULT vspace([in] long v);
2049
2050     [propget, id(DISPID_IHTMLIMGELEMENT_VSPACE)]
2051     HRESULT vspace([retval, out] long *p);
2052
2053     [propput, id(DISPID_IHTMLIMGELEMENT_HSPACE)]
2054     HRESULT hspace([in] long v);
2055
2056     [propget, id(DISPID_IHTMLIMGELEMENT_HSPACE)]
2057     HRESULT hspace([retval, out] long *p);
2058
2059     [propput, id(DISPID_IHTMLIMGELEMENT_ALT)]
2060     HRESULT alt([in] BSTR v);
2061
2062     [propget, id(DISPID_IHTMLIMGELEMENT_ALT)]
2063     HRESULT alt([retval, out] BSTR *p);
2064
2065     [propput, id(DISPID_IHTMLIMGELEMENT_SRC)]
2066     HRESULT src([in] BSTR v);
2067
2068     [propget, id(DISPID_IHTMLIMGELEMENT_SRC)]
2069     HRESULT src([retval, out] BSTR *p);
2070
2071     [propput, id(DISPID_IHTMLIMGELEMENT_LOWSRC)]
2072     HRESULT lowsrc([in] BSTR v);
2073
2074     [propget, id(DISPID_IHTMLIMGELEMENT_LOWSRC)]
2075     HRESULT lowsrc([retval, out] BSTR *p);
2076
2077     [propput, id(DISPID_IHTMLIMGELEMENT_VRML)]
2078     HRESULT vrml([in] BSTR v);
2079
2080     [propget, id(DISPID_IHTMLIMGELEMENT_VRML)]
2081     HRESULT vrml([retval, out] BSTR *p);
2082
2083     [propput, id(DISPID_IHTMLIMGELEMENT_DYNSRC)]
2084     HRESULT dynsrc([in] BSTR v);
2085
2086     [propget, id(DISPID_IHTMLIMGELEMENT_DYNSRC)]
2087     HRESULT dynsrc([retval, out] BSTR *p);
2088
2089     [propget, id(DISPID_IHTMLIMGELEMENT_READYSTATE)]
2090     HRESULT readyState([retval, out] BSTR *p);
2091
2092     [propget, id(DISPID_IHTMLIMGELEMENT_COMPLETE)]
2093     HRESULT complete([retval, out] VARIANT_BOOL *p);
2094
2095     [propput, id(DISPID_IHTMLIMGELEMENT_LOOP)]
2096     HRESULT loop([in] VARIANT v);
2097
2098     [propget, id(DISPID_IHTMLIMGELEMENT_LOOP)]
2099     HRESULT loop([retval, out] VARIANT *p);
2100
2101     [propput, id(DISPID_IHTMLIMGELEMENT_ALIGN)]
2102     HRESULT align([in] BSTR v);
2103
2104     [propget, id(DISPID_IHTMLIMGELEMENT_ALIGN)]
2105     HRESULT align([retval, out] BSTR *p);
2106
2107     [propput, id(DISPID_IHTMLIMGELEMENT_ONLOAD)]
2108     HRESULT onload([in] VARIANT v);
2109
2110     [propget, id(DISPID_IHTMLIMGELEMENT_ONLOAD)]
2111     HRESULT onload([retval, out] VARIANT *p);
2112
2113     [propput, id(DISPID_IHTMLIMGELEMENT_ONERROR)]
2114     HRESULT onerror([in] VARIANT v);
2115
2116     [propget, id(DISPID_IHTMLIMGELEMENT_ONERROR)]
2117     HRESULT onerror([retval, out] VARIANT *p);
2118
2119     [propput, id(DISPID_IHTMLIMGELEMENT_ONABORT)]
2120     HRESULT onabort([in] VARIANT v);
2121
2122     [propget, id(DISPID_IHTMLIMGELEMENT_ONABORT)]
2123     HRESULT onabort([retval, out] VARIANT *p);
2124
2125     [propput, id(DISPID_IHTMLIMGELEMENT_NAME)]
2126     HRESULT name([in] BSTR v);
2127
2128     [propget, id(DISPID_IHTMLIMGELEMENT_NAME)]
2129     HRESULT name([retval, out] BSTR *p);
2130
2131     [propput, id(DISPID_IHTMLIMGELEMENT_WIDTH)]
2132     HRESULT width([in] long v);
2133
2134     [propget, id(DISPID_IHTMLIMGELEMENT_WIDTH)]
2135     HRESULT width([retval, out] long *p);
2136
2137     [propput, id(DISPID_IHTMLIMGELEMENT_HEIGHT)]
2138     HRESULT height([in] long v);
2139
2140     [propget, id(DISPID_IHTMLIMGELEMENT_HEIGHT)]
2141     HRESULT height([retval, out] long *p);
2142
2143     [propput, id(DISPID_IHTMLIMGELEMENT_START)]
2144     HRESULT start([in] BSTR v);
2145
2146     [propget, id(DISPID_IHTMLIMGELEMENT_START)]
2147     HRESULT start([retval, out] BSTR *p);
2148 }
2149
2150 /*****************************************************************************
2151  *    IHTMLImageElementFactory interface
2152  */
2153 [
2154     odl,
2155     oleautomation,
2156     dual,
2157     uuid(3050F38E-98B5-11CF-BB82-00AAA0BDCE0B)
2158 ]
2159 interface IHTMLImageElementFactory : IDispatch
2160 {
2161     [id(DISPID_IHTMLIMAGEELEMENTFACTORY_CREATE)]
2162     HRESULT create(
2163         [optional, in] VARIANT width,
2164         [optional, in] VARIANT height,
2165         [retval, out]  IHTMLImgElement **elem);
2166 }
2167
2168 /*****************************************************************************
2169  *    IHTMLBodyElement interface
2170  */
2171 [
2172     odl,
2173     oleautomation,
2174     dual,
2175     uuid(3050f1d8-98b5-11cf-bb82-00aa00bdce0b)
2176 ]
2177 interface IHTMLBodyElement : IDispatch
2178 {
2179     [propput, id(DISPID_IHTMLBODYELEMENT_BACKGROUND), displaybind, bindable]
2180     HRESULT background([in] BSTR v);
2181
2182     [propget, id(DISPID_IHTMLBODYELEMENT_BACKGROUND), displaybind, bindable]
2183     HRESULT background([retval, out] BSTR *p);
2184
2185     [propput, id(DISPID_IHTMLBODYELEMENT_BGPROPERTIES), displaybind, bindable]
2186     HRESULT bgProperties([in] BSTR v);
2187
2188     [propget, id(DISPID_IHTMLBODYELEMENT_BGPROPERTIES), displaybind, bindable]
2189     HRESULT bgProperties([retval, out] BSTR *p);
2190
2191     [propput, id(DISPID_IHTMLBODYELEMENT_LEFTMARGIN), displaybind, bindable]
2192     HRESULT leftMargin([in] VARIANT v);
2193
2194     [propget, id(DISPID_IHTMLBODYELEMENT_LEFTMARGIN), displaybind, bindable]
2195     HRESULT leftMargin([retval, out] VARIANT *p);
2196
2197     [propput, id(DISPID_IHTMLBODYELEMENT_TOPMARGIN), displaybind, bindable]
2198     HRESULT topMargin([in] VARIANT v);
2199
2200     [propget, id(DISPID_IHTMLBODYELEMENT_TOPMARGIN), displaybind, bindable]
2201     HRESULT topMargin([retval, out] VARIANT *p);
2202
2203     [propput, id(DISPID_IHTMLBODYELEMENT_RIGHTMARGIN), displaybind, bindable]
2204     HRESULT rightMargin([in] VARIANT v);
2205
2206     [propget, id(DISPID_IHTMLBODYELEMENT_RIGHTMARGIN), displaybind, bindable]
2207     HRESULT rightMargin([retval, out] VARIANT *p);
2208
2209     [propput, id(DISPID_IHTMLBODYELEMENT_BOTTOMMARGIN), displaybind, bindable]
2210     HRESULT bottomMargin([in] VARIANT v);
2211
2212     [propget, id(DISPID_IHTMLBODYELEMENT_BOTTOMMARGIN), displaybind, bindable]
2213     HRESULT bottomMargin([retval, out] VARIANT *p);
2214
2215     [propput, id(DISPID_IHTMLBODYELEMENT_NOWRAP), displaybind, bindable]
2216     HRESULT noWrap([in] VARIANT_BOOL v);
2217
2218     [propget, id(DISPID_IHTMLBODYELEMENT_NOWRAP), displaybind, bindable]
2219     HRESULT noWrap([retval, out] VARIANT_BOOL *p);
2220
2221     [propput, id(DISPID_IHTMLBODYELEMENT_BGCOLOR), displaybind, bindable]
2222     HRESULT bgColor([in] VARIANT v);
2223
2224     [propget, id(DISPID_IHTMLBODYELEMENT_BGCOLOR), displaybind, bindable]
2225     HRESULT bgColor([retval, out] VARIANT *p);
2226
2227     [propput, id(DISPID_IHTMLBODYELEMENT_TEXT), displaybind, bindable]
2228     HRESULT text([in] VARIANT v);
2229
2230     [propget, id(DISPID_IHTMLBODYELEMENT_TEXT), displaybind, bindable]
2231     HRESULT text([retval, out] VARIANT *p);
2232
2233     [propput, id(DISPID_IHTMLBODYELEMENT_LINK), displaybind, bindable]
2234     HRESULT link([in] VARIANT v);
2235
2236     [propget, id(DISPID_IHTMLBODYELEMENT_LINK), displaybind, bindable]
2237     HRESULT link([retval, out] VARIANT *p);
2238
2239     [propput, id(DISPID_IHTMLBODYELEMENT_VLINK), displaybind, bindable]
2240     HRESULT vLink([in] VARIANT v);
2241
2242     [propget, id(DISPID_IHTMLBODYELEMENT_VLINK), displaybind, bindable]
2243     HRESULT vLink([retval, out] VARIANT *p);
2244
2245     [propput, id(DISPID_IHTMLBODYELEMENT_ALINK), displaybind, bindable]
2246     HRESULT aLink([in] VARIANT v);
2247
2248     [propget, id(DISPID_IHTMLBODYELEMENT_ALINK), displaybind, bindable]
2249     HRESULT aLink([retval, out] VARIANT *p);
2250
2251     [propput, id(DISPID_IHTMLBODYELEMENT_ONLOAD), displaybind, bindable]
2252     HRESULT onload([in] VARIANT v);
2253
2254     [propget, id(DISPID_IHTMLBODYELEMENT_ONLOAD), displaybind, bindable]
2255     HRESULT onload([retval, out] VARIANT *p);
2256
2257     [propput, id(DISPID_IHTMLBODYELEMENT_ONUNLOAD), displaybind, bindable]
2258     HRESULT onunload([in] VARIANT v);
2259
2260     [propget, id(DISPID_IHTMLBODYELEMENT_ONUNLOAD), displaybind, bindable]
2261     HRESULT onunload([retval, out] VARIANT *p);
2262
2263     [propput, id(DISPID_IHTMLBODYELEMENT_SCROLL), displaybind, bindable]
2264     HRESULT scroll([in] BSTR v);
2265
2266     [propget, id(DISPID_IHTMLBODYELEMENT_SCROLL), displaybind, bindable]
2267     HRESULT scroll([retval, out] BSTR *p);
2268
2269     [propput, id(DISPID_IHTMLBODYELEMENT_ONSELECT), displaybind, bindable]
2270     HRESULT onselect([in] VARIANT v);
2271
2272     [propget, id(DISPID_IHTMLBODYELEMENT_ONSELECT), displaybind, bindable]
2273     HRESULT onselect([retval, out] VARIANT *p);
2274
2275     [propput, id(DISPID_IHTMLBODYELEMENT_ONBEFOREUNLOAD), displaybind, bindable]
2276     HRESULT onbeforeunload([in] VARIANT v);
2277
2278     [propget, id(DISPID_IHTMLBODYELEMENT_ONBEFOREUNLOAD), displaybind, bindable]
2279     HRESULT onbeforeunload([retval, out] VARIANT *p);
2280
2281     [id(DISPID_IHTMLBODYELEMENT_CREATETEXTRANGE)]
2282     HRESULT createTextRange([retval, out] IHTMLTxtRange **range);
2283 }
2284
2285 /*****************************************************************************
2286  *    IHTMLBodyElement2 interface
2287  */
2288 [
2289     odl,
2290     oleautomation,
2291     dual,
2292     uuid(3050f5c5-98b5-11cf-bb82-00aa00bdce0b)
2293 ]
2294 interface IHTMLBodyElement2 : IDispatch
2295 {
2296     [propput, id(DISPID_IHTMLBODYELEMENT2_ONBEFOREPRINT), displaybind, bindable]
2297     HRESULT onbeforeprint([in] VARIANT v);
2298
2299     [propget, id(DISPID_IHTMLBODYELEMENT2_ONBEFOREPRINT), displaybind, bindable]
2300     HRESULT onbeforeprint([retval, out] VARIANT *p);
2301
2302     [propput, id(DISPID_IHTMLBODYELEMENT2_ONAFTERPRINT), displaybind, bindable]
2303     HRESULT onafterprint([in] VARIANT v);
2304
2305     [propget, id(DISPID_IHTMLBODYELEMENT2_ONAFTERPRINT), displaybind, bindable]
2306     HRESULT onafterprint([retval, out] VARIANT *p);
2307 }
2308
2309
2310 /*****************************************************************************
2311  *    IHTMLElementCollection interface
2312  */
2313 [
2314     odl,
2315     oleautomation,
2316     dual,
2317     uuid(3050F21F-98B5-11CF-BB82-00AA00BDCE0B)
2318 ]
2319 interface IHTMLElementCollection : IDispatch
2320 {
2321     [id(DISPID_IHTMLELEMENTCOLLECTION_TOSTRING)]
2322     HRESULT toString([retval, out] BSTR *String);
2323
2324     [propput, id(DISPID_IHTMLELEMENTCOLLECTION_LENGTH)]
2325     HRESULT length([in] long v);
2326
2327     [propget, id(DISPID_IHTMLELEMENTCOLLECTION_LENGTH)]
2328     HRESULT length([retval, out] long *p);
2329
2330     [propget, id(DISPID_IHTMLELEMENTCOLLECTION__NEWENUM)]
2331     HRESULT _newEnum([retval, out] IUnknown **p);
2332
2333     [id(DISPID_IHTMLELEMENTCOLLECTION_ITEM)]
2334     HRESULT item(
2335         [optional, in] VARIANT name,
2336         [optional, in] VARIANT index,
2337         [retval,  out] IDispatch **pdisp);
2338
2339     [id(DISPID_IHTMLELEMENTCOLLECTION_TAGS)]
2340     HRESULT tags(
2341         [in] VARIANT tagName,
2342         [retval, out] IDispatch **pdisp);
2343 }
2344
2345 /*****************************************************************************
2346  *    IHTMLSelectElement interface
2347  */
2348 [
2349     odl,
2350     oleautomation,
2351     dual,
2352     uuid(3050f244-98b5-11cf-bb82-00aa00bdce0b)
2353 ]
2354 interface IHTMLSelectElement : IDispatch
2355 {
2356     [propput, id(DISPID_IHTMLSELECTELEMENT_SIZE), displaybind, bindable]
2357     HRESULT size([in] long v);
2358
2359     [propget, id(DISPID_IHTMLSELECTELEMENT_SIZE), displaybind, bindable]
2360     HRESULT size([retval, out] long *p);
2361
2362     [propput, id(DISPID_IHTMLSELECTELEMENT_MULTIPLE), displaybind, bindable]
2363     HRESULT multiple([in] VARIANT_BOOL v);
2364
2365     [propget, id(DISPID_IHTMLSELECTELEMENT_MULTIPLE), displaybind, bindable]
2366     HRESULT multiple([retval, out] VARIANT_BOOL *p);
2367
2368     [propput, id(DISPID_IHTMLSELECTELEMENT_NAME), displaybind, bindable]
2369     HRESULT name([in] BSTR v);
2370
2371     [propget, id(DISPID_IHTMLSELECTELEMENT_NAME), displaybind, bindable]
2372     HRESULT name([retval, out] BSTR *p);
2373
2374     [propget, id(DISPID_IHTMLSELECTELEMENT_OPTIONS)]
2375     HRESULT options([retval, out] IDispatch **p);
2376
2377     [propput, id(DISPID_IHTMLSELECTELEMENT_ONCHANGE), displaybind, bindable]
2378     HRESULT onchange([in] VARIANT v);
2379
2380     [propget, id(DISPID_IHTMLSELECTELEMENT_ONCHANGE), displaybind, bindable]
2381     HRESULT onchange([retval, out] VARIANT *p);
2382
2383     [propput, id(DISPID_IHTMLSELECTELEMENT_SELECTEDINDEX)]
2384     HRESULT selectedIndex([in] long v);
2385
2386     [propget, id(DISPID_IHTMLSELECTELEMENT_SELECTEDINDEX)]
2387     HRESULT selectedIndex([retval, out] long *p);
2388
2389     [propget, id(DISPID_IHTMLSELECTELEMENT_TYPE), displaybind, bindable]
2390     HRESULT type([retval, out] BSTR *p);
2391
2392     [propput, id(DISPID_IHTMLSELECTELEMENT_VALUE), displaybind, bindable]
2393     HRESULT value([in] BSTR v);
2394
2395     [propget, id(DISPID_IHTMLSELECTELEMENT_VALUE), displaybind, bindable]
2396     HRESULT value([retval, out] BSTR *p);
2397
2398     [propput, id(DISPID_IHTMLSELECTELEMENT_DISABLED), displaybind, bindable]
2399     HRESULT disabled([in] VARIANT_BOOL v);
2400
2401     [propget, id(DISPID_IHTMLSELECTELEMENT_DISABLED), displaybind, bindable]
2402     HRESULT disabled([retval, out] VARIANT_BOOL *p);
2403
2404     [propget, id(DISPID_IHTMLSELECTELEMENT_FORM)]
2405     HRESULT form([retval, out] IHTMLFormElement **p);
2406
2407     [id(DISPID_IHTMLSELECTELEMENT_ADD)]
2408     HRESULT add(
2409         [in] IHTMLElement *element,
2410         [optional, in] VARIANT before);
2411
2412     [id(DISPID_IHTMLSELECTELEMENT_REMOVE)]
2413     HRESULT remove([defaultvalue(-1), in] long index);
2414
2415     [propput, id(DISPID_IHTMLSELECTELEMENT_LENGTH)]
2416     HRESULT length([in] long v);
2417
2418     [propget, id(DISPID_IHTMLSELECTELEMENT_LENGTH)]
2419     HRESULT length([retval, out] long *p);
2420
2421     [propget, id(DISPID_IHTMLSELECTELEMENT__NEWENUM), hidden, restricted]
2422     HRESULT _newEnum([retval, out] IUnknown **p);
2423
2424     [id(DISPID_IHTMLSELECTELEMENT_ITEM)]
2425     HRESULT item(
2426         [optional, in] VARIANT name,
2427         [optional, in] VARIANT index,
2428         [retval, out] IDispatch **pdisp);
2429
2430     [id(DISPID_IHTMLSELECTELEMENT_TAGS)]
2431     HRESULT tags(
2432         [in] VARIANT tagName,
2433         [retval, out] IDispatch **pdisp);
2434 }
2435
2436 /*****************************************************************************
2437  *    IHTMLSelectionObject interface
2438  */
2439 [
2440     odl,
2441     oleautomation,
2442     dual,
2443     uuid(3050F25A-98B5-11CF-BB82-00AA00BDCE0B)
2444 ]
2445 interface IHTMLSelectionObject : IDispatch
2446 {
2447     [id(DISPID_IHTMLSELECTIONOBJECT_CREATERANGE)]
2448     HRESULT createRange([retval, out] IDispatch **range);
2449
2450     [id(DISPID_IHTMLSELECTIONOBJECT_EMPTY)]
2451     HRESULT empty();
2452
2453     [id(DISPID_IHTMLSELECTIONOBJECT_CLEAR)]
2454     HRESULT clear();
2455
2456     [propget, id(DISPID_IHTMLSELECTIONOBJECT_TYPE)]
2457     HRESULT type([retval, out] BSTR *p);
2458 }
2459
2460 /*****************************************************************************
2461  *    IHTMLOptionElement interface
2462  */
2463 [
2464     odl,
2465     oleautomation,
2466     dual,
2467     uuid(3050F211-98B5-11CF-BB82-00AA00BDCE0B)
2468 ]
2469 interface IHTMLOptionElement : IDispatch
2470 {
2471     [propput, id(DISPID_IHTMLOPTIONELEMENT_SELECTED)]
2472     HRESULT selected([in] VARIANT_BOOL v);
2473
2474     [propget, id(DISPID_IHTMLOPTIONELEMENT_SELECTED)]
2475     HRESULT selected([retval, out] VARIANT_BOOL *p);
2476
2477     [propput, id(DISPID_IHTMLOPTIONELEMENT_VALUE)]
2478     HRESULT value([in] BSTR v);
2479
2480     [propget, id(DISPID_IHTMLOPTIONELEMENT_VALUE)]
2481     HRESULT value([retval, out] BSTR *p);
2482
2483     [propput, id(DISPID_IHTMLOPTIONELEMENT_DEFAULTSELECTED)]
2484     HRESULT defaultSelected([in] VARIANT_BOOL v);
2485
2486     [propget, id(DISPID_IHTMLOPTIONELEMENT_DEFAULTSELECTED)]
2487     HRESULT defaultSelected([retval, out] VARIANT_BOOL *p);
2488
2489     [propput, id(DISPID_IHTMLOPTIONELEMENT_INDEX)]
2490     HRESULT index([in] LONG v);
2491
2492     [propget, id(DISPID_IHTMLOPTIONELEMENT_INDEX)]
2493     HRESULT index([retval, out] LONG *p);
2494
2495     [propput, id(DISPID_IHTMLOPTIONELEMENT_TEXT)]
2496     HRESULT text([in] BSTR v);
2497
2498     [propget, id(DISPID_IHTMLOPTIONELEMENT_TEXT)]
2499     HRESULT text([retval, out] BSTR *p);
2500
2501     [propget, id(DISPID_IHTMLOPTIONELEMENT_FORM)]
2502     HRESULT form([retval, out] IHTMLFormElement **p);
2503 }
2504
2505 /*****************************************************************************
2506  *    IHTMLOptionElementFactory interface
2507  */
2508 [
2509     odl,
2510     oleautomation,
2511     dual,
2512     uuid(3050F38C-98B5-11Cf-BB82-00AA00BDCE0B)
2513 ]
2514 interface IHTMLOptionElementFactory : IDispatch
2515 {
2516     [id(DISPID_IHTMLOPTIONELEMENTFACTORY_CREATE)]
2517     HRESULT create(
2518         [optional, in] VARIANT text,
2519         [optional, in] VARIANT value,
2520         [optional, in] VARIANT defaultselected,
2521         [optional, in] VARIANT selected,
2522         [retval, out] IHTMLOptionElement **optelem);
2523 }
2524
2525 /*****************************************************************************
2526  *    IHTMLInputElement interface
2527  */
2528 [
2529     odl,
2530     oleautomation,
2531     dual,
2532     uuid(3050f5d2-98b5-11cf-bb82-00aa00bdce0b)
2533 ]
2534 interface IHTMLInputElement : IDispatch
2535 {
2536     [propput, id(DISPID_IHTMLINPUTELEMENT_TYPE)]
2537     HRESULT type([in] BSTR v);
2538
2539     [propget, id(DISPID_IHTMLINPUTELEMENT_TYPE)]
2540     HRESULT type([retval, out] BSTR *p);
2541
2542     [propput, id(DISPID_IHTMLINPUTELEMENT_VALUE), displaybind, bindable]
2543     HRESULT value([in] BSTR v);
2544
2545     [propget, id(DISPID_IHTMLINPUTELEMENT_VALUE), displaybind, bindable]
2546     HRESULT value([retval, out] BSTR *p);
2547
2548     [propput, id(DISPID_IHTMLINPUTELEMENT_NAME), displaybind, bindable]
2549     HRESULT name([in] BSTR v);
2550
2551     [propget, id(DISPID_IHTMLINPUTELEMENT_NAME), displaybind, bindable]
2552     HRESULT name([retval, out] BSTR *p);
2553
2554     [propput, id(DISPID_IHTMLINPUTELEMENT_STATUS)]
2555     HRESULT status([in] VARIANT_BOOL v);
2556
2557     [propget, id(DISPID_IHTMLINPUTELEMENT_STATUS)]
2558     HRESULT status([retval, out] VARIANT_BOOL *p);
2559
2560     [propput, id(DISPID_IHTMLINPUTELEMENT_DISABLED), displaybind, bindable]
2561     HRESULT disabled([in] VARIANT_BOOL v);
2562
2563     [propget, id(DISPID_IHTMLINPUTELEMENT_DISABLED), displaybind, bindable]
2564     HRESULT disabled([retval, out] VARIANT_BOOL *p);
2565
2566     [propget, id(DISPID_IHTMLINPUTELEMENT_FORM)]
2567     HRESULT form([retval, out] IHTMLFormElement **p);
2568
2569     [propput, id(DISPID_IHTMLINPUTELEMENT_SIZE), displaybind, bindable]
2570     HRESULT size([in] long v);
2571
2572     [propget, id(DISPID_IHTMLINPUTELEMENT_SIZE), displaybind, bindable]
2573     HRESULT size([retval, out] long *p);
2574
2575     [propput, id(DISPID_IHTMLINPUTELEMENT_MAXLENGTH), displaybind, bindable]
2576     HRESULT maxLength([in] long v);
2577
2578     [propget, id(DISPID_IHTMLINPUTELEMENT_MAXLENGTH), displaybind, bindable]
2579     HRESULT maxLength([retval, out] long *p);
2580
2581     [id(DISPID_IHTMLINPUTELEMENT_SELECT)]
2582     HRESULT select();
2583
2584     [propput, id(DISPID_IHTMLINPUTELEMENT_ONCHANGE), displaybind, bindable]
2585     HRESULT onchange([in] VARIANT v);
2586
2587     [propget, id(DISPID_IHTMLINPUTELEMENT_ONCHANGE), displaybind, bindable]
2588     HRESULT onchange([retval, out] VARIANT *p);
2589
2590     [propput, id(DISPID_IHTMLINPUTELEMENT_ONSELECT), displaybind, bindable]
2591     HRESULT onselect([in] VARIANT v);
2592
2593     [propget, id(DISPID_IHTMLINPUTELEMENT_ONSELECT), displaybind, bindable]
2594     HRESULT onselect([retval, out] VARIANT *p);
2595
2596     [propput, id(DISPID_IHTMLINPUTELEMENT_DEFAULTVALUE), displaybind, bindable, hidden]
2597     HRESULT defaultValue([in] BSTR v);
2598
2599     [propget, id(DISPID_IHTMLINPUTELEMENT_DEFAULTVALUE), displaybind, bindable, hidden]
2600     HRESULT defaultValue([retval, out] BSTR *p);
2601
2602     [propput, id(DISPID_IHTMLINPUTELEMENT_READONLY), displaybind, bindable]
2603     HRESULT readOnly([in] VARIANT_BOOL v);
2604
2605     [propget, id(DISPID_IHTMLINPUTELEMENT_READONLY), displaybind, bindable]
2606     HRESULT readOnly([retval, out] VARIANT_BOOL *p);
2607
2608     [id(DISPID_IHTMLINPUTELEMENT_CREATETEXTRANGE)]
2609     HRESULT createTextRange([retval, out] IHTMLTxtRange **range);
2610
2611     [propput, id(DISPID_IHTMLINPUTELEMENT_INDETERMINATE), bindable]
2612     HRESULT indeterminate([in] VARIANT_BOOL v);
2613
2614     [propget, id(DISPID_IHTMLINPUTELEMENT_INDETERMINATE), bindable]
2615     HRESULT indeterminate([retval, out] VARIANT_BOOL *p);
2616
2617     [propput, id(DISPID_IHTMLINPUTELEMENT_DEFAULTCHECKED), bindable]
2618     HRESULT defaultChecked([in] VARIANT_BOOL v);
2619
2620     [propget, id(DISPID_IHTMLINPUTELEMENT_DEFAULTCHECKED), bindable]
2621     HRESULT defaultChecked([retval, out] VARIANT_BOOL *p);
2622
2623     [propput, id(DISPID_IHTMLINPUTELEMENT_CHECKED), bindable]
2624     HRESULT checked([in] VARIANT_BOOL v);
2625
2626     [propget, id(DISPID_IHTMLINPUTELEMENT_CHECKED), bindable]
2627     HRESULT checked([retval, out] VARIANT_BOOL *p);
2628
2629     [propput, id(DISPID_IHTMLINPUTELEMENT_BORDER), displaybind, bindable]
2630     HRESULT border([in] VARIANT v);
2631
2632     [propget, id(DISPID_IHTMLINPUTELEMENT_BORDER), displaybind, bindable]
2633     HRESULT border([retval, out] VARIANT *p);
2634
2635     [propput, id(DISPID_IHTMLINPUTELEMENT_VSPACE), displaybind, bindable]
2636     HRESULT vspace([in] long v);
2637
2638     [propget, id(DISPID_IHTMLINPUTELEMENT_VSPACE), displaybind, bindable]
2639     HRESULT vspace([retval, out] long *p);
2640
2641     [propput, id(DISPID_IHTMLINPUTELEMENT_HSPACE), displaybind, bindable]
2642     HRESULT hspace([in] long v);
2643
2644     [propget, id(DISPID_IHTMLINPUTELEMENT_HSPACE), displaybind, bindable]
2645     HRESULT hspace([retval, out] long *p);
2646
2647     [propput, id(DISPID_IHTMLINPUTELEMENT_ALT), displaybind, bindable]
2648     HRESULT alt([in] BSTR v);
2649
2650     [propget, id(DISPID_IHTMLINPUTELEMENT_ALT), displaybind, bindable]
2651     HRESULT alt([retval, out] BSTR *p);
2652
2653     [propput, id(DISPID_IHTMLINPUTELEMENT_SRC), displaybind, bindable]
2654     HRESULT src([in] BSTR v);
2655
2656     [propget, id(DISPID_IHTMLINPUTELEMENT_SRC), displaybind, bindable]
2657     HRESULT src([retval, out] BSTR *p);
2658
2659     [propput, id(DISPID_IHTMLINPUTELEMENT_LOWSRC), displaybind, bindable]
2660     HRESULT lowsrc([in] BSTR v);
2661
2662     [propget, id(DISPID_IHTMLINPUTELEMENT_LOWSRC), displaybind, bindable]
2663     HRESULT lowsrc([retval, out] BSTR *p);
2664
2665     [propput, id(DISPID_IHTMLINPUTELEMENT_VRML), displaybind, bindable]
2666     HRESULT vrml([in] BSTR v);
2667
2668     [propget, id(DISPID_IHTMLINPUTELEMENT_VRML), displaybind, bindable]
2669     HRESULT vrml([retval, out] BSTR *p);
2670
2671     [propput, id(DISPID_IHTMLINPUTELEMENT_DYNSRC), displaybind, bindable]
2672     HRESULT dynsrc([in] BSTR v);
2673
2674     [propget, id(DISPID_IHTMLINPUTELEMENT_DYNSRC), displaybind, bindable]
2675     HRESULT dynsrc([retval, out] BSTR *p);
2676
2677     [propget, id(DISPID_IHTMLINPUTELEMENT_READYSTATE)]
2678     HRESULT readyState([retval, out] BSTR *p);
2679
2680     [propget, id(DISPID_IHTMLINPUTELEMENT_COMPLETE)]
2681     HRESULT complete([retval, out] VARIANT_BOOL *p);
2682
2683     [propput, id(DISPID_IHTMLINPUTELEMENT_LOOP), displaybind, bindable]
2684     HRESULT loop([in] VARIANT v);
2685
2686     [propget, id(DISPID_IHTMLINPUTELEMENT_LOOP), displaybind, bindable]
2687     HRESULT loop([retval, out] VARIANT *p);
2688
2689     [propput, id(DISPID_IHTMLINPUTELEMENT_ALIGN), displaybind, bindable]
2690     HRESULT align([in] BSTR v);
2691
2692     [propget, id(DISPID_IHTMLINPUTELEMENT_ALIGN), displaybind, bindable]
2693     HRESULT align([retval, out] BSTR *p);
2694
2695     [propput, id(DISPID_IHTMLINPUTELEMENT_ONLOAD), displaybind, bindable]
2696     HRESULT onload([in] VARIANT v);
2697
2698     [propget, id(DISPID_IHTMLINPUTELEMENT_ONLOAD), displaybind, bindable]
2699     HRESULT onload([retval, out] VARIANT *p);
2700
2701     [propput, id(DISPID_IHTMLINPUTELEMENT_ONERROR), displaybind, bindable]
2702     HRESULT onerror([in] VARIANT v);
2703
2704     [propget, id(DISPID_IHTMLINPUTELEMENT_ONERROR), displaybind, bindable]
2705     HRESULT onerror([retval, out] VARIANT *p);
2706
2707     [propput, id(DISPID_IHTMLINPUTELEMENT_ONABORT), displaybind, bindable]
2708     HRESULT onabort([in] VARIANT v);
2709
2710     [propget, id(DISPID_IHTMLINPUTELEMENT_ONABORT), displaybind, bindable]
2711     HRESULT onabort([retval, out] VARIANT *p);
2712
2713     [propput, id(DISPID_IHTMLINPUTELEMENT_WIDTH)]
2714     HRESULT width([in] long v);
2715
2716     [propget, id(DISPID_IHTMLINPUTELEMENT_WIDTH)]
2717     HRESULT width([retval, out] long *p);
2718
2719     [propput, id(DISPID_IHTMLINPUTELEMENT_HEIGHT)]
2720     HRESULT height([in] long v);
2721
2722     [propget, id(DISPID_IHTMLINPUTELEMENT_HEIGHT)]
2723     HRESULT height([retval, out] long *p);
2724
2725     [propput, id(DISPID_IHTMLINPUTELEMENT_START), displaybind, bindable]
2726     HRESULT start([in] BSTR v);
2727
2728     [propget, id(DISPID_IHTMLINPUTELEMENT_START), displaybind, bindable]
2729     HRESULT start([retval, out] BSTR *p);
2730 }
2731
2732 /*****************************************************************************
2733  *    IHTMLTextAreaElement interface
2734  */
2735 [
2736     odl,
2737     oleautomation,
2738     dual,
2739     uuid(3050f2aa-98b5-11cf-bb82-00aa00bdce0b)
2740 ]
2741 interface IHTMLTextAreaElement : IDispatch
2742 {
2743     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_TYPE)]
2744     HRESULT type([retval, out] BSTR *p);
2745
2746     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_VALUE), displaybind, bindable]
2747     HRESULT value([in] BSTR v);
2748
2749     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_VALUE), displaybind, bindable]
2750     HRESULT value([retval, out] BSTR *p);
2751
2752     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_NAME), displaybind, bindable]
2753     HRESULT name([in] BSTR v);
2754
2755     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_NAME), displaybind, bindable]
2756     HRESULT name([retval, out] BSTR *p);
2757
2758     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_STATUS)]
2759     HRESULT status([in] VARIANT v);
2760
2761     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_STATUS)]
2762     HRESULT status([retval, out] VARIANT *p);
2763
2764     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_DISABLED), displaybind, bindable]
2765     HRESULT disabled([in] VARIANT_BOOL v);
2766
2767     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_DISABLED), displaybind, bindable]
2768     HRESULT disabled([retval, out] VARIANT_BOOL *p);
2769
2770     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_FORM)]
2771     HRESULT form([retval, out] IHTMLFormElement **p);
2772
2773     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_DEFAULTVALUE), displaybind, bindable, hidden]
2774     HRESULT defaultValue([in] BSTR v);
2775
2776     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_DEFAULTVALUE), displaybind, bindable, hidden]
2777     HRESULT defaultValue([retval, out] BSTR *p);
2778
2779     [id(DISPID_IHTMLTEXTAREAELEMENT_SELECT)]
2780     HRESULT select();
2781
2782     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_ONCHANGE), displaybind, bindable]
2783     HRESULT onchange([in] VARIANT v);
2784
2785     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_ONCHANGE), displaybind, bindable]
2786     HRESULT onchange([retval, out] VARIANT *p);
2787
2788     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_ONSELECT), displaybind, bindable]
2789     HRESULT onselect([in] VARIANT v);
2790
2791     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_ONSELECT), displaybind, bindable]
2792     HRESULT onselect([retval, out] VARIANT *p);
2793
2794     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_READONLY), displaybind, bindable]
2795     HRESULT readOnly([in] VARIANT_BOOL v);
2796
2797     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_READONLY), displaybind, bindable]
2798     HRESULT readOnly([retval, out] VARIANT_BOOL *p);
2799
2800     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_ROWS), displaybind, bindable]
2801     HRESULT rows([in] long v);
2802
2803     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_ROWS), displaybind, bindable]
2804     HRESULT rows([retval, out] long *p);
2805
2806     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_COLS), displaybind, bindable]
2807     HRESULT cols([in] long v);
2808
2809     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_COLS), displaybind, bindable]
2810     HRESULT cols([retval, out] long *p);
2811
2812     [propput, id(DISPID_IHTMLTEXTAREAELEMENT_WRAP), displaybind, bindable]
2813     HRESULT wrap([in] BSTR v);
2814
2815     [propget, id(DISPID_IHTMLTEXTAREAELEMENT_WRAP), displaybind, bindable]
2816     HRESULT wrap([retval, out] BSTR *p);
2817
2818     [id(DISPID_IHTMLTEXTAREAELEMENT_CREATETEXTRANGE)]
2819     HRESULT createTextRange([retval, out] IHTMLTxtRange **range);
2820 }
2821
2822 /*****************************************************************************
2823  *    IOmHistory interface
2824  */
2825 [
2826     odl,
2827     oleautomation,
2828     dual,
2829     uuid(FECEAAA2-8405-11CF-8BA1-00AA00476DA6)
2830 ]
2831 interface IOmHistory : IDispatch
2832 {
2833     [propget, id(DISPID_IOMHISTORY_LENGTH)]
2834     HRESULT length([retval, out] short *p);
2835
2836     [id(DISPID_IOMHISTORY_BACK)]
2837     HRESULT back([optional, in] VARIANT *pvargdistance);
2838
2839     [id(DISPID_IOMHISTORY_FORWARD)]
2840     HRESULT forward([optional, in] VARIANT *pvargdistance);
2841
2842     [id(DISPID_IOMHISTORY_GO)]
2843     HRESULT go([optional, in] VARIANT *pvargdistance);
2844 }
2845
2846 /*****************************************************************************
2847  *    IHTMLMimeTypesCollection interface
2848  */
2849 [
2850     odl,
2851     oleautomation,
2852     dual,
2853     uuid(3050F3FC-98B5-11CF-BB82-00AA00BDCE0B)
2854 ]
2855 interface IHTMLMimeTypesCollection : IDispatch
2856 {
2857     [propget, id(DISPID_IHTMLMIMETYPESCOLLECTION_LENGTH)]
2858     HRESULT length([retval, out] long *p);
2859 }
2860
2861 /*****************************************************************************
2862  *    IHTMLPluginsCollection interface
2863  */
2864 [
2865     odl,
2866     oleautomation,
2867     dual,
2868     uuid(3050F3FD-98B5-11CF-BB82-00AA00BDCE0B)
2869 ]
2870 interface IHTMLPluginsCollection : IDispatch
2871 {
2872     [propget, id(DISPID_IHTMLPLUGINSCOLLECTION_LENGTH)]
2873     HRESULT length([retval, out] long *p);
2874
2875     [id(DISPID_IHTMLPLUGINSCOLLECTION_REFRESH)]
2876     HRESULT refresh([defaultvalue(0), in] VARIANT_BOOL reload);
2877 }
2878
2879 /*****************************************************************************
2880  *    IHTMLOpsProfile interface
2881  */
2882 [
2883     odl,
2884     oleautomation,
2885     dual,
2886     uuid(3050F401-98B5-11CF-BB82-00AA00BDCE0B)
2887 ]
2888 interface IHTMLOpsProfile : IDispatch
2889 {
2890     [id(DISPID_IHTMLOPSPROFILE_ADDREQUEST)]
2891     HRESULT addRequest(
2892         [in] BSTR name,
2893         [optional, in] VARIANT reserved,
2894         [retval, out] VARIANT_BOOL *success);
2895
2896     [id(DISPID_IHTMLOPSPROFILE_CLEARREQUEST)]
2897     HRESULT clearRequest();
2898
2899     [id(DISPID_IHTMLOPSPROFILE_DOREQUEST)]
2900     HRESULT doRequest(
2901         [in] VARIANT usage,
2902         [optional, in] VARIANT fname,
2903         [optional, in] VARIANT domain,
2904         [optional, in] VARIANT path,
2905         [optional, in] VARIANT expire,
2906         [optional, in] VARIANT reserved);
2907
2908     [id(DISPID_IHTMLOPSPROFILE_GETATTRIBUTE)]
2909     HRESULT getAttribute(
2910         [in] BSTR name,
2911         [retval, out] BSTR *value);
2912
2913     [id(DISPID_IHTMLOPSPROFILE_SETATTRIBUTE)]
2914     HRESULT setAttribute(
2915         [in] BSTR name,
2916         [in] BSTR value,
2917         [optional, in] VARIANT prefs,
2918         [retval, out] VARIANT_BOOL *success);
2919
2920     [id(DISPID_IHTMLOPSPROFILE_COMMITCHANGES)]
2921     HRESULT commitChanges([retval, out] VARIANT_BOOL *success);
2922
2923     [id(DISPID_IHTMLOPSPROFILE_ADDREADREQUEST)]
2924     HRESULT addReadRequest(
2925         [in] BSTR name,
2926         [optional, in] VARIANT reserved,
2927         [retval, out] VARIANT_BOOL *success);
2928
2929     [id(DISPID_IHTMLOPSPROFILE_DOREADREQUEST)]
2930     HRESULT doReadRequest(
2931         [in] VARIANT usage,
2932         [optional, in] VARIANT fname,
2933         [optional, in] VARIANT domain,
2934         [optional, in] VARIANT path,
2935         [optional, in] VARIANT expire,
2936         [optional, in] VARIANT reserved);
2937
2938     [id(DISPID_IHTMLOPSPROFILE_DOWRITEREQUEST)]
2939     HRESULT doWriteRequest([retval, out] VARIANT_BOOL *success);
2940 }
2941
2942 /*****************************************************************************
2943  *    IOmNavigator interface
2944  */
2945 [
2946         odl,
2947         oleautomation,
2948         dual,
2949         uuid(FECEAAA5-8405-11CF-8BA1-00AA00476DA6)
2950 ]
2951 interface IOmNavigator : IDispatch
2952 {
2953     [propget, id(DISPID_IOMNAVIGATOR_APPCODENAME)]
2954     HRESULT appCodeName([retval, out] BSTR *p);
2955
2956     [propget, id(DISPID_IOMNAVIGATOR_APPNAME)]
2957     HRESULT appName([retval, out] BSTR *p);
2958
2959     [propget, id(DISPID_IOMNAVIGATOR_APPVERSION)]
2960     HRESULT appVersion([retval, out] BSTR *p);
2961
2962     [propget, id(DISPID_IOMNAVIGATOR_USERAGENT)]
2963     HRESULT userAgent([retval, out] BSTR *p);
2964
2965     [id(DISPID_IOMNAVIGATOR_JAVAENABLED)]
2966     HRESULT javaEnabled([retval, out] VARIANT_BOOL *enabled);
2967
2968     [id(DISPID_IOMNAVIGATOR_TAINTENABLED)]
2969     HRESULT taintEnabled([retval, out] VARIANT_BOOL *enabled);
2970
2971     [propget, id(DISPID_IOMNAVIGATOR_MIMETYPES)]
2972     HRESULT mimeTypes([retval, out] IHTMLMimeTypesCollection **p);
2973
2974     [propget, id(DISPID_IOMNAVIGATOR_PLUGINS)]
2975     HRESULT plugins([retval, out] IHTMLPluginsCollection **p);
2976
2977     [propget, id(DISPID_IOMNAVIGATOR_COOKIEENABLED)]
2978     HRESULT cookieEnabled([retval, out] VARIANT_BOOL *p);
2979
2980     [propget, id(DISPID_IOMNAVIGATOR_OPSPROFILE)]
2981     HRESULT opsProfile([retval, out] IHTMLOpsProfile **p);
2982
2983     [id(DISPID_IOMNAVIGATOR_TOSTRING)]
2984     HRESULT toString([retval, out] BSTR *String);
2985
2986     [propget, id(DISPID_IOMNAVIGATOR_CPUCLASS)]
2987     HRESULT cpuClass([retval, out] BSTR *p);
2988
2989     [propget, id(DISPID_IOMNAVIGATOR_SYSTEMLANGUAGE)]
2990     HRESULT systemLanguage([retval, out] BSTR *p);
2991
2992     [propget, id(DISPID_IOMNAVIGATOR_BROWSERLANGUAGE)]
2993     HRESULT browserLanguage([retval, out] BSTR *p);
2994
2995     [propget, id(DISPID_IOMNAVIGATOR_USERLANGUAGE)]
2996     HRESULT userLanguage([retval, out] BSTR *p);
2997
2998     [propget, id(DISPID_IOMNAVIGATOR_PLATFORM)]
2999     HRESULT platform([retval, out] BSTR *p);
3000
3001     [propget, id(DISPID_IOMNAVIGATOR_APPMINORVERSION)]
3002     HRESULT appMinorVersion([retval, out] BSTR *p);
3003
3004     [propget, id(DISPID_IOMNAVIGATOR_CONNECTIONSPEED)]
3005     HRESULT connectionSpeed([retval, out] long *p);
3006
3007     [propget, id(DISPID_IOMNAVIGATOR_ONLINE)]
3008     HRESULT onLine([retval, out] VARIANT_BOOL *p);
3009
3010     [propget, id(DISPID_IOMNAVIGATOR_USERPROFILE)]
3011     HRESULT userProfile([retval, out] IHTMLOpsProfile **p);
3012 }
3013
3014 /*****************************************************************************
3015  *    IHTMLLocation interface
3016  */
3017 [
3018     odl,
3019     oleautomation,
3020     dual,
3021     uuid(163BB1E0-6E00-11cf-837A-48DC04C10000)
3022 ]
3023 interface IHTMLLocation : IDispatch
3024 {
3025     [propput, id(DISPID_IHTMLLOCATION_HREF)]
3026     HRESULT href([in] BSTR v);
3027
3028     [propget, id(DISPID_IHTMLLOCATION_HREF)]
3029     HRESULT href([retval, out] BSTR *p);
3030
3031     [propput, id(DISPID_IHTMLLOCATION_PROTOCOL)]
3032     HRESULT protocol([in] BSTR v);
3033
3034     [propget, id(DISPID_IHTMLLOCATION_PROTOCOL)]
3035     HRESULT protocol([retval, out] BSTR *p);
3036
3037     [propput, id(DISPID_IHTMLLOCATION_HOST)]
3038     HRESULT host([in] BSTR v);
3039
3040     [propget, id(DISPID_IHTMLLOCATION_HOST)]
3041     HRESULT host([retval, out] BSTR *p);
3042
3043     [propput, id(DISPID_IHTMLLOCATION_HOSTNAME)]
3044     HRESULT hostname([in] BSTR v);
3045
3046     [propget, id(DISPID_IHTMLLOCATION_HOSTNAME)]
3047     HRESULT hostname([retval, out] BSTR *p);
3048
3049     [propput, id(DISPID_IHTMLLOCATION_PORT)]
3050     HRESULT port([in] BSTR v);
3051
3052     [propget, id(DISPID_IHTMLLOCATION_PORT)]
3053     HRESULT port([retval, out] BSTR *p);
3054
3055     [propput, id(DISPID_IHTMLLOCATION_PATHNAME)]
3056     HRESULT pathname([in] BSTR v);
3057
3058     [propget, id(DISPID_IHTMLLOCATION_PATHNAME)]
3059     HRESULT pathname([retval, out] BSTR *p);
3060
3061     [propput, id(DISPID_IHTMLLOCATION_SEARCH)]
3062     HRESULT search([in] BSTR v);
3063
3064     [propget, id(DISPID_IHTMLLOCATION_SEARCH)]
3065     HRESULT search([retval, out] BSTR *p);
3066
3067     [propput, id(DISPID_IHTMLLOCATION_HASH)]
3068     HRESULT hash([in] BSTR v);
3069
3070     [propget, id(DISPID_IHTMLLOCATION_HASH)]
3071     HRESULT hash([retval, out] BSTR *p);
3072
3073     [id(DISPID_IHTMLLOCATION_RELOAD)]
3074     HRESULT reload([defaultvalue(0), in] VARIANT_BOOL flag);
3075
3076     [id(DISPID_IHTMLLOCATION_REPLACE)]
3077     HRESULT replace([in] BSTR bstr);
3078
3079     [id(DISPID_IHTMLLOCATION_ASSIGN)]
3080     HRESULT assign([in] BSTR bstr);
3081
3082     [id(DISPID_IHTMLLOCATION_TOSTRING)]
3083     HRESULT toString([retval, out] BSTR *String);
3084 }
3085
3086 /*****************************************************************************
3087  *    IHTMLEventObj interface
3088  */
3089 [
3090     odl,
3091     oleautomation,
3092     dual,
3093     uuid(3050F32D-98B5-11CF-BB82-00AA00BDCE0B)
3094 ]
3095 interface IHTMLEventObj : IDispatch
3096 {
3097     [propget, id(DISPID_IHTMLEVENTOBJ_SRCELEMENT)]
3098     HRESULT srcElement([retval, out] IHTMLElement **p);
3099
3100     [propget, id(DISPID_IHTMLEVENTOBJ_ALTKEY)]
3101     HRESULT altKey([retval, out] VARIANT_BOOL *p);
3102
3103     [propget, id(DISPID_IHTMLEVENTOBJ_CTRLKEY)]
3104     HRESULT ctrlKey([retval, out] VARIANT_BOOL *p);
3105
3106     [propget, id(DISPID_IHTMLEVENTOBJ_SHIFTKEY)]
3107     HRESULT shiftKey([retval, out] VARIANT_BOOL *p);
3108
3109     [propput, id(DISPID_IHTMLEVENTOBJ_RETURNVALUE)]
3110     HRESULT returnValue([in] VARIANT v);
3111
3112     [propget, id(DISPID_IHTMLEVENTOBJ_RETURNVALUE)]
3113     HRESULT returnValue([retval, out] VARIANT *p);
3114
3115     [propput, id(DISPID_IHTMLEVENTOBJ_CANCELBUBBLE)]
3116     HRESULT cancelBubble([in] VARIANT_BOOL v);
3117
3118     [propget, id(DISPID_IHTMLEVENTOBJ_CANCELBUBBLE)]
3119     HRESULT cancelBubble([retval, out] VARIANT_BOOL *p);
3120
3121     [propget, id(DISPID_IHTMLEVENTOBJ_FROMELEMENT)]
3122     HRESULT fromElement([retval, out] IHTMLElement **p);
3123
3124     [propget, id(DISPID_IHTMLEVENTOBJ_TOELEMENT)]
3125     HRESULT toElement([retval, out] IHTMLElement **p);
3126
3127     [propput, id(DISPID_IHTMLEVENTOBJ_KEYCODE)]
3128     HRESULT keyCode([in] long v);
3129
3130     [propget, id(DISPID_IHTMLEVENTOBJ_KEYCODE)]
3131     HRESULT keyCode([retval, out] long *p);
3132
3133     [propget, id(DISPID_IHTMLEVENTOBJ_BUTTON)]
3134     HRESULT button([retval, out] long *p);
3135
3136     [propget, id(DISPID_IHTMLEVENTOBJ_TYPE)]
3137     HRESULT type([retval, out] BSTR *p);
3138
3139     [propget, id(DISPID_IHTMLEVENTOBJ_QUALIFIER)]
3140     HRESULT qualifier([retval, out] BSTR *p);
3141
3142     [propget, id(DISPID_IHTMLEVENTOBJ_REASON)]
3143     HRESULT reason([retval, out] long *p);
3144
3145     [propget, id(DISPID_IHTMLEVENTOBJ_X)]
3146     HRESULT x([retval, out] long *p);
3147
3148     [propget, id(DISPID_IHTMLEVENTOBJ_Y)]
3149     HRESULT y([retval, out] long *p);
3150
3151     [propget, id(DISPID_IHTMLEVENTOBJ_CLIENTX)]
3152     HRESULT clientX([retval, out] long *p);
3153
3154     [propget, id(DISPID_IHTMLEVENTOBJ_CLIENTY)]
3155     HRESULT clientY([retval, out] long *p);
3156
3157     [propget, id(DISPID_IHTMLEVENTOBJ_OFFSETX)]
3158     HRESULT offsetX([retval, out] long *p);
3159
3160     [propget, id(DISPID_IHTMLEVENTOBJ_OFFSETY)]
3161     HRESULT offsetY([retval, out] long *p);
3162
3163     [propget, id(DISPID_IHTMLEVENTOBJ_SCREENX)]
3164     HRESULT screenX([retval, out] long *p);
3165
3166     [propget, id(DISPID_IHTMLEVENTOBJ_SCREENY)]
3167     HRESULT screenY([retval, out] long *p);
3168
3169     [propget, id(DISPID_IHTMLEVENTOBJ_SRCFILTER)]
3170     HRESULT srcFilter([retval, out] IDispatch **p);
3171 }
3172
3173 /*****************************************************************************
3174  *    IHTMLFramesCollection2 interface
3175  */
3176 [
3177     odl,
3178     oleautomation,
3179     dual,
3180     uuid(332C4426-26CB-11D0-B483-00C04FD90119)
3181 ]
3182 interface IHTMLFramesCollection2 : IDispatch
3183 {
3184     [id(DISPID_IHTMLFRAMESCOLLECTION2_ITEM)]
3185     HRESULT item(
3186         [in] VARIANT *pvarIndex,
3187         [retval, out] VARIANT *pvarResult);
3188
3189     [propget, id(DISPID_IHTMLFRAMESCOLLECTION2_LENGTH)]
3190     HRESULT length([retval, out] long *p);
3191 }
3192
3193 /*****************************************************************************
3194  *    IHTMLScreen interface
3195  */
3196 [
3197     odl,
3198     oleautomation,
3199     dual,
3200     uuid(3050f35C-98B5-11CF-BB82-00AA00BDCE0B)
3201 ]
3202 interface IHTMLScreen : IDispatch
3203 {
3204     [propget, id(DISPID_IHTMLSCREEN_COLORDEPTH)]
3205     HRESULT colorDepth([retval, out] long *p);
3206
3207     [propput, id(DISPID_IHTMLSCREEN_BUFFERDEPTH)]
3208     HRESULT bufferDepth([in] long v);
3209
3210     [propget, id(DISPID_IHTMLSCREEN_BUFFERDEPTH)]
3211     HRESULT bufferDepth([retval, out] long *p);
3212
3213     [propget, id(DISPID_IHTMLSCREEN_WIDTH)]
3214     HRESULT width([retval, out] long *p);
3215
3216     [propget, id(DISPID_IHTMLSCREEN_HEIGHT)]
3217     HRESULT height([retval, out] long *p);
3218
3219     [propput, id(DISPID_IHTMLSCREEN_UPDATEINTERVAL)]
3220     HRESULT updateInterval([in] long v);
3221
3222     [propget, id(DISPID_IHTMLSCREEN_UPDATEINTERVAL)]
3223     HRESULT updateInterval([retval, out] long *p);
3224
3225     [propget, id(DISPID_IHTMLSCREEN_AVAILHEIGHT)]
3226     HRESULT availHeight([retval, out] long *p);
3227
3228     [propget, id(DISPID_IHTMLSCREEN_AVAILWIDTH)]
3229     HRESULT availWidth([retval, out] long *p);
3230
3231     [propget, id(DISPID_IHTMLSCREEN_FONTSMOOTHINGENABLED)]
3232     HRESULT fontSmoothingEnabled([retval, out] VARIANT_BOOL *p);
3233 }
3234
3235 /*****************************************************************************
3236  *    IHTMLWindow2 interface
3237  */
3238 [
3239     odl,
3240     oleautomation,
3241     dual,
3242     uuid(332C4427-26CB-11D0-B483-00C04FD90119)
3243 ]
3244 interface IHTMLWindow2 : IHTMLFramesCollection2
3245 {
3246     [propget, id(DISPID_IHTMLWINDOW2_FRAMES)]
3247     HRESULT frames([retval, out] IHTMLFramesCollection2 **p);
3248
3249     [propput, id(DISPID_IHTMLWINDOW2_DEFAULTSTATUS)]
3250     HRESULT defaultStatus([in] BSTR v);
3251
3252     [propget, id(DISPID_IHTMLWINDOW2_DEFAULTSTATUS)]
3253     HRESULT defaultStatus([retval, out] BSTR *p);
3254
3255     [propput, id(DISPID_IHTMLWINDOW2_STATUS)]
3256     HRESULT status([in] BSTR v);
3257
3258     [propget, id(DISPID_IHTMLWINDOW2_STATUS)]
3259     HRESULT status([retval, out] BSTR *p);
3260
3261     [id(DISPID_IHTMLWINDOW2_SETTIMEOUT)]
3262     HRESULT setTimeout(
3263         [in] BSTR expression,
3264         [in] long msec,
3265         [optional, in] VARIANT *language,
3266         [retval, out] long *timerID);
3267
3268     [id(DISPID_IHTMLWINDOW2_CLEARTIMEOUT)]
3269     HRESULT clearTimeout([in] long timerID);
3270
3271     [id(DISPID_IHTMLWINDOW2_ALERT)]
3272     HRESULT alert([defaultvalue(""), in] BSTR message);
3273
3274     [id(DISPID_IHTMLWINDOW2_CONFIRM)]
3275     HRESULT confirm(
3276         [defaultvalue(""), in] BSTR message,
3277         [retval, out] VARIANT_BOOL *confirmed);
3278
3279     [id(DISPID_IHTMLWINDOW2_PROMPT)]
3280     HRESULT prompt(
3281         [defaultvalue(""), in] BSTR message,
3282         [defaultvalue("undefined"), in] BSTR defstr,
3283         [retval, out] VARIANT *textdata);
3284
3285     [propget, id(DISPID_IHTMLWINDOW2_IMAGE)]
3286     HRESULT Image([retval, out] IHTMLImageElementFactory **p);
3287
3288     [propget, id(DISPID_IHTMLWINDOW2_LOCATION)]
3289     HRESULT location([retval, out] IHTMLLocation **p);
3290
3291     [propget, id(DISPID_IHTMLWINDOW2_HISTORY)]
3292     HRESULT history([retval, out] IOmHistory **p);
3293
3294     [id(DISPID_IHTMLWINDOW2_CLOSE)]
3295     HRESULT close();
3296
3297     [propput, id(DISPID_IHTMLWINDOW2_OPENER)]
3298     HRESULT opener([in] VARIANT v);
3299
3300     [propget, id(DISPID_IHTMLWINDOW2_OPENER)]
3301     HRESULT opener([retval, out] VARIANT *p);
3302
3303     [propget, id(DISPID_IHTMLWINDOW2_NAVIGATOR)]
3304     HRESULT navigator([retval, out] IOmNavigator **p);
3305
3306     [propput, id(DISPID_IHTMLWINDOW2_NAME)]
3307     HRESULT name([in] BSTR v);
3308
3309     [propget, id(DISPID_IHTMLWINDOW2_NAME)]
3310     HRESULT name([retval, out] BSTR *p);
3311
3312     [propget, id(DISPID_IHTMLWINDOW2_PARENT)]
3313     HRESULT parent([retval, out] IHTMLWindow2 **p);
3314
3315     [id(DISPID_IHTMLWINDOW2_OPEN)]
3316     HRESULT open(
3317         [defaultvalue(""), in] BSTR url,
3318         [defaultvalue(""), in] BSTR name,
3319         [defaultvalue(""), in] BSTR features,
3320         [defaultvalue(0), in] VARIANT_BOOL replace,
3321         [retval, out] IHTMLWindow2 **pomWindowResult);
3322
3323     [propget, id(DISPID_IHTMLWINDOW2_SELF)]
3324     HRESULT self([retval, out] IHTMLWindow2 **p);
3325
3326     [propget, id(DISPID_IHTMLWINDOW2_TOP)]
3327     HRESULT top([retval, out] IHTMLWindow2 **p);
3328
3329     [propget, id(DISPID_IHTMLWINDOW2_WINDOW)]
3330     HRESULT window([retval, out] IHTMLWindow2 **p);
3331
3332     [id(DISPID_IHTMLWINDOW2_NAVIGATE)]
3333     HRESULT navigate([in] BSTR url);
3334
3335     [propput, id(DISPID_IHTMLWINDOW2_ONFOCUS)]
3336     HRESULT onfocus([in] VARIANT v);
3337
3338     [propget, id(DISPID_IHTMLWINDOW2_ONFOCUS)]
3339     HRESULT onfocus([retval, out] VARIANT *p);
3340
3341     [propput, id(DISPID_IHTMLWINDOW2_ONBLUR)]
3342     HRESULT onblur([in] VARIANT v);
3343
3344     [propget, id(DISPID_IHTMLWINDOW2_ONBLUR)]
3345     HRESULT onblur([retval, out] VARIANT *p);
3346
3347     [propput, id(DISPID_IHTMLWINDOW2_ONLOAD)]
3348     HRESULT onload([in] VARIANT v);
3349
3350     [propget, id(DISPID_IHTMLWINDOW2_ONLOAD)]
3351     HRESULT onload([retval, out] VARIANT *p);
3352
3353     [propput, id(DISPID_IHTMLWINDOW2_ONBEFOREUNLOAD)]
3354     HRESULT onbeforeunload([in] VARIANT v);
3355
3356     [propget, id(DISPID_IHTMLWINDOW2_ONBEFOREUNLOAD)]
3357     HRESULT onbeforeunload([retval, out] VARIANT *p);
3358
3359     [propput, id(DISPID_IHTMLWINDOW2_ONUNLOAD)]
3360     HRESULT onunload([in] VARIANT v);
3361
3362     [propget, id(DISPID_IHTMLWINDOW2_ONUNLOAD)]
3363     HRESULT onunload([retval, out] VARIANT *p);
3364
3365     [propput, id(DISPID_IHTMLWINDOW2_ONHELP)]
3366     HRESULT onhelp([in] VARIANT v);
3367
3368     [propget, id(DISPID_IHTMLWINDOW2_ONHELP)]
3369     HRESULT onhelp([retval, out] VARIANT *p);
3370
3371     [propput, id(DISPID_IHTMLWINDOW2_ONERROR)]
3372     HRESULT onerror([in] VARIANT v);
3373
3374     [propget, id(DISPID_IHTMLWINDOW2_ONERROR)]
3375     HRESULT onerror([retval, out] VARIANT *p);
3376
3377     [propput, id(DISPID_IHTMLWINDOW2_ONRESIZE)]
3378     HRESULT onresize([in] VARIANT v);
3379
3380     [propget, id(DISPID_IHTMLWINDOW2_ONRESIZE)]
3381     HRESULT onresize([retval, out] VARIANT *p);
3382
3383     [propput, id(DISPID_IHTMLWINDOW2_ONSCROLL)]
3384     HRESULT onscroll([in] VARIANT v);
3385
3386     [propget, id(DISPID_IHTMLWINDOW2_ONSCROLL)]
3387     HRESULT onscroll([retval, out] VARIANT *p);
3388
3389     [propget, id(DISPID_IHTMLWINDOW2_DOCUMENT)]
3390     HRESULT document([retval, out] IHTMLDocument2 **p);
3391
3392     [propget, id(DISPID_IHTMLWINDOW2_EVENT)]
3393     HRESULT event([retval, out] IHTMLEventObj **p);
3394
3395     [propget, id(DISPID_IHTMLWINDOW2__NEWENUM)]
3396     HRESULT _newEnum([retval, out] IUnknown **p);
3397
3398     [id(DISPID_IHTMLWINDOW2_SHOWMODALDIALOG)]
3399     HRESULT showModalDialog(
3400         [in] BSTR dialog,
3401         [optional, in] VARIANT *varArgIn,
3402         [optional, in] VARIANT *varOptions,
3403         [retval, out] VARIANT *varArgOut);
3404
3405     [id(DISPID_IHTMLWINDOW2_SHOWHELP)]
3406     HRESULT showHelp(
3407         [in] BSTR helpURL,
3408         [optional, in] VARIANT helpArg,
3409         [defaultvalue(""), in] BSTR features);
3410
3411     [propget, id(DISPID_IHTMLWINDOW2_SCREEN)]
3412     HRESULT screen([retval, out] IHTMLScreen **p);
3413
3414     [propget, id(DISPID_IHTMLWINDOW2_OPTION)]
3415     HRESULT Option([retval, out] IHTMLOptionElementFactory **p);
3416
3417     [id(DISPID_IHTMLWINDOW2_FOCUS)]
3418     HRESULT focus();
3419
3420     [propget, id(DISPID_IHTMLWINDOW2_CLOSED)]
3421     HRESULT closed([retval, out] VARIANT_BOOL *p);
3422
3423     [id(DISPID_IHTMLWINDOW2_BLUR)]
3424     HRESULT blur();
3425
3426     [id(DISPID_IHTMLWINDOW2_SCROLL)]
3427     HRESULT scroll([in] long x, [in] long y);
3428
3429     [propget, id(DISPID_IHTMLWINDOW2_CLIENTINFORMATION)]
3430     HRESULT clientInformation([retval, out] IOmNavigator **p);
3431
3432     [id(DISPID_IHTMLWINDOW2_SETINTERVAL)]
3433     HRESULT setInterval([
3434         in] BSTR expression,
3435         [in] long msec,
3436         [optional, in] VARIANT *language,
3437         [retval, out] long *timerID);
3438
3439     [id(DISPID_IHTMLWINDOW2_CLEARINTERVAL)]
3440     HRESULT clearInterval([in] long timerID);
3441
3442     [propput, id(DISPID_IHTMLWINDOW2_OFFSCREENBUFFERING)]
3443     HRESULT offscreenBuffering([in] VARIANT v);
3444
3445     [propget, id(DISPID_IHTMLWINDOW2_OFFSCREENBUFFERING)]
3446     HRESULT offscreenBuffering([retval, out] VARIANT *p);
3447
3448     [id(DISPID_IHTMLWINDOW2_EXECSCRIPT)]
3449     HRESULT execScript(
3450         [in] BSTR scode,
3451         [defaultvalue("JScript"), in] BSTR language,
3452         [retval, out] VARIANT *pvarRet);
3453
3454     [id(DISPID_IHTMLWINDOW2_TOSTRING)]
3455     HRESULT toString([retval, out] BSTR *String);
3456
3457     [id(DISPID_IHTMLWINDOW2_SCROLLBY)]
3458     HRESULT scrollBy([in] long x, [in] long y);
3459
3460     [id(DISPID_IHTMLWINDOW2_SCROLLTO)]
3461     HRESULT scrollTo([in] long x, [in] long y);
3462
3463     [id(DISPID_IHTMLWINDOW2_MOVETO)]
3464     HRESULT moveTo([in] long x, [in] long y);
3465
3466     [id(DISPID_IHTMLWINDOW2_MOVEBY)]
3467     HRESULT moveBy([in] long x, [in] long y);
3468
3469     [id(DISPID_IHTMLWINDOW2_RESIZETO)]
3470     HRESULT resizeTo([in] long x, [in] long y);
3471
3472     [id(DISPID_IHTMLWINDOW2_RESIZEBY)]
3473     HRESULT resizeBy([in] long x, [in] long y);
3474
3475     [propget, id(DISPID_IHTMLWINDOW2_EXTERNAL)]
3476     HRESULT external([retval, out] IDispatch **p);
3477 }
3478
3479 /*****************************************************************************
3480  *    IHTMLDocument interface
3481  */
3482 [
3483     odl,
3484     oleautomation,
3485     dual,
3486     uuid(626FC520-A41E-11CF-A731-00A0C9082637)
3487 ]
3488 interface IHTMLDocument : IDispatch
3489 {
3490     [propget, id(DISPID_IHTMLDOCUMENT_SCRIPT)]
3491     HRESULT Script([retval, out] IDispatch **p);
3492 }
3493
3494 /*****************************************************************************
3495  *    IHTMLDocument2 interface
3496  */
3497 [
3498     odl,
3499     oleautomation,
3500     dual,
3501     uuid(332C4425-26CB-11D0-B483-00C04FD90119)
3502 ]
3503 interface IHTMLDocument2 : IHTMLDocument
3504 {
3505     [propget, id(DISPID_IHTMLDOCUMENT2_ALL)]
3506     HRESULT all([retval, out] IHTMLElementCollection **p);
3507
3508     [propget, id(DISPID_IHTMLDOCUMENT2_BODY)]
3509     HRESULT body([retval, out] IHTMLElement **p);
3510
3511     [propget, id(DISPID_IHTMLDOCUMENT2_ACTIVEELEMENT)]
3512     HRESULT activeElement([retval, out] IHTMLElement **p);
3513
3514     [propget, id(DISPID_IHTMLDOCUMENT2_IMAGES)]
3515     HRESULT images([retval, out] IHTMLElementCollection **p);
3516
3517     [propget, id(DISPID_IHTMLDOCUMENT2_APPLETS)]
3518     HRESULT applets([retval, out] IHTMLElementCollection **p);
3519
3520     [propget, id(DISPID_IHTMLDOCUMENT2_LINKS)]
3521     HRESULT links([retval, out] IHTMLElementCollection **p);
3522
3523     [propget, id(DISPID_IHTMLDOCUMENT2_FORMS)]
3524     HRESULT forms([retval, out] IHTMLElementCollection **p);
3525
3526     [propget, id(DISPID_IHTMLDOCUMENT2_ANCHORS)]
3527     HRESULT anchors([retval, out] IHTMLElementCollection **p);
3528
3529     [propput, id(DISPID_IHTMLDOCUMENT2_TITLE)]
3530     HRESULT title([in] BSTR v);
3531
3532     [propget, id(DISPID_IHTMLDOCUMENT2_TITLE)]
3533     HRESULT title([retval, out] BSTR *p);
3534
3535     [propget, id(DISPID_IHTMLDOCUMENT2_SCRIPTS)]
3536     HRESULT scripts([retval, out] IHTMLElementCollection **p);
3537
3538     [propput, id(DISPID_IHTMLDOCUMENT2_DESIGNMODE)]
3539     HRESULT designMode([in] BSTR v);
3540
3541     [propget, id(DISPID_IHTMLDOCUMENT2_DESIGNMODE)]
3542     HRESULT designMode([retval, out] BSTR *p);
3543
3544     [propget, id(DISPID_IHTMLDOCUMENT2_SELECTION)]
3545     HRESULT selection([retval, out] IHTMLSelectionObject **p);
3546
3547     [propget, id(DISPID_IHTMLDOCUMENT2_READYSTATE)]
3548      HRESULT readyState([retval, out] BSTR *p);
3549
3550     [propget, id(DISPID_IHTMLDOCUMENT2_FRAMES)]
3551     HRESULT frames([retval, out] IHTMLFramesCollection2 **p);
3552
3553     [propget, id(DISPID_IHTMLDOCUMENT2_EMBEDS)]
3554     HRESULT embeds([retval, out] IHTMLElementCollection **p);
3555
3556     [propget, id(DISPID_IHTMLDOCUMENT2_PLUGINS)]
3557     HRESULT plugins([retval, out] IHTMLElementCollection **p);
3558
3559     [propput, id(DISPID_IHTMLDOCUMENT2_ALINKCOLOR)]
3560     HRESULT alinkColor([in] VARIANT v);
3561
3562     [propget, id(DISPID_IHTMLDOCUMENT2_ALINKCOLOR)]
3563     HRESULT alinkColor([retval, out] VARIANT *p);
3564
3565     [propput, id(DISPID_IHTMLDOCUMENT2_BGCOLOR)]
3566     HRESULT bgColor([in] VARIANT v);
3567
3568     [propget, id(DISPID_IHTMLDOCUMENT2_BGCOLOR)]
3569     HRESULT bgColor([retval, out] VARIANT *p);
3570
3571     [propput, id(DISPID_IHTMLDOCUMENT2_FGCOLOR)]
3572     HRESULT fgColor([in] VARIANT v);
3573
3574     [propget, id(DISPID_IHTMLDOCUMENT2_FGCOLOR)]
3575     HRESULT fgColor([retval, out] VARIANT *p);
3576
3577     [propput, id(DISPID_IHTMLDOCUMENT2_LINKCOLOR)]
3578     HRESULT linkColor([in] VARIANT v);
3579
3580     [propget, id(DISPID_IHTMLDOCUMENT2_LINKCOLOR)]
3581     HRESULT linkColor([retval, out] VARIANT *p);
3582
3583     [propput, id(DISPID_IHTMLDOCUMENT2_VLINKCOLOR)]
3584     HRESULT vlinkColor([in] VARIANT v);
3585
3586     [propget, id(DISPID_IHTMLDOCUMENT2_VLINKCOLOR)]
3587     HRESULT vlinkColor([retval, out] VARIANT *p);
3588
3589     [propget, id(DISPID_IHTMLDOCUMENT2_REFERRER)]
3590     HRESULT referrer([retval, out] BSTR *p);
3591
3592     [propget, id(DISPID_IHTMLDOCUMENT2_LOCATION)]
3593     HRESULT location([retval, out] IHTMLLocation **p);
3594
3595     [propget, id(DISPID_IHTMLDOCUMENT2_LASTMODIFIED)]
3596     HRESULT lastModified([retval, out] BSTR *p);
3597
3598     [propput, id(DISPID_IHTMLDOCUMENT2_URL)]
3599     HRESULT URL([in] BSTR v);
3600
3601     [propget, id(DISPID_IHTMLDOCUMENT2_URL)]
3602     HRESULT URL([retval, out] BSTR *p);
3603
3604     [propput, id(DISPID_IHTMLDOCUMENT2_DOMAIN)]
3605     HRESULT domain([in] BSTR v);
3606
3607     [propget, id(DISPID_IHTMLDOCUMENT2_DOMAIN)]
3608     HRESULT domain([retval, out] BSTR *p);
3609
3610     [propput, id(DISPID_IHTMLDOCUMENT2_COOKIE)]
3611     HRESULT cookie([in] BSTR v);
3612
3613     [propget, id(DISPID_IHTMLDOCUMENT2_COOKIE)]
3614     HRESULT cookie([retval, out] BSTR *p);
3615
3616     [propput, id(DISPID_IHTMLDOCUMENT2_EXPANDO)]
3617     HRESULT expando([in] VARIANT_BOOL v);
3618
3619     [propget, id(DISPID_IHTMLDOCUMENT2_EXPANDO)]
3620     HRESULT expando([retval, out] VARIANT_BOOL *p);
3621
3622     [propput, id(DISPID_IHTMLDOCUMENT2_CHARSET)]
3623      HRESULT charset([in] BSTR v);
3624
3625     [propget, id(DISPID_IHTMLDOCUMENT2_CHARSET)]
3626     HRESULT charset([retval, out] BSTR *p);
3627
3628     [propput, id(DISPID_IHTMLDOCUMENT2_DEFAULTCHARSET)]
3629     HRESULT defaultCharset([in] BSTR v);
3630
3631     [propget, id(DISPID_IHTMLDOCUMENT2_DEFAULTCHARSET)]
3632     HRESULT defaultCharset([retval, out] BSTR *p);
3633
3634     [propget, id(DISPID_IHTMLDOCUMENT2_MIMETYPE)]
3635     HRESULT mimeType([retval, out] BSTR *p);
3636
3637     [propget, id(DISPID_IHTMLDOCUMENT2_FILESIZE)]
3638     HRESULT fileSize([retval, out] BSTR *p);
3639
3640     [propget, id(DISPID_IHTMLDOCUMENT2_FILECREATEDDATE)]
3641     HRESULT fileCreatedDate([retval, out] BSTR *p);
3642
3643     [propget, id(DISPID_IHTMLDOCUMENT2_FILEMODIFIEDDATE)]
3644     HRESULT fileModifiedDate([retval, out] BSTR *p);
3645
3646     [propget, id(DISPID_IHTMLDOCUMENT2_FILEUPDATEDDATE)]
3647     HRESULT fileUpdatedDate([retval, out] BSTR *p);
3648
3649     [propget, id(DISPID_IHTMLDOCUMENT2_SECURITY)]
3650     HRESULT security([retval, out] BSTR *p);
3651
3652     [propget, id(DISPID_IHTMLDOCUMENT2_PROTOCOL)]
3653     HRESULT protocol([retval, out] BSTR *p);
3654
3655     [propget, id(DISPID_IHTMLDOCUMENT2_NAMEPROP)]
3656      HRESULT nameProp([retval, out] BSTR *p);
3657
3658     [vararg, id(DISPID_IHTMLDOCUMENT2_WRITE)]
3659     HRESULT write([in] SAFEARRAY *psarray);
3660
3661     [vararg, id(DISPID_IHTMLDOCUMENT2_WRITELN)]
3662     HRESULT writeln([in] SAFEARRAY *psarray);
3663
3664     [id(DISPID_IHTMLDOCUMENT2_OPEN)]
3665     HRESULT open(
3666         [defaultvalue("text/html"), in] BSTR url,
3667         [optional, in] VARIANT name,
3668         [optional, in] VARIANT features,
3669         [optional, in] VARIANT replace,
3670         [retval, out]  IDispatch **pomWindowResult);
3671
3672     [id(DISPID_IHTMLDOCUMENT2_CLOSE)]
3673     HRESULT close();
3674
3675     [id(DISPID_IHTMLDOCUMENT2_CLEAR)]
3676     HRESULT clear();
3677
3678     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDSUPPORTED)]
3679     HRESULT queryCommandSupported(
3680         [in] BSTR cmdID,
3681         [retval, out] VARIANT_BOOL *pfRet);
3682
3683     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDENABLED)]
3684     HRESULT queryCommandEnabled(
3685         [in] BSTR cmdID,
3686         [retval, out] VARIANT_BOOL *pfRet);
3687
3688     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDSTATE)]
3689     HRESULT queryCommandState(
3690         [in] BSTR cmdID,
3691         [retval, out] VARIANT_BOOL *pfRet);
3692
3693     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDINDETERM)]
3694     HRESULT queryCommandIndeterm(
3695         [in] BSTR cmdID,
3696         [retval, out] VARIANT_BOOL *pfRet);
3697
3698     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDTEXT)]
3699     HRESULT queryCommandText(
3700         [in] BSTR cmdID,
3701         [retval, out] BSTR *pcmdText);
3702
3703     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDVALUE)]
3704     HRESULT queryCommandValue(
3705         [in] BSTR cmdID,
3706         [retval, out] VARIANT *pcmdValue);
3707
3708     [id(DISPID_IHTMLDOCUMENT2_EXECCOMMAND)]
3709     HRESULT execCommand(
3710         [in] BSTR cmdID,
3711         [defaultvalue(0), in] VARIANT_BOOL showUI,
3712         [optional, in] VARIANT value,
3713         [retval, out] VARIANT_BOOL *pfRet);
3714
3715     [id(DISPID_IHTMLDOCUMENT2_EXECCOMMANDSHOWHELP)]
3716     HRESULT execCommandShowHelp(
3717         [in] BSTR cmdID,
3718         [retval, out] VARIANT_BOOL *pfRet);
3719
3720     [id(DISPID_IHTMLDOCUMENT2_CREATEELEMENT)]
3721      HRESULT createElement(
3722         [in] BSTR eTag,
3723         [retval, out] IHTMLElement **newElem);
3724
3725     [propput, id(DISPID_IHTMLDOCUMENT2_ONHELP)]
3726     HRESULT onhelp([in] VARIANT v);
3727
3728     [propget, id(DISPID_IHTMLDOCUMENT2_ONHELP)]
3729     HRESULT onhelp([retval, out] VARIANT *p);
3730
3731     [propput, id(DISPID_IHTMLDOCUMENT2_ONCLICK)]
3732     HRESULT onclick([in] VARIANT v);
3733
3734     [propget, id(DISPID_IHTMLDOCUMENT2_ONCLICK)]
3735     HRESULT onclick([retval, out] VARIANT *p);
3736
3737     [propput, id(DISPID_IHTMLDOCUMENT2_ONDBLCLICK)]
3738     HRESULT ondblclick([in] VARIANT v);
3739
3740     [propget, id(DISPID_IHTMLDOCUMENT2_ONDBLCLICK)]
3741     HRESULT ondblclick([retval, out] VARIANT *p);
3742
3743     [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYUP)]
3744     HRESULT onkeyup([in] VARIANT v);
3745
3746     [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYUP)]
3747     HRESULT onkeyup([retval, out] VARIANT *p);
3748
3749     [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYDOWN)]
3750     HRESULT onkeydown([in] VARIANT v);
3751
3752     [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYDOWN)]
3753     HRESULT onkeydown([retval, out] VARIANT *p);
3754
3755     [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYPRESS)]
3756      HRESULT onkeypress([in] VARIANT v);
3757
3758     [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYPRESS)]
3759     HRESULT onkeypress([retval, out] VARIANT *p);
3760
3761     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEUP)]
3762     HRESULT onmouseup([in] VARIANT v);
3763
3764     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEUP)]
3765     HRESULT onmouseup([retval, out] VARIANT *p);
3766
3767     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEDOWN)]
3768     HRESULT onmousedown([in] VARIANT v);
3769
3770     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEDOWN)]
3771     HRESULT onmousedown([retval, out] VARIANT *p);
3772
3773     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEMOVE)]
3774     HRESULT onmousemove([in] VARIANT v);
3775
3776     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEMOVE)]
3777     HRESULT onmousemove([retval, out] VARIANT *p);
3778
3779     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOUT)]
3780     HRESULT onmouseout([in] VARIANT v);
3781
3782     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOUT)]
3783     HRESULT onmouseout([retval, out] VARIANT *p);
3784
3785     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOVER)]
3786     HRESULT onmouseover([in] VARIANT v);
3787
3788     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOVER)]
3789     HRESULT onmouseover([retval, out] VARIANT *p);
3790
3791     [propput, id(DISPID_IHTMLDOCUMENT2_ONREADYSTATECHANGE)]
3792     HRESULT onreadystatechange([in] VARIANT v);
3793
3794     [propget, id(DISPID_IHTMLDOCUMENT2_ONREADYSTATECHANGE)]
3795     HRESULT onreadystatechange([retval, out] VARIANT *p);
3796
3797     [propput, id(DISPID_IHTMLDOCUMENT2_ONAFTERUPDATE)]
3798     HRESULT onafterupdate([in] VARIANT v);
3799
3800     [propget, id(DISPID_IHTMLDOCUMENT2_ONAFTERUPDATE)]
3801     HRESULT onafterupdate([retval, out] VARIANT *p);
3802
3803     [propput, id(DISPID_IHTMLDOCUMENT2_ONROWEXIT)]
3804     HRESULT onrowexit([in] VARIANT v);
3805
3806     [propget, id(DISPID_IHTMLDOCUMENT2_ONROWEXIT)]
3807     HRESULT onrowexit([retval, out] VARIANT *p);
3808
3809     [propput, id(DISPID_IHTMLDOCUMENT2_ONROWENTER)]
3810     HRESULT onrowenter([in] VARIANT v);
3811
3812     [propget, id(DISPID_IHTMLDOCUMENT2_ONROWENTER)]
3813     HRESULT onrowenter([retval, out] VARIANT *p);
3814
3815     [propput, id(DISPID_IHTMLDOCUMENT2_ONDRAGSTART)]
3816     HRESULT ondragstart([in] VARIANT v);
3817
3818     [propget, id(DISPID_IHTMLDOCUMENT2_ONDRAGSTART)]
3819     HRESULT ondragstart([retval, out] VARIANT *p);
3820
3821     [propput, id(DISPID_IHTMLDOCUMENT2_ONSELECTSTART)]
3822     HRESULT onselectstart([in] VARIANT v);
3823
3824     [propget, id(DISPID_IHTMLDOCUMENT2_ONSELECTSTART)]
3825     HRESULT onselectstart([retval, out] VARIANT *p);
3826
3827     [id(DISPID_IHTMLDOCUMENT2_ELEMENTFROMPOINT)]
3828     HRESULT elementFromPoint(
3829         [in] long x,
3830         [in] long y,
3831         [retval, out] IHTMLElement **elementHit);
3832
3833     [propget, id(DISPID_IHTMLDOCUMENT2_PARENTWINDOW)]
3834     HRESULT parentWindow([retval, out] IHTMLWindow2 **p);
3835
3836     [propget, id(DISPID_IHTMLDOCUMENT2_STYLESHEETS)]
3837     HRESULT styleSheets([retval, out] IHTMLStyleSheetsCollection **p);
3838
3839     [propput, id(DISPID_IHTMLDOCUMENT2_ONBEFOREUPDATE)]
3840     HRESULT onbeforeupdate([in] VARIANT v);
3841
3842     [propget, id(DISPID_IHTMLDOCUMENT2_ONBEFOREUPDATE)]
3843     HRESULT onbeforeupdate([retval, out] VARIANT *p);
3844
3845     [propput, id(DISPID_IHTMLDOCUMENT2_ONERRORUPDATE)]
3846     HRESULT onerrorupdate([in] VARIANT v);
3847
3848     [propget, id(DISPID_IHTMLDOCUMENT2_ONERRORUPDATE)]
3849     HRESULT onerrorupdate([retval, out] VARIANT *p);
3850
3851     [id(DISPID_IHTMLDOCUMENT2_TOSTRING)]
3852     HRESULT toString([retval, out] BSTR *String);
3853
3854     [id(DISPID_IHTMLDOCUMENT2_CREATESTYLESHEET)]
3855     HRESULT createStyleSheet(
3856         [defaultvalue(""), in] BSTR bstrHref,
3857         [defaultvalue(-1), in] long lIndex,
3858         [retval, out] IHTMLStyleSheet **ppnewStyleSheet);
3859 }
3860
3861 /*****************************************************************************
3862  *    IHTMLDocument3 interface
3863  */
3864 [
3865     odl,
3866     oleautomation,
3867     dual,
3868     uuid(3050f485-98b5-11cf-bb82-00aa00bdce0b)
3869 ]
3870 interface IHTMLDocument3 : IDispatch
3871 {
3872     [id(DISPID_IHTMLDOCUMENT3_RELEASECAPTURE)]
3873     HRESULT releaseCapture();
3874
3875     [id(DISPID_IHTMLDOCUMENT3_RECALC)]
3876     HRESULT recalc([defaultvalue(0), in] VARIANT_BOOL fForce);
3877
3878     [id(DISPID_IHTMLDOCUMENT3_CREATETEXTNODE)]
3879     HRESULT createTextNode(
3880         [in] BSTR text,
3881         [retval, out] IHTMLDOMNode **newTextNode);
3882
3883     [propget, id(DISPID_IHTMLDOCUMENT3_DOCUMENTELEMENT)]
3884     HRESULT documentElement([retval, out] IHTMLElement **p);
3885
3886     [propget, id(DISPID_IHTMLDOCUMENT3_UNIQUEID), hidden]
3887     HRESULT uniqueID([retval, out] BSTR *p);
3888     
3889     [id(DISPID_IHTMLDOCUMENT3_ATTACHEVENT)]
3890     HRESULT attachEvent(
3891         [in] BSTR event,
3892         [in] IDispatch* pDisp,
3893         [retval, out] VARIANT_BOOL *pfResult);
3894
3895     [id(DISPID_IHTMLDOCUMENT3_DETACHEVENT)]
3896     HRESULT detachEvent(
3897         [in] BSTR event,
3898         [in] IDispatch *pDisp);
3899
3900     [propput, id(DISPID_IHTMLDOCUMENT3_ONROWSDELETE), displaybind, bindable]
3901     HRESULT onrowsdelete([in] VARIANT v);
3902
3903     [propget, id(DISPID_IHTMLDOCUMENT3_ONROWSDELETE), displaybind, bindable]
3904     HRESULT onrowsdelete([retval, out] VARIANT *p);
3905
3906     [propput, id(DISPID_IHTMLDOCUMENT3_ONROWSINSERTED), displaybind, bindable]
3907     HRESULT onrowsinserted([in] VARIANT v);
3908
3909     [propget, id(DISPID_IHTMLDOCUMENT3_ONROWSINSERTED), displaybind, bindable]
3910     HRESULT onrowsinserted([retval, out] VARIANT *p);
3911
3912     [propput, id(DISPID_IHTMLDOCUMENT3_ONCELLCHANGE), displaybind, bindable]
3913     HRESULT oncellchange([in] VARIANT v);
3914
3915     [propget, id(DISPID_IHTMLDOCUMENT3_ONCELLCHANGE), displaybind, bindable]
3916     HRESULT oncellchange([retval, out] VARIANT *p);
3917
3918     [propput, id(DISPID_IHTMLDOCUMENT3_ONDATASETCHANGED), displaybind, bindable]
3919     HRESULT ondatasetchanged([in] VARIANT v);
3920
3921     [propget, id(DISPID_IHTMLDOCUMENT3_ONDATASETCHANGED), displaybind, bindable]
3922     HRESULT ondatasetchanged([retval, out] VARIANT *p);
3923
3924     [propput, id(DISPID_IHTMLDOCUMENT3_ONDATAAVAILABLE), displaybind, bindable]
3925     HRESULT ondataavailable([in] VARIANT v);
3926
3927     [propget, id(DISPID_IHTMLDOCUMENT3_ONDATAAVAILABLE), displaybind, bindable]
3928     HRESULT ondataavailable([retval, out] VARIANT * p);
3929
3930     [propput, id(DISPID_IHTMLDOCUMENT3_ONDATASETCOMPLETE), displaybind, bindable]
3931     HRESULT ondatasetcomplete([in] VARIANT v);
3932
3933     [propget, id(DISPID_IHTMLDOCUMENT3_ONDATASETCOMPLETE), displaybind, bindable]
3934     HRESULT ondatasetcomplete([retval, out] VARIANT *p);
3935
3936     [propput, id(DISPID_IHTMLDOCUMENT3_ONPROPERTYCHANGE), displaybind, bindable]
3937     HRESULT onpropertychange([in] VARIANT v);
3938
3939     [propget, id(DISPID_IHTMLDOCUMENT3_ONPROPERTYCHANGE), displaybind, bindable]
3940     HRESULT onpropertychange([retval, out] VARIANT *p);
3941
3942     [propput, id(DISPID_IHTMLDOCUMENT3_DIR)]
3943     HRESULT dir([in] BSTR v);
3944
3945     [propget, id(DISPID_IHTMLDOCUMENT3_DIR)]
3946     HRESULT dir([retval, out] BSTR *p);
3947
3948     [propput, id(DISPID_IHTMLDOCUMENT3_ONCONTEXTMENU), displaybind, bindable]
3949     HRESULT oncontextmenu([in] VARIANT v);
3950
3951     [propget, id(DISPID_IHTMLDOCUMENT3_ONCONTEXTMENU), displaybind, bindable]
3952     HRESULT oncontextmenu([retval, out] VARIANT *p);
3953
3954     [propput, id(DISPID_IHTMLDOCUMENT3_ONSTOP), displaybind, bindable]
3955     HRESULT onstop([in] VARIANT v);
3956
3957     [propget, id(DISPID_IHTMLDOCUMENT3_ONSTOP), displaybind, bindable]
3958     HRESULT onstop([retval, out] VARIANT *p);
3959
3960     [id(DISPID_IHTMLDOCUMENT3_CREATEDOCUMENTFRAGMENT)]
3961     HRESULT createDocumentFragment([retval, out] IHTMLDocument2 **pNewDoc);
3962
3963     [propget, id(DISPID_IHTMLDOCUMENT3_PARENTDOCUMENT), hidden, restricted]
3964     HRESULT parentDocument([retval, out] IHTMLDocument2 **p);
3965
3966     [propput, id(DISPID_IHTMLDOCUMENT3_ENABLEDOWNLOAD), hidden, restricted]
3967     HRESULT enableDownload([in] VARIANT_BOOL v);
3968
3969     [propget, id(DISPID_IHTMLDOCUMENT3_ENABLEDOWNLOAD), hidden, restricted]
3970     HRESULT enableDownload([retval, out] VARIANT_BOOL *p);
3971
3972     [propput, id(DISPID_IHTMLDOCUMENT3_BASEURL), hidden, restricted]
3973     HRESULT baseUrl([in] BSTR v);
3974
3975     [propget, id(DISPID_IHTMLDOCUMENT3_BASEURL), hidden, restricted]
3976     HRESULT baseUrl([retval, out] BSTR *p);
3977
3978     [propget, id(DISPID_IHTMLDOCUMENT3_CHILDNODES)]
3979     HRESULT childNodes([retval, out] IDispatch **p);
3980
3981     [propput, id(DISPID_IHTMLDOCUMENT3_INHERITSTYLESHEETS), hidden, restricted]
3982     HRESULT inheritStyleSheets([in] VARIANT_BOOL v);
3983
3984     [propget, id(DISPID_IHTMLDOCUMENT3_INHERITSTYLESHEETS), hidden, restricted]
3985     HRESULT inheritStyleSheets([retval, out] VARIANT_BOOL *p);
3986
3987     [propput, id(DISPID_IHTMLDOCUMENT3_ONBEFOREEDITFOCUS), displaybind, bindable]
3988     HRESULT onbeforeeditfocus([in] VARIANT v);
3989
3990     [propget, id(DISPID_IHTMLDOCUMENT3_ONBEFOREEDITFOCUS), displaybind, bindable]
3991     HRESULT onbeforeeditfocus([retval, out] VARIANT *p);
3992
3993     [id(DISPID_IHTMLDOCUMENT3_GETELEMENTSBYNAME)]
3994     HRESULT getElementsByName(
3995         [in] BSTR v,
3996         [retval, out] IHTMLElementCollection **pelColl);
3997
3998     [id(DISPID_IHTMLDOCUMENT3_GETELEMENTBYID)]
3999     HRESULT getElementById(
4000         [in] BSTR v,
4001         [retval, out] IHTMLElement **pel);
4002
4003     [id(DISPID_IHTMLDOCUMENT3_GETELEMENTSBYTAGNAME)]
4004     HRESULT getElementsByTagName(
4005         [in] BSTR v,
4006         [retval, out] IHTMLElementCollection **pelColl);
4007 }
4008
4009 /*****************************************************************************
4010  *    IHTMLDocument4 interface
4011  */
4012 [
4013     odl,
4014     oleautomation,
4015     dual,
4016     uuid(3050f69a-98b5-11cf-bb82-00aa00bdce0b)
4017 ]
4018 interface IHTMLDocument4 : IDispatch
4019 {
4020     [id(DISPID_IHTMLDOCUMENT4_FOCUS)]
4021     HRESULT focus();
4022
4023     [id(DISPID_IHTMLDOCUMENT4_HASFOCUS)]
4024     HRESULT hasFocus([retval, out] VARIANT_BOOL *pfFocus);
4025
4026     [propput, id(DISPID_IHTMLDOCUMENT4_ONSELECTIONCHANGE), displaybind, bindable]
4027     HRESULT onselectionchange([in] VARIANT v);
4028
4029     [propget, id(DISPID_IHTMLDOCUMENT4_ONSELECTIONCHANGE), displaybind, bindable]
4030     HRESULT onselectionchange([retval, out] VARIANT *p);
4031
4032     [propget, id(DISPID_IHTMLDOCUMENT4_NAMESPACES)]
4033     HRESULT namespaces([retval, out] IDispatch **p);
4034
4035     [id(DISPID_IHTMLDOCUMENT4_CREATEDOCUMENTFROMURL)]
4036     HRESULT createDocumentFromUrl(
4037         [in] BSTR bstrUrl,
4038         [in] BSTR bstrOptions,
4039         [retval, out] IHTMLDocument2 **newDoc);
4040
4041     [propput, id(DISPID_IHTMLDOCUMENT4_MEDIA)]
4042     HRESULT media([in] BSTR v);
4043
4044     [propget, id(DISPID_IHTMLDOCUMENT4_MEDIA)]
4045     HRESULT media([retval, out] BSTR *p);
4046
4047     [id(DISPID_IHTMLDOCUMENT4_CREATEEVENTOBJECT)]
4048     HRESULT createEventObject(
4049         [optional, in] VARIANT *pvarEventObject,
4050         [retval, out] IHTMLEventObj **ppEventObj);
4051
4052     [id(DISPID_IHTMLDOCUMENT4_FIREEVENT)]
4053     HRESULT fireEvent(
4054         [in] BSTR bstrEventName,
4055         [optional, in] VARIANT *pvarEventObject,
4056         [retval, out] VARIANT_BOOL *pfCancelled);
4057
4058     [id(DISPID_IHTMLDOCUMENT4_CREATERENDERSTYLE)]
4059     HRESULT createRenderStyle(
4060         [in] BSTR v,
4061         [retval, out] IHTMLRenderStyle **ppIHTMLRenderStyle);
4062
4063     [propput, id(DISPID_IHTMLDOCUMENT4_ONCONTROLSELECT), displaybind, bindable]
4064     HRESULT oncontrolselect([in] VARIANT v);
4065
4066     [propget, id(DISPID_IHTMLDOCUMENT4_ONCONTROLSELECT), displaybind, bindable]
4067     HRESULT oncontrolselect([retval, out] VARIANT *p);
4068
4069     [propget, id(DISPID_IHTMLDOCUMENT4_URLUNENCODED)]
4070     HRESULT URLUnencoded([retval, out] BSTR *p);
4071 }
4072
4073 /*****************************************************************************
4074  *    IHTMLDocument5 interface
4075  */
4076 [
4077     odl,
4078     oleautomation,
4079     dual,
4080     uuid(3050f80c-98b5-11cf-bb82-00aa00bdce0b)
4081 ]
4082 interface IHTMLDocument5 : IDispatch
4083 {
4084     [propput, id(DISPID_IHTMLDOCUMENT5_ONMOUSEWHEEL), displaybind, bindable]
4085     HRESULT onmousewheel([in] VARIANT v);
4086
4087     [propget, id(DISPID_IHTMLDOCUMENT5_ONMOUSEWHEEL), displaybind, bindable]
4088     HRESULT onmousewheel([retval, out] VARIANT *p);
4089
4090     [propget, id(DISPID_IHTMLDOCUMENT5_DOCTYPE)]
4091     HRESULT doctype([retval, out] IHTMLDOMNode **p);
4092
4093     [propget, id(DISPID_IHTMLDOCUMENT5_IMPLEMENTATION)]
4094     HRESULT implementation([retval, out] IHTMLDOMImplementation **p);
4095
4096     [id(DISPID_IHTMLDOCUMENT5_CREATEATTRIBUTE)]
4097     HRESULT createAttribute(
4098         [in] BSTR bstrattrName,
4099         [retval, out] IHTMLDOMAttribute **ppattribute);
4100
4101     [id(DISPID_IHTMLDOCUMENT5_CREATECOMMENT)]
4102     HRESULT createComment(
4103         [in] BSTR bstrdata,
4104         [retval, out] IHTMLDOMNode **ppRetNode);
4105
4106     [propput, id(DISPID_IHTMLDOCUMENT5_ONFOCUSIN), displaybind, bindable]
4107     HRESULT onfocusin([in] VARIANT v);
4108
4109     [propget, id(DISPID_IHTMLDOCUMENT5_ONFOCUSIN), displaybind, bindable]
4110     HRESULT onfocusin([retval, out] VARIANT *p);
4111
4112     [propput, id(DISPID_IHTMLDOCUMENT5_ONFOCUSOUT), displaybind, bindable]
4113     HRESULT onfocusout([in] VARIANT v);
4114
4115     [propget, id(DISPID_IHTMLDOCUMENT5_ONFOCUSOUT), displaybind, bindable]
4116     HRESULT onfocusout([retval, out] VARIANT *p);
4117
4118     [propput, id(DISPID_IHTMLDOCUMENT5_ONACTIVATE), displaybind, bindable]
4119     HRESULT onactivate([in] VARIANT v);
4120
4121     [propget, id(DISPID_IHTMLDOCUMENT5_ONACTIVATE), displaybind, bindable]
4122     HRESULT onactivate([retval, out] VARIANT *p);
4123
4124     [propput, id(DISPID_IHTMLDOCUMENT5_ONDEACTIVATE), displaybind, bindable]
4125     HRESULT ondeactivate([in] VARIANT v);
4126
4127     [propget, id(DISPID_IHTMLDOCUMENT5_ONDEACTIVATE), displaybind, bindable]
4128     HRESULT ondeactivate([retval, out] VARIANT *p);
4129
4130     [propput, id(DISPID_IHTMLDOCUMENT5_ONBEFOREACTIVATE), displaybind, bindable]
4131     HRESULT onbeforeactivate([in] VARIANT v);
4132
4133     [propget, id(DISPID_IHTMLDOCUMENT5_ONBEFOREACTIVATE), displaybind, bindable]
4134     HRESULT onbeforeactivate([retval, out] VARIANT *p);
4135
4136     [propput, id(DISPID_IHTMLDOCUMENT5_ONBEFOREDEACTIVATE), displaybind, bindable]
4137     HRESULT onbeforedeactivate([in] VARIANT v);
4138
4139     [propget, id(DISPID_IHTMLDOCUMENT5_ONBEFOREDEACTIVATE), displaybind, bindable]
4140     HRESULT onbeforedeactivate([retval, out] VARIANT *p);
4141
4142     [propget, id(DISPID_IHTMLDOCUMENT5_COMPATMODE)]
4143     HRESULT compatMode([retval, out] BSTR *p);
4144 }
4145
4146 /*****************************************************************************
4147  *    HTMLDocument coclass
4148  */
4149 [
4150     uuid(25336920-03F9-11cf-8FD0-00AA00686F13)
4151 ]
4152 coclass HTMLDocument
4153 {
4154     [default]         interface IHTMLDocument2;
4155     [source, default] dispinterface HTMLDocumentEvents;
4156 };
4157
4158 } /* library MSHTML */