kernel: Remove no longer needed includes.
[wine] / dlls / mshtml / nsiface.idl
1 /*
2  * Copyright 2005 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 /* 
20  * NOTE:
21  * This file is not an usual idl file. Interfaces in this file are XPCOM interfaces
22  * (NOT MSCOM!), but we generate the header file with WIDL compatibile with XPCOM,
23  * useable in C code.
24  */
25
26 import "wtypes.idl";
27
28 typedef HRESULT nsresult;
29 typedef ULONG nsrefcnt;
30
31 typedef IID nsIID;
32 typedef nsIID nsCID;
33 typedef REFIID nsIIDRef;
34 typedef nsIIDRef nsCIDRef;
35
36 typedef void** nsQIResult;
37 typedef LPSTR nsstring;
38 typedef WCHAR PRUnichar;
39 typedef LPWSTR nswstring;
40 typedef ULONG PRUint32;
41 typedef LONG PRInt32;
42 typedef WORD PRUint16;
43 typedef BYTE PRUint8;
44 typedef BOOL PRBool;
45 typedef LARGE_INTEGER PRInt64;
46 typedef ULARGE_INTEGER PRUint64;
47 typedef PRUint64 DOMTimeStamp;
48 typedef PRUint32 nsLoadFlags;
49
50 typedef struct {
51     void *v;
52     void *d1;
53     PRUint32 d2;
54     void *d3;
55 } nsCStringContainer;
56
57 typedef struct {
58     void *v;
59     void *d1;
60     PRUint32 d2;
61     void *d3;
62 } nsStringContainer;
63
64 typedef nsCStringContainer nsACString;
65 typedef nsStringContainer nsAString;
66
67 interface nsIWebBrowserChrome;
68 interface nsILoadGroup;
69 interface nsIDOMNode;
70 interface nsIDOMDocument;
71
72 [
73     object,
74     uuid(00000000-0000-0000-c000-000000000046)
75 ]
76 interface nsISupports
77 {
78     nsresult QueryInterface(nsIIDRef riid, nsQIResult result);
79     nsrefcnt AddRef();
80     nsrefcnt Release();
81 }
82
83 /* Currently we don't need a full declaration of these interfaces */
84 typedef nsISupports nsISHistory;
85 typedef nsISupports nsISimpleEnumerator;
86 typedef nsISupports nsIWidget;
87 typedef nsISupports nsIProtocolHandler;
88 typedef nsISupports nsIDOMEventTarget;
89 typedef nsISupports nsIDOMAbstractView;
90 typedef nsISupports nsIStreamListener;
91 typedef nsISupports nsIHttpHeaderVisitor;
92 typedef nsISupports nsIRequestObserver;
93 typedef nsISupports nsIDOMBarProp;
94 typedef nsISupports nsIDOMWindowCollection;
95 typedef nsISupports nsISelection;
96 typedef nsISupports nsIPrompt;
97 typedef nsISupports nsIAuthPrompt;
98 typedef nsISupports nsIDOMNamedNodeMap;
99 typedef nsISupports nsIDOMAttr;
100 typedef nsISupports nsIDOMDocumentType;
101 typedef nsISupports nsIDOMDOMImplementation;
102 typedef nsISupports nsIDOMDocumentFragment;
103 typedef nsISupports nsIDOMText;
104 typedef nsISupports nsIDOMComment;
105 typedef nsISupports nsIDOMCDATASection;
106 typedef nsISupports nsIDOMProcessingInstruction;
107 typedef nsISupports nsIDOMEntityReference;
108 typedef nsISupports nsIDOMHTMLFormElement;
109 typedef nsISupports nsIDOMHTMLOptionsCollection;
110 typedef nsISupports nsIDOMHTMLCollection;
111
112 [
113     object,
114     uuid(8bb35ed9-e332-462d-9155-4a002ab5c958)
115 ]
116 interface nsIServiceManager : nsISupports
117 {
118     nsresult GetService(nsCIDRef aClass, nsIIDRef aIID, void **result);
119     nsresult GetServiceByContactID(nsstring aContactID, nsIIDRef aIID, void **result);
120     nsresult IsServiceInstantiated(nsCIDRef aClass, nsIIDRef aIID, BOOL *_retval);
121     nsresult IsServiceInstantiatedByContractID(nsstring aContractID, nsIIDRef aIID, BOOL *_retval);
122 }
123
124 [
125     object,
126     uuid(00000001-0000-0000-c000-000000000046)
127 ]
128 interface nsIFactory : nsISupports
129 {
130     nsresult CreateInstance(nsISupports *aOuter, const nsIID *iid, void **result);
131     nsresult LockFactory(PRBool lock);
132 }
133
134 [
135     object,
136     uuid(db242e01-e4d9-11d2-9dde-000064657374)
137 ]
138 interface nsIObserver : nsISupports
139 {
140     nsresult Observe(nsISupports *aSubject, nsstring aTopic, nswstring aData);
141 }
142
143 [
144     object,
145     uuid(a88e5a60-205a-4bb1-94e1-2628daf51eae)
146 ]
147 interface nsIComponentManager : nsISupports
148 {
149     nsresult GetClassObject(nsCIDRef aClass, nsIIDRef aIID, nsQIResult result);
150     nsresult GetClassObjectByContractID(nsstring aContractID, nsIIDRef aIID, nsQIResult result);
151     nsresult CreateInstance(nsCIDRef aClass, nsISupports *aDelegate, nsIIDRef aIID,
152             nsQIResult result);
153     nsresult CreateInstanceByContractID(nsstring aContractID, nsISupports *aDelegate,
154             nsIIDRef aIID, nsQIResult result);
155 }
156
157 [
158     object,
159     uuid(59e7e77a-38e4-11d4-8cf5-0060b0fc14a3)
160 ]
161 interface nsIMemory : nsISupports
162 {
163     void *Alloc(/*size_t*/ int size);
164     void *Realloc(void *_ptr, /*size_t*/ int newSize);
165     void Free(void *_ptr);
166     nsresult HeapMinimize(PRBool immediate);
167     nsresult IsLowMemory(PRBool *_retval);
168 }
169
170 [
171     object,
172     uuid(9188bc85-f92e-11d2-81ef-0060083a0bcf)
173 ]
174 interface nsIWeakReference : nsISupports
175 {
176     nsresult QueryReferent(const nsIID *riid, void **result);
177 }
178
179 [
180     object,
181     uuid(9188bc86-f92e-11d2-81ef-0060083a0bcf)
182 ]
183 interface nsISupportsWeakReference : nsISupports
184 {
185     nsresult GetWeakReference(nsIWeakReference **_retval);
186 }
187
188 [
189     object,
190     uuid(033a1470-8b2a-11d3-af88-00a024ffc08c)
191 ]
192 interface nsIInterfaceRequestor : nsISupports
193 {
194     nsresult GetInterface(const nsIID *riid, void **result);
195 }
196
197 [
198     object,
199     uuid(fa9c7f6c-61b3-11d4-9877-00c04fa0cf4a)
200 ]
201 interface nsIInputStream : nsISupports
202 {
203     nsresult Close();
204     nsresult Available(PRUint32 *_retval);
205     nsresult Read(char *aBuf, PRUint32 aCount, PRUint32 *_retval);
206     nsresult ReadSegments(nsresult (*aWriter)(nsIInputStream *aInStream, 
207             void *aClosure, const char *aFromSegment, PRUint32 aToOffset,
208             PRUint32 aCount, PRUint32 *aWriteCount),
209             void *aClosure, PRUint32 aCount, PRUint32 *_retval);
210     nsresult IsNonBlocking(PRBool *_retval);
211 }
212
213 [
214     object,
215     uuid(450cd2d4-f0fd-424d-b365-b1251f80fd53)
216 ]
217 interface nsIStringInputStream : nsIInputStream
218 {
219     nsresult SetData(const char *data, PRInt32 dataLen);
220     nsresult AdoptData(char *data, PRInt32 dataLen);
221     nsresult ShareData(const char *data, PRInt32 dataLen);
222 }
223
224 [
225     object,
226     uuid(07a22cc0-0ce5-11d3-9331-00104ba0fd40)
227 ]
228 interface nsIURI : nsISupports
229 {
230     nsresult GetSpec(nsACString *aSpec);
231     nsresult SetSpec(const nsACString *aSpec);
232     nsresult GetPrePath(nsACString *aPrePath);
233     nsresult GetScheme(nsACString *aScheme);
234     nsresult SetScheme(const nsACString *aScheme);
235     nsresult GetUserPass(nsACString *aUserPass);
236     nsresult SetUserPass(const nsACString *aUserPass);
237     nsresult GetUsername(nsACString *aUsername);
238     nsresult SetUsername(const nsACString *aUsername);
239     nsresult GetPassword(nsACString *aPassword);
240     nsresult SetPassword(const nsACString *aPassword);
241     nsresult GetHostPort(nsACString *aHostPort);
242     nsresult SetHostPort(const nsACString *aHostPort);
243     nsresult GetHost(nsACString *aHost);
244     nsresult SetHost(const nsACString *aHost);
245     nsresult GetPort(PRInt32 *aPort);
246     nsresult SetPort(PRInt32 aPort);
247     nsresult GetPath(nsACString *aPath);
248     nsresult SetPath(const nsACString *aPath);
249     nsresult Equals(nsIURI *other, PRBool *_retval);
250     nsresult SchemeIs(const char *scheme, PRBool *_retval);
251     nsresult Clone(nsIURI **_retval);
252     nsresult Resolve(const nsACString *relativePath, nsACString *_retval);
253     nsresult GetAsciiSpec(nsACString *aAsciiSpec);
254     nsresult GetAsciiHost(nsACString *aAsciiHost);
255     nsresult GetOriginCharset(nsACString *aOriginCharset);
256 }
257
258 [
259     object,
260     uuid(ef6bfbd2-fd46-48d8-96b7-9f8f0fd387fe)
261 ]
262 interface nsIRequest : nsISupports
263 {
264     nsresult GetName(nsACString *aName);
265     nsresult IsPending(PRBool *_retval);
266     nsresult GetStatus(nsresult *aStatus);
267     nsresult Cancel(nsresult aStatus);
268     nsresult Suspend();
269     nsresult Resume();
270     nsresult GetLoadGroup(nsILoadGroup **aLoadGroup);
271     nsresult SetLoadGroup(nsILoadGroup *aLoadGroup);
272     nsresult GetLoadFlags(nsLoadFlags *aLoadFlags);
273     nsresult SetLoadFlags(nsLoadFlags aLoadFlags);
274 }
275
276 [
277     object,
278     uuid(3de0a31c-feaf-400f-9f1e-4ef71f8b20cc)
279 ]
280 interface nsILoadGroup : nsIRequest
281 {
282     nsresult GetGroupObserver(nsIRequestObserver **aGroupObserver);
283     nsresult SetGroupObserver(nsIRequestObserver *aGroupObserver);
284     nsresult GetDefaultLoadRequest(nsIRequest **aDefaultLoadRequest);
285     nsresult SetDefaultLoadRequest(nsIRequest *aDefaultLoadRequest);
286     nsresult AddRequest(nsIRequest *aRequest, nsISupports *aContext);
287     nsresult RemoveRequest(nsIRequest *aRequest, nsISupports *aContext, nsresult aStatus);
288     nsresult GetRequests(nsISimpleEnumerator **aRequests);
289     nsresult GetActiveCount(PRUint32 *aActiveCount);
290     nsresult GetNotificationCallbacks(nsIInterfaceRequestor **aNotificationCallbacks);
291     nsresult SetNotificationCallbacks(nsIInterfaceRequestor *aNotificationCallbacks);
292 }
293
294 [
295     object,
296     uuid(c63a055a-a676-4e71-bf3c-6cfa11082018)
297 ]
298 interface nsIChannel : nsIRequest
299 {
300     nsresult GetOriginalURI(nsIURI **aOriginalURI);
301     nsresult SetOriginalURI(nsIURI *aOriginalURI);
302     nsresult GetURI(nsIURI **aURI);
303     nsresult GetOwner(nsISupports **aOwner);
304     nsresult SetOwner(nsISupports *aOwner);
305     nsresult GetNotificationCallbacks(nsIInterfaceRequestor **aNotificationCallbacks);
306     nsresult SetNotificationCallbacks(nsIInterfaceRequestor *aNotificationCallbacks);
307     nsresult GetSecurityInfo(nsISupports **aSecurityInfo);
308     nsresult GetContentType(nsACString *aContentType);
309     nsresult SetContentType(const nsACString *aContentType);
310     nsresult GetContentCharset(nsACString *aContentCharset);
311     nsresult SetContentCharset(const nsACString *aContentCharset);
312     nsresult GetContentLength(PRInt32 *aContentLength);
313     nsresult SetContentLength(PRInt32 aContentLength);
314     nsresult Open(nsIInputStream **_retval);
315     nsresult AsyncOpen(nsIStreamListener *aListener, nsISupports *aContext);
316 }
317
318 [
319     object,
320     uuid(9277fe09-f0cc-4cd9-bbce-581dd94b0260)
321 ]
322 interface nsIHttpChannel : nsIChannel
323 {
324     nsresult GetRequestMethod(nsACString *aRequestMethod);
325     nsresult SetRequestMethod(const nsACString *aRequestMethod);
326     nsresult GetReferrer(nsIURI **aReferrer);
327     nsresult SetReferrer(nsIURI *aReferrer);
328     nsresult GetRequestHeader(const nsACString *aHeader, nsACString *_retval);
329     nsresult SetRequestHeader(const nsACString *aHeader, const nsACString *aValue, PRBool aMerge);
330     nsresult VisitRequestHeaders(nsIHttpHeaderVisitor *aVisitor);
331     nsresult GetAllowPipelining(PRBool *aAllowPipelining);
332     nsresult SetAllowPipelining(PRBool aAllowPipelining);
333     nsresult GetRedirectionLimit(PRUint32 *aRedirectionLimit);
334     nsresult SetRedirectionLimit(PRUint32 aRedirectionLimit);
335     nsresult GetResponseStatus(PRUint32 *aResponseStatus);
336     nsresult GetResponseStatusText(nsACString *aResponseStatusText);
337     nsresult GetRequestSucceeded(PRBool *aRequestSucceeded);
338     nsresult GetResponseHeader(const nsACString *header, nsACString *_retval);
339     nsresult SetResponseHeader(const nsACString *header, const nsACString *value, PRBool merge);
340     nsresult VisitResponseHeaders(nsIHttpHeaderVisitor *aVisitor);
341     nsresult IsNoStoreResponse(PRBool *_retval);
342     nsresult IsNoCacheResponse(PRBool *_retval);
343 }
344
345 [
346     object,
347     uuid(ddf633d8-e9a4-439d-ad88-de636fd9bb75)
348 ]
349 interface nsIUploadChannel : nsISupports
350 {
351     nsresult SetUploadStream(nsIInputStream *aStream, const nsACString *aContentType,
352                              PRInt32 aContentLength);
353     nsresult GetUploadStream(nsIInputStream **aUploadStream);
354 }
355
356 [
357     object,
358     uuid(a6cf907d-15b3-11d2-932e-00805f8add32)
359 ]
360 interface nsIDOMNodeList : nsISupports
361 {
362     nsresult Item(PRUint32 index, nsIDOMNode **_retval);
363     nsresult GetLength(PRUint32 *aLength);
364 }
365
366 [
367     object,
368     uuid(a6cf907c-15b3-11d2-932e-00805f8add32)
369 ]
370 interface nsIDOMNode : nsISupports
371 {
372     nsresult GetNodeName(nsAString *aNodeName);
373     nsresult GetNodeValue(nsAString *aNodeValue);
374     nsresult SetNodeValue(const nsAString *aNodeValue);
375     nsresult GetNodeType(PRUint16 *aNodeType);
376     nsresult GetParentNode(nsIDOMNode **aParentNode);
377     nsresult GetChildNodes(nsIDOMNodeList **aChildNodes);
378     nsresult GetFirstChild(nsIDOMNode **aFirstChild);
379     nsresult GetLastChild(nsIDOMNode **aLastChild);
380     nsresult GetPreviousSibling(nsIDOMNode **aPreviousSibling);
381     nsresult GetNextSibling(nsIDOMNode **aNextSibling);
382     nsresult GetAttributes(nsIDOMNamedNodeMap **aAttributes);
383     nsresult GetOwnerDocument(nsIDOMDocument **aOwnerDocument);
384     nsresult InsertBefore(nsIDOMNode *newChild, nsIDOMNode *refChild, nsIDOMNode **_retval);
385     nsresult ReplaceChild(nsIDOMNode *newChild, nsIDOMNode *oldChild, nsIDOMNode **_retval);
386     nsresult RemoveChild(nsIDOMNode *oldChild, nsIDOMNode **_retval);
387     nsresult AppendChild(nsIDOMNode *newChild, nsIDOMNode **_retval);
388     nsresult HasChildNodes(PRBool *_retval);
389     nsresult CloneNode(PRBool deep, nsIDOMNode **_retval);
390     nsresult Normalize();
391     nsresult IsSupported(const nsAString *feature, const nsAString *version, PRBool *_retval);
392     nsresult GetNamespaceURI(nsAString *aNamespaceURI);
393     nsresult GetPrefix(nsAString *aPrefix);
394     nsresult SetPrefix(const nsAString *aPrefix);
395     nsresult GetLocalName(nsAString *aLocalName);
396     nsresult HasAttributes(PRBool *_retval);
397 }
398
399 [
400     object,
401     uuid(a6cf9078-15b3-11d2-932e-00805f8add32)
402 ]
403 interface nsIDOMElement : nsIDOMNode
404 {
405     nsresult GetTagName(nsAString *aTagName);
406     nsresult GetAttribute(const nsAString *name, nsAString *_retval);
407     nsresult SetAttribute(const nsAString *name, const nsAString *value);
408     nsresult RemoveAttribute(const nsAString *name);
409     nsresult GetAttributeNode(const nsAString *name, nsIDOMAttr **_retval);
410     nsresult SetAttributeNode(nsIDOMAttr *newAttr, nsIDOMAttr **_retval);
411     nsresult RemoveAttributeNode(nsIDOMAttr *oldAttr, nsIDOMAttr **_retval);
412     nsresult GetElementsByTagName(const nsAString *name, nsIDOMNodeList **_retval);
413     nsresult GetAttributeNS(const nsAString *namespaceURI, const nsAString *localName,
414                             nsAString *_retval);
415     nsresult SetAttributeNS(const nsAString *namespaceURI, const nsAString *qualifiedName,
416                             const nsAString *value);
417     nsresult RemoveAttributeNS(const nsAString *namespaceURI, const nsAString *localName);
418     nsresult GetAttributeNodeNS(const nsAString *namespaceURI, const nsAString *localName,
419                                 nsIDOMAttr **_retval);
420     nsresult SetAttributeNodeNS(nsIDOMAttr *newAttr, nsIDOMAttr **_retval);
421     nsresult GetElementsByTagNameNS(const nsAString *namespaceURI, const nsAString *localName,
422                                     nsIDOMNodeList **_retval);
423     nsresult HasAttribute(const nsAString *name, PRBool *_retval);
424     nsresult HasAttributeNS(const nsAString *namespaceURI, const nsAString *localName,
425                             PRBool *_retval);
426 }
427
428 cpp_quote("#undef GetClassName");
429
430 [
431     object,
432     uuid(a6cf9085-15b3-11d2-932e-00805f8add32)
433 ]
434 interface nsIDOMHTMLElement : nsIDOMElement
435 {
436     nsresult GetId(nsAString *aId);
437     nsresult SetId(const nsAString *aId);
438     nsresult GetTitle(nsAString *aTitle);
439     nsresult SetTitle(const nsAString *aTitle);
440     nsresult GetLang(nsAString *aLang);
441     nsresult SetLang(const nsAString *aLang);
442     nsresult GetDir(nsAString *aDir);
443     nsresult SetDir(const nsAString *aDir);
444     nsresult GetClassName(nsAString *aClassName);
445     nsresult SetClassName(const nsAString *aClassName);
446 }
447
448 [
449     object,
450     uuid(a6cf9075-15b3-11d2-932e-00805f8add32)
451 ]
452 interface nsIDOMDocument : nsIDOMNode
453 {
454     nsresult GetDoctype(nsIDOMDocumentType **aDoctype);
455     nsresult GetImplementation(nsIDOMDOMImplementation **aImplementation);
456     nsresult GetDocumentElement(nsIDOMElement **aDocumentElement);
457     nsresult CreateElement(const nsAString *tagName, nsIDOMElement **_retval);
458     nsresult CreateDocumentFragment(nsIDOMDocumentFragment **_retval);
459     nsresult CreateTextNode(const nsAString *data, nsIDOMText **_retval);
460     nsresult CreateComment(const nsAString *data, nsIDOMComment **_retval);
461     nsresult CreateCDATASection(const nsAString *data, nsIDOMCDATASection **_retval);
462     nsresult CreateProcessingInstruction(const nsAString *target, const nsAString *data,
463                                          nsIDOMProcessingInstruction **_retval);
464     nsresult CreateAttribute(const nsAString *name, nsIDOMAttr **_retval);
465     nsresult CreateEntityReference(const nsAString *name, nsIDOMEntityReference **_retval);
466     nsresult GetElementsByTagName(const nsAString *tagname, nsIDOMNodeList **_retval);
467     nsresult ImportNode(nsIDOMNode *importedNode, PRBool deep, nsIDOMNode **_retval);
468     nsresult CreateElementNS(const nsAString *namespaceURI, const nsAString *qualifiedName,
469                              nsIDOMElement **_retval);
470     nsresult CreateAttributeNS(const nsAString *namespaceURI, const nsAString *qualifiedName,
471                                nsIDOMAttr **_retval);
472     nsresult GetElementsByTagNameNS(const nsAString *namespaceURI, const nsAString *localName,
473                                     nsIDOMNodeList **_retval);
474     nsresult GetElementById(const nsAString *elementId, nsIDOMElement **_retval);
475 }
476
477 [
478     object,
479     uuid(a6cf9084-15b3-11d2-932e-00805f8add32)
480 ]
481 interface nsIDOMHTMLDocument : nsIDOMDocument
482 {
483     nsresult GetTitle(nsAString *aTitle);
484     nsresult SetTitle(const nsAString *aTitle);
485     nsresult GetReferrer(nsAString *aReferrer);
486     nsresult GetDomain(nsAString *aDomain);
487     nsresult GetURL(nsAString *aURL);
488     nsresult GetBody(nsIDOMHTMLElement **aBody);
489     nsresult SetBody(nsIDOMHTMLElement *aBody);
490     nsresult GetImages(nsIDOMHTMLCollection **aImages);
491     nsresult GetApplets(nsIDOMHTMLCollection **aApplets);
492     nsresult GetLinks(nsIDOMHTMLCollection **aLinks);
493     nsresult GetForms(nsIDOMHTMLCollection **aForms);
494     nsresult GetAnchors(nsIDOMHTMLCollection **aAnchors);
495     nsresult GetCookie(nsAString *aCookie);
496     nsresult SetCookie(const nsAString *aCookie);
497     nsresult Open(void);
498     nsresult Close(void);
499     nsresult Write(const nsAString *text);
500     nsresult Writeln(const nsAString *text);
501     nsresult GetElementsByName(const nsAString *elementName, nsIDOMNodeList **_retval);
502 }
503
504 [
505     object,
506     uuid(a6cf906b-15b3-11d2-932e-00805f8add32)
507 ]
508 interface nsIDOMWindow : nsISupports
509 {
510     nsresult GetDocument(nsIDOMDocument **aDocument);
511     nsresult GetParent(nsIDOMWindow **aParent);
512     nsresult GetTop(nsIDOMWindow **aTop);
513     nsresult GetScrollbars(nsIDOMBarProp **aScrollbars);
514     nsresult GetFrames(nsIDOMWindowCollection **aFrames);
515     nsresult GetName(nsAString *aName);
516     nsresult SetName(const nsAString *aName);
517     nsresult GetTextZoom(float *aTextZoom);
518     nsresult SetTextZoom(float aTextZoom);
519     nsresult GetScrollX(PRInt32 *aScrollX);
520     nsresult GetScrollY(PRInt32 *aScrollY);
521     nsresult ScrollTo(PRInt32 xScroll, PRInt32 yScroll);
522     nsresult ScrollBy(PRInt32 xScrollDif, PRInt32 yScrollDif);
523     nsresult GetSelection(nsISelection **_retval);
524     nsresult ScrollByLines(PRInt32 numLines);
525     nsresult ScrollByPages(PRInt32 numPages);
526     nsresult SizeToContent();
527 }
528
529 [
530     object,
531     uuid(a6cf908e-15b3-11d2-932e-00805f8add32)
532 ]
533 interface nsIDOMHTMLBodyElement : nsIDOMHTMLElement
534 {
535     nsresult GetALink(nsAString *aALink);
536     nsresult SetALink(const nsAString *aALink);
537     nsresult GetBackground(nsAString *aBackground);
538     nsresult SetBackground(const nsAString *aBackground);
539     nsresult GetBgColor(nsAString *aBgColor);
540     nsresult SetBgColor(const nsAString *aBgColor);
541     nsresult GetLink(nsAString *aLink);
542     nsresult SetLink(const nsAString *aLink);
543     nsresult GetText(nsAString *aText);
544     nsresult SetText(const nsAString *aText);
545     nsresult GetVLink(nsAString *aVLink);
546     nsresult SetVLink(const nsAString *aVLink);
547 }
548
549 [
550     object,
551     uuid(a6cf9093-15b3-11d2-932e-00805f8add32)
552 ]
553 interface nsIDOMHTMLInputElement : nsIDOMHTMLElement
554 {
555     nsresult GetDefaultValue(nsAString *aDefaultValue);
556     nsresult SetDefaultValue(const nsAString *aDefaultValue);
557     nsresult GetDefaultChecked(PRBool *aDefaultChecked);
558     nsresult SetDefaultChecked(PRBool aDefaultChecked);
559     nsresult GetForm(nsIDOMHTMLFormElement **aForm);
560     nsresult GetAccept(nsAString *aAccept);
561     nsresult SetAccept(const nsAString *aAccept);
562     nsresult GetAccessKey(nsAString *aAccessKey);
563     nsresult SetAccessKey(const nsAString *aAccessKey);
564     nsresult GetAlign(nsAString *aAlign);
565     nsresult SetAlign(const nsAString *aAlign);
566     nsresult GetAlt(nsAString *aAlt);
567     nsresult SetAlt(const nsAString *aAlt);
568     nsresult GetChecked(PRBool *aChecked);
569     nsresult SetChecked(PRBool aChecked);
570     nsresult GetDisabled(PRBool *aDisabled);
571     nsresult SetDisabled(PRBool aDisabled);
572     nsresult GetMaxLength(PRInt32 *aMaxLength);
573     nsresult SetMaxLength(PRInt32 aMaxLength);
574     nsresult GetName(nsAString *aName);
575     nsresult SetName(const nsAString *aName);
576     nsresult GetReadOnly(PRBool *aReadOnly);
577     nsresult SetReadOnly(PRBool aReadOnly);
578     nsresult GetSize(PRUint32 *aSize);
579     nsresult SetSize(PRUint32 aSize);
580     nsresult GetSrc(nsAString *aSrc);
581     nsresult SetSrc(const nsAString *aSrc);
582     nsresult GetTabIndex(PRInt32 *aTabIndex);
583     nsresult SetTabIndex(PRInt32 aTabIndex);
584     nsresult GetType(nsAString *aType);
585     nsresult SetType(const nsAString *aType);
586     nsresult GetUseMap(nsAString *aUseMap);
587     nsresult SetUseMap(const nsAString *aUseMap);
588     nsresult GetValue(nsAString *aValue);
589     nsresult SetValue(const nsAString *aValue);
590     nsresult Blur();
591     nsresult Focus();
592     nsresult Select();
593     nsresult Click();
594 }
595
596 [
597     object,
598     uuid(a6cf9090-15b3-11d2-932e-00805f8add32)
599 ]
600 interface nsIDOMHTMLSelectElement : nsIDOMHTMLElement
601 {
602     nsresult GetType(nsAString *aType);
603     nsresult GetSelectedIndex(PRInt32 *aSelectedIndex);
604     nsresult SetSelectedIndex(PRInt32 aSelectedIndex);
605     nsresult GetValue(nsAString *aValue);
606     nsresult SetValue(const nsAString *aValue);
607     nsresult GetLength(PRUint32 *aLength);
608     nsresult SetLength(PRUint32 aLength);
609     nsresult GetForm(nsIDOMHTMLFormElement **aForm);
610     nsresult GetOptions(nsIDOMHTMLOptionsCollection **aOptions);
611     nsresult GetDisabled(PRBool *aDisabled);
612     nsresult SetDisabled(PRBool aDisabled);
613     nsresult GetMultiple(PRBool *aMultiple);
614     nsresult SetMultiple(PRBool aMultiple);
615     nsresult GetName(nsAString *aName);
616     nsresult SetName(const nsAString *aName);
617     nsresult GetSize(PRInt32 *aSize);
618     nsresult SetSize(PRInt32 aSize);
619     nsresult GetTabIndex(PRInt32 *aTabIndex);
620     nsresult SetTabIndex(PRInt32 aTabIndex);
621     nsresult Add(nsIDOMHTMLElement *element, nsIDOMHTMLElement *before);
622     nsresult Remove(PRInt32 index);
623     nsresult Blur();
624     nsresult Focus();
625 }
626
627 [
628     object,
629     uuid(a6cf9094-15b3-11d2-932e-00805f8add32)
630 ]
631 interface nsIDOMHTMLTextAreaElement : nsIDOMHTMLElement
632 {
633     nsresult GetDefaultValue(nsAString *aDefaultValue);
634     nsresult SetDefaultValue(const nsAString *aDefaultValue);
635     nsresult GetForm(nsIDOMHTMLFormElement **aForm);
636     nsresult GetAccessKey(nsAString *aAccessKey);
637     nsresult SetAccessKey(const nsAString *aAccessKey);
638     nsresult GetCols(PRInt32 *aCols);
639     nsresult SetCols(PRInt32 aCols);
640     nsresult GetDisabled(PRBool *aDisabled);
641     nsresult SetDisabled(PRBool aDisabled);
642     nsresult GetName(nsAString *aName);
643     nsresult SetName(const nsAString *aName);
644     nsresult GetReadOnly(PRBool *aReadOnly);
645     nsresult SetReadOnly(PRBool aReadOnly);
646     nsresult GetRows(PRInt32 *aRows);
647     nsresult SetRows(PRInt32 aRows);
648     nsresult GetTabIndex(PRInt32 *aTabIndex);
649     nsresult SetTabIndex(PRInt32 aTabIndex);
650     nsresult GetType(nsAString *aType);
651     nsresult GetValue(nsAString *aValue);
652     nsresult SetValue(const nsAString *aValue);
653     nsresult Blur();
654     nsresult Focus();
655     nsresult Select();
656 }
657
658 [
659     object,
660     uuid(94928ab3-8b63-11d3-989d-001083010e9b)
661 ]
662 interface nsIURIContentListener : nsISupports
663 {
664     nsresult OnStartURIOpen(nsIURI *aURI, PRBool *_retval);
665     nsresult DoContent(const char *aContentType, PRBool aIsContentPreferred, nsIRequest *aRequest,
666         nsIStreamListener **aContentHandler, PRBool *_retval);
667     nsresult IsPreferred(const char *aContentType, char **aDesiredContentType, PRBool *_retval);
668     nsresult CanHandleContent(const char *aContentType, PRBool aIsContentPreferred,
669         char **aDesiredContentType, PRBool *_retval);
670     nsresult GetLoadCookie(nsISupports **aLoadCookie);
671     nsresult SetLoadCookie(nsISupports *aLoadCookie);
672     nsresult GetParentContentListener(nsIURIContentListener **aParentContentListener);
673     nsresult SetParentContentListener(nsIURIContentListener *aParentContentListener);
674 }
675
676 [
677     object,
678     uuid(44b78386-1dd2-11b2-9ad2-e4eee2ca1916)
679 ]
680 interface nsITooltipListener : nsISupports
681 {
682     nsresult OnShowTooltip(PRInt32 aXCoords, PRInt32 aYCoords, const PRUnichar *aTipText);
683     nsresult OnHideTooltip();
684 }
685
686 [
687     object,
688     uuid(69e5df00-7b8b-11d3-af61-00a024ffc08c)
689 ]
690 interface nsIWebBrowser : nsISupports
691 {
692     nsresult AddWebBrowserListener(nsIWeakReference *aListener, const nsIID *aIID);
693     nsresult RemoveWebBrowserListener(nsIWeakReference *aListener, const nsIID *aIID);
694     nsresult GetContainerWindow(nsIWebBrowserChrome **aContainerWindow);
695     nsresult SetContainerWindow(nsIWebBrowserChrome *aContainerWindow);
696     nsresult GetParentURIContentListener(nsIURIContentListener **aParentURIContentListener);
697     nsresult SetParentURIContentListener(nsIURIContentListener *aParentURIContentListener);
698     nsresult GetContentDOMWindow(nsIDOMWindow **aContentDOMWindow);
699 }
700
701 cpp_quote("#define SETUP_IS_CHROME_WRAPPER 7");
702
703 [
704     object,
705     uuid(f15398a0-8018-11d3-af70-00a024ffc08c)
706 ]
707 interface nsIWebBrowserSetup : nsISupports
708 {
709     nsresult SetProperty(PRUint32 aId, PRUint32 aValue);
710 }
711
712 typedef void* nativeWindow;
713
714 [
715     object,
716     uuid(046bc8a0-8015-11d3-af70-00a024ffc08c)
717 ]
718 interface nsIBaseWindow : nsISupports
719 {
720     nsresult InitWindow(nativeWindow parentNativeWindow, nsIWidget *parentWidget, PRInt32 x,
721             PRInt32 y, PRInt32 cx, PRInt32 cy);
722     nsresult Create();
723     nsresult Destroy();
724     nsresult SetPosition(PRInt32 x, PRInt32 y);
725     nsresult GetPosition(PRInt32 *x, PRInt32 *y);
726     nsresult SetSize(PRInt32 cx, PRInt32 cy, PRBool fRepaint);
727     nsresult GetSize(PRInt32 *cx, PRInt32 *cy);
728     nsresult SetPositionAndSize(PRInt32 x, PRInt32 y, PRInt32 cx, PRInt32 cy, PRBool fRepaint);
729     nsresult GetPositionAndSize(PRInt32 *x, PRInt32 *y, PRInt32 *cx, PRInt32 *cy);
730     nsresult Repaint(PRBool force);
731     nsresult GetParentWidget(nsIWidget **aParentWidget); 
732     nsresult SetParentWidget(nsIWidget *aParentWidget);
733     nsresult GetParentNativeWindow(nativeWindow *aParentNativeWindow);
734     nsresult SetParentNativeWindow(nativeWindow aParentNativeWindow);
735     nsresult GetVisibility(PRBool *aVisibility);
736     nsresult SetVisibility(PRBool aVisibility);
737     nsresult GetEnabled(PRBool *aEnabled);
738     nsresult SetEnabled(PRBool aEnabled);
739     nsresult GetBlurSuppression(PRBool *aBlurSuppression);
740     nsresult SetBlurSuppression(PRBool aBlurSuppression);
741     nsresult GetMainWidget(nsIWidget **aMainWidget);
742     nsresult SetFocus();
743     nsresult GetTitle(PRUnichar **aTitle);
744     nsresult SetTitle(const PRUnichar *aTitle);
745 }
746
747 cpp_quote("#define LOAD_FLAGS_NONE 0");
748
749 [
750     object,
751     uuid(f5d9e7b0-d930-11d3-b057-00a024ffc08c)
752 ]
753 interface nsIWebNavigation : nsISupports
754 {
755     nsresult GetCanGoBack(PRBool *aCanGoBack);
756     nsresult GetCanGoForward(PRBool *aCanGoForward);
757     nsresult GoBack();
758     nsresult GoForward();
759     nsresult GotoIndex(PRInt32 index);
760     nsresult LoadURI(const PRUnichar *aURI, PRUint32 aLoadFlags, nsIURI *aReferrer,
761             nsIInputStream *aPostData, nsIInputStream *aHeaders);
762     nsresult Reload(PRUint32 aReloadFlags);
763     nsresult Stop(PRUint32 aStopFlags);
764     nsresult GetDocument(nsIDOMDocument **aDocument);
765     nsresult GetCurrentURI(nsIURI **aCurrentURI);
766     nsresult GetReferringURI(nsIURI **aReferringURI);
767     nsresult GetSessionHistory(nsISHistory **aSessionHistory);
768     nsresult SetSessionHistory(nsISHistory *aSessionHistory);
769 }
770
771 [
772     object,
773     uuid(c8c0a080-0868-11d3-915f-d9d889d48e3c)
774 ]
775 interface nsIFile : nsISupports
776 {
777     nsresult Append(const nsAString *node);
778     nsresult AppendNative(const nsAString *node);
779     nsresult Normalize();
780     nsresult Create(PRUint32 type, PRUint32 permission);
781     nsresult GetLeafName(nsAString *aLeafName);
782     nsresult SetLeafName(const nsAString *aLeafName);
783     nsresult GetNativeLeafName(nsAString *aLeafName);
784     nsresult SetNativeLeafName(const nsAString *aLeafName);
785     nsresult CopyTo(nsIFile *newParentDir, const nsAString *newName);
786     nsresult CopyToNative(nsIFile *newParentDir, const nsAString *newName);
787     nsresult CopyToFollowingLinks(nsIFile *newParentDir, const nsAString *newName);
788     nsresult CopyToFollowingLinksNative(nsIFile *newParentDir, const nsAString *newName);
789     nsresult MoveTo(nsIFile *newParentDir, const nsAString *newName);
790     nsresult MoveToNative(nsIFile *newParentDir, const nsAString *newName);
791     nsresult Remove(PRBool recursive);
792     nsresult GetPermissions(PRUint32 *aPermissions);
793     nsresult SetPermissions(PRUint32 pPermissions);
794     nsresult GetPermissionsOfLink(PRUint32 *aPermissions);
795     nsresult SetPermissionsOfLink(PRUint32 pPermissions);
796     nsresult GetLastModifiedTime(PRInt64 *aLastModifiedTime);
797     nsresult SetLastModifiedTime(PRInt64 aLastModifiedTime);
798     nsresult GetFileSize(PRInt64 *aFileSize);
799     nsresult SetFileSize(PRInt64 aFileSize);
800     nsresult GetFileSizeOfLink(PRInt64 *aFileSizeOfLink);
801     nsresult GetTarget(nsAString *aTarget);
802     nsresult GetNativeTarget(nsACString *aNativeTarget);
803     nsresult GetPath(nsAString *aPath);
804     nsresult GetNativePath(nsACString *aNativePath);
805     nsresult Exists(PRBool *_retval);
806     nsresult IsWritable(PRBool *_retval);
807     nsresult IsReadable(PRBool *_retval);
808     nsresult IsExecutable(PRBool *_retval);
809     nsresult IsHidden(PRBool *_retval);
810     nsresult IsDirectory(PRBool *_retval);
811     nsresult IsFile(PRBool *_retval);
812     nsresult IsSymlink(PRBool *_retval);
813     nsresult IsSpecial(PRBool *_retval);
814     nsresult CreateUnique(PRUint32 type, PRUint32 permission);
815     nsresult Clone(nsIFile **_retval);
816     nsresult Equals(nsIFile *inFile, PRBool *_retval);
817     nsresult Contains(nsIFile *inFile, PRBool recir, PRBool *_retval);
818     nsresult GetParent(nsIFile **aParent);
819     nsresult GetDirectoryEntries(nsISimpleEnumerator **aDirectoryEntries);
820 }
821
822 [
823     object,
824     uuid(86d02f0e-219b-4cfc-9c88-bd98d2cce0b8)
825 ]
826 interface nsIWebBrowserStream : nsISupports
827 {
828     nsresult OpenStream(nsIURI *aBaseURI, nsACString *aContentType);
829     nsresult AppendToStream(PRUint8 *aData, PRUint32 aLen);
830     nsresult CloseStream();
831 }
832
833 [
834     object,
835     uuid(bddeda3f-9020-4d12-8c70-984ee9f7935e)
836 ]
837 interface nsIIOService : nsISupports
838 {
839     nsresult GetProtocolHandler(const char *aScheme, nsIProtocolHandler **_retval);
840     nsresult GetProtocolFlags(const char *aScheme, PRUint32 *_retval);
841     nsresult NewURI(const nsACString *aSpec, const char *aOriginCharset, nsIURI *aBaseURI,
842                     nsIURI **_retval);
843     nsresult NewFileURI(nsIFile *aFile, nsIURI **_retval);
844     nsresult NewChannelFromURI(nsIURI *aURI, nsIChannel **_retval);
845     nsresult NewChannel(const nsACString *aSpec, const char *aOriginCharset, nsIURI *aBaseURI,
846                         nsIChannel **_retval);
847     nsresult GetOffline(PRBool *aOffline);
848     nsresult SetOffline(PRBool aOffline);
849     nsresult AllowPort(PRInt32 aPort, const char *aScheme, PRBool *_retval);
850     nsresult ExtractScheme(const nsACString *urlString, nsACString * _retval);
851 }
852
853 [
854     object,
855     uuid(9c5d3c58-1dd1-11b2-a1c9-f3699284657a)
856 ]
857 interface nsIWebBrowserFocus : nsISupports
858 {
859     nsresult Activate();
860     nsresult Deactivate();
861     nsresult SetFocusAtFirstElement();
862     nsresult SetFocusAtLastElement();
863     nsresult GetFocusedWindow(nsIDOMWindow **aFocusedWindow);
864     nsresult SetFocusedWindow(nsIDOMWindow *aFocusedWindow);
865     nsresult GetFocusedElement(nsIDOMElement **aFocusedElement);
866     nsresult SetFocusedElement(nsIDOMElement *aFocusedElement);
867 }
868
869 [
870     object,
871     uuid(ba434c60-9d52-11d3-afb0-00a024ffc08c)
872 ]
873 interface nsIWebBrowserChrome : nsISupports
874 {
875     nsresult SetStatus(PRUint32 statusType, const PRUnichar *status);
876     nsresult GetWebBrowser(nsIWebBrowser **aWebBrowser);
877     nsresult SetWebBrowser(nsIWebBrowser *aWebBrowser);
878     nsresult GetChromeFlags(PRUint32 *aChromeFlags);
879     nsresult SetChromeFlags(PRUint32 aChromeFlags);
880     nsresult DestroyBrowserWindow();
881     nsresult SizeBrowserTo(PRInt32 aCX, PRInt32 aCY);
882     nsresult ShowAsModal();
883     nsresult IsWindowModal(PRBool *_retval);
884     nsresult ExitModalEventLoop(nsresult aStatus);
885 }
886
887 [
888     object,
889     uuid(a66b7b80-ff46-bd97-0080-5f8ae38add32)
890 ]
891 interface nsIDOMEvent : nsISupports
892 {
893     nsresult GetType(nsAString *aType);
894     nsresult GetTarget(nsIDOMEventTarget **aTarget);
895     nsresult GetCurrentTarget(nsIDOMEventTarget **aCurrentTarget);
896     nsresult GetEventPhase(PRUint16 *aEventPhase);
897     nsresult GetBubbles(PRBool *aBubbles);
898     nsresult GetCancelable(PRBool *aCancelable);
899     nsresult GetTimeStamp(DOMTimeStamp *aTimeStamp);
900     nsresult StopPropagation();
901     nsresult PreventDefault();
902     nsresult InitEvent(const nsAString *eventTypeArg, PRBool canBubbleArg, PRBool cancelableArg);
903 }
904
905 cpp_quote("#define CONTEXT_NONE              0x00");
906 cpp_quote("#define CONTEXT_LINK              0x01");
907 cpp_quote("#define CONTEXT_IMAGE             0x02");
908 cpp_quote("#define CONTEXT_DOCUMENT          0x04");
909 cpp_quote("#define CONTEXT_TEXT              0x08");
910 cpp_quote("#define CONTEXT_INPUT             0x10");
911 cpp_quote("#define CONTEXT_BACKGROUND_IMAGE  0x20");
912
913 [
914     object,
915     uuid(3478b6b0-3875-11d4-94ef-0020183bf181)
916 ]
917 interface nsIContextMenuListener : nsISupports
918 {
919     nsresult OnShowContextMenu(PRUint32 aContextFlags, nsIDOMEvent *aEvent, nsIDOMNode *aNode);
920 }
921
922 [
923     object,
924     uuid(a6cf90c3-15b3-11d2-932e-00805f8add32)
925 ]
926 interface nsIDOMUIEvent : nsIDOMEvent
927 {
928     nsresult GetView(nsIDOMAbstractView **aView);
929     nsresult GetDetail(PRInt32 *aDetail);
930     nsresult InitUIEvent(const nsAString *typeArg, PRBool canBubbleArg, PRBool cancelableArg,
931             nsIDOMAbstractView *viewArg, PRInt32 detailArg);
932 }
933
934 [
935     object,
936     uuid(ff751edc-8b02-aae7-0010-8301838a3123)
937 ]
938 interface nsIDOMMouseEvent : nsIDOMUIEvent
939 {
940     nsresult GetScreenX(PRInt32 *aScreenX);
941     nsresult GetScreenY(PRInt32 *aScreenY);
942     nsresult GetClientX(PRInt32 *aClientX);
943     nsresult GetClientY(PRInt32 *aClientY);
944     nsresult GetCtrlKey(PRBool *aCtrlKey);
945     nsresult GetShiftKey(PRBool *aShiftKey);
946     nsresult GetAltKey(PRBool *aAltKey);
947     nsresult GetMetaKey(PRBool *aMetaKey);
948     nsresult GetButton(PRUint16 *aButton);
949     nsresult GetRelatedTarget(nsIDOMEventTarget * *aRelatedTarget);
950     nsresult InitMouseEvent(const nsAString *typeArg, PRBool canBubbleArg, PRBool cancelableArg,
951             nsIDOMAbstractView *viewArg, PRInt32 detailArg, PRInt32 screenXArg, PRInt32 screenYArg,
952             PRInt32 clientXArg, PRInt32 clientYArg, PRBool ctrlKeyArg, PRBool altKeyArg,
953             PRBool shiftKeyArg, PRBool metaKeyArg, PRUint16 buttonArg,
954             nsIDOMEventTarget *relatedTargetArg);
955 }
956
957 [
958      object,
959      uuid(3e5432cd-9568-4bd1-8cbe-d50aba110743)
960 ]
961 interface nsIEmbeddingSiteWindow : nsISupports
962 {
963     nsresult SetDimensions(PRUint32 flags, PRInt32 x, PRInt32 y, PRInt32 cx, PRInt32 cy);
964     nsresult GetDimensions(PRUint32 flags, PRInt32 *x, PRInt32 *y, PRInt32 *cx, PRInt32 *cy);
965     nsresult SetFocus();
966     nsresult GetVisibility(PRBool *aVisibility);
967     nsresult SetVisibility(PRBool aVisibility);
968     nsresult GetTitle(PRUnichar **aTitle);
969     nsresult SetTitle(const PRUnichar *aTitle);
970     nsresult GetSiteWindow(void **aSiteWindow);
971 }
972
973 [
974      object,
975      uuid(2417cbfe-65ad-48a6-b4b6-eb84db174392)
976 ]
977 interface nsIComponentRegistrar : nsISupports
978 {
979     nsresult AutoRegister(nsIFile *aSpec);
980     nsresult AutoUnregister(nsIFile *aSpec);
981     nsresult RegisterFactory(const nsCID *aClass, const char *aClassName,
982             const char *aContractID, nsIFactory *aFactory);
983     nsresult UnregisterFactory(const nsCID *aClass, nsIFactory *aFactory);
984     nsresult RegisterFactoryLocation(const nsCID *aClass, const char *aClassName,
985             const char *aContractID, nsIFile *aFile, const char *aLoaderStr,
986             const char *aType);
987     nsresult UnregisterFactoryLocation(const nsCID *aClass, nsIFile *aFile);
988     nsresult IsCIDRegistered(const nsCID *aClass, PRBool *_retval);
989     nsresult IsContractIDRegistered(const char *aContractID, PRBool *_retval);
990     nsresult EnumerateCIDs(nsISimpleEnumerator **_retval);
991     nsresult EnumerateContractIDs(nsISimpleEnumerator **_retval);
992     nsresult CIDToContractID(const nsCID *aClass, char **_retval);
993     nsresult ContractIDToCID(const char *aContractID, nsCID **_retval);
994 }
995
996 [
997     object,
998     uuid(1630c61a-325e-49ca-8759-a31b16c47aa5)
999 ]
1000 interface nsIPromptService : nsISupports
1001 {
1002     nsresult Alert(nsIDOMWindow *aParent, const PRUnichar *aDialogTitle,
1003             const PRUnichar *aText);
1004     nsresult AlertCheck(nsIDOMWindow *aParent, const PRUnichar *aDialogTitle,
1005             const PRUnichar *aText, const PRUnichar *aCheckMsg, PRBool *aCheckState);
1006     nsresult Confirm(nsIDOMWindow *aParent, const PRUnichar *aDialogTitle,
1007             const PRUnichar *aText, PRBool *_retval);
1008     nsresult ConfirmCheck(nsIDOMWindow *aParent, const PRUnichar *aDialogTitle,
1009             const PRUnichar *aText, const PRUnichar *aCheckMsg, PRBool *aCheckState,
1010             PRBool *_retval);
1011     nsresult ConfirmEx(nsIDOMWindow *aParent, const PRUnichar *aDialogTitle,
1012             const PRUnichar *aText, PRUint32 aButtonFlags, const PRUnichar *aButton0Title,
1013             const PRUnichar *aButton1Title, const PRUnichar *aButton2Title,
1014             const PRUnichar *aCheckMsg, PRBool *aCheckState, PRInt32 *_retval);
1015     nsresult Prompt(nsIDOMWindow *aParent, const PRUnichar *aDialogTitle,
1016             const PRUnichar *aText, PRUnichar **aValue, const PRUnichar *aCheckMsg,
1017             PRBool *aCheckState, PRBool *_retval);
1018     nsresult PromptUsernameAndPassword(nsIDOMWindow *aParent, const PRUnichar *aDialogTitle,
1019             const PRUnichar *aText, PRUnichar **aUsername, PRUnichar **aPassword,
1020             const PRUnichar *aCheckMsg, PRBool *aCheckState, PRBool *_retval);
1021     nsresult PromptPassword(nsIDOMWindow *aParent, const PRUnichar *aDialogTitle,
1022             const PRUnichar *aText, PRUnichar **aPassword, const PRUnichar *aCheckMsg,
1023             PRBool *aCheckState, PRBool *_retval);
1024     nsresult Select(nsIDOMWindow *aParent, const PRUnichar *aDialogTitle,
1025             const PRUnichar *aText, PRUint32 aCount, const PRUnichar **aSelectList,
1026             PRInt32 *aOutSelection, PRBool *_retval);
1027 }
1028
1029 [
1030     object,
1031     uuid(b128a1e6-44f3-4331-8fbe-5af360ff21ee)
1032 ]
1033 interface nsITooltipTextProvider : nsISupports
1034 {
1035     nsresult GetNodeText(nsIDOMNode *aNode, PRUnichar **aText, PRBool *_retval);
1036 }
1037
1038 [
1039     object,
1040     uuid(02b0625a-e7f3-11d2-9f5a-006008a6efe9)
1041 ]
1042 interface nsIProfile : nsISupports
1043 {
1044     nsresult GetProfileCount(PRInt32 *aProfileCount);
1045     nsresult GetProfileList(PRUint32 *length, PRUnichar ***profileNames);
1046     nsresult ProfileExists(const PRUnichar *profileName, PRBool *_retval);
1047     nsresult GetCurrentProfile(PRUnichar * *aCurrentProfile);
1048     nsresult SetCurrentProfile(const PRUnichar * aCurrentProfile);
1049     nsresult ShutDownCurrentProfile(PRUint32 shutDownType);
1050     nsresult CreateNewProfile(const PRUnichar *profileName,
1051             const PRUnichar *nativeProfileDir, const PRUnichar *langcode,
1052             PRBool useExistingDir);
1053     nsresult RenameProfile(const PRUnichar *oldName, const PRUnichar *newName);
1054     nsresult DeleteProfile(const PRUnichar *name, PRBool canDeleteFiles);
1055     nsresult CloneProfile(const PRUnichar *profileName);
1056 }
1057
1058 [
1059     object,
1060     uuid(30465632-a777-44cc-90f9-8145475ef999)
1061 ]
1062 interface nsIWindowCreator : nsISupports
1063 {
1064     nsresult CreateChromeWindow(nsIWebBrowserChrome *parent, PRUint32 chromeFlags,
1065                                    nsIWebBrowserChrome **_retval);
1066 }
1067
1068 [
1069     object,
1070     uuid(f673ec81-a4b0-11d6-964b-eb5a2bf216fc)
1071 ]
1072 interface nsIWindowCreator2 : nsIWindowCreator
1073 {
1074     nsresult CreateChromeWindow2(nsIWebBrowserChrome *parent, PRUint32 chromeFlags,
1075                                  PRUint32 contextFlags, nsIURI *uri, PRBool *cancel,
1076                                  nsIWebBrowserChrome **_retval);
1077 }
1078
1079 [
1080     object,
1081     uuid(002286a8-494b-43b3-8ddd-49e3fc50622b)
1082 ]
1083 interface nsIWindowWatcher : nsISupports
1084 {
1085     nsresult OpenWindow(nsIDOMWindow *aParent, const char *aUrl, const char *aName,
1086                         const char *aFeatures, nsISupports *aArguments, nsIDOMWindow **_retval);
1087     nsresult RegisterNotification(nsIObserver *aObserver);
1088     nsresult UnregisterNotification(nsIObserver *aObserver);
1089     nsresult GetWindowEnumerator(nsISimpleEnumerator **_retval);
1090     nsresult GetNewPrompter(nsIDOMWindow *aParent, nsIPrompt **_retval);
1091     nsresult GetNewAuthPrompter(nsIDOMWindow *aParent, nsIAuthPrompt **_retval);
1092     nsresult SetWindowCreator(nsIWindowCreator *creator);
1093     nsresult GetChromeForWindow(nsIDOMWindow *aWindow, nsIWebBrowserChrome **_retval);
1094     nsresult GetWindowByName(const PRUnichar *aTargetName, nsIDOMWindow *aCurrentWindow,
1095                              nsIDOMWindow **_retval);
1096     nsresult GetActiveWindow(nsIDOMWindow **aActiveWindow);
1097     nsresult SetActiveWindow(nsIDOMWindow *aActiveWindow);
1098 }
1099
1100 /*
1101  * NOTE:
1102  * This is a private Wine interface that is implemented by our implementation
1103  * of nsIURI to store its owner.
1104  */
1105 [
1106     object,
1107     uuid(5088272e-900b-11da-c687-000fea57f21a)
1108 ]
1109 interface nsIWineURI : nsIURI
1110 {
1111     typedef struct NSContainer NSContainer;
1112
1113     nsresult GetNSContainer(NSContainer **aNSContainer);
1114     nsresult SetNSContainer(NSContainer *aNSContainer);
1115 }