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