wine/dlls/mshtml/nsiface.idl
2005-09-02 12:19:42 +00:00

436 lines
16 KiB
Plaintext

/*
* Copyright 2005 Jacek Caban
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/*
* NOTE:
* This file is not an usual idl file. Interfaces in this file are XPCOM interfaces
* (NOT MSCOM!), but we generate the header file with WIDL compatibile with XPCOM,
* useable in C code.
*/
import "wtypes.idl";
typedef HRESULT nsresult;
typedef ULONG nsrefcnt;
typedef IID nsIID;
typedef nsIID nsCID;
typedef REFIID nsIIDRef;
typedef nsIIDRef nsCIDRef;
typedef void** nsQIResult;
typedef LPSTR nsstring;
typedef WCHAR PRUnichar;
typedef LPWSTR nswstring;
typedef ULONG PRUint32;
typedef LONG PRInt32;
typedef WORD PRUint16;
typedef BYTE PRUint8;
typedef BOOL PRBool;
typedef LARGE_INTEGER PRInt64;
typedef ULARGE_INTEGER PRUint64;
typedef int nsAString;
typedef struct nsACString nsACString;
typedef PRUint64 DOMTimeStamp;
interface nsIWebBrowserChrome;
[
object,
uuid(00000000-0000-0000-c000-000000000046)
]
interface nsISupports
{
nsresult QueryInterface(nsIIDRef riid, nsQIResult result);
nsrefcnt AddRef();
nsrefcnt Release();
}
/* Currently we don't need a full declaration of these interfaces */
typedef nsISupports nsIWeakReference;
typedef nsISupports nsIDOMWindow;
typedef nsISupports nsIInputStream;
typedef nsISupports nsIDOMDocument;
typedef nsISupports nsISHistory;
typedef nsISupports nsISimpleEnumerator;
typedef nsISupports nsIWidget;
typedef nsISupports nsIProtocolHandler;
typedef nsISupports nsIChannel;
typedef nsISupports nsIDOMElement;
typedef nsISupports nsIDOMNode;
typedef nsISupports nsIDOMEventTarget;
typedef nsISupports nsIDOMAbstractView;
typedef nsISupports nsIRequest;
typedef nsISupports nsIStreamListener;
[
object,
uuid(8bb35ed9-e332-462d-9155-4a002ab5c958)
]
interface nsIServiceManager : nsISupports
{
nsresult GetService(nsCIDRef aClass, nsIIDRef aIID, void **result);
nsresult GetServiceByContactID(nsstring aContactID, nsIIDRef aIID, void **result);
nsresult IsServiceInstantiated(nsCIDRef aClass, nsIIDRef aIID, BOOL *_retval);
nsresult IsServiceInstantiatedByContractID(nsstring aContractID, nsIIDRef aIID, BOOL *_retval);
}
[
object,
uuid(db242e01-e4d9-11d2-9dde-000064657374)
]
interface nsIObserver : nsISupports
{
nsresult Observe(nsISupports *aSubject, nsstring aTopic, nswstring aData);
}
[
object,
uuid(a88e5a60-205a-4bb1-94e1-2628daf51eae)
]
interface nsIComponentManager : nsISupports
{
nsresult GetClassObject(nsCIDRef aClass, nsIIDRef aIID, nsQIResult result);
nsresult GetClassObjectByContractID(nsstring aContractID, nsIIDRef aIID, nsQIResult result);
nsresult CreateInstance(nsCIDRef aClass, nsISupports *aDelegate, nsIIDRef aIID,
nsQIResult result);
nsresult CreateInstanceByContractID(nsstring aContractID, nsISupports *aDelegate,
nsIIDRef aIID, nsQIResult result);
}
[
object,
uuid(07a22cc0-0ce5-11d3-9331-00104ba0fd40)
]
interface nsIURI : nsISupports
{
nsresult GetSpec(nsACString *aSpec);
nsresult SetSpec(const nsACString *aSpec);
nsresult GetPrePath(nsACString *aPrePath);
nsresult GetScheme(nsACString *aScheme);
nsresult SetScheme(const nsACString *aScheme);
nsresult GetUserPass(nsACString *aUserPass);
nsresult SetUserPass(const nsACString *aUserPass);
nsresult GetUsername(nsACString *aUsername);
nsresult SetUsername(const nsACString *aUsername);
nsresult GetPassword(nsACString *aPassword);
nsresult SetPassword(const nsACString *aPassword);
nsresult GetHostPort(nsACString *aHostPort);
nsresult SetHostPort(const nsACString *aHostPort);
nsresult GetHost(nsACString *aHost);
nsresult SetHost(const nsACString *aHost);
nsresult GetPort(PRInt32 *aPort);
nsresult SetPort(PRInt32 aPort);
nsresult GetPath(nsACString *aPath);
nsresult SetPath(const nsACString *aPath);
nsresult Equals(nsIURI *other, PRBool *_retval);
nsresult SchemeIs(const char *scheme, PRBool *_retval);
nsresult Clone(nsIURI **_retval);
nsresult Resolve(const nsACString *relativePath, nsACString *_retval);
nsresult GetAsciiSpec(nsACString *aAsciiSpec);
nsresult GetAsciiHost(nsACString *aAsciiHost);
nsresult GetOriginCharset(nsACString *aOriginCharset);
}
[
object,
uuid(94928ab3-8b63-11d3-989d-001083010e9b)
]
interface nsIURIContentListener : nsISupports
{
nsresult OnStartURIOpen(nsIURI *aURI, PRBool *_retval);
nsresult DoContent(const char *aContentType, PRBool aIsContentPreferred, nsIRequest *aRequest,
nsIStreamListener **aContentHandler, PRBool *_retval);
nsresult IsPreferred(const char *aContentType, char **aDesiredContentType, PRBool *_retval);
nsresult CanHandleContent(const char *aContentType, PRBool aIsContentPreferred,
char **aDesiredContentType, PRBool *_retval);
nsresult GetLoadCookie(nsISupports **aLoadCookie);
nsresult SetLoadCookie(nsISupports *aLoadCookie);
nsresult GetParentContentListener(nsIURIContentListener **aParentContentListener);
nsresult SetParentContentListener(nsIURIContentListener *aParentContentListener);
}
[
object,
uuid(69e5df00-7b8b-11d3-af61-00a024ffc08c)
]
interface nsIWebBrowser : nsISupports
{
nsresult AddWebBrowserListener(nsIWeakReference *aListener, const nsIID *aIID);
nsresult RemoveWebBrowserListener(nsIWeakReference *aListener, const nsIID *aIID);
nsresult GetContainerWindow(nsIWebBrowserChrome **aContainerWindow);
nsresult SetContainerWindow(nsIWebBrowserChrome *aContainerWindow);
nsresult GetParentURIContentListener(nsIURIContentListener **aParentURIContentListener);
nsresult SetParentURIContentListener(nsIURIContentListener *aParentURIContentListener);
nsresult GetContentDOMWindow(nsIDOMWindow **aContentDOMWindow);
}
cpp_quote("#define SETUP_IS_CHROME_WRAPPER 7");
[
object,
uuid(f15398a0-8018-11d3-af70-00a024ffc08c)
]
interface nsIWebBrowserSetup : nsISupports
{
nsresult SetProperty(PRUint32 aId, PRUint32 aValue);
}
typedef void* nativeWindow;
[
object,
uuid(046bc8a0-8015-11d3-af70-00a024ffc08c)
]
interface nsIBaseWindow : nsISupports
{
nsresult InitWindow(nativeWindow parentNativeWindow, nsIWidget *parentWidget, PRInt32 x,
PRInt32 y, PRInt32 cx, PRInt32 cy);
nsresult Create();
nsresult Destroy();
nsresult SetPosition(PRInt32 x, PRInt32 y);
nsresult GetPosition(PRInt32 *x, PRInt32 *y);
nsresult SetSize(PRInt32 cx, PRInt32 cy, PRBool fRepaint);
nsresult GetSize(PRInt32 *cx, PRInt32 *cy);
nsresult SetPositionAndSize(PRInt32 x, PRInt32 y, PRInt32 cx, PRInt32 cy, PRBool fRepaint);
nsresult GetPositionAndSize(PRInt32 *x, PRInt32 *y, PRInt32 *cx, PRInt32 *cy);
nsresult Repaint(PRBool force);
nsresult GetParentWidget(nsIWidget **aParentWidget);
nsresult SetParentWidget(nsIWidget *aParentWidget);
nsresult GetParentNativeWindow(nativeWindow *aParentNativeWindow);
nsresult SetParentNativeWindow(nativeWindow aParentNativeWindow);
nsresult GetVisibility(PRBool *aVisibility);
nsresult SetVisibility(PRBool aVisibility);
nsresult GetEnabled(PRBool *aEnabled);
nsresult SetEnabled(PRBool aEnabled);
nsresult GetBlurSuppression(PRBool *aBlurSuppression);
nsresult SetBlurSuppression(PRBool aBlurSuppression);
nsresult GetMainWidget(nsIWidget **aMainWidget);
nsresult SetFocus();
nsresult GetTitle(PRUnichar **aTitle);
nsresult SetTitle(const PRUnichar *aTitle);
}
cpp_quote("#define LOAD_FLAGS_NONE 0");
[
object,
uuid(f5d9e7b0-d930-11d3-b057-00a024ffc08c)
]
interface nsIWebNavigation : nsISupports
{
nsresult GetCanGoBack(PRBool *aCanGoBack);
nsresult GetCanGoForward(PRBool *aCanGoForward);
nsresult GoBack();
nsresult GoForward();
nsresult GotoIndex(PRInt32 index);
nsresult LoadURI(const PRUnichar *aURI, PRUint32 aLoadFlags, nsIURI *aReferrer,
nsIInputStream *aPostData, nsIInputStream *aHeaders);
nsresult Reload(PRUint32 aReloadFlags);
nsresult Stop(PRUint32 aStopFlags);
nsresult GetDocument(nsIDOMDocument **aDocument);
nsresult GetCurrentURI(nsIURI **aCurrentURI);
nsresult GetReferringURI(nsIURI **aReferringURI);
nsresult GetSessionHistory(nsISHistory **aSessionHistory);
nsresult SetSessionHistory(nsISHistory *aSessionHistory);
}
[
object,
uuid(c8c0a080-0868-11d3-915f-d9d889d48e3c)
]
interface nsIFile : nsISupports
{
nsresult Append(const nsAString *node);
nsresult AppendNative(const nsAString *node);
nsresult Normalize();
nsresult Create(PRUint32 type, PRUint32 permission);
nsresult GetLeafName(nsAString *aLeafName);
nsresult SetLeafName(const nsAString *aLeafName);
nsresult GetNativeLeafName(nsAString *aLeafName);
nsresult SetNativeLeafName(const nsAString *aLeafName);
nsresult CopyTo(nsIFile *newParentDir, const nsAString *newName);
nsresult CopyToNative(nsIFile *newParentDir, const nsAString *newName);
nsresult CopyToFollowingLinks(nsIFile *newParentDir, const nsAString *newName);
nsresult CopyToFollowingLinksNative(nsIFile *newParentDir, const nsAString *newName);
nsresult MoveTo(nsIFile *newParentDir, const nsAString *newName);
nsresult MoveToNative(nsIFile *newParentDir, const nsAString *newName);
nsresult Remove(PRBool recursive);
nsresult GetPermissions(PRUint32 *aPermissions);
nsresult SetPermissions(PRUint32 pPermissions);
nsresult GetPermissionsOfLink(PRUint32 *aPermissions);
nsresult SetPermissionsOfLink(PRUint32 pPermissions);
nsresult GetLastModifiedTime(PRInt64 *aLastModifiedTime);
nsresult SetLastModifiedTime(PRInt64 aLastModifiedTime);
nsresult GetFileSize(PRInt64 *aFileSize);
nsresult SetFileSize(PRInt64 aFileSize);
nsresult GetFileSizeOfLink(PRInt64 *aFileSizeOfLink);
nsresult GetTarget(nsAString *aTarget);
nsresult GetNativeTarget(nsACString *aNativeTarget);
nsresult GetPath(nsAString *aPath);
nsresult GetNativePath(nsACString *aNativePath);
nsresult Exists(PRBool *_retval);
nsresult IsWritable(PRBool *_retval);
nsresult IsReadable(PRBool *_retval);
nsresult IsExecutable(PRBool *_retval);
nsresult IsHidden(PRBool *_retval);
nsresult IsDirectory(PRBool *_retval);
nsresult IsFile(PRBool *_retval);
nsresult IsSymlink(PRBool *_retval);
nsresult IsSpecial(PRBool *_retval);
nsresult CreateUnique(PRUint32 type, PRUint32 permission);
nsresult Clone(nsIFile **_retval);
nsresult Equals(nsIFile *inFile, PRBool *_retval);
nsresult Contains(nsIFile *inFile, PRBool recir, PRBool *_retval);
nsresult GetParent(nsIFile **aParent);
nsresult GetDirectoryEntries(nsISimpleEnumerator **aDirectoryEntries);
}
[
object,
uuid(86d02f0e-219b-4cfc-9c88-bd98d2cce0b8)
]
interface nsIWebBrowserStream : nsISupports
{
nsresult OpenStream(nsIURI *aBaseURI, nsACString *aContentType);
nsresult AppendToStream(PRUint8 *aData, PRUint32 aLen);
nsresult CloseStream();
}
[
object,
uuid(bddeda3f-9020-4d12-8c70-984ee9f7935e)
]
interface nsIIOService : nsISupports
{
nsresult GetProtocolHandler(const char *aScheme, nsIProtocolHandler **_retval);
nsresult GetProtocolFlags(const char *aScheme, PRUint32 *_retval);
nsresult NewURI(const nsACString *aSpec, const char *aOriginCharset, nsIURI *aBaseURI, nsIURI **_retval);
nsresult NewFileURI(nsIFile *aFile, nsIURI **_retval);
nsresult NewChannelFromURI(nsIURI *aURI, nsIChannel **_retval);
nsresult NewChannel(const nsACString *aSpec, const char *aOriginCharset, nsIURI *aBaseURI, nsIChannel **_retval);
nsresult GetOffline(PRBool *aOffline);
nsresult SetOffline(PRBool aOffline);
nsresult AllowPort(PRInt32 aPort, const char *aScheme, PRBool *_retval);
}
[
object,
uuid(9c5d3c58-1dd1-11b2-a1c9-f3699284657a)
]
interface nsIWebBrowserFocus : nsISupports
{
nsresult Activate();
nsresult Deactivate();
nsresult SetFocusAtFirstElement();
nsresult SetFocusAtLastElement();
nsresult GetFocusedWindow(nsIDOMWindow **aFocusedWindow);
nsresult SetFocusedWindow(nsIDOMWindow *aFocusedWindow);
nsresult GetFocusedElement(nsIDOMElement **aFocusedElement);
nsresult SetFocusedElement(nsIDOMElement *aFocusedElement);
}
[
object,
uuid(ba434c60-9d52-11d3-afb0-00a024ffc08c)
]
interface nsIWebBrowserChrome : nsISupports
{
nsresult SetStatus(PRUint32 statusType, const PRUnichar *status);
nsresult GetWebBrowser(nsIWebBrowser **aWebBrowser);
nsresult SetWebBrowser(nsIWebBrowser *aWebBrowser);
nsresult GetChromeFlags(PRUint32 *aChromeFlags);
nsresult SetChromeFlags(PRUint32 aChromeFlags);
nsresult DestroyBrowserWindow();
nsresult SizeBrowserTo(PRInt32 aCX, PRInt32 aCY);
nsresult ShowAsModal();
nsresult IsWindowModal(PRBool *_retval);
nsresult ExitModalEventLoop(nsresult aStatus);
}
[
object,
uuid(a66b7b80-ff46-bd97-0080-5f8ae38add32)
]
interface nsIDOMEvent : nsISupports
{
nsresult GetType(nsAString *aType);
nsresult GetTarget(nsIDOMEventTarget **aTarget);
nsresult GetCurrentTarget(nsIDOMEventTarget **aCurrentTarget);
nsresult GetEventPhase(PRUint16 *aEventPhase);
nsresult GetBubbles(PRBool *aBubbles);
nsresult GetCancelable(PRBool *aCancelable);
nsresult GetTimeStamp(DOMTimeStamp *aTimeStamp);
nsresult StopPropagation();
nsresult PreventDefault();
nsresult InitEvent(const nsAString *eventTypeArg, PRBool canBubbleArg, PRBool cancelableArg);
}
cpp_quote("#define CONTEXT_NONE 0x00");
cpp_quote("#define CONTEXT_LINK 0x01");
cpp_quote("#define CONTEXT_IMAGE 0x02");
cpp_quote("#define CONTEXT_DOCUMENT 0x04");
cpp_quote("#define CONTEXT_TEXT 0x08");
cpp_quote("#define CONTEXT_INPUT 0x10");
cpp_quote("#define CONTEXT_BACKGROUND_IMAGE 0x20");
[
object,
uuid(3478b6b0-3875-11d4-94ef-0020183bf181)
]
interface nsIContextMenuListener : nsISupports
{
nsresult OnShowContextMenu(PRUint32 aContextFlags, nsIDOMEvent *aEvent, nsIDOMNode *aNode);
}
[
object,
uuid(a6cf90c3-15b3-11d2-932e-00805f8add32)
]
interface nsIDOMUIEvent : nsIDOMEvent
{
nsresult GetView(nsIDOMAbstractView **aView);
nsresult GetDetail(PRInt32 *aDetail);
nsresult InitUIEvent(const nsAString *typeArg, PRBool canBubbleArg, PRBool cancelableArg,
nsIDOMAbstractView *viewArg, PRInt32 detailArg);
}
[
object,
uuid(ff751edc-8b02-aae7-0010-8301838a3123)
]
interface nsIDOMMouseEvent : nsIDOMUIEvent
{
nsresult GetScreenX(PRInt32 *aScreenX);
nsresult GetScreenY(PRInt32 *aScreenY);
nsresult GetClientX(PRInt32 *aClientX);
nsresult GetClientY(PRInt32 *aClientY);
nsresult GetCtrlKey(PRBool *aCtrlKey);
nsresult GetShiftKey(PRBool *aShiftKey);
nsresult GetAltKey(PRBool *aAltKey);
nsresult GetMetaKey(PRBool *aMetaKey);
nsresult GetButton(PRUint16 *aButton);
nsresult GetRelatedTarget(nsIDOMEventTarget * *aRelatedTarget);
nsresult InitMouseEvent(const nsAString *typeArg, PRBool canBubbleArg, PRBool cancelableArg,
nsIDOMAbstractView *viewArg, PRInt32 detailArg, PRInt32 screenXArg, PRInt32 screenYArg,
PRInt32 clientXArg, PRInt32 clientYArg, PRBool ctrlKeyArg, PRBool altKeyArg,
PRBool shiftKeyArg, PRBool metaKeyArg, PRUint16 buttonArg,
nsIDOMEventTarget *relatedTargetArg);
}