Implement table marshaling.
[wine] / include / mshtml.idl
1 /*
2  * Copyright 2004 Jacek Caban
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 IHTMLElement;
29 interface IHTMLDocument2;
30 interface IHTMLStyleSheetsCollection;
31
32 /*****************************************************************************
33  *    IHTMLStyle interface
34  */
35 [
36     odl,
37     oleautomation,
38     dual,
39     uuid(3050F25E-98B5-11CF-BB82-00AA00BDCE0B)
40 ]
41 interface IHTMLStyle : IDispatch
42 {
43     [propput, id(DISPID_IHTMLSTYLE_FONTFAMILY)]
44     HRESULT fontFamily([in] BSTR v);
45
46     [propget, id(DISPID_IHTMLSTYLE_FONTFAMILY)]
47     HRESULT fontFamily([retval, out] BSTR *p);
48
49     [propput, id(DISPID_IHTMLSTYLE_FONTSTYLE)]
50     HRESULT fontStyle([in] BSTR v);
51
52     [propget, id(DISPID_IHTMLSTYLE_FONTSTYLE)]
53     HRESULT fontStyle([retval, out] BSTR *p);
54
55     [propput, id(DISPID_IHTMLSTYLE_FONTVARIANT)]
56     HRESULT fontVariant([in] BSTR v);
57
58     [propget, id(DISPID_IHTMLSTYLE_FONTVARIANT)]
59     HRESULT fontVariant([retval, out] BSTR *p);
60
61     [propput, id(DISPID_IHTMLSTYLE_FONTWEIGHT)]
62     HRESULT fontWeight([in] BSTR v);
63
64     [propget, id(DISPID_IHTMLSTYLE_FONTWEIGHT)]
65     HRESULT fontWeight([retval, out] BSTR *p);
66
67     [propput, id(DISPID_IHTMLSTYLE_FONTSIZE)]
68     HRESULT fontSize([in] VARIANT v);
69
70     [propget, id(DISPID_IHTMLSTYLE_FONTSIZE)]
71     HRESULT fontSize([retval, out] VARIANT *p);
72
73     [propput, id(DISPID_IHTMLSTYLE_FONT)]
74     HRESULT font([in] BSTR v);
75
76     [propget, id(DISPID_IHTMLSTYLE_FONT)]
77     HRESULT font([retval, out] BSTR *p);
78
79     [propput, id(DISPID_IHTMLSTYLE_COLOR)]
80     HRESULT color([in] VARIANT v);
81
82     [propget, id(DISPID_IHTMLSTYLE_COLOR)]
83     HRESULT color([retval, out] VARIANT *p);
84
85     [propput, id(DISPID_IHTMLSTYLE_BACKGROUND)]
86     HRESULT background([in] BSTR v);
87
88     [propget, id(DISPID_IHTMLSTYLE_BACKGROUND)]
89     HRESULT background([retval, out] BSTR *p);
90
91     [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDCOLOR)]
92     HRESULT backgroundColor([in] VARIANT v);
93
94     [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDCOLOR)]
95     HRESULT backgroundColor([retval, out] VARIANT *p);
96
97     [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDIMAGE)]
98     HRESULT backgroundImage([in] BSTR v);
99
100     [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDIMAGE)]
101     HRESULT backgroundImage([retval, out] BSTR *p);
102
103     [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDREPEAT)]
104     HRESULT backgroundRepeat([in] BSTR v);
105
106     [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDREPEAT)]
107     HRESULT backgroundRepeat([retval, out] BSTR *p);
108
109     [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDATTACHMENT)]
110     HRESULT backgroundAttachment([in] BSTR v);
111
112     [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDATTACHMENT)]
113     HRESULT backgroundAttachment([retval, out] BSTR *p);
114
115     [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDPOSITION)]
116     HRESULT backgroundPosition([in] BSTR v);
117
118     [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDPOSITION)]
119     HRESULT backgroundPosition([retval, out] BSTR *p);
120
121     [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDPOSITIONX)]
122     HRESULT backgroundPositionX([in] VARIANT v);
123
124     [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDPOSITIONX)]
125     HRESULT backgroundPositionX([retval, out] VARIANT *p);
126
127     [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDPOSITIONY)]
128     HRESULT backgroundPositionY([in] VARIANT v);
129
130     [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDPOSITIONY)]
131     HRESULT backgroundPositionY([retval, out] VARIANT *p);
132
133     [propput, id(DISPID_IHTMLSTYLE_WORDSPACING)]
134     HRESULT wordSpacing([in] VARIANT v);
135
136     [propget, id(DISPID_IHTMLSTYLE_WORDSPACING)]
137     HRESULT wordSpacing([retval, out] VARIANT *p);
138
139     [propput, id(DISPID_IHTMLSTYLE_LETTERSPACING)]
140     HRESULT letterSpacing([in] VARIANT v);
141
142     [propget, id(DISPID_IHTMLSTYLE_LETTERSPACING)]
143     HRESULT letterSpacing([retval, out] VARIANT *p);
144
145     [propput, id(DISPID_IHTMLSTYLE_TEXTDECORATION)]
146     HRESULT textDecoration([in] BSTR v);
147
148     [propget, id(DISPID_IHTMLSTYLE_TEXTDECORATION)]
149     HRESULT textDecoration([retval, out] BSTR *p);
150
151     [propput, id(DISPID_IHTMLSTYLE_TEXTDECORATIONNONE)]
152     HRESULT textDecorationNone([in] VARIANT_BOOL v);
153
154     [propget, id(DISPID_IHTMLSTYLE_TEXTDECORATIONNONE)]
155     HRESULT textDecorationNone([retval, out] VARIANT_BOOL *p);
156
157     [propput, id(DISPID_IHTMLSTYLE_TEXTDECORATIONUNDERLINE)]
158     HRESULT textDecorationUnderline([in] VARIANT_BOOL v);
159
160     [propget, id(DISPID_IHTMLSTYLE_TEXTDECORATIONUNDERLINE)]
161     HRESULT textDecorationUnderline([retval, out] VARIANT_BOOL *p);
162
163     [propput, id(DISPID_IHTMLSTYLE_TEXTDECORATIONOVERLINE)]
164     HRESULT textDecorationOverline([in] VARIANT_BOOL v);
165
166     [propget, id(DISPID_IHTMLSTYLE_TEXTDECORATIONOVERLINE)]
167     HRESULT textDecorationOverline([retval, out] VARIANT_BOOL *p);
168
169     [propput, id(DISPID_IHTMLSTYLE_TEXTDECORATIONLINETHROUGH)]
170     HRESULT textDecorationLineThrough([in] VARIANT_BOOL v);
171
172     [propget, id(DISPID_IHTMLSTYLE_TEXTDECORATIONLINETHROUGH)]
173     HRESULT textDecorationLineThrough([retval, out] VARIANT_BOOL *p);
174
175     [propput, id(DISPID_IHTMLSTYLE_TEXTDECORATIONBLINK)]
176     HRESULT textDecorationBlink([in] VARIANT_BOOL v);
177
178     [propget, id(DISPID_IHTMLSTYLE_TEXTDECORATIONBLINK)]
179     HRESULT textDecorationBlink([retval, out] VARIANT_BOOL *p);
180
181     [propput, id(DISPID_IHTMLSTYLE_VERTICALALIGN)]
182     HRESULT verticalAlign([in] VARIANT v);
183
184     [propget, id(DISPID_IHTMLSTYLE_VERTICALALIGN)]
185     HRESULT verticalAlign([retval, out] VARIANT *p);
186
187     [propput, id(DISPID_IHTMLSTYLE_TEXTTRANSFORM)]
188     HRESULT textTransform([in] BSTR v);
189
190     [propget, id(DISPID_IHTMLSTYLE_TEXTTRANSFORM)]
191     HRESULT textTransform([retval, out] BSTR *p);
192
193     [propput, id(DISPID_IHTMLSTYLE_TEXTALIGN)]
194     HRESULT textAlign([in] BSTR v);
195
196     [propget, id(DISPID_IHTMLSTYLE_TEXTALIGN)]
197     HRESULT textAlign([retval, out] BSTR *p);
198
199     [propput, id(DISPID_IHTMLSTYLE_TEXTINDENT)]
200     HRESULT textIndent([in] VARIANT v);
201
202     [propget, id(DISPID_IHTMLSTYLE_TEXTINDENT)]
203     HRESULT textIndent([retval, out] VARIANT *p);
204
205     [propput, id(DISPID_IHTMLSTYLE_LINEHEIGHT)]
206     HRESULT lineHeight([in] VARIANT v);
207
208     [propget, id(DISPID_IHTMLSTYLE_LINEHEIGHT)]
209     HRESULT lineHeight([retval, out] VARIANT *p);
210
211     [propput, id(DISPID_IHTMLSTYLE_MARGINTOP)]
212     HRESULT marginTop([in] VARIANT v);
213
214     [propget, id(DISPID_IHTMLSTYLE_MARGINTOP)]
215     HRESULT marginTop([retval, out] VARIANT *p);
216
217     [propput, id(DISPID_IHTMLSTYLE_MARGINRIGHT)]
218     HRESULT marginRight([in] VARIANT v);
219
220     [propget, id(DISPID_IHTMLSTYLE_MARGINRIGHT)]
221     HRESULT marginRight([retval, out] VARIANT *p);
222
223     [propput, id(DISPID_IHTMLSTYLE_MARGINBOTTOM)]
224     HRESULT marginBottom([in] VARIANT v);
225
226     [propget, id(DISPID_IHTMLSTYLE_MARGINBOTTOM)]
227     HRESULT marginBottom([retval, out] VARIANT *p);
228
229     [propput, id(DISPID_IHTMLSTYLE_MARGINLEFT)]
230     HRESULT marginLeft([in] VARIANT v);
231
232     [propget, id(DISPID_IHTMLSTYLE_MARGINLEFT)]
233     HRESULT marginLeft([retval, out] VARIANT *p);
234
235     [propput, id(DISPID_IHTMLSTYLE_MARGIN)]
236     HRESULT margin([in] BSTR v);
237
238     [propget, id(DISPID_IHTMLSTYLE_MARGIN)]
239     HRESULT margin([retval, out] BSTR *p);
240
241     [propput, id(DISPID_IHTMLSTYLE_PADDINGTOP)]
242     HRESULT paddingTop([in] VARIANT v);
243
244     [propget, id(DISPID_IHTMLSTYLE_PADDINGTOP)]
245     HRESULT paddingTop([retval, out] VARIANT *p);
246
247     [propput, id(DISPID_IHTMLSTYLE_PADDINGRIGHT)]
248     HRESULT paddingRight([in] VARIANT v);
249
250     [propget, id(DISPID_IHTMLSTYLE_PADDINGRIGHT)]
251     HRESULT paddingRight([retval, out] VARIANT *p);
252
253     [propput, id(DISPID_IHTMLSTYLE_PADDINGBOTTOM)]
254     HRESULT paddingBottom([in] VARIANT v);
255
256     [propget, id(DISPID_IHTMLSTYLE_PADDINGBOTTOM)]
257     HRESULT paddingBottom([retval, out] VARIANT *p);
258
259     [propput, id(DISPID_IHTMLSTYLE_PADDINGLEFT)]
260     HRESULT paddingLeft([in] VARIANT v);
261
262     [propget, id(DISPID_IHTMLSTYLE_PADDINGLEFT)]
263     HRESULT paddingLeft([retval, out] VARIANT *p);
264
265     [propput, id(DISPID_IHTMLSTYLE_PADDING)]
266     HRESULT padding([in] BSTR v);
267
268     [propget, id(DISPID_IHTMLSTYLE_PADDING)]
269     HRESULT padding([retval, out] BSTR *p);
270
271     [propput, id(DISPID_IHTMLSTYLE_BORDER)]
272     HRESULT border([in] BSTR v);
273
274     [propget, id(DISPID_IHTMLSTYLE_BORDER)]
275     HRESULT border([retval, out] BSTR *p);
276
277     [propput, id(DISPID_IHTMLSTYLE_BORDERTOP)]
278     HRESULT borderTop([in] BSTR v);
279
280     [propget, id(DISPID_IHTMLSTYLE_BORDERTOP)]
281     HRESULT borderTop([retval, out] BSTR *p);
282
283     [propput, id(DISPID_IHTMLSTYLE_BORDERRIGHT)]
284     HRESULT borderRight([in] BSTR v);
285
286     [propget, id(DISPID_IHTMLSTYLE_BORDERRIGHT)]
287     HRESULT borderRight([retval, out] BSTR *p);
288
289     [propput, id(DISPID_IHTMLSTYLE_BORDERBOTTOM)]
290     HRESULT borderBottom([in] BSTR v);
291
292     [propget, id(DISPID_IHTMLSTYLE_BORDERBOTTOM)]
293     HRESULT borderBottom([retval, out] BSTR *p);
294
295     [propput, id(DISPID_IHTMLSTYLE_BORDERLEFT)]
296     HRESULT borderLeft([in] BSTR v);
297
298     [propget, id(DISPID_IHTMLSTYLE_BORDERLEFT)]
299     HRESULT borderLeft([retval, out] BSTR *p);
300
301     [propput, id(DISPID_IHTMLSTYLE_BORDERCOLOR)]
302     HRESULT borderColor([in] BSTR v);
303
304     [propget, id(DISPID_IHTMLSTYLE_BORDERCOLOR)]
305     HRESULT borderColor([retval, out] BSTR *p);
306
307     [propput, id(DISPID_IHTMLSTYLE_BORDERTOPCOLOR)]
308     HRESULT borderTopColor([in] VARIANT v);
309
310     [propget, id(DISPID_IHTMLSTYLE_BORDERTOPCOLOR)]
311     HRESULT borderTopColor([retval, out] VARIANT *p);
312
313     [propput, id(DISPID_IHTMLSTYLE_BORDERRIGHTCOLOR)]
314     HRESULT borderRightColor([in] VARIANT v);
315
316     [propget, id(DISPID_IHTMLSTYLE_BORDERRIGHTCOLOR)]
317     HRESULT borderRightColor([retval, out] VARIANT *p);
318
319     [propput, id(DISPID_IHTMLSTYLE_BORDERBOTTOMCOLOR)]
320     HRESULT borderBottomColor([in] VARIANT v);
321
322     [propget, id(DISPID_IHTMLSTYLE_BORDERBOTTOMCOLOR)]
323     HRESULT borderBottomColor([retval, out] VARIANT *p);
324
325     [propput, id(DISPID_IHTMLSTYLE_BORDERLEFTCOLOR)]
326     HRESULT borderLeftColor([in] VARIANT v);
327
328     [propget, id(DISPID_IHTMLSTYLE_BORDERLEFTCOLOR)]
329     HRESULT borderLeftColor([retval, out] VARIANT *p);
330
331     [propput, id(DISPID_IHTMLSTYLE_BORDERWIDTH)]
332     HRESULT borderWidth([in] BSTR v);
333
334     [propget, id(DISPID_IHTMLSTYLE_BORDERWIDTH)]
335     HRESULT borderWidth([retval, out] BSTR *p);
336
337     [propput, id(DISPID_IHTMLSTYLE_BORDERTOPWIDTH)]
338     HRESULT borderTopWidth([in] VARIANT v);
339
340     [propget, id(DISPID_IHTMLSTYLE_BORDERTOPWIDTH)]
341     HRESULT borderTopWidth([retval, out] VARIANT *p);
342
343     [propput, id(DISPID_IHTMLSTYLE_BORDERRIGHTWIDTH)]
344     HRESULT borderRightWidth([in] VARIANT v);
345
346     [propget, id(DISPID_IHTMLSTYLE_BORDERRIGHTWIDTH)]
347     HRESULT borderRightWidth([retval, out] VARIANT *p);
348
349     [propput, id(DISPID_IHTMLSTYLE_BORDERBOTTOMWIDTH)]
350     HRESULT borderBottomWidth([in] VARIANT v);
351
352     [propget, id(DISPID_IHTMLSTYLE_BORDERBOTTOMWIDTH)]
353     HRESULT borderBottomWidth([retval, out] VARIANT *p);
354
355     [propput, id(DISPID_IHTMLSTYLE_BORDERLEFTWIDTH)]
356     HRESULT borderLeftWidth([in] VARIANT v);
357
358     [propget, id(DISPID_IHTMLSTYLE_BORDERLEFTWIDTH)]
359     HRESULT borderLeftWidth([retval, out] VARIANT *p);
360
361     [propput, id(DISPID_IHTMLSTYLE_BORDERSTYLE)]
362     HRESULT borderStyle([in] BSTR v);
363
364     [propget, id(DISPID_IHTMLSTYLE_BORDERSTYLE)]
365     HRESULT borderStyle([retval, out] BSTR *p);
366
367     [propput, id(DISPID_IHTMLSTYLE_BORDERTOPSTYLE)]
368     HRESULT borderTopStyle([in] BSTR v);
369
370     [propget, id(DISPID_IHTMLSTYLE_BORDERTOPSTYLE)]
371     HRESULT borderTopStyle([retval, out] BSTR *p);
372
373     [propput, id(DISPID_IHTMLSTYLE_BORDERRIGHTSTYLE)]
374     HRESULT borderRightStyle([in] BSTR v);
375
376     [propget, id(DISPID_IHTMLSTYLE_BORDERRIGHTSTYLE)]
377     HRESULT borderRightStyle([retval, out] BSTR *p);
378
379     [propput, id(DISPID_IHTMLSTYLE_BORDERBOTTOMSTYLE)]
380     HRESULT borderBottomStyle([in] BSTR v);
381
382     [propget, id(DISPID_IHTMLSTYLE_BORDERBOTTOMSTYLE)]
383     HRESULT borderBottomStyle([retval, out] BSTR *p);
384
385     [propput, id(DISPID_IHTMLSTYLE_BORDERLEFTSTYLE)]
386     HRESULT borderLeftStyle([in] BSTR v);
387
388     [propget, id(DISPID_IHTMLSTYLE_BORDERLEFTSTYLE)]
389     HRESULT borderLeftStyle([retval, out] BSTR *p);
390
391     [propput, id(DISPID_IHTMLSTYLE_WIDTH)]
392     HRESULT width([in] VARIANT v);
393
394     [propget, id(DISPID_IHTMLSTYLE_WIDTH)]
395     HRESULT width([retval, out] VARIANT *p);
396
397     [propput, id(DISPID_IHTMLSTYLE_HEIGHT)]
398     HRESULT height([in] VARIANT v);
399
400     [propget, id(DISPID_IHTMLSTYLE_HEIGHT)]
401     HRESULT height([retval, out] VARIANT *p);
402
403     [propput, id(DISPID_IHTMLSTYLE_STYLEFLOAT)]
404     HRESULT styleFloat([in] BSTR v);
405
406     [propget, id(DISPID_IHTMLSTYLE_STYLEFLOAT)]
407     HRESULT styleFloat([retval, out] BSTR *p);
408
409     [propput, id(DISPID_IHTMLSTYLE_CLEAR)]
410     HRESULT clear([in] BSTR v);
411
412     [propget, id(DISPID_IHTMLSTYLE_CLEAR)]
413     HRESULT clear([retval, out] BSTR *p);
414
415     [propput, id(DISPID_IHTMLSTYLE_DISPLAY)]
416     HRESULT display([in] BSTR v);
417
418     [propget, id(DISPID_IHTMLSTYLE_DISPLAY)]
419     HRESULT display([retval, out] BSTR *p);
420
421     [propput, id(DISPID_IHTMLSTYLE_VISIBILITY)]
422     HRESULT visibility([in] BSTR v);
423
424     [propget, id(DISPID_IHTMLSTYLE_VISIBILITY)]
425     HRESULT visibility([retval, out] BSTR *p);
426
427     [propput, id(DISPID_IHTMLSTYLE_LISTSTYLETYPE)]
428     HRESULT listStyleType([in] BSTR v);
429
430     [propget, id(DISPID_IHTMLSTYLE_LISTSTYLETYPE)]
431     HRESULT listStyleType([retval, out] BSTR *p);
432
433     [propput, id(DISPID_IHTMLSTYLE_LISTSTYLEPOSITION)]
434     HRESULT listStylePosition([in] BSTR v);
435
436     [propget, id(DISPID_IHTMLSTYLE_LISTSTYLEPOSITION)]
437     HRESULT listStylePosition([retval, out] BSTR *p);
438
439     [propput, id(DISPID_IHTMLSTYLE_LISTSTYLEIMAGE)]
440     HRESULT listStyleImage([in] BSTR v);
441
442     [propget, id(DISPID_IHTMLSTYLE_LISTSTYLEIMAGE)]
443     HRESULT listStyleImage([retval, out] BSTR *p);
444
445     [propput, id(DISPID_IHTMLSTYLE_LISTSTYLE)]
446     HRESULT listStyle([in] BSTR v);
447
448     [propget, id(DISPID_IHTMLSTYLE_LISTSTYLE)]
449     HRESULT listStyle([retval, out] BSTR *p);
450
451     [propput, id(DISPID_IHTMLSTYLE_WHITESPACE)]
452     HRESULT whiteSpace([in] BSTR v);
453
454     [propget, id(DISPID_IHTMLSTYLE_WHITESPACE)]
455     HRESULT whiteSpace([retval, out] BSTR *p);
456
457     [propput, id(DISPID_IHTMLSTYLE_TOP)]
458     HRESULT top([in] VARIANT v);
459
460     [propget, id(DISPID_IHTMLSTYLE_TOP)]
461     HRESULT top([retval, out] VARIANT *p);
462
463     [propput, id(DISPID_IHTMLSTYLE_LEFT)]
464     HRESULT left([in] VARIANT v);
465
466     [propget, id(DISPID_IHTMLSTYLE_LEFT)]
467     HRESULT left([retval, out] VARIANT *p);
468
469     [propget, id(DISPID_IHTMLSTYLE_POSITION)]
470     HRESULT position([retval, out] BSTR *p);
471
472     [propput, id(DISPID_IHTMLSTYLE_ZINDEX)]
473     HRESULT zIndex([in] VARIANT v);
474
475     [propget, id(DISPID_IHTMLSTYLE_ZINDEX)]
476     HRESULT zIndex([retval, out] VARIANT *p);
477
478     [propput, id(DISPID_IHTMLSTYLE_OVERFLOW)]
479     HRESULT overflow([in] BSTR v);
480
481     [propget, id(DISPID_IHTMLSTYLE_OVERFLOW)]
482     HRESULT overflow([retval, out] BSTR *p);
483
484     [propput, id(DISPID_IHTMLSTYLE_PAGEBREAKBEFORE)]
485     HRESULT pageBreakBefore([in] BSTR v);
486
487     [propget, id(DISPID_IHTMLSTYLE_PAGEBREAKBEFORE)]
488     HRESULT pageBreakBefore([retval, out] BSTR *p);
489
490     [propput, id(DISPID_IHTMLSTYLE_PAGEBREAKAFTER)]
491     HRESULT pageBreakAfter([in] BSTR v);
492
493     [propget, id(DISPID_IHTMLSTYLE_PAGEBREAKAFTER)]
494     HRESULT pageBreakAfter([retval, out] BSTR *p);
495
496     [propput, id(DISPID_IHTMLSTYLE_CSSTEXT)]
497     HRESULT cssText([in] BSTR v);
498
499     [propget, id(DISPID_IHTMLSTYLE_CSSTEXT)]
500     HRESULT cssText([retval, out] BSTR *p);
501
502     [propput, id(DISPID_IHTMLSTYLE_PIXELTOP)]
503     HRESULT pixelTop([in] long v);
504
505     [propget, id(DISPID_IHTMLSTYLE_PIXELTOP)]
506     HRESULT pixelTop([retval, out] long *p);
507
508     [propput, id(DISPID_IHTMLSTYLE_PIXELLEFT)]
509     HRESULT pixelLeft([in] long v);
510
511     [propget, id(DISPID_IHTMLSTYLE_PIXELLEFT)]
512     HRESULT pixelLeft([retval, out] long *p);
513
514     [propput, id(DISPID_IHTMLSTYLE_PIXELWIDTH)]
515     HRESULT pixelWidth([in] long v);
516
517     [propget, id(DISPID_IHTMLSTYLE_PIXELWIDTH)]
518     HRESULT pixelWidth([retval, out] long *p);
519
520     [propput, id(DISPID_IHTMLSTYLE_PIXELHEIGHT)]
521     HRESULT pixelHeight([in] long v);
522
523     [propget, id(DISPID_IHTMLSTYLE_PIXELHEIGHT)]
524     HRESULT pixelHeight([retval, out] long *p);
525
526     [propput, id(DISPID_IHTMLSTYLE_POSTOP)]
527     HRESULT posTop([in] float v);
528
529     [propget, id(DISPID_IHTMLSTYLE_POSTOP)]
530     HRESULT posTop([retval, out] float *p);
531
532     [propput, id(DISPID_IHTMLSTYLE_POSLEFT)]
533     HRESULT posLeft([in] float v);
534
535     [propget, id(DISPID_IHTMLSTYLE_POSLEFT)]
536     HRESULT posLeft([retval, out] float *p);
537
538     [propput, id(DISPID_IHTMLSTYLE_POSWIDTH)]
539     HRESULT posWidth([in] float v);
540
541     [propget, id(DISPID_IHTMLSTYLE_POSWIDTH)]
542     HRESULT posWidth([retval, out] float *p);
543
544     [propput, id(DISPID_IHTMLSTYLE_POSHEIGHT)]
545     HRESULT posHeight([in] float v);
546
547     [propget, id(DISPID_IHTMLSTYLE_POSHEIGHT)]
548     HRESULT posHeight([retval, out] float *p);
549
550     [propput, id(DISPID_IHTMLSTYLE_CURSOR)]
551     HRESULT cursor([in] BSTR v);
552
553     [propget, id(DISPID_IHTMLSTYLE_CURSOR)]
554     HRESULT cursor([retval, out] BSTR *p);
555
556     [propput, id(DISPID_IHTMLSTYLE_CLIP)]
557     HRESULT clip([in] BSTR v);
558
559     [propget, id(DISPID_IHTMLSTYLE_CLIP)]
560     HRESULT clip([retval, out] BSTR *p);
561
562     [propput, id(DISPID_IHTMLSTYLE_FILTER)]
563     HRESULT filter([in] BSTR v);
564
565     [propget, id(DISPID_IHTMLSTYLE_FILTER)]
566     HRESULT filter([retval, out] BSTR *p);
567
568     [id(DISPID_IHTMLSTYLE_SETATTRIBUTE)]
569     HRESULT setAttribute(
570         [in] BSTR strAttributeName,
571         [in] VARIANT AttributeValue,
572         [defaultvalue(1), in] LONG lFlags);
573
574     [id(DISPID_IHTMLSTYLE_GETATTRIBUTE)]
575     HRESULT getAttribute(
576         [in] BSTR strAttributeName,
577         [defaultvalue(0), in] LONG lFlags,
578         [retval, out] VARIANT *AttributeValue);
579
580     [id(DISPID_IHTMLSTYLE_REMOVEATTRIBUTE)]
581     HRESULT removeAttribute(
582         [in] BSTR strAttributeName,
583         [defaultvalue(1), in]
584         LONG lFlags,
585         [retval, out] VARIANT_BOOL *pfSuccess);
586
587     [id(DISPID_IHTMLSTYLE_TOSTRING)]
588     HRESULT toString([retval, out] BSTR *String);
589 }
590
591 /*****************************************************************************
592  *    IHTMLRuleStyle interface
593  */
594 [
595         odl,
596         oleautomation,
597         dual,
598         uuid(3050F3CF-98B5-11CF-BB82-00AA00BDCE0B)
599 ]
600 interface IHTMLRuleStyle : IDispatch
601 {
602     [propput, id(DISPID_IHTMLRULESTYLE_FONTFAMILY)]
603     HRESULT fontFamily([in] BSTR v);
604
605     [propget, id(DISPID_IHTMLRULESTYLE_FONTFAMILY)]
606     HRESULT fontFamily([retval, out] BSTR *p);
607
608     [propput, id(DISPID_IHTMLRULESTYLE_FONTSTYLE)]
609     HRESULT fontStyle([in] BSTR v);
610
611     [propget, id(DISPID_IHTMLRULESTYLE_FONTSTYLE)]
612     HRESULT fontStyle([retval, out] BSTR *p);
613
614     [propput, id(DISPID_IHTMLRULESTYLE_FONTVARIANT)]
615     HRESULT fontVariant([in] BSTR v);
616
617     [propget, id(DISPID_IHTMLRULESTYLE_FONTVARIANT)]
618     HRESULT fontVariant([retval, out] BSTR *p);
619
620     [propput, id(DISPID_IHTMLRULESTYLE_FONTWEIGHT)]
621     HRESULT fontWeight([in] BSTR v);
622
623     [propget, id(DISPID_IHTMLRULESTYLE_FONTWEIGHT)]
624     HRESULT fontWeight([retval, out] BSTR *p);
625
626     [propput, id(DISPID_IHTMLRULESTYLE_FONTSIZE)]
627     HRESULT fontSize([in] VARIANT v);
628
629     [propget, id(DISPID_IHTMLRULESTYLE_FONTSIZE)]
630     HRESULT fontSize([retval, out] VARIANT *p);
631
632     [propput, id(DISPID_IHTMLRULESTYLE_FONT)]
633     HRESULT font([in] BSTR v);
634
635     [propget, id(DISPID_IHTMLRULESTYLE_FONT)]
636     HRESULT font([retval, out] BSTR *p);
637
638     [propput, id(DISPID_IHTMLRULESTYLE_COLOR)]
639     HRESULT color([in] VARIANT v);
640
641     [propget, id(DISPID_IHTMLRULESTYLE_COLOR)]
642     HRESULT color([retval, out] VARIANT *p);
643
644     [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUND)]
645     HRESULT background([in] BSTR v);
646
647     [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUND)]
648     HRESULT background([retval, out] BSTR *p);
649
650     [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDCOLOR)]
651     HRESULT backgroundColor([in] VARIANT v);
652
653     [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDCOLOR)]
654     HRESULT backgroundColor([retval, out] VARIANT *p);
655
656     [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDIMAGE)]
657     HRESULT backgroundImage([in] BSTR v);
658
659     [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDIMAGE)]
660     HRESULT backgroundImage([retval, out] BSTR *p);
661
662     [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDREPEAT)]
663     HRESULT backgroundRepeat([in] BSTR v);
664
665     [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDREPEAT)]
666     HRESULT backgroundRepeat([retval, out] BSTR *p);
667
668     [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDATTACHMENT)]
669     HRESULT backgroundAttachment([in] BSTR v);
670
671     [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDATTACHMENT)]
672     HRESULT backgroundAttachment([retval, out] BSTR *p);
673
674     [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITION)]
675     HRESULT backgroundPosition([in] BSTR v);
676
677     [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITION)]
678     HRESULT backgroundPosition([retval, out] BSTR *p);
679
680     [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITIONX)]
681     HRESULT backgroundPositionX([in] VARIANT v);
682
683     [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITIONX)]
684     HRESULT backgroundPositionX([retval, out] VARIANT *p);
685
686     [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITIONY)]
687     HRESULT backgroundPositionY([in] VARIANT v);
688
689     [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITIONY)]
690     HRESULT backgroundPositionY([retval, out] VARIANT *p);
691
692     [propput, id(DISPID_IHTMLRULESTYLE_WORDSPACING)]
693     HRESULT wordSpacing([in] VARIANT v);
694
695     [propget, id(DISPID_IHTMLRULESTYLE_WORDSPACING)]
696     HRESULT wordSpacing([retval, out] VARIANT *p);
697
698     [propput, id(DISPID_IHTMLRULESTYLE_LETTERSPACING)]
699     HRESULT letterSpacing([in] VARIANT v);
700
701     [propget, id(DISPID_IHTMLRULESTYLE_LETTERSPACING)]
702     HRESULT letterSpacing([retval, out] VARIANT *p);
703
704     [propput, id(DISPID_IHTMLRULESTYLE_TEXTDECORATION)]
705     HRESULT textDecoration([in] BSTR v);
706
707     [propget, id(DISPID_IHTMLRULESTYLE_TEXTDECORATION)]
708     HRESULT textDecoration([retval, out] BSTR *p);
709
710     [propput, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONNONE)]
711     HRESULT textDecorationNone([in] VARIANT_BOOL v);
712
713     [propget, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONNONE)]
714     HRESULT textDecorationNone([retval, out] VARIANT_BOOL *p);
715
716     [propput, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONUNDERLINE)]
717     HRESULT textDecorationUnderline([in] VARIANT_BOOL v);
718
719     [propget, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONUNDERLINE)]
720     HRESULT textDecorationUnderline([retval, out] VARIANT_BOOL *p);
721
722     [propput, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONOVERLINE)]
723     HRESULT textDecorationOverline([in] VARIANT_BOOL v);
724
725     [propget, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONOVERLINE)]
726     HRESULT textDecorationOverline([retval, out] VARIANT_BOOL *p);
727
728     [propput, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONLINETHROUGH)]
729     HRESULT textDecorationLineThrough([in] VARIANT_BOOL v);
730
731     [propget, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONLINETHROUGH)]
732     HRESULT textDecorationLineThrough([retval, out] VARIANT_BOOL *p);
733
734     [propput, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONBLINK)]
735     HRESULT textDecorationBlink([in] VARIANT_BOOL v);
736
737     [propget, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONBLINK)]
738     HRESULT textDecorationBlink([retval, out] VARIANT_BOOL *p);
739
740     [propput, id(DISPID_IHTMLRULESTYLE_VERTICALALIGN)]
741     HRESULT verticalAlign([in] VARIANT v);
742
743     [propget, id(DISPID_IHTMLRULESTYLE_VERTICALALIGN)]
744     HRESULT verticalAlign([retval, out] VARIANT *p);
745
746     [propput, id(DISPID_IHTMLRULESTYLE_TEXTTRANSFORM)]
747     HRESULT textTransform([in] BSTR v);
748
749     [propget, id(DISPID_IHTMLRULESTYLE_TEXTTRANSFORM)]
750     HRESULT textTransform([retval, out] BSTR *p);
751
752     [propput, id(DISPID_IHTMLRULESTYLE_TEXTALIGN)]
753     HRESULT textAlign([in] BSTR v);
754
755     [propget, id(DISPID_IHTMLRULESTYLE_TEXTALIGN)]
756     HRESULT textAlign([retval, out] BSTR *p);
757
758     [propput, id(DISPID_IHTMLRULESTYLE_TEXTINDENT)]
759     HRESULT textIndent([in] VARIANT v);
760
761     [propget, id(DISPID_IHTMLRULESTYLE_TEXTINDENT)]
762     HRESULT textIndent([retval, out] VARIANT *p);
763
764     [propput, id(DISPID_IHTMLRULESTYLE_LINEHEIGHT)]
765     HRESULT lineHeight([in] VARIANT v);
766
767     [propget, id(DISPID_IHTMLRULESTYLE_LINEHEIGHT)]
768     HRESULT lineHeight([retval, out] VARIANT *p);
769
770     [propput, id(DISPID_IHTMLRULESTYLE_MARGINTOP)]
771     HRESULT marginTop([in] VARIANT v);
772
773     [propget, id(DISPID_IHTMLRULESTYLE_MARGINTOP)]
774     HRESULT marginTop([retval, out] VARIANT *p);
775
776     [propput, id(DISPID_IHTMLRULESTYLE_MARGINRIGHT)]
777     HRESULT marginRight([in] VARIANT v);
778
779     [propget, id(DISPID_IHTMLRULESTYLE_MARGINRIGHT)]
780     HRESULT marginRight([retval, out] VARIANT *p);
781
782     [propput, id(DISPID_IHTMLRULESTYLE_MARGINBOTTOM)]
783     HRESULT marginBottom([in] VARIANT v);
784
785     [propget, id(DISPID_IHTMLRULESTYLE_MARGINBOTTOM)]
786     HRESULT marginBottom([retval, out] VARIANT *p);
787
788     [propput, id(DISPID_IHTMLRULESTYLE_MARGINLEFT)]
789     HRESULT marginLeft([in] VARIANT v);
790
791     [propget, id(DISPID_IHTMLRULESTYLE_MARGINLEFT)]
792     HRESULT marginLeft([retval, out] VARIANT *p);
793
794     [propput, id(DISPID_IHTMLRULESTYLE_MARGIN)]
795     HRESULT margin([in] BSTR v);
796
797     [propget, id(DISPID_IHTMLRULESTYLE_MARGIN)]
798     HRESULT margin([retval, out] BSTR *p);
799
800     [propput, id(DISPID_IHTMLRULESTYLE_PADDINGTOP)]
801     HRESULT paddingTop([in] VARIANT v);
802
803     [propget, id(DISPID_IHTMLRULESTYLE_PADDINGTOP)]
804     HRESULT paddingTop([retval, out] VARIANT *p);
805
806     [propput, id(DISPID_IHTMLRULESTYLE_PADDINGRIGHT)]
807     HRESULT paddingRight([in] VARIANT v);
808
809     [propget, id(DISPID_IHTMLRULESTYLE_PADDINGRIGHT)]
810     HRESULT paddingRight([retval, out] VARIANT *p);
811
812     [propput, id(DISPID_IHTMLRULESTYLE_PADDINGBOTTOM)]
813     HRESULT paddingBottom([in] VARIANT v);
814
815     [propget, id(DISPID_IHTMLRULESTYLE_PADDINGBOTTOM)]
816     HRESULT paddingBottom([retval, out] VARIANT *p);
817
818     [propput, id(DISPID_IHTMLRULESTYLE_PADDINGLEFT)]
819     HRESULT paddingLeft([in] VARIANT v);
820
821     [propget, id(DISPID_IHTMLRULESTYLE_PADDINGLEFT)]
822     HRESULT paddingLeft([retval, out] VARIANT *p);
823
824     [propput, id(DISPID_IHTMLRULESTYLE_PADDING)]
825     HRESULT padding([in] BSTR v);
826
827     [propget, id(DISPID_IHTMLRULESTYLE_PADDING)]
828     HRESULT padding([retval, out] BSTR *p);
829
830     [propput, id(DISPID_IHTMLRULESTYLE_BORDER)]
831     HRESULT border([in] BSTR v);
832
833     [propget, id(DISPID_IHTMLRULESTYLE_BORDER)]
834     HRESULT border([retval, out] BSTR *p);
835
836     [propput, id(DISPID_IHTMLRULESTYLE_BORDERTOP)]
837     HRESULT borderTop([in] BSTR v);
838
839     [propget, id(DISPID_IHTMLRULESTYLE_BORDERTOP)]
840     HRESULT borderTop([retval, out] BSTR *p);
841
842     [propput, id(DISPID_IHTMLRULESTYLE_BORDERRIGHT)]
843     HRESULT borderRight([in] BSTR v);
844
845     [propget, id(DISPID_IHTMLRULESTYLE_BORDERRIGHT)]
846     HRESULT borderRight([retval, out] BSTR *p);
847
848     [propput, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOM)]
849     HRESULT borderBottom([in] BSTR v);
850
851     [propget, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOM)]
852     HRESULT borderBottom([retval, out] BSTR *p);
853
854     [propput, id(DISPID_IHTMLRULESTYLE_BORDERLEFT)]
855     HRESULT borderLeft([in] BSTR v);
856
857     [propget, id(DISPID_IHTMLRULESTYLE_BORDERLEFT)]
858     HRESULT borderLeft([retval, out] BSTR *p);
859
860     [propput, id(DISPID_IHTMLRULESTYLE_BORDERCOLOR)]
861     HRESULT borderColor([in] BSTR v);
862
863     [propget, id(DISPID_IHTMLRULESTYLE_BORDERCOLOR)]
864     HRESULT borderColor([retval, out] BSTR *p);
865
866     [propput, id(DISPID_IHTMLRULESTYLE_BORDERTOPCOLOR)]
867     HRESULT borderTopColor([in] VARIANT v);
868
869     [propget, id(DISPID_IHTMLRULESTYLE_BORDERTOPCOLOR)]
870     HRESULT borderTopColor([retval, out] VARIANT *p);
871
872     [propput, id(DISPID_IHTMLRULESTYLE_BORDERRIGHTCOLOR)]
873     HRESULT borderRightColor([in] VARIANT v);
874
875     [propget, id(DISPID_IHTMLRULESTYLE_BORDERRIGHTCOLOR)]
876     HRESULT borderRightColor([retval, out] VARIANT *p);
877
878     [propput, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOMCOLOR)]
879     HRESULT borderBottomColor([in] VARIANT v);
880
881     [propget, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOMCOLOR)]
882     HRESULT borderBottomColor([retval, out] VARIANT *p);
883
884     [propput, id(DISPID_IHTMLRULESTYLE_BORDERLEFTCOLOR)]
885     HRESULT borderLeftColor([in] VARIANT v);
886
887     [propget, id(DISPID_IHTMLRULESTYLE_BORDERLEFTCOLOR)]
888     HRESULT borderLeftColor([retval, out] VARIANT *p);
889
890     [propput, id(DISPID_IHTMLRULESTYLE_BORDERWIDTH)]
891     HRESULT borderWidth([in] BSTR v);
892
893     [propget, id(DISPID_IHTMLRULESTYLE_BORDERWIDTH)]
894     HRESULT borderWidth([retval, out] BSTR *p);
895
896     [propput, id(DISPID_IHTMLRULESTYLE_BORDERTOPWIDTH)]
897     HRESULT borderTopWidth([in] VARIANT v);
898
899     [propget, id(DISPID_IHTMLRULESTYLE_BORDERTOPWIDTH)]
900     HRESULT borderTopWidth([retval, out] VARIANT *p);
901
902     [propput, id(DISPID_IHTMLRULESTYLE_BORDERRIGHTWIDTH)]
903     HRESULT borderRightWidth([in] VARIANT v);
904
905     [propget, id(DISPID_IHTMLRULESTYLE_BORDERRIGHTWIDTH)]
906     HRESULT borderRightWidth([retval, out] VARIANT *p);
907
908     [propput, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOMWIDTH)]
909     HRESULT borderBottomWidth([in] VARIANT v);
910
911     [propget, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOMWIDTH)]
912     HRESULT borderBottomWidth([retval, out] VARIANT *p);
913
914     [propput, id(DISPID_IHTMLRULESTYLE_BORDERLEFTWIDTH)]
915     HRESULT borderLeftWidth([in] VARIANT v);
916
917     [propget, id(DISPID_IHTMLRULESTYLE_BORDERLEFTWIDTH)]
918     HRESULT borderLeftWidth([retval, out] VARIANT *p);
919
920     [propput, id(DISPID_IHTMLRULESTYLE_BORDERSTYLE)]
921     HRESULT borderStyle([in] BSTR v);
922
923     [propget, id(DISPID_IHTMLRULESTYLE_BORDERSTYLE)]
924     HRESULT borderStyle([retval, out] BSTR *p);
925
926     [propput, id(DISPID_IHTMLRULESTYLE_BORDERTOPSTYLE)]
927     HRESULT borderTopStyle([in] BSTR v);
928
929     [propget, id(DISPID_IHTMLRULESTYLE_BORDERTOPSTYLE)]
930     HRESULT borderTopStyle([retval, out] BSTR *p);
931
932     [propput, id(DISPID_IHTMLRULESTYLE_BORDERRIGHTSTYLE)]
933     HRESULT borderRightStyle([in] BSTR v);
934
935     [propget, id(DISPID_IHTMLRULESTYLE_BORDERRIGHTSTYLE)]
936     HRESULT borderRightStyle([retval, out] BSTR *p);
937
938     [propput, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOMSTYLE)]
939     HRESULT borderBottomStyle([in] BSTR v);
940
941     [propget, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOMSTYLE)]
942     HRESULT borderBottomStyle([retval, out] BSTR *p);
943
944     [propput, id(DISPID_IHTMLRULESTYLE_BORDERLEFTSTYLE)]
945     HRESULT borderLeftStyle([in] BSTR v);
946
947     [propget, id(DISPID_IHTMLRULESTYLE_BORDERLEFTSTYLE)]
948     HRESULT borderLeftStyle([retval, out] BSTR *p);
949
950     [propput, id(DISPID_IHTMLRULESTYLE_WIDTH)]
951     HRESULT width([in] VARIANT v);
952
953     [propget, id(DISPID_IHTMLRULESTYLE_WIDTH)]
954     HRESULT width([retval, out] VARIANT *p);
955
956     [propput, id(DISPID_IHTMLRULESTYLE_HEIGHT)]
957     HRESULT height([in] VARIANT v);
958
959     [propget, id(DISPID_IHTMLRULESTYLE_HEIGHT)]
960     HRESULT height([retval, out] VARIANT *p);
961
962     [propput, id(DISPID_IHTMLRULESTYLE_STYLEFLOAT)]
963     HRESULT styleFloat([in] BSTR v);
964
965     [propget, id(DISPID_IHTMLRULESTYLE_STYLEFLOAT)]
966     HRESULT styleFloat([retval, out] BSTR *p);
967
968     [propput, id(DISPID_IHTMLRULESTYLE_CLEAR)]
969     HRESULT clear([in] BSTR v);
970
971     [propget, id(DISPID_IHTMLRULESTYLE_CLEAR)]
972     HRESULT clear([retval, out] BSTR *p);
973
974     [propput, id(DISPID_IHTMLRULESTYLE_DISPLAY)]
975     HRESULT display([in] BSTR v);
976
977     [propget, id(DISPID_IHTMLRULESTYLE_DISPLAY)]
978     HRESULT display([retval, out] BSTR *p);
979
980     [propput, id(DISPID_IHTMLRULESTYLE_VISIBILITY)]
981     HRESULT visibility([in] BSTR v);
982
983     [propget, id(DISPID_IHTMLRULESTYLE_VISIBILITY)]
984     HRESULT visibility([retval, out] BSTR *p);
985
986     [propput, id(DISPID_IHTMLRULESTYLE_LISTSTYLETYPE)]
987     HRESULT listStyleType([in] BSTR v);
988
989     [propget, id(DISPID_IHTMLRULESTYLE_LISTSTYLETYPE)]
990     HRESULT listStyleType([retval, out] BSTR *p);
991
992     [propput, id(DISPID_IHTMLRULESTYLE_LISTSTYLEPOSITION)]
993     HRESULT listStylePosition([in] BSTR v);
994
995     [propget, id(DISPID_IHTMLRULESTYLE_LISTSTYLEPOSITION)]
996     HRESULT listStylePosition([retval, out] BSTR *p);
997
998     [propput, id(DISPID_IHTMLRULESTYLE_LISTSTYLEIMAGE)]
999     HRESULT listStyleImage([in] BSTR v);
1000
1001     [propget, id(DISPID_IHTMLRULESTYLE_LISTSTYLEIMAGE)]
1002     HRESULT listStyleImage([retval, out] BSTR *p);
1003
1004     [propput, id(DISPID_IHTMLRULESTYLE_LISTSTYLE)]
1005     HRESULT listStyle([in] BSTR v);
1006
1007     [propget, id(DISPID_IHTMLRULESTYLE_LISTSTYLE)]
1008     HRESULT listStyle([retval, out] BSTR *p);
1009
1010     [propput, id(DISPID_IHTMLRULESTYLE_WHITESPACE)]
1011     HRESULT whiteSpace([in] BSTR v);
1012
1013     [propget, id(DISPID_IHTMLRULESTYLE_WHITESPACE)]
1014     HRESULT whiteSpace([retval, out] BSTR *p);
1015
1016     [propput, id(DISPID_IHTMLRULESTYLE_TOP)]
1017     HRESULT top([in] VARIANT v);
1018
1019     [propget, id(DISPID_IHTMLRULESTYLE_TOP)]
1020     HRESULT top([retval, out] VARIANT *p);
1021
1022     [propput, id(DISPID_IHTMLRULESTYLE_LEFT)]
1023     HRESULT left([in] VARIANT v);
1024
1025     [propget, id(DISPID_IHTMLRULESTYLE_LEFT)]
1026     HRESULT left([retval, out] VARIANT *p);
1027
1028     [propget, id(DISPID_IHTMLRULESTYLE_POSITION)]
1029     HRESULT position([retval, out] BSTR *p);
1030
1031     [propput, id(DISPID_IHTMLRULESTYLE_ZINDEX)]
1032     HRESULT zIndex([in] VARIANT v);
1033
1034     [propget, id(DISPID_IHTMLRULESTYLE_ZINDEX)]
1035     HRESULT zIndex([retval, out] VARIANT *p);
1036
1037     [propput, id(DISPID_IHTMLRULESTYLE_OVERFLOW)]
1038     HRESULT overflow([in] BSTR v);
1039
1040     [propget, id(DISPID_IHTMLRULESTYLE_OVERFLOW)]
1041     HRESULT overflow([retval, out] BSTR *p);
1042
1043     [propput, id(DISPID_IHTMLRULESTYLE_PAGEBREAKBEFORE)]
1044     HRESULT pageBreakBefore([in] BSTR v);
1045
1046     [propget, id(DISPID_IHTMLRULESTYLE_PAGEBREAKBEFORE)]
1047     HRESULT pageBreakBefore([retval, out] BSTR *p);
1048
1049     [propput, id(DISPID_IHTMLRULESTYLE_PAGEBREAKAFTER)]
1050     HRESULT pageBreakAfter([in] BSTR v);
1051
1052     [propget, id(DISPID_IHTMLRULESTYLE_PAGEBREAKAFTER)]
1053     HRESULT pageBreakAfter([retval, out] BSTR *p);
1054
1055     [propput, id(DISPID_IHTMLRULESTYLE_CSSTEXT)]
1056     HRESULT cssText([in] BSTR v);
1057
1058     [propget, id(DISPID_IHTMLRULESTYLE_CSSTEXT)]
1059     HRESULT cssText([retval, out] BSTR *p);
1060
1061     [propput, id(DISPID_IHTMLRULESTYLE_CURSOR)]
1062     HRESULT cursor([in] BSTR v);
1063
1064     [propget, id(DISPID_IHTMLRULESTYLE_CURSOR)]
1065     HRESULT cursor([retval, out] BSTR *p);
1066
1067     [propput, id(DISPID_IHTMLRULESTYLE_CLIP)]
1068     HRESULT clip([in] BSTR v);
1069
1070     [propget, id(DISPID_IHTMLRULESTYLE_CLIP)]
1071     HRESULT clip([retval, out] BSTR *p);
1072
1073     [propput, id(DISPID_IHTMLRULESTYLE_FILTER)]
1074     HRESULT filter([in] BSTR v);
1075
1076     [propget, id(DISPID_IHTMLRULESTYLE_FILTER)]
1077     HRESULT filter([retval, out] BSTR *p);
1078
1079     [id(DISPID_IHTMLRULESTYLE_SETATTRIBUTE)]
1080     HRESULT setAttribute(
1081         [in] BSTR strAttributeName,
1082         [in] VARIANT AttributeValue,
1083         [defaultvalue(1), in] LONG lFlags);
1084
1085     [id(DISPID_IHTMLRULESTYLE_GETATTRIBUTE)]
1086     HRESULT getAttribute(
1087         [in] BSTR strAttributeName,
1088         [defaultvalue(0), in] LONG lFlags,
1089         [retval, out] VARIANT *AttributeValue);
1090
1091     [id(DISPID_IHTMLRULESTYLE_REMOVEATTRIBUTE)]
1092     HRESULT removeAttribute(
1093         [in] BSTR strAttributeName,
1094         [defaultvalue(1), in] LONG lFlags,
1095         [retval, out] VARIANT_BOOL *pfSuccess);
1096 }
1097
1098 /*****************************************************************************
1099  *    IHTMLFiltersCollection interface
1100  */
1101 [
1102         odl,
1103         oleautomation,
1104         dual,
1105         uuid(3050F3EE-98B5-11Cf-BB82-00AA00BDCE0B)
1106 ]
1107 interface IHTMLFiltersCollection : IDispatch
1108 {
1109     [propget, id(DISPID_IHTMLFILTERSCOLLECTION_LENGTH)]
1110     HRESULT length([retval, out] long *p);
1111
1112     [propget, id(DISPID_IHTMLFILTERSCOLLECTION__NEWENUM)]
1113     HRESULT _newEnum([retval, out] IUnknown **p);
1114
1115     [id(DISPID_IHTMLFILTERSCOLLECTION_ITEM)]
1116     HRESULT item(
1117         [in] VARIANT *pvarIndex,
1118         [retval, out] VARIANT *pvarResult);
1119 }
1120
1121
1122 /*****************************************************************************
1123  *    IHTMLElement interface
1124  */
1125 [
1126     odl,
1127     dual,
1128     oleautomation,
1129     uuid(3050f1FF-98B5-11CF-BB82-00AA00BDCE0B)
1130 ]
1131 interface IHTMLElement : IDispatch
1132 {
1133     [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)]
1134     HRESULT setAttribute(
1135         [in] BSTR strAttributeName,
1136         [in] VARIANT AttributeValue,
1137         [defaultvalue(1), in] LONG lFlags);
1138
1139     [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)]
1140     HRESULT getAttribute(
1141         [in] BSTR strAttributeName,
1142         [defaultvalue(0), in] LONG lFlags,
1143         [retval, out] VARIANT AttributeValue);
1144
1145     [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)]
1146     HRESULT removeAttribute(
1147         [in] BSTR strAttributeName,
1148         [defaultvalue(1), in] LONG lFlags,
1149         [retval, out] VARIANT_BOOL *pfSuccess);
1150
1151     [propput, id(DISPID_IHTMLELEMENT_CLASSNAME)]
1152     HRESULT className([in] BSTR v);
1153
1154     [propget, id(DISPID_IHTMLELEMENT_CLASSNAME)]
1155     HRESULT className([retval, out] BSTR *p);
1156
1157     [propput, id(DISPID_IHTMLELEMENT_ID)]
1158     HRESULT id([in] BSTR v);
1159
1160     [propget, id(DISPID_IHTMLELEMENT_ID)]
1161     HRESULT id([retval, out] BSTR *p);
1162
1163     [propget, id(DISPID_IHTMLELEMENT_TAGNAME)]
1164     HRESULT tagName([retval, out] BSTR *p);
1165
1166     [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)]
1167     HRESULT parentElement([retval, out] IHTMLElement **p);
1168
1169     [propget, id(DISPID_IHTMLELEMENT_STYLE)]
1170     HRESULT style([retval, out] IHTMLStyle **p);
1171
1172     [propput, id(DISPID_IHTMLELEMENT_ONHELP)]
1173     HRESULT onhelp([in] VARIANT v);
1174
1175     [propget, id(DISPID_IHTMLELEMENT_ONHELP)]
1176     HRESULT onhelp([retval, out] VARIANT *p);
1177
1178     [propput, id(DISPID_IHTMLELEMENT_ONCLICK)]
1179     HRESULT onclick([in] VARIANT v);
1180
1181     [propget, id(DISPID_IHTMLELEMENT_ONCLICK)]
1182     HRESULT onclick([retval, out] VARIANT *p);
1183
1184     [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK)]
1185     HRESULT ondblclick([in] VARIANT v);
1186
1187     [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK)]
1188     HRESULT ondblclick([retval, out] VARIANT *p);
1189
1190     [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN)]
1191     HRESULT onkeydown([in] VARIANT v);
1192
1193     [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN)]
1194     HRESULT onkeydown([retval, out] VARIANT *p);
1195
1196     [propput, id(DISPID_IHTMLELEMENT_ONKEYUP)]
1197     HRESULT onkeyup([in] VARIANT v);
1198     
1199     [propget, id(DISPID_IHTMLELEMENT_ONKEYUP)]
1200     HRESULT onkeyup([retval, out] VARIANT *p);
1201
1202     [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS)]
1203     HRESULT onkeypress([in] VARIANT v);
1204
1205     [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS)]
1206     HRESULT onkeypress([retval, out] VARIANT *p);
1207
1208     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT)]
1209     HRESULT onmouseout([in] VARIANT v);
1210
1211     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT)]
1212     HRESULT onmouseout([retval, out] VARIANT *p);
1213
1214     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER)]
1215     HRESULT onmouseover([in] VARIANT v);
1216
1217     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER)]
1218     HRESULT onmouseover([retval, out] VARIANT *p);
1219
1220     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE)]
1221     HRESULT onmousemove([in] VARIANT v);
1222
1223     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE)]
1224     HRESULT onmousemove([retval, out] VARIANT *p);
1225
1226     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN)]
1227     HRESULT onmousedown([in] VARIANT v);
1228
1229     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN)]
1230     HRESULT onmousedown([retval, out] VARIANT *p);
1231
1232     [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP)]
1233     HRESULT onmouseup([in] VARIANT v);
1234
1235     [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP)]
1236     HRESULT onmouseup([retval, out] VARIANT *p);
1237
1238     [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)]
1239     HRESULT document([retval, out] IDispatch **p);
1240
1241     [propput, id(DISPID_IHTMLELEMENT_TITLE)]
1242     HRESULT title([in] BSTR v);
1243
1244     [propget, id(DISPID_IHTMLELEMENT_TITLE)]
1245     HRESULT title([retval, out] BSTR *p);
1246
1247     [propput, id(DISPID_IHTMLELEMENT_LANGUAGE)]
1248     HRESULT language([in] BSTR v);
1249
1250     [propget, id(DISPID_IHTMLELEMENT_LANGUAGE)]
1251     HRESULT language([retval, out] BSTR *p);
1252
1253     [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART)]
1254     HRESULT onselectstart([in] VARIANT v);
1255
1256     [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART)]
1257     HRESULT onselectstart([retval, out] VARIANT *p);
1258
1259     [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)]
1260     HRESULT scrollIntoView([optional, in] VARIANT varargStart);
1261
1262     [id(DISPID_IHTMLELEMENT_CONTAINS)]
1263     HRESULT contains(
1264         [in] IHTMLElement *pChild,
1265         [retval, out] VARIANT_BOOL *pfResult);
1266
1267     [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX)]
1268     HRESULT sourceIndex([retval, out] long *p);
1269
1270     [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)]
1271     HRESULT recordNumber([retval, out] VARIANT *p);
1272
1273     [propput, id(DISPID_IHTMLELEMENT_LANG)]
1274     HRESULT lang([in] BSTR v);
1275
1276     [propget, id(DISPID_IHTMLELEMENT_LANG)]
1277     HRESULT lang([retval, out] BSTR *p);
1278
1279     [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)]
1280     HRESULT offsetLeft([retval, out] long *p);
1281
1282     [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)]
1283     HRESULT offsetTop([retval, out] long *p);
1284
1285     [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)]
1286     HRESULT offsetWidth([retval, out] long *p);
1287
1288     [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)]
1289     HRESULT offsetHeight([retval, out] long *p);
1290
1291     [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)]
1292     HRESULT offsetParent([retval, out] IHTMLElement **p);
1293
1294     [propput, id(DISPID_IHTMLELEMENT_INNERHTML)]
1295     HRESULT innerHTML([in] BSTR v);
1296
1297     [propget, id(DISPID_IHTMLELEMENT_INNERHTML)]
1298     HRESULT innerHTML([retval, out] BSTR *p);
1299
1300     [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)]
1301     HRESULT innerText([in] BSTR v);
1302
1303     [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)]
1304     HRESULT innerText([retval, out] BSTR *p);
1305
1306     [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)]
1307     HRESULT outerHTML([in] BSTR v);
1308
1309     [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)]
1310     HRESULT outerHTML([retval, out] BSTR *p);
1311
1312     [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
1313     HRESULT outerText([in] BSTR v);
1314
1315     [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)]
1316     HRESULT outerText([retval, out] BSTR *p);
1317
1318     [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)]
1319     HRESULT insertAdjacentHTML([in] BSTR where, [in] BSTR html);
1320
1321     [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)]
1322     HRESULT insertAdjacentText([in] BSTR where, [in] BSTR text);
1323
1324     [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)]
1325     HRESULT parentTextEdit([retval, out] IHTMLElement **p);
1326
1327     [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)]
1328     HRESULT isTextEdit([retval, out] VARIANT_BOOL *p);
1329
1330     [id(DISPID_IHTMLELEMENT_CLICK)]
1331     HRESULT click();
1332
1333     [propget, id(DISPID_IHTMLELEMENT_FILTERS)]
1334     HRESULT filters([retval, out] IHTMLFiltersCollection **p);
1335
1336     [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART)]
1337     HRESULT ondragstart([in] VARIANT v);
1338
1339     [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART)]
1340     HRESULT ondragstart([retval, out] VARIANT *p);
1341
1342     [id(DISPID_IHTMLELEMENT_TOSTRING)]
1343     HRESULT toString([retval, out] BSTR *String);
1344
1345     [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE)]
1346     HRESULT onbeforeupdate([in] VARIANT v);
1347
1348     [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE)]
1349     HRESULT onbeforeupdate([retval, out] VARIANT *p);
1350
1351     [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE)]
1352     HRESULT onafterupdate([in] VARIANT v);
1353
1354     [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE)]
1355     HRESULT onafterupdate([retval, out] VARIANT *p);
1356
1357     [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE)]
1358     HRESULT onerrorupdate([in] VARIANT v);
1359
1360     [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE)]
1361     HRESULT onerrorupdate([retval, out] VARIANT *p);
1362
1363     [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT)]
1364     HRESULT onrowexit([in] VARIANT v);
1365
1366     [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT)]
1367     HRESULT onrowexit([retval, out] VARIANT *p);
1368
1369     [propput, id(DISPID_IHTMLELEMENT_ONROWENTER)]
1370     HRESULT onrowenter([in] VARIANT v);
1371
1372     [propget, id(DISPID_IHTMLELEMENT_ONROWENTER)]
1373     HRESULT onrowenter([retval, out] VARIANT *p);
1374
1375     [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED)]
1376     HRESULT ondatasetchanged([in] VARIANT v);
1377
1378     [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED)]
1379     HRESULT ondatasetchanged([retval, out] VARIANT *p);
1380
1381     [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE)]
1382     HRESULT ondataavailable([in] VARIANT v);
1383
1384     [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE)]
1385     HRESULT ondataavailable([retval, out] VARIANT *p);
1386
1387     [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE)]
1388     HRESULT ondatasetcomplete([in] VARIANT v);
1389
1390     [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE)]
1391     HRESULT ondatasetcomplete([retval, out] VARIANT *p);
1392
1393     [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE)]
1394     HRESULT onfilterchange([in] VARIANT v);
1395
1396     [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE)]
1397     HRESULT onfilterchange([retval, out] VARIANT *p);
1398
1399     [propget, id(DISPID_IHTMLELEMENT_CHILDREN)]
1400     HRESULT children([retval, out] IDispatch **p);
1401
1402     [propget, id(DISPID_IHTMLELEMENT_ALL)]
1403     HRESULT all([retval, out] IDispatch **p);
1404 }
1405
1406 /*****************************************************************************
1407  *    IHTMLStyleSheetRule interface
1408  */
1409 [
1410     odl,
1411     oleautomation,
1412     dual,
1413     uuid(3050F357-98B5-11CF-BB82-00AA00BDCE0B)
1414 ]
1415 interface IHTMLStyleSheetRule : IDispatch
1416 {
1417     [propput, id(DISPID_IHTMLSTYLESHEETRULE_SELECTORTEXT)]
1418     HRESULT selectorText([in] BSTR v);
1419
1420     [propget, id(DISPID_IHTMLSTYLESHEETRULE_SELECTORTEXT)]
1421     HRESULT selectorText([retval, out] BSTR *p);
1422
1423     [propget, id(DISPID_IHTMLSTYLESHEETRULE_STYLE)]
1424     HRESULT style([retval, out] IHTMLRuleStyle **p);
1425
1426     [propget, id(DISPID_IHTMLSTYLESHEETRULE_READONLY)]
1427     HRESULT readOnly([retval, out] VARIANT_BOOL *p);
1428 }
1429
1430 /*****************************************************************************
1431  *    IHTMLStyleSheetRulesCollection interface
1432  */
1433 [
1434     odl,
1435     oleautomation,
1436     dual,
1437     uuid(3050F2E5-98B5-11Cf-BB82-00AA00BDCE0B)
1438 ]
1439 interface IHTMLStyleSheetRulesCollection : IDispatch
1440 {
1441     [propget, id(DISPID_IHTMLSTYLESHEETRULESCOLLECTION_LENGTH)]
1442     HRESULT length([retval, out] long *p);
1443
1444     [id(DISPID_IHTMLSTYLESHEETRULESCOLLECTION_ITEM)]
1445     HRESULT item(
1446         [in] long index,
1447         [retval, out] IHTMLStyleSheetRule **ppHTMLStyleSheetRule);
1448 }
1449
1450 /*****************************************************************************
1451  *    IHTMLStyleSheet interface
1452  */
1453 [
1454     odl,
1455     oleautomation,
1456     dual,
1457     uuid(3050F2E3-98B5-11CF-BB82-00AA00BDCE0B)
1458 ]
1459 interface IHTMLStyleSheet : IDispatch
1460 {
1461     [propput, id(DISPID_IHTMLSTYLESHEET_TITLE)]
1462     HRESULT title([in] BSTR v);
1463
1464     [propget, id(DISPID_IHTMLSTYLESHEET_TITLE)]
1465     HRESULT title([retval, out] BSTR *p);
1466
1467     [propget, id(DISPID_IHTMLSTYLESHEET_PARENTSTYLESHEET)]
1468     HRESULT parentStyleSheet([retval, out] IHTMLStyleSheet **p);
1469
1470     [propget, id(DISPID_IHTMLSTYLESHEET_OWNINGELEMENT)]
1471     HRESULT owningElement([retval, out] IHTMLElement **p);
1472
1473     [propput, id(DISPID_IHTMLSTYLESHEET_DISABLED)]
1474     HRESULT disabled([in] VARIANT_BOOL v);
1475
1476     [propget, id(DISPID_IHTMLSTYLESHEET_DISABLED)]
1477     HRESULT disabled([retval, out] VARIANT_BOOL *p);
1478
1479     [propget, id(DISPID_IHTMLSTYLESHEET_READONLY)]
1480     HRESULT readOnly([retval, out] VARIANT_BOOL *p);
1481
1482     [propget, id(DISPID_IHTMLSTYLESHEET_IMPORTS)]
1483     HRESULT imports([retval, out] IHTMLStyleSheetsCollection **p);
1484
1485     [propput, id(DISPID_IHTMLSTYLESHEET_HREF)]
1486     HRESULT href([in] BSTR v);
1487
1488     [propget, id(DISPID_IHTMLSTYLESHEET_HREF)]
1489     HRESULT href([retval, out] BSTR *p);
1490
1491     [propget, id(DISPID_IHTMLSTYLESHEET_TYPE)]
1492     HRESULT type([retval, out] BSTR *p);
1493
1494     [propget, id(DISPID_IHTMLSTYLESHEET_ID)]
1495     HRESULT id([retval, out] BSTR *p);
1496
1497     [id(DISPID_IHTMLSTYLESHEET_ADDIMPORT)]
1498     HRESULT addImport(
1499         [in] BSTR bstrURL,
1500         [defaultvalue(-1), in] long lIndex,
1501         [retval, out] long *plIndex);
1502
1503     [id(DISPID_IHTMLSTYLESHEET_ADDRULE)]
1504     HRESULT addRule(
1505         [in] BSTR bstrSelector,
1506         [in] BSTR bstrStyle,
1507         [defaultvalue(-1), in] long lIndex,
1508         [retval, out] long *plNewIndex);
1509
1510     [id(DISPID_IHTMLSTYLESHEET_REMOVEIMPORT)]
1511     HRESULT removeImport([in] long lIndex);
1512
1513     [id(DISPID_IHTMLSTYLESHEET_REMOVERULE)]
1514     HRESULT removeRule([in] long lIndex);
1515
1516     [propput, id(DISPID_IHTMLSTYLESHEET_MEDIA)]
1517     HRESULT media([in] BSTR v);
1518
1519     [propget, id(DISPID_IHTMLSTYLESHEET_MEDIA)]
1520     HRESULT media([retval, out] BSTR *p);
1521
1522     [propput, id(DISPID_IHTMLSTYLESHEET_CSSTEXT)]
1523     HRESULT cssText([in] BSTR v);
1524
1525     [propget, id(DISPID_IHTMLSTYLESHEET_CSSTEXT)]
1526     HRESULT cssText([retval, out] BSTR *p);
1527
1528     [propget, id(DISPID_IHTMLSTYLESHEET_RULES)]
1529     HRESULT rules([retval, out] IHTMLStyleSheetRulesCollection **p);
1530 }
1531
1532 /*****************************************************************************
1533  *    IHTMLStyleSheetsCollection interface
1534  */
1535 [
1536     odl,
1537     oleautomation,
1538     dual,
1539     uuid(3050F37E-98B5-11CF-BB82-00AA00BDCE0B)
1540 ]
1541 interface IHTMLStyleSheetsCollection : IDispatch
1542 {
1543     [propget, id(DISPID_IHTMLSTYLESHEETSCOLLECTION_LENGTH)]
1544     HRESULT length([retval, out] long *p);
1545
1546     [propget, id(DISPID_IHTMLSTYLESHEETSCOLLECTION__NEWENUM)]
1547     HRESULT _newEnum([retval, out] IUnknown **p);
1548
1549     [id(DISPID_IHTMLSTYLESHEETSCOLLECTION_ITEM)]
1550     HRESULT item(
1551         [in] VARIANT *pvarIndex,
1552         [retval, out] VARIANT *pvarResult);
1553 }
1554
1555 /*****************************************************************************
1556  *    IHTMLFormElement interface
1557  */
1558 [
1559     odl,
1560     oleautomation,
1561     dual,
1562     uuid(3050F1F7-98B5-11CF-BB82-00AA00BDCE0B)
1563 ]
1564 interface IHTMLFormElement : IDispatch
1565 {
1566     [propput, id(DISPID_IHTMLFORMELEMENT_ACTION)]
1567     HRESULT action([in] BSTR v);
1568
1569     [propget, id(DISPID_IHTMLFORMELEMENT_ACTION)]
1570     HRESULT action([retval, out] BSTR *p);
1571
1572     [propput, id(DISPID_IHTMLFORMELEMENT_DIR)]
1573     HRESULT dir([in] BSTR v);
1574
1575     [propget, id(DISPID_IHTMLFORMELEMENT_DIR)]
1576     HRESULT dir([retval, out] BSTR *p);
1577
1578     [propput, id(DISPID_IHTMLFORMELEMENT_ENCODING)]
1579     HRESULT encoding([in] BSTR v);
1580
1581     [propget, id(DISPID_IHTMLFORMELEMENT_ENCODING)]
1582     HRESULT encoding([retval, out] BSTR *p);
1583
1584     [propput, id(DISPID_IHTMLFORMELEMENT_METHOD)]
1585     HRESULT method([in] BSTR v);
1586
1587     [propget, id(DISPID_IHTMLFORMELEMENT_METHOD)]
1588     HRESULT method([retval, out] BSTR *p);
1589
1590     [propget, id(DISPID_IHTMLFORMELEMENT_ELEMENTS)]
1591     HRESULT elements([retval, out] IDispatch **p);
1592
1593     [propput, id(DISPID_IHTMLFORMELEMENT_TARGET)]
1594     HRESULT target([in] BSTR v);
1595
1596     [propget, id(DISPID_IHTMLFORMELEMENT_TARGET)]
1597     HRESULT target([retval, out] BSTR *p);
1598
1599     [propput, id(DISPID_IHTMLFORMELEMENT_NAME)]
1600     HRESULT name([in] BSTR v);
1601
1602     [propget, id(DISPID_IHTMLFORMELEMENT_NAME)]
1603     HRESULT name([retval, out] BSTR *p);
1604
1605     [propput, id(DISPID_IHTMLFORMELEMENT_ONSUBMIT)]
1606     HRESULT onsubmit([in] VARIANT v);
1607
1608     [propget, id(DISPID_IHTMLFORMELEMENT_ONSUBMIT)]
1609     HRESULT onsubmit([retval, out] VARIANT *p);
1610
1611     [propput, id(DISPID_IHTMLFORMELEMENT_ONRESET)]
1612     HRESULT onreset([in] VARIANT v);
1613
1614     [propget, id(DISPID_IHTMLFORMELEMENT_ONRESET)]
1615     HRESULT onreset([retval, out] VARIANT *p);
1616
1617     [id(DISPID_IHTMLFORMELEMENT_SUBMIT)]
1618     HRESULT submit();
1619
1620     [id(DISPID_IHTMLFORMELEMENT_RESET)]
1621     HRESULT reset();
1622
1623     [propput, id(DISPID_IHTMLFORMELEMENT_LENGTH)]
1624     HRESULT length([in] long v);
1625
1626     [propget, id(DISPID_IHTMLFORMELEMENT_LENGTH)]
1627     HRESULT length([retval, out] long *p);
1628
1629     [propget, id(DISPID_IHTMLFORMELEMENT__NEWENUM)]
1630     HRESULT _newEnum([retval, out] IUnknown **p);
1631
1632     [id(DISPID_IHTMLFORMELEMENT_ITEM)]
1633     HRESULT item(
1634         [optional, in] VARIANT name,
1635         [optional, in] VARIANT index,
1636         [retval, out] IDispatch **pdisp);
1637
1638     [id(DISPID_IHTMLFORMELEMENT_TAGS)]
1639     HRESULT tags(
1640         [in] VARIANT tagName,
1641         [retval, out] IDispatch **pdisp);
1642 }
1643
1644 /*****************************************************************************
1645  *    IHTMLImgElement interface
1646  */
1647 [
1648     odl,
1649     oleautomation,
1650     dual,
1651     uuid(3050F240-98B5-11CF-BB82-00AA00BDCE0B)
1652 ]
1653 interface IHTMLImgElement : IDispatch
1654 {
1655     [propput, id(DISPID_IHTMLIMGELEMENT_ISMAP)]
1656     HRESULT isMap([in] VARIANT_BOOL v);
1657
1658     [propget, id(DISPID_IHTMLIMGELEMENT_ISMAP)]
1659     HRESULT isMap([retval, out] VARIANT_BOOL *p);
1660
1661     [propput, id(DISPID_IHTMLIMGELEMENT_USEMAP)]
1662     HRESULT useMap([in] BSTR v);
1663
1664     [propget, id(DISPID_IHTMLIMGELEMENT_USEMAP)]
1665     HRESULT useMap([retval, out] BSTR *p);
1666
1667     [propget, id(DISPID_IHTMLIMGELEMENT_MIMETYPE)]
1668     HRESULT mimeType([retval, out] BSTR *p);
1669
1670     [propget, id(DISPID_IHTMLIMGELEMENT_FILESIZE)]
1671     HRESULT fileSize([retval, out] BSTR *p);
1672
1673     [propget, id(DISPID_IHTMLIMGELEMENT_FILECREATEDDATE)]
1674     HRESULT fileCreatedDate([retval, out] BSTR *p);
1675
1676     [propget, id(DISPID_IHTMLIMGELEMENT_FILEMODIFIEDDATE)]
1677     HRESULT fileModifiedDate([retval, out] BSTR *p);
1678
1679     [propget, id(DISPID_IHTMLIMGELEMENT_FILEUPDATEDDATE)]
1680     HRESULT fileUpdatedDate([retval, out] BSTR *p);
1681
1682     [propget, id(DISPID_IHTMLIMGELEMENT_PROTOCOL)]
1683     HRESULT protocol([retval, out] BSTR *p);
1684
1685     [propget, id(DISPID_IHTMLIMGELEMENT_HREF)]
1686     HRESULT href([retval, out] BSTR *p);
1687
1688     [propget, id(DISPID_IHTMLIMGELEMENT_NAMEPROP)]
1689     HRESULT nameProp([retval, out] BSTR *p);
1690
1691     [propput, id(DISPID_IHTMLIMGELEMENT_BORDER)]
1692     HRESULT border([in] VARIANT v);
1693
1694     [propget, id(DISPID_IHTMLIMGELEMENT_BORDER)]
1695     HRESULT border([retval, out] VARIANT *p);
1696
1697     [propput, id(DISPID_IHTMLIMGELEMENT_VSPACE)]
1698     HRESULT vspace([in] long v);
1699
1700     [propget, id(DISPID_IHTMLIMGELEMENT_VSPACE)]
1701     HRESULT vspace([retval, out] long *p);
1702
1703     [propput, id(DISPID_IHTMLIMGELEMENT_HSPACE)]
1704     HRESULT hspace([in] long v);
1705
1706     [propget, id(DISPID_IHTMLIMGELEMENT_HSPACE)]
1707     HRESULT hspace([retval, out] long *p);
1708
1709     [propput, id(DISPID_IHTMLIMGELEMENT_ALT)]
1710     HRESULT alt([in] BSTR v);
1711
1712     [propget, id(DISPID_IHTMLIMGELEMENT_ALT)]
1713     HRESULT alt([retval, out] BSTR *p);
1714
1715     [propput, id(DISPID_IHTMLIMGELEMENT_SRC)]
1716     HRESULT src([in] BSTR v);
1717
1718     [propget, id(DISPID_IHTMLIMGELEMENT_SRC)]
1719     HRESULT src([retval, out] BSTR *p);
1720
1721     [propput, id(DISPID_IHTMLIMGELEMENT_LOWSRC)]
1722     HRESULT lowsrc([in] BSTR v);
1723
1724     [propget, id(DISPID_IHTMLIMGELEMENT_LOWSRC)]
1725     HRESULT lowsrc([retval, out] BSTR *p);
1726
1727     [propput, id(DISPID_IHTMLIMGELEMENT_VRML)]
1728     HRESULT vrml([in] BSTR v);
1729
1730     [propget, id(DISPID_IHTMLIMGELEMENT_VRML)]
1731     HRESULT vrml([retval, out] BSTR *p);
1732
1733     [propput, id(DISPID_IHTMLIMGELEMENT_DYNSRC)]
1734     HRESULT dynsrc([in] BSTR v);
1735
1736     [propget, id(DISPID_IHTMLIMGELEMENT_DYNSRC)]
1737     HRESULT dynsrc([retval, out] BSTR *p);
1738
1739     [propget, id(DISPID_IHTMLIMGELEMENT_READYSTATE)]
1740     HRESULT readyState([retval, out] BSTR *p);
1741
1742     [propget, id(DISPID_IHTMLIMGELEMENT_COMPLETE)]
1743     HRESULT complete([retval, out] VARIANT_BOOL *p);
1744
1745     [propput, id(DISPID_IHTMLIMGELEMENT_LOOP)]
1746     HRESULT loop([in] VARIANT v);
1747
1748     [propget, id(DISPID_IHTMLIMGELEMENT_LOOP)]
1749     HRESULT loop([retval, out] VARIANT *p);
1750
1751     [propput, id(DISPID_IHTMLIMGELEMENT_ALIGN)]
1752     HRESULT align([in] BSTR v);
1753
1754     [propget, id(DISPID_IHTMLIMGELEMENT_ALIGN)]
1755     HRESULT align([retval, out] BSTR *p);
1756
1757     [propput, id(DISPID_IHTMLIMGELEMENT_ONLOAD)]
1758     HRESULT onload([in] VARIANT v);
1759
1760     [propget, id(DISPID_IHTMLIMGELEMENT_ONLOAD)]
1761     HRESULT onload([retval, out] VARIANT *p);
1762
1763     [propput, id(DISPID_IHTMLIMGELEMENT_ONERROR)]
1764     HRESULT onerror([in] VARIANT v);
1765
1766     [propget, id(DISPID_IHTMLIMGELEMENT_ONERROR)]
1767     HRESULT onerror([retval, out] VARIANT *p);
1768
1769     [propput, id(DISPID_IHTMLIMGELEMENT_ONABORT)]
1770     HRESULT onabort([in] VARIANT v);
1771
1772     [propget, id(DISPID_IHTMLIMGELEMENT_ONABORT)]
1773     HRESULT onabort([retval, out] VARIANT *p);
1774
1775     [propput, id(DISPID_IHTMLIMGELEMENT_NAME)]
1776     HRESULT name([in] BSTR v);
1777
1778     [propget, id(DISPID_IHTMLIMGELEMENT_NAME)]
1779     HRESULT name([retval, out] BSTR *p);
1780
1781     [propput, id(DISPID_IHTMLIMGELEMENT_WIDTH)]
1782     HRESULT width([in] long v);
1783
1784     [propget, id(DISPID_IHTMLIMGELEMENT_WIDTH)]
1785     HRESULT width([retval, out] long *p);
1786
1787     [propput, id(DISPID_IHTMLIMGELEMENT_HEIGHT)]
1788     HRESULT height([in] long v);
1789
1790     [propget, id(DISPID_IHTMLIMGELEMENT_HEIGHT)]
1791     HRESULT height([retval, out] long *p);
1792
1793     [propput, id(DISPID_IHTMLIMGELEMENT_START)]
1794     HRESULT start([in] BSTR v);
1795
1796     [propget, id(DISPID_IHTMLIMGELEMENT_START)]
1797     HRESULT start([retval, out] BSTR *p);
1798 }
1799
1800 /*****************************************************************************
1801  *    IHTMLImageElementFactory interface
1802  */
1803 [
1804     odl,
1805     oleautomation,
1806     dual,
1807     uuid(3050F38E-98B5-11CF-BB82-00AAA0BDCE0B)
1808 ]
1809 interface IHTMLImageElementFactory : IDispatch
1810 {
1811     [id(DISPID_IHTMLIMAGEELEMENTFACTORY_CREATE)]
1812     HRESULT create(
1813         [optional, in] VARIANT width,
1814         [optional, in] VARIANT height,
1815         [retval, out]  IHTMLImgElement **elem);
1816 }
1817
1818 /*****************************************************************************
1819  *    IHTMLElementCollection interface
1820  */
1821 [
1822     odl,
1823     oleautomation,
1824     dual,
1825     uuid(3050F21F-98B5-11CF-BB82-00AA00BDCE0B)
1826 ]
1827 interface IHTMLElementCollection : IDispatch
1828 {
1829     [id(DISPID_IHTMLELEMENTCOLLECTION_TOSTRING)]
1830     HRESULT toString([retval, out] BSTR *String);
1831
1832     [propput, id(DISPID_IHTMLELEMENTCOLLECTION_LENGTH)]
1833     HRESULT length([in] long v);
1834
1835     [propget, id(DISPID_IHTMLELEMENTCOLLECTION_LENGTH)]
1836     HRESULT length([retval, out] long *p);
1837
1838     [propget, id(DISPID_IHTMLELEMENTCOLLECTION__NEWENUM)]
1839     HRESULT _newEnum([retval, out] IUnknown **p);
1840
1841     [id(DISPID_IHTMLELEMENTCOLLECTION_ITEM)]
1842     HRESULT item(
1843         [optional, in] VARIANT name,
1844         [optional, in] VARIANT index,
1845         [retval,  out] IDispatch **pdisp);
1846
1847     [id(DISPID_IHTMLELEMENTCOLLECTION_TAGS)]
1848     HRESULT tags(
1849         [in] VARIANT tagName,
1850         [retval, out] IDispatch **pdisp);
1851 }
1852
1853 /*****************************************************************************
1854  *    IHTMLSelectionObject interface
1855  */
1856 [
1857     odl,
1858     oleautomation,
1859     dual,
1860     uuid(3050F25A-98B5-11CF-BB82-00AA00BDCE0B)
1861 ]
1862 interface IHTMLSelectionObject : IDispatch
1863 {
1864     [id(DISPID_IHTMLSELECTIONOBJECT_CREATERANGE)]
1865     HRESULT createRange([retval, out] IDispatch **range);
1866
1867     [id(DISPID_IHTMLSELECTIONOBJECT_EMPTY)]
1868     HRESULT empty();
1869
1870     [id(DISPID_IHTMLSELECTIONOBJECT_CLEAR)]
1871     HRESULT clear();
1872
1873     [propget, id(DISPID_IHTMLSELECTIONOBJECT_TYPE)]
1874     HRESULT type([retval, out] BSTR *p);
1875 }
1876
1877 /*****************************************************************************
1878  *    IHTMLOptionElement interface
1879  */
1880 [
1881     odl,
1882     oleautomation,
1883     dual,
1884     uuid(3050F211-98B5-11CF-BB82-00AA00BDCE0B)
1885 ]
1886 interface IHTMLOptionElement : IDispatch
1887 {
1888     [propput, id(DISPID_IHTMLOPTIONELEMENT_SELECTED)]
1889     HRESULT selected([in] VARIANT_BOOL v);
1890
1891     [propget, id(DISPID_IHTMLOPTIONELEMENT_SELECTED)]
1892     HRESULT selected([retval, out] VARIANT_BOOL *p);
1893
1894     [propput, id(DISPID_IHTMLOPTIONELEMENT_VALUE)]
1895     HRESULT value([in] BSTR v);
1896
1897     [propget, id(DISPID_IHTMLOPTIONELEMENT_VALUE)]
1898     HRESULT value([retval, out] BSTR *p);
1899
1900     [propput, id(DISPID_IHTMLOPTIONELEMENT_DEFAULTSELECTED)]
1901     HRESULT defaultSelected([in] VARIANT_BOOL v);
1902
1903     [propget, id(DISPID_IHTMLOPTIONELEMENT_DEFAULTSELECTED)]
1904     HRESULT defaultSelected([retval, out] VARIANT_BOOL *p);
1905
1906     [propput, id(DISPID_IHTMLOPTIONELEMENT_INDEX)]
1907     HRESULT index([in] LONG v);
1908
1909     [propget, id(DISPID_IHTMLOPTIONELEMENT_INDEX)]
1910     HRESULT index([retval, out] LONG *p);
1911
1912     [propput, id(DISPID_IHTMLOPTIONELEMENT_TEXT)]
1913     HRESULT text([in] BSTR v);
1914
1915     [propget, id(DISPID_IHTMLOPTIONELEMENT_TEXT)]
1916     HRESULT text([retval, out] BSTR *p);
1917
1918     [propget, id(DISPID_IHTMLOPTIONELEMENT_FORM)]
1919     HRESULT form([retval, out] IHTMLFormElement **p);
1920 }
1921
1922 /*****************************************************************************
1923  *    IHTMLOptionElementFactory interface
1924  */
1925 [
1926     odl,
1927     oleautomation,
1928     dual,
1929     uuid(3050F38C-98B5-11Cf-BB82-00AA00BDCE0B)
1930 ]
1931 interface IHTMLOptionElementFactory : IDispatch
1932 {
1933     [id(DISPID_IHTMLOPTIONELEMENTFACTORY_CREATE)]
1934     HRESULT create(
1935         [optional, in] VARIANT text,
1936         [optional, in] VARIANT value,
1937         [optional, in] VARIANT defaultselected,
1938         [optional, in] VARIANT selected,
1939         [retval, out] IHTMLOptionElement **optelem);
1940 }
1941
1942 /*****************************************************************************
1943  *    IOmHistory interface
1944  */
1945 [
1946     odl,
1947     oleautomation,
1948     dual,
1949     uuid(FECEAAA2-8405-11CF-8BA1-00AA00476DA6)
1950 ]
1951 interface IOmHistory : IDispatch
1952 {
1953     [propget, id(DISPID_IOMHISTORY_LENGTH)]
1954     HRESULT length([retval, out] short *p);
1955
1956     [id(DISPID_IOMHISTORY_BACK)]
1957     HRESULT back([optional, in] VARIANT *pvargdistance);
1958
1959     [id(DISPID_IOMHISTORY_FORWARD)]
1960     HRESULT forward([optional, in] VARIANT *pvargdistance);
1961
1962     [id(DISPID_IOMHISTORY_GO)]
1963     HRESULT go([optional, in] VARIANT *pvargdistance);
1964 }
1965
1966 /*****************************************************************************
1967  *    IHTMLMimeTypesCollection interface
1968  */
1969 [
1970     odl,
1971     oleautomation,
1972     dual,
1973     uuid(3050F3FC-98B5-11CF-BB82-00AA00BDCE0B)
1974 ]
1975 interface IHTMLMimeTypesCollection : IDispatch
1976 {
1977     [propget, id(DISPID_IHTMLMIMETYPESCOLLECTION_LENGTH)]
1978     HRESULT length([retval, out] long *p);
1979 }
1980
1981 /*****************************************************************************
1982  *    IHTMLPluginsCollection interface
1983  */
1984 [
1985     odl,
1986     oleautomation,
1987     dual,
1988     uuid(3050F3FD-98B5-11CF-BB82-00AA00BDCE0B)
1989 ]
1990 interface IHTMLPluginsCollection : IDispatch
1991 {
1992     [propget, id(DISPID_IHTMLPLUGINSCOLLECTION_LENGTH)]
1993     HRESULT length([retval, out] long *p);
1994
1995     [id(DISPID_IHTMLPLUGINSCOLLECTION_REFRESH)]
1996     HRESULT refresh([defaultvalue(0), in] VARIANT_BOOL reload);
1997 }
1998
1999 /*****************************************************************************
2000  *    IHTMLOpsProfile interface
2001  */
2002 [
2003     odl,
2004     oleautomation,
2005     dual,
2006     uuid(3050F401-98B5-11CF-BB82-00AA00BDCE0B)
2007 ]
2008 interface IHTMLOpsProfile : IDispatch
2009 {
2010     [id(DISPID_IHTMLOPSPROFILE_ADDREQUEST)]
2011     HRESULT addRequest(
2012         [in] BSTR name,
2013         [optional, in] VARIANT reserved,
2014         [retval, out] VARIANT_BOOL *success);
2015
2016     [id(DISPID_IHTMLOPSPROFILE_CLEARREQUEST)]
2017     HRESULT clearRequest();
2018
2019     [id(DISPID_IHTMLOPSPROFILE_DOREQUEST)]
2020     HRESULT doRequest(
2021         [in] VARIANT usage,
2022         [optional, in] VARIANT fname,
2023         [optional, in] VARIANT domain,
2024         [optional, in] VARIANT path,
2025         [optional, in] VARIANT expire,
2026         [optional, in] VARIANT reserved);
2027
2028     [id(DISPID_IHTMLOPSPROFILE_GETATTRIBUTE)]
2029     HRESULT getAttribute(
2030         [in] BSTR name,
2031         [retval, out] BSTR *value);
2032
2033     [id(DISPID_IHTMLOPSPROFILE_SETATTRIBUTE)]
2034     HRESULT setAttribute(
2035         [in] BSTR name,
2036         [in] BSTR value,
2037         [optional, in] VARIANT prefs,
2038         [retval, out] VARIANT_BOOL *success);
2039
2040     [id(DISPID_IHTMLOPSPROFILE_COMMITCHANGES)]
2041     HRESULT commitChanges([retval, out] VARIANT_BOOL *success);
2042
2043     [id(DISPID_IHTMLOPSPROFILE_ADDREADREQUEST)]
2044     HRESULT addReadRequest(
2045         [in] BSTR name,
2046         [optional, in] VARIANT reserved,
2047         [retval, out] VARIANT_BOOL *success);
2048
2049     [id(DISPID_IHTMLOPSPROFILE_DOREADREQUEST)]
2050     HRESULT doReadRequest(
2051         [in] VARIANT usage,
2052         [optional, in] VARIANT fname,
2053         [optional, in] VARIANT domain,
2054         [optional, in] VARIANT path,
2055         [optional, in] VARIANT expire,
2056         [optional, in] VARIANT reserved);
2057
2058     [id(DISPID_IHTMLOPSPROFILE_DOWRITEREQUEST)]
2059     HRESULT doWriteRequest([retval, out] VARIANT_BOOL *success);
2060 }
2061
2062 /*****************************************************************************
2063  *    IOmNavigator interface
2064  */
2065 [
2066         odl,
2067         oleautomation,
2068         dual,
2069         uuid(FECEAAA5-8405-11CF-8BA1-00AA00476DA6)
2070 ]
2071 interface IOmNavigator : IDispatch
2072 {
2073     [propget, id(DISPID_IOMNAVIGATOR_APPCODENAME)]
2074     HRESULT appCodeName([retval, out] BSTR *p);
2075
2076     [propget, id(DISPID_IOMNAVIGATOR_APPNAME)]
2077     HRESULT appName([retval, out] BSTR *p);
2078
2079     [propget, id(DISPID_IOMNAVIGATOR_APPVERSION)]
2080     HRESULT appVersion([retval, out] BSTR *p);
2081
2082     [propget, id(DISPID_IOMNAVIGATOR_USERAGENT)]
2083     HRESULT userAgent([retval, out] BSTR *p);
2084
2085     [id(DISPID_IOMNAVIGATOR_JAVAENABLED)]
2086     HRESULT javaEnabled([retval, out] VARIANT_BOOL *enabled);
2087
2088     [id(DISPID_IOMNAVIGATOR_TAINTENABLED)]
2089     HRESULT taintEnabled([retval, out] VARIANT_BOOL *enabled);
2090
2091     [propget, id(DISPID_IOMNAVIGATOR_MIMETYPES)]
2092     HRESULT mimeTypes([retval, out] IHTMLMimeTypesCollection **p);
2093
2094     [propget, id(DISPID_IOMNAVIGATOR_PLUGINS)]
2095     HRESULT plugins([retval, out] IHTMLPluginsCollection **p);
2096
2097     [propget, id(DISPID_IOMNAVIGATOR_COOKIEENABLED)]
2098     HRESULT cookieEnabled([retval, out] VARIANT_BOOL *p);
2099
2100     [propget, id(DISPID_IOMNAVIGATOR_OPSPROFILE)]
2101     HRESULT opsProfile([retval, out] IHTMLOpsProfile **p);
2102
2103     [id(DISPID_IOMNAVIGATOR_TOSTRING)]
2104     HRESULT toString([retval, out] BSTR *String);
2105
2106     [propget, id(DISPID_IOMNAVIGATOR_CPUCLASS)]
2107     HRESULT cpuClass([retval, out] BSTR *p);
2108
2109     [propget, id(DISPID_IOMNAVIGATOR_SYSTEMLANGUAGE)]
2110     HRESULT systemLanguage([retval, out] BSTR *p);
2111
2112     [propget, id(DISPID_IOMNAVIGATOR_BROWSERLANGUAGE)]
2113     HRESULT browserLanguage([retval, out] BSTR *p);
2114
2115     [propget, id(DISPID_IOMNAVIGATOR_USERLANGUAGE)]
2116     HRESULT userLanguage([retval, out] BSTR *p);
2117
2118     [propget, id(DISPID_IOMNAVIGATOR_PLATFORM)]
2119     HRESULT platform([retval, out] BSTR *p);
2120
2121     [propget, id(DISPID_IOMNAVIGATOR_APPMINORVERSION)]
2122     HRESULT appMinorVersion([retval, out] BSTR *p);
2123
2124     [propget, id(DISPID_IOMNAVIGATOR_CONNECTIONSPEED)]
2125     HRESULT connectionSpeed([retval, out] long *p);
2126
2127     [propget, id(DISPID_IOMNAVIGATOR_ONLINE)]
2128     HRESULT onLine([retval, out] VARIANT_BOOL *p);
2129
2130     [propget, id(DISPID_IOMNAVIGATOR_USERPROFILE)]
2131     HRESULT userProfile([retval, out] IHTMLOpsProfile **p);
2132 }
2133
2134 /*****************************************************************************
2135  *    IHTMLLocation interface
2136  */
2137 [
2138     odl,
2139     oleautomation,
2140     dual,
2141     uuid(163BB1E0-6E00-11cf-837A-48DC04C10000)
2142 ]
2143 interface IHTMLLocation : IDispatch
2144 {
2145     [propput, id(DISPID_IHTMLLOCATION_HREF)]
2146     HRESULT href([in] BSTR v);
2147
2148     [propget, id(DISPID_IHTMLLOCATION_HREF)]
2149     HRESULT href([retval, out] BSTR *p);
2150
2151     [propput, id(DISPID_IHTMLLOCATION_PROTOCOL)]
2152     HRESULT protocol([in] BSTR v);
2153
2154     [propget, id(DISPID_IHTMLLOCATION_PROTOCOL)]
2155     HRESULT protocol([retval, out] BSTR *p);
2156
2157     [propput, id(DISPID_IHTMLLOCATION_HOST)]
2158     HRESULT host([in] BSTR v);
2159
2160     [propget, id(DISPID_IHTMLLOCATION_HOST)]
2161     HRESULT host([retval, out] BSTR *p);
2162
2163     [propput, id(DISPID_IHTMLLOCATION_HOSTNAME)]
2164     HRESULT hostname([in] BSTR v);
2165
2166     [propget, id(DISPID_IHTMLLOCATION_HOSTNAME)]
2167     HRESULT hostname([retval, out] BSTR *p);
2168
2169     [propput, id(DISPID_IHTMLLOCATION_PORT)]
2170     HRESULT port([in] BSTR v);
2171
2172     [propget, id(DISPID_IHTMLLOCATION_PORT)]
2173     HRESULT port([retval, out] BSTR *p);
2174
2175     [propput, id(DISPID_IHTMLLOCATION_PATHNAME)]
2176     HRESULT pathname([in] BSTR v);
2177
2178     [propget, id(DISPID_IHTMLLOCATION_PATHNAME)]
2179     HRESULT pathname([retval, out] BSTR *p);
2180
2181     [propput, id(DISPID_IHTMLLOCATION_SEARCH)]
2182     HRESULT search([in] BSTR v);
2183
2184     [propget, id(DISPID_IHTMLLOCATION_SEARCH)]
2185     HRESULT search([retval, out] BSTR *p);
2186
2187     [propput, id(DISPID_IHTMLLOCATION_HASH)]
2188     HRESULT hash([in] BSTR v);
2189
2190     [propget, id(DISPID_IHTMLLOCATION_HASH)]
2191     HRESULT hash([retval, out] BSTR *p);
2192
2193     [id(DISPID_IHTMLLOCATION_RELOAD)]
2194     HRESULT reload([defaultvalue(0), in] VARIANT_BOOL flag);
2195
2196     [id(DISPID_IHTMLLOCATION_REPLACE)]
2197     HRESULT replace([in] BSTR bstr);
2198
2199     [id(DISPID_IHTMLLOCATION_ASSIGN)]
2200     HRESULT assign([in] BSTR bstr);
2201
2202     [id(DISPID_IHTMLLOCATION_TOSTRING)]
2203     HRESULT toString([retval, out] BSTR *String);
2204 }
2205
2206 /*****************************************************************************
2207  *    IHTMLEventObj interface
2208  */
2209 [
2210     odl,
2211     oleautomation,
2212     dual,
2213     uuid(3050F32D-98B5-11CF-BB82-00AA00BDCE0B)
2214 ]
2215 interface IHTMLEventObj : IDispatch
2216 {
2217     [propget, id(DISPID_IHTMLEVENTOBJ_SRCELEMENT)]
2218     HRESULT srcElement([retval, out] IHTMLElement **p);
2219
2220     [propget, id(DISPID_IHTMLEVENTOBJ_ALTKEY)]
2221     HRESULT altKey([retval, out] VARIANT_BOOL *p);
2222
2223     [propget, id(DISPID_IHTMLEVENTOBJ_CTRLKEY)]
2224     HRESULT ctrlKey([retval, out] VARIANT_BOOL *p);
2225
2226     [propget, id(DISPID_IHTMLEVENTOBJ_SHIFTKEY)]
2227     HRESULT shiftKey([retval, out] VARIANT_BOOL *p);
2228
2229     [propput, id(DISPID_IHTMLEVENTOBJ_RETURNVALUE)]
2230     HRESULT returnValue([in] VARIANT v);
2231
2232     [propget, id(DISPID_IHTMLEVENTOBJ_RETURNVALUE)]
2233     HRESULT returnValue([retval, out] VARIANT *p);
2234
2235     [propput, id(DISPID_IHTMLEVENTOBJ_CANCELBUBBLE)]
2236     HRESULT cancelBubble([in] VARIANT_BOOL v);
2237
2238     [propget, id(DISPID_IHTMLEVENTOBJ_CANCELBUBBLE)]
2239     HRESULT cancelBubble([retval, out] VARIANT_BOOL *p);
2240
2241     [propget, id(DISPID_IHTMLEVENTOBJ_FROMELEMENT)]
2242     HRESULT fromElement([retval, out] IHTMLElement **p);
2243
2244     [propget, id(DISPID_IHTMLEVENTOBJ_TOELEMENT)]
2245     HRESULT toElement([retval, out] IHTMLElement **p);
2246
2247     [propput, id(DISPID_IHTMLEVENTOBJ_KEYCODE)]
2248     HRESULT keyCode([in] long v);
2249
2250     [propget, id(DISPID_IHTMLEVENTOBJ_KEYCODE)]
2251     HRESULT keyCode([retval, out] long *p);
2252
2253     [propget, id(DISPID_IHTMLEVENTOBJ_BUTTON)]
2254     HRESULT button([retval, out] long *p);
2255
2256     [propget, id(DISPID_IHTMLEVENTOBJ_TYPE)]
2257     HRESULT type([retval, out] BSTR *p);
2258
2259     [propget, id(DISPID_IHTMLEVENTOBJ_QUALIFIER)]
2260     HRESULT qualifier([retval, out] BSTR *p);
2261
2262     [propget, id(DISPID_IHTMLEVENTOBJ_REASON)]
2263     HRESULT reason([retval, out] long *p);
2264
2265     [propget, id(DISPID_IHTMLEVENTOBJ_X)]
2266     HRESULT x([retval, out] long *p);
2267
2268     [propget, id(DISPID_IHTMLEVENTOBJ_Y)]
2269     HRESULT y([retval, out] long *p);
2270
2271     [propget, id(DISPID_IHTMLEVENTOBJ_CLIENTX)]
2272     HRESULT clientX([retval, out] long *p);
2273
2274     [propget, id(DISPID_IHTMLEVENTOBJ_CLIENTY)]
2275     HRESULT clientY([retval, out] long *p);
2276
2277     [propget, id(DISPID_IHTMLEVENTOBJ_OFFSETX)]
2278     HRESULT offsetX([retval, out] long *p);
2279
2280     [propget, id(DISPID_IHTMLEVENTOBJ_OFFSETY)]
2281     HRESULT offsetY([retval, out] long *p);
2282
2283     [propget, id(DISPID_IHTMLEVENTOBJ_SCREENX)]
2284     HRESULT screenX([retval, out] long *p);
2285
2286     [propget, id(DISPID_IHTMLEVENTOBJ_SCREENY)]
2287     HRESULT screenY([retval, out] long *p);
2288
2289     [propget, id(DISPID_IHTMLEVENTOBJ_SRCFILTER)]
2290     HRESULT srcFilter([retval, out] IDispatch **p);
2291 }
2292
2293 /*****************************************************************************
2294  *    IHTMLFramesCollection2 interface
2295  */
2296 [
2297     odl,
2298     oleautomation,
2299     dual,
2300     uuid(332C4426-26CB-11D0-B483-00C04FD90119)
2301 ]
2302 interface IHTMLFramesCollection2 : IDispatch
2303 {
2304     [id(DISPID_IHTMLFRAMESCOLLECTION2_ITEM)]
2305     HRESULT item(
2306         [in] VARIANT *pvarIndex,
2307         [retval, out] VARIANT *pvarResult);
2308
2309     [propget, id(DISPID_IHTMLFRAMESCOLLECTION2_LENGTH)]
2310     HRESULT length([retval, out] long *p);
2311 }
2312
2313 /*****************************************************************************
2314  *    IHTMLScreen interface
2315  */
2316 [
2317     odl,
2318     oleautomation,
2319     dual,
2320     uuid(3050f35C-98B5-11CF-BB82-00AA00BDCE0B)
2321 ]
2322 interface IHTMLScreen : IDispatch
2323 {
2324     [propget, id(DISPID_IHTMLSCREEN_COLORDEPTH)]
2325     HRESULT colorDepth([retval, out] long *p);
2326
2327     [propput, id(DISPID_IHTMLSCREEN_BUFFERDEPTH)]
2328     HRESULT bufferDepth([in] long v);
2329
2330     [propget, id(DISPID_IHTMLSCREEN_BUFFERDEPTH)]
2331     HRESULT bufferDepth([retval, out] long *p);
2332
2333     [propget, id(DISPID_IHTMLSCREEN_WIDTH)]
2334     HRESULT width([retval, out] long *p);
2335
2336     [propget, id(DISPID_IHTMLSCREEN_HEIGHT)]
2337     HRESULT height([retval, out] long *p);
2338
2339     [propput, id(DISPID_IHTMLSCREEN_UPDATEINTERVAL)]
2340     HRESULT updateInterval([in] long v);
2341
2342     [propget, id(DISPID_IHTMLSCREEN_UPDATEINTERVAL)]
2343     HRESULT updateInterval([retval, out] long *p);
2344
2345     [propget, id(DISPID_IHTMLSCREEN_AVAILHEIGHT)]
2346     HRESULT availHeight([retval, out] long *p);
2347
2348     [propget, id(DISPID_IHTMLSCREEN_AVAILWIDTH)]
2349     HRESULT availWidth([retval, out] long *p);
2350
2351     [propget, id(DISPID_IHTMLSCREEN_FONTSMOOTHINGENABLED)]
2352     HRESULT fontSmoothingEnabled([retval, out] VARIANT_BOOL *p);
2353 }
2354
2355 /*****************************************************************************
2356  *    IHTMLWindow2 interface
2357  */
2358 [
2359     odl,
2360     oleautomation,
2361     dual,
2362     uuid(332C4427-26CB-11D0-B483-00C04FD90119)
2363 ]
2364 interface IHTMLWindow2 : IHTMLFramesCollection2
2365 {
2366     [propget, id(DISPID_IHTMLWINDOW2_FRAMES)]
2367     HRESULT frames([retval, out] IHTMLFramesCollection2 **p);
2368
2369     [propput, id(DISPID_IHTMLWINDOW2_DEFAULTSTATUS)]
2370     HRESULT defaultStatus([in] BSTR v);
2371
2372     [propget, id(DISPID_IHTMLWINDOW2_DEFAULTSTATUS)]
2373     HRESULT defaultStatus([retval, out] BSTR *p);
2374
2375     [propput, id(DISPID_IHTMLWINDOW2_STATUS)]
2376     HRESULT status([in] BSTR v);
2377
2378     [propget, id(DISPID_IHTMLWINDOW2_STATUS)]
2379     HRESULT status([retval, out] BSTR *p);
2380
2381     [id(DISPID_IHTMLWINDOW2_SETTIMEOUT)]
2382     HRESULT setTimeout(
2383         [in] BSTR expression,
2384         [in] long msec,
2385         [optional, in] VARIANT *language,
2386         [retval, out] long *timerID);
2387
2388     [id(DISPID_IHTMLWINDOW2_CLEARTIMEOUT)]
2389     HRESULT clearTimeout([in] long timerID);
2390
2391     [id(DISPID_IHTMLWINDOW2_ALERT)]
2392     HRESULT alert([defaultvalue(""), in] BSTR message);
2393
2394     [id(DISPID_IHTMLWINDOW2_CONFIRM)]
2395     HRESULT confirm(
2396         [defaultvalue(""), in] BSTR message,
2397         [retval, out] VARIANT_BOOL *confirmed);
2398
2399     [id(DISPID_IHTMLWINDOW2_PROMPT)]
2400     HRESULT prompt(
2401         [defaultvalue(""), in] BSTR message,
2402         [defaultvalue("undefined"), in] BSTR defstr,
2403         [retval, out] VARIANT *textdata);
2404
2405     [propget, id(DISPID_IHTMLWINDOW2_IMAGE)]
2406     HRESULT Image([retval, out] IHTMLImageElementFactory **p);
2407
2408     [propget, id(DISPID_IHTMLWINDOW2_LOCATION)]
2409     HRESULT location([retval, out] IHTMLLocation **p);
2410
2411     [propget, id(DISPID_IHTMLWINDOW2_HISTORY)]
2412     HRESULT history([retval, out] IOmHistory **p);
2413
2414     [id(DISPID_IHTMLWINDOW2_CLOSE)]
2415     HRESULT close();
2416
2417     [propput, id(DISPID_IHTMLWINDOW2_OPENER)]
2418     HRESULT opener([in] VARIANT v);
2419
2420     [propget, id(DISPID_IHTMLWINDOW2_OPENER)]
2421     HRESULT opener([retval, out] VARIANT *p);
2422
2423     [propget, id(DISPID_IHTMLWINDOW2_NAVIGATOR)]
2424     HRESULT navigator([retval, out] IOmNavigator **p);
2425
2426     [propput, id(DISPID_IHTMLWINDOW2_NAME)]
2427     HRESULT name([in] BSTR v);
2428
2429     [propget, id(DISPID_IHTMLWINDOW2_NAME)]
2430     HRESULT name([retval, out] BSTR *p);
2431
2432     [propget, id(DISPID_IHTMLWINDOW2_PARENT)]
2433     HRESULT parent([retval, out] IHTMLWindow2 **p);
2434
2435     [id(DISPID_IHTMLWINDOW2_OPEN)]
2436     HRESULT open(
2437         [defaultvalue(""), in] BSTR url,
2438         [defaultvalue(""), in] BSTR name,
2439         [defaultvalue(""), in] BSTR features,
2440         [defaultvalue(0), in] VARIANT_BOOL replace,
2441         [retval, out] IHTMLWindow2 **pomWindowResult);
2442
2443     [propget, id(DISPID_IHTMLWINDOW2_SELF)]
2444     HRESULT self([retval, out] IHTMLWindow2 **p);
2445
2446     [propget, id(DISPID_IHTMLWINDOW2_TOP)]
2447     HRESULT top([retval, out] IHTMLWindow2 **p);
2448
2449     [propget, id(DISPID_IHTMLWINDOW2_WINDOW)]
2450     HRESULT window([retval, out] IHTMLWindow2 **p);
2451
2452     [id(DISPID_IHTMLWINDOW2_NAVIGATE)]
2453     HRESULT navigate([in] BSTR url);
2454
2455     [propput, id(DISPID_IHTMLWINDOW2_ONFOCUS)]
2456     HRESULT onfocus([in] VARIANT v);
2457
2458     [propget, id(DISPID_IHTMLWINDOW2_ONFOCUS)]
2459     HRESULT onfocus([retval, out] VARIANT *p);
2460
2461     [propput, id(DISPID_IHTMLWINDOW2_ONBLUR)]
2462     HRESULT onblur([in] VARIANT v);
2463
2464     [propget, id(DISPID_IHTMLWINDOW2_ONBLUR)]
2465     HRESULT onblur([retval, out] VARIANT *p);
2466
2467     [propput, id(DISPID_IHTMLWINDOW2_ONLOAD)]
2468     HRESULT onload([in] VARIANT v);
2469
2470     [propget, id(DISPID_IHTMLWINDOW2_ONLOAD)]
2471     HRESULT onload([retval, out] VARIANT *p);
2472
2473     [propput, id(DISPID_IHTMLWINDOW2_ONBEFOREUNLOAD)]
2474     HRESULT onbeforeunload([in] VARIANT v);
2475
2476     [propget, id(DISPID_IHTMLWINDOW2_ONBEFOREUNLOAD)]
2477     HRESULT onbeforeunload([retval, out] VARIANT *p);
2478
2479     [propput, id(DISPID_IHTMLWINDOW2_ONUNLOAD)]
2480     HRESULT onunload([in] VARIANT v);
2481
2482     [propget, id(DISPID_IHTMLWINDOW2_ONUNLOAD)]
2483     HRESULT onunload([retval, out] VARIANT *p);
2484
2485     [propput, id(DISPID_IHTMLWINDOW2_ONHELP)]
2486     HRESULT onhelp([in] VARIANT v);
2487
2488     [propget, id(DISPID_IHTMLWINDOW2_ONHELP)]
2489     HRESULT onhelp([retval, out] VARIANT *p);
2490
2491     [propput, id(DISPID_IHTMLWINDOW2_ONERROR)]
2492     HRESULT onerror([in] VARIANT v);
2493
2494     [propget, id(DISPID_IHTMLWINDOW2_ONERROR)]
2495     HRESULT onerror([retval, out] VARIANT *p);
2496
2497     [propput, id(DISPID_IHTMLWINDOW2_ONRESIZE)]
2498     HRESULT onresize([in] VARIANT v);
2499
2500     [propget, id(DISPID_IHTMLWINDOW2_ONRESIZE)]
2501     HRESULT onresize([retval, out] VARIANT *p);
2502
2503     [propput, id(DISPID_IHTMLWINDOW2_ONSCROLL)]
2504     HRESULT onscroll([in] VARIANT v);
2505
2506     [propget, id(DISPID_IHTMLWINDOW2_ONSCROLL)]
2507     HRESULT onscroll([retval, out] VARIANT *p);
2508
2509     [propget, id(DISPID_IHTMLWINDOW2_DOCUMENT)]
2510     HRESULT document([retval, out] IHTMLDocument2 **p);
2511
2512     [propget, id(DISPID_IHTMLWINDOW2_EVENT)]
2513     HRESULT event([retval, out] IHTMLEventObj **p);
2514
2515     [propget, id(DISPID_IHTMLWINDOW2__NEWENUM)]
2516     HRESULT _newEnum([retval, out] IUnknown **p);
2517
2518     [id(DISPID_IHTMLWINDOW2_SHOWMODALDIALOG)]
2519     HRESULT showModalDialog(
2520         [in] BSTR dialog,
2521         [optional, in] VARIANT *varArgIn,
2522         [optional, in] VARIANT *varOptions,
2523         [retval, out] VARIANT *varArgOut);
2524
2525     [id(DISPID_IHTMLWINDOW2_SHOWHELP)]
2526     HRESULT showHelp(
2527         [in] BSTR helpURL,
2528         [optional, in] VARIANT helpArg,
2529         [defaultvalue(""), in] BSTR features);
2530
2531     [propget, id(DISPID_IHTMLWINDOW2_SCREEN)]
2532     HRESULT screen([retval, out] IHTMLScreen **p);
2533
2534     [propget, id(DISPID_IHTMLWINDOW2_OPTION)]
2535     HRESULT Option([retval, out] IHTMLOptionElementFactory **p);
2536
2537     [id(DISPID_IHTMLWINDOW2_FOCUS)]
2538     HRESULT focus();
2539
2540     [propget, id(DISPID_IHTMLWINDOW2_CLOSED)]
2541     HRESULT closed([retval, out] VARIANT_BOOL *p);
2542
2543     [id(DISPID_IHTMLWINDOW2_BLUR)]
2544     HRESULT blur();
2545
2546     [id(DISPID_IHTMLWINDOW2_SCROLL)]
2547     HRESULT scroll([in] long x, [in] long y);
2548
2549     [propget, id(DISPID_IHTMLWINDOW2_CLIENTINFORMATION)]
2550     HRESULT clientInformation([retval, out] IOmNavigator **p);
2551
2552     [id(DISPID_IHTMLWINDOW2_SETINTERVAL)]
2553     HRESULT setInterval([
2554         in] BSTR expression,
2555         [in] long msec,
2556         [optional, in] VARIANT *language,
2557         [retval, out] long *timerID);
2558
2559     [id(DISPID_IHTMLWINDOW2_CLEARINTERVAL)]
2560     HRESULT clearInterval([in] long timerID);
2561
2562     [propput, id(DISPID_IHTMLWINDOW2_OFFSCREENBUFFERING)]
2563     HRESULT offscreenBuffering([in] VARIANT v);
2564
2565     [propget, id(DISPID_IHTMLWINDOW2_OFFSCREENBUFFERING)]
2566     HRESULT offscreenBuffering([retval, out] VARIANT *p);
2567
2568     [id(DISPID_IHTMLWINDOW2_EXECSCRIPT)]
2569     HRESULT execScript(
2570         [in] BSTR scode,
2571         [defaultvalue("JScript"), in] BSTR language,
2572         [retval, out] VARIANT *pvarRet);
2573
2574     [id(DISPID_IHTMLWINDOW2_TOSTRING)]
2575     HRESULT toString([retval, out] BSTR *String);
2576
2577     [id(DISPID_IHTMLWINDOW2_SCROLLBY)]
2578     HRESULT scrollBy([in] long x, [in] long y);
2579
2580     [id(DISPID_IHTMLWINDOW2_SCROLLTO)]
2581     HRESULT scrollTo([in] long x, [in] long y);
2582
2583     [id(DISPID_IHTMLWINDOW2_MOVETO)]
2584     HRESULT moveTo([in] long x, [in] long y);
2585
2586     [id(DISPID_IHTMLWINDOW2_MOVEBY)]
2587     HRESULT moveBy([in] long x, [in] long y);
2588
2589     [id(DISPID_IHTMLWINDOW2_RESIZETO)]
2590     HRESULT resizeTo([in] long x, [in] long y);
2591
2592     [id(DISPID_IHTMLWINDOW2_RESIZEBY)]
2593     HRESULT resizeBy([in] long x, [in] long y);
2594
2595     [propget, id(DISPID_IHTMLWINDOW2_EXTERNAL)]
2596     HRESULT external([retval, out] IDispatch **p);
2597 }
2598
2599 /*****************************************************************************
2600  *    IHTMLDocument interface
2601  */
2602 [
2603     odl,
2604     oleautomation,
2605     dual,
2606     uuid(626FC520-A41E-11CF-A731-00A0C9082637)
2607 ]
2608 interface IHTMLDocument : IDispatch
2609 {
2610     [propget, id(DISPID_IHTMLDOCUMENT_SCRIPT)]
2611     HRESULT Script([retval, out] IDispatch **p);
2612 }
2613
2614 /*****************************************************************************
2615  *    IHTMLDocument2 interface
2616  */
2617 [
2618     odl,
2619     oleautomation,
2620     dual,
2621     uuid(332C4425-26CB-11D0-B483-00C04FD90119)
2622 ]
2623 interface IHTMLDocument2 : IHTMLDocument
2624 {
2625     [propget, id(DISPID_IHTMLDOCUMENT2_ALL)]
2626     HRESULT all([retval, out] IHTMLElementCollection **p);
2627
2628     [propget, id(DISPID_IHTMLDOCUMENT2_BODY)]
2629     HRESULT body([retval, out] IHTMLElement **p);
2630
2631     [propget, id(DISPID_IHTMLDOCUMENT2_ACTIVEELEMENT)]
2632     HRESULT activeElement([retval, out] IHTMLElement **p);
2633
2634     [propget, id(DISPID_IHTMLDOCUMENT2_IMAGES)]
2635     HRESULT images([retval, out] IHTMLElementCollection **p);
2636
2637     [propget, id(DISPID_IHTMLDOCUMENT2_APPLETS)]
2638     HRESULT applets([retval, out] IHTMLElementCollection **p);
2639
2640     [propget, id(DISPID_IHTMLDOCUMENT2_LINKS)]
2641     HRESULT links([retval, out] IHTMLElementCollection **p);
2642
2643     [propget, id(DISPID_IHTMLDOCUMENT2_FORMS)]
2644     HRESULT forms([retval, out] IHTMLElementCollection **p);
2645
2646     [propget, id(DISPID_IHTMLDOCUMENT2_ANCHORS)]
2647     HRESULT anchors([retval, out] IHTMLElementCollection **p);
2648
2649     [propput, id(DISPID_IHTMLDOCUMENT2_TITLE)]
2650     HRESULT title([in] BSTR v);
2651
2652     [propget, id(DISPID_IHTMLDOCUMENT2_TITLE)]
2653     HRESULT title([retval, out] BSTR *p);
2654
2655     [propget, id(DISPID_IHTMLDOCUMENT2_SCRIPTS)]
2656     HRESULT scripts([retval, out] IHTMLElementCollection **p);
2657
2658     [propput, id(DISPID_IHTMLDOCUMENT2_DESIGNMODE)]
2659     HRESULT designMode([in] BSTR v);
2660
2661     [propget, id(DISPID_IHTMLDOCUMENT2_DESIGNMODE)]
2662     HRESULT designMode([retval, out] BSTR *p);
2663
2664     [propget, id(DISPID_IHTMLDOCUMENT2_SELECTION)]
2665     HRESULT selection([retval, out] IHTMLSelectionObject **p);
2666
2667     [propget, id(DISPID_IHTMLDOCUMENT2_READYSTATE)]
2668      HRESULT readyState([retval, out] BSTR *p);
2669
2670     [propget, id(DISPID_IHTMLDOCUMENT2_FRAMES)]
2671     HRESULT frames([retval, out] IHTMLFramesCollection2 **p);
2672
2673     [propget, id(DISPID_IHTMLDOCUMENT2_EMBEDS)]
2674     HRESULT embeds([retval, out] IHTMLElementCollection **p);
2675
2676     [propget, id(DISPID_IHTMLDOCUMENT2_PLUGINS)]
2677     HRESULT plugins([retval, out] IHTMLElementCollection **p);
2678
2679     [propput, id(DISPID_IHTMLDOCUMENT2_ALINKCOLOR)]
2680     HRESULT alinkColor([in] VARIANT v);
2681
2682     [propget, id(DISPID_IHTMLDOCUMENT2_ALINKCOLOR)]
2683     HRESULT alinkColor([retval, out] VARIANT *p);
2684
2685     [propput, id(DISPID_IHTMLDOCUMENT2_BGCOLOR)]
2686     HRESULT bgColor([in] VARIANT v);
2687
2688     [propget, id(DISPID_IHTMLDOCUMENT2_BGCOLOR)]
2689     HRESULT bgColor([retval, out] VARIANT *p);
2690
2691     [propput, id(DISPID_IHTMLDOCUMENT2_FGCOLOR)]
2692     HRESULT fgColor([in] VARIANT v);
2693
2694     [propget, id(DISPID_IHTMLDOCUMENT2_FGCOLOR)]
2695     HRESULT fgColor([retval, out] VARIANT *p);
2696
2697     [propput, id(DISPID_IHTMLDOCUMENT2_LINKCOLOR)]
2698     HRESULT linkColor([in] VARIANT v);
2699
2700     [propget, id(DISPID_IHTMLDOCUMENT2_LINKCOLOR)]
2701     HRESULT linkColor([retval, out] VARIANT *p);
2702
2703     [propput, id(DISPID_IHTMLDOCUMENT2_VLINKCOLOR)]
2704     HRESULT vlinkColor([in] VARIANT v);
2705
2706     [propget, id(DISPID_IHTMLDOCUMENT2_VLINKCOLOR)]
2707     HRESULT vlinkColor([retval, out] VARIANT *p);
2708
2709     [propget, id(DISPID_IHTMLDOCUMENT2_REFERRER)]
2710     HRESULT referrer([retval, out] BSTR *p);
2711
2712     [propget, id(DISPID_IHTMLDOCUMENT2_LOCATION)]
2713     HRESULT location([retval, out] IHTMLLocation **p);
2714
2715     [propget, id(DISPID_IHTMLDOCUMENT2_LASTMODIFIED)]
2716     HRESULT lastModified([retval, out] BSTR *p);
2717
2718     [propput, id(DISPID_IHTMLDOCUMENT2_URL)]
2719     HRESULT URL([in] BSTR v);
2720
2721     [propget, id(DISPID_IHTMLDOCUMENT2_URL)]
2722     HRESULT URL([retval, out] BSTR *p);
2723
2724     [propput, id(DISPID_IHTMLDOCUMENT2_DOMAIN)]
2725     HRESULT domain([in] BSTR v);
2726
2727     [propget, id(DISPID_IHTMLDOCUMENT2_DOMAIN)]
2728     HRESULT domain([retval, out] BSTR *p);
2729
2730     [propput, id(DISPID_IHTMLDOCUMENT2_COOKIE)]
2731     HRESULT cookie([in] BSTR v);
2732
2733     [propget, id(DISPID_IHTMLDOCUMENT2_COOKIE)]
2734     HRESULT cookie([retval, out] BSTR *p);
2735
2736     [propput, id(DISPID_IHTMLDOCUMENT2_EXPANDO)]
2737     HRESULT expando([in] VARIANT_BOOL v);
2738
2739     [propget, id(DISPID_IHTMLDOCUMENT2_EXPANDO)]
2740     HRESULT expando([retval, out] VARIANT_BOOL *p);
2741
2742     [propput, id(DISPID_IHTMLDOCUMENT2_CHARSET)]
2743      HRESULT charset([in] BSTR v);
2744
2745     [propget, id(DISPID_IHTMLDOCUMENT2_CHARSET)]
2746     HRESULT charset([retval, out] BSTR *p);
2747
2748     [propput, id(DISPID_IHTMLDOCUMENT2_DEFAULTCHARSET)]
2749     HRESULT defaultCharset([in] BSTR v);
2750
2751     [propget, id(DISPID_IHTMLDOCUMENT2_DEFAULTCHARSET)]
2752     HRESULT defaultCharset([retval, out] BSTR *p);
2753
2754     [propget, id(DISPID_IHTMLDOCUMENT2_MIMETYPE)]
2755     HRESULT mimeType([retval, out] BSTR *p);
2756
2757     [propget, id(DISPID_IHTMLDOCUMENT2_FILESIZE)]
2758     HRESULT fileSize([retval, out] BSTR *p);
2759
2760     [propget, id(DISPID_IHTMLDOCUMENT2_FILECREATEDDATE)]
2761     HRESULT fileCreatedDate([retval, out] BSTR *p);
2762
2763     [propget, id(DISPID_IHTMLDOCUMENT2_FILEMODIFIEDDATE)]
2764     HRESULT fileModifiedDate([retval, out] BSTR *p);
2765
2766     [propget, id(DISPID_IHTMLDOCUMENT2_FILEUPDATEDDATE)]
2767     HRESULT fileUpdatedDate([retval, out] BSTR *p);
2768
2769     [propget, id(DISPID_IHTMLDOCUMENT2_SECURITY)]
2770     HRESULT security([retval, out] BSTR *p);
2771
2772     [propget, id(DISPID_IHTMLDOCUMENT2_PROTOCOL)]
2773     HRESULT protocol([retval, out] BSTR *p);
2774
2775     [propget, id(DISPID_IHTMLDOCUMENT2_NAMEPROP)]
2776      HRESULT nameProp([retval, out] BSTR *p);
2777
2778     [vararg, id(DISPID_IHTMLDOCUMENT2_WRITE)]
2779     HRESULT write([in] SAFEARRAY *psarray);
2780
2781     [vararg, id(DISPID_IHTMLDOCUMENT2_WRITELN)]
2782     HRESULT writeln([in] SAFEARRAY *psarray);
2783
2784     [id(DISPID_IHTMLDOCUMENT2_OPEN)]
2785     HRESULT open(
2786         [defaultvalue("text/html"), in] BSTR url,
2787         [optional, in] VARIANT name,
2788         [optional, in] VARIANT features,
2789         [optional, in] VARIANT replace,
2790         [retval, out]  IDispatch **pomWindowResult);
2791
2792     [id(DISPID_IHTMLDOCUMENT2_CLOSE)]
2793     HRESULT close();
2794
2795     [id(DISPID_IHTMLDOCUMENT2_CLEAR)]
2796     HRESULT clear();
2797
2798     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDSUPPORTED)]
2799     HRESULT queryCommandSupported(
2800         [in] BSTR cmdID,
2801         [retval, out] VARIANT_BOOL *pfRet);
2802
2803     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDENABLED)]
2804     HRESULT queryCommandEnabled(
2805         [in] BSTR cmdID,
2806         [retval, out] VARIANT_BOOL *pfRet);
2807
2808     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDSTATE)]
2809     HRESULT queryCommandState(
2810         [in] BSTR cmdID,
2811         [retval, out] VARIANT_BOOL *pfRet);
2812
2813     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDINDETERM)]
2814     HRESULT queryCommandIndeterm(
2815         [in] BSTR cmdID,
2816         [retval, out] VARIANT_BOOL *pfRet);
2817
2818     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDTEXT)]
2819     HRESULT queryCommandText(
2820         [in] BSTR cmdID,
2821         [retval, out] BSTR *pcmdText);
2822
2823     [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDVALUE)]
2824     HRESULT queryCommandValue(
2825         [in] BSTR cmdID,
2826         [retval, out] VARIANT *pcmdValue);
2827
2828     [id(DISPID_IHTMLDOCUMENT2_EXECCOMMAND)]
2829     HRESULT execCommand(
2830         [in] BSTR cmdID,
2831         [defaultvalue(0), in] VARIANT_BOOL showUI,
2832         [optional, in] VARIANT value,
2833         [retval, out] VARIANT_BOOL *pfRet);
2834
2835     [id(DISPID_IHTMLDOCUMENT2_EXECCOMMANDSHOWHELP)]
2836     HRESULT execCommandShowHelp(
2837         [in] BSTR cmdID,
2838         [retval, out] VARIANT_BOOL *pfRet);
2839
2840     [id(DISPID_IHTMLDOCUMENT2_CREATEELEMENT)]
2841      HRESULT createElement(
2842         [in] BSTR eTag,
2843         [retval, out] IHTMLElement **newElem);
2844
2845     [propput, id(DISPID_IHTMLDOCUMENT2_ONHELP)]
2846     HRESULT onhelp([in] VARIANT v);
2847
2848     [propget, id(DISPID_IHTMLDOCUMENT2_ONHELP)]
2849     HRESULT onhelp([retval, out] VARIANT *p);
2850
2851     [propput, id(DISPID_IHTMLDOCUMENT2_ONCLICK)]
2852     HRESULT onclick([in] VARIANT v);
2853
2854     [propget, id(DISPID_IHTMLDOCUMENT2_ONCLICK)]
2855     HRESULT onclick([retval, out] VARIANT *p);
2856
2857     [propput, id(DISPID_IHTMLDOCUMENT2_ONDBLCLICK)]
2858     HRESULT ondblclick([in] VARIANT v);
2859
2860     [propget, id(DISPID_IHTMLDOCUMENT2_ONDBLCLICK)]
2861     HRESULT ondblclick([retval, out] VARIANT *p);
2862
2863     [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYUP)]
2864     HRESULT onkeyup([in] VARIANT v);
2865
2866     [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYUP)]
2867     HRESULT onkeyup([retval, out] VARIANT *p);
2868
2869     [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYDOWN)]
2870     HRESULT onkeydown([in] VARIANT v);
2871
2872     [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYDOWN)]
2873     HRESULT onkeydown([retval, out] VARIANT *p);
2874
2875     [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYPRESS)]
2876      HRESULT onkeypress([in] VARIANT v);
2877
2878     [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYPRESS)]
2879     HRESULT onkeypress([retval, out] VARIANT *p);
2880
2881     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEUP)]
2882     HRESULT onmouseup([in] VARIANT v);
2883
2884     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEUP)]
2885     HRESULT onmouseup([retval, out] VARIANT *p);
2886
2887     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEDOWN)]
2888     HRESULT onmousedown([in] VARIANT v);
2889
2890     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEDOWN)]
2891     HRESULT onmousedown([retval, out] VARIANT *p);
2892
2893     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEMOVE)]
2894     HRESULT onmousemove([in] VARIANT v);
2895
2896     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEMOVE)]
2897     HRESULT onmousemove([retval, out] VARIANT *p);
2898
2899     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOUT)]
2900     HRESULT onmouseout([in] VARIANT v);
2901
2902     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOUT)]
2903     HRESULT onmouseout([retval, out] VARIANT *p);
2904
2905     [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOVER)]
2906     HRESULT onmouseover([in] VARIANT v);
2907
2908     [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOVER)]
2909     HRESULT onmouseover([retval, out] VARIANT *p);
2910
2911     [propput, id(DISPID_IHTMLDOCUMENT2_ONREADYSTATECHANGE)]
2912     HRESULT onreadystatechange([in] VARIANT v);
2913
2914     [propget, id(DISPID_IHTMLDOCUMENT2_ONREADYSTATECHANGE)]
2915     HRESULT onreadystatechange([retval, out] VARIANT *p);
2916
2917     [propput, id(DISPID_IHTMLDOCUMENT2_ONAFTERUPDATE)]
2918     HRESULT onafterupdate([in] VARIANT v);
2919
2920     [propget, id(DISPID_IHTMLDOCUMENT2_ONAFTERUPDATE)]
2921     HRESULT onafterupdate([retval, out] VARIANT *p);
2922
2923     [propput, id(DISPID_IHTMLDOCUMENT2_ONROWEXIT)]
2924     HRESULT onrowexit([in] VARIANT v);
2925
2926     [propget, id(DISPID_IHTMLDOCUMENT2_ONROWEXIT)]
2927     HRESULT onrowexit([retval, out] VARIANT *p);
2928
2929     [propput, id(DISPID_IHTMLDOCUMENT2_ONROWENTER)]
2930     HRESULT onrowenter([in] VARIANT v);
2931
2932     [propget, id(DISPID_IHTMLDOCUMENT2_ONROWENTER)]
2933     HRESULT onrowenter([retval, out] VARIANT *p);
2934
2935     [propput, id(DISPID_IHTMLDOCUMENT2_ONDRAGSTART)]
2936     HRESULT ondragstart([in] VARIANT v);
2937
2938     [propget, id(DISPID_IHTMLDOCUMENT2_ONDRAGSTART)]
2939     HRESULT ondragstart([retval, out] VARIANT *p);
2940
2941     [propput, id(DISPID_IHTMLDOCUMENT2_ONSELECTSTART)]
2942     HRESULT onselectstart([in] VARIANT v);
2943
2944     [propget, id(DISPID_IHTMLDOCUMENT2_ONSELECTSTART)]
2945     HRESULT onselectstart([retval, out] VARIANT *p);
2946
2947     [id(DISPID_IHTMLDOCUMENT2_ELEMENTFROMPOINT)]
2948     HRESULT elementFromPoint(
2949         [in] long x,
2950         [in] long y,
2951         [retval, out] IHTMLElement **elementHit);
2952
2953     [propget, id(DISPID_IHTMLDOCUMENT2_PARENTWINDOW)]
2954     HRESULT parentWindow([retval, out] IHTMLWindow2 **p);
2955
2956     [propget, id(DISPID_IHTMLDOCUMENT2_STYLESHEETS)]
2957     HRESULT styleSheets([retval, out] IHTMLStyleSheetsCollection **p);
2958
2959     [propput, id(DISPID_IHTMLDOCUMENT2_ONBEFOREUPDATE)]
2960     HRESULT onbeforeupdate([in] VARIANT v);
2961
2962     [propget, id(DISPID_IHTMLDOCUMENT2_ONBEFOREUPDATE)]
2963     HRESULT onbeforeupdate([retval, out] VARIANT *p);
2964
2965     [propput, id(DISPID_IHTMLDOCUMENT2_ONERRORUPDATE)]
2966     HRESULT onerrorupdate([in] VARIANT v);
2967
2968     [propget, id(DISPID_IHTMLDOCUMENT2_ONERRORUPDATE)]
2969     HRESULT onerrorupdate([retval, out] VARIANT *p);
2970
2971     [id(DISPID_IHTMLDOCUMENT2_TOSTRING)]
2972     HRESULT toString([retval, out] BSTR *String);
2973
2974     [id(DISPID_IHTMLDOCUMENT2_CREATESTYLESHEET)]
2975     HRESULT createStyleSheet(
2976         [defaultvalue(""), in] BSTR bstrHref,
2977         [defaultvalue(-1), in] long lIndex,
2978         [retval, out] IHTMLStyleSheet **ppnewStyleSheet);
2979 }
2980
2981 /*****************************************************************************
2982  *    HTMLDocument coclass
2983  */
2984 [
2985     uuid(25336920-03F9-11cf-8FD0-00AA00686F13)
2986 ]
2987 coclass HTMLDocument
2988 {
2989     [default]         interface IHTMLDocument2;
2990     [source, default] dispinterface HTMLDocumentEvents;
2991 };