type

  nsIDocShell = interface(nsISupports)
  ['{0666adf8-8738-4ca7-a917-0348f47d2f40}']
    procedure loadURI(uri: nsIURI; loadInfo: nsIDocShellLoadInfo; aLoadFlags: idlulong; firstParty: longbool); safecall;
    procedure loadStream(aStream: nsIInputStream; aURI: nsIURI; aContentType: ACString; aContentCharset: ACString; aLoadInfo: nsIDocShellLoadInfo); safecall;
    procedure internalLoad(aURI: nsIURI; aReferrer: nsIURI; aOwner: nsISupports; aFlags: PRUint32; aWindowTarget: PWideChar; aTypeHint: PAnsiChar; aPostDataStream: nsIInputStream; aHeadersStream: nsIInputStream; aLoadFlags: idlulong; aSHEntry: nsISHEntry; firstParty: longbool; out aDocShell: nsIDocShell; out aRequest: nsIRequest); safecall;
    procedure addState(aData: nsIVariant; aTitle: DOMString; aURL: DOMString; aReplace: longbool); safecall;
    procedure createLoadInfo(out loadInfo: nsIDocShellLoadInfo); safecall;
    procedure prepareForNewContentModel(); safecall;
    procedure setCurrentURI(aURI: nsIURI); safecall;
    procedure firePageHideNotification(isUnload: longbool); safecall;
    function GetpresContext(): nsPresContext; safecall;
    property presContext : nsPresContext read GetpresContext;
    function GetpresShell(): nsIPresShell; safecall;
    property presShell : nsIPresShell read GetpresShell;
    function GeteldestPresShell(): nsIPresShell; safecall;
    property eldestPresShell : nsIPresShell read GeteldestPresShell;
    function GetcontentViewer(): nsIContentViewer; safecall;
    property contentViewer : nsIContentViewer read GetcontentViewer;
    function GetchromeEventHandler(): nsIDOMEventTarget; safecall;
    procedure SetchromeEventHandler(achromeEventHandler: nsIDOMEventTarget); safecall;
    property chromeEventHandler : nsIDOMEventTarget read GetchromeEventHandler write SetchromeEventHandler;
    function GetdocumentCharsetInfo(): nsIDocumentCharsetInfo; safecall;
    procedure SetdocumentCharsetInfo(adocumentCharsetInfo: nsIDocumentCharsetInfo); safecall;
    property documentCharsetInfo : nsIDocumentCharsetInfo read GetdocumentCharsetInfo write SetdocumentCharsetInfo;
    function GetallowPlugins(): longbool; safecall;
    procedure SetallowPlugins(aallowPlugins: longbool); safecall;
    property allowPlugins : longbool read GetallowPlugins write SetallowPlugins;
    function GetallowJavascript(): longbool; safecall;
    procedure SetallowJavascript(aallowJavascript: longbool); safecall;
    property allowJavascript : longbool read GetallowJavascript write SetallowJavascript;
    function GetallowMetaRedirects(): longbool; safecall;
    procedure SetallowMetaRedirects(aallowMetaRedirects: longbool); safecall;
    property allowMetaRedirects : longbool read GetallowMetaRedirects write SetallowMetaRedirects;
    function GetallowSubframes(): longbool; safecall;
    procedure SetallowSubframes(aallowSubframes: longbool); safecall;
    property allowSubframes : longbool read GetallowSubframes write SetallowSubframes;
    function GetallowImages(): longbool; safecall;
    procedure SetallowImages(aallowImages: longbool); safecall;
    property allowImages : longbool read GetallowImages write SetallowImages;
    function GetallowDNSPrefetch(): longbool; safecall;
    procedure SetallowDNSPrefetch(aallowDNSPrefetch: longbool); safecall;
    property allowDNSPrefetch : longbool read GetallowDNSPrefetch write SetallowDNSPrefetch;
    function GetallowWindowControl(): longbool; safecall;
    procedure SetallowWindowControl(aallowWindowControl: longbool); safecall;
    property allowWindowControl : longbool read GetallowWindowControl write SetallowWindowControl;
    function getDocShellEnumerator(aItemType: idllong; aDirection: idllong) : nsISimpleEnumerator; safecall;
    function GetappType(): idlulong; safecall;
    procedure SetappType(aappType: idlulong); safecall;
    property appType : idlulong read GetappType write SetappType;
    function GetallowAuth(): longbool; safecall;
    procedure SetallowAuth(aallowAuth: longbool); safecall;
    property allowAuth : longbool read GetallowAuth write SetallowAuth;
    function Getzoom(): idlfloat; safecall;
    procedure Setzoom(azoom: idlfloat); safecall;
    property zoom : idlfloat read Getzoom write Setzoom;
    function GetmarginWidth(): idllong; safecall;
    procedure SetmarginWidth(amarginWidth: idllong); safecall;
    property marginWidth : idllong read GetmarginWidth write SetmarginWidth;
    function GetmarginHeight(): idllong; safecall;
    procedure SetmarginHeight(amarginHeight: idllong); safecall;
    property marginHeight : idllong read GetmarginHeight write SetmarginHeight;
    procedure tabToTreeOwner(forward: longbool; out tookFocus: longbool); safecall;
    function GetbusyFlags(): idlulong; safecall;
    property busyFlags : idlulong read GetbusyFlags;
    function GetloadType(): idlulong; safecall;
    procedure SetloadType(aloadType: idlulong); safecall;
    property loadType : idlulong read GetloadType write SetloadType;
    function isBeingDestroyed() : longbool; safecall;
    function GetisExecutingOnLoadHandler(): longbool; safecall;
    property isExecutingOnLoadHandler : longbool read GetisExecutingOnLoadHandler;
    function GetlayoutHistoryState(): nsILayoutHistoryState; safecall;
    procedure SetlayoutHistoryState(alayoutHistoryState: nsILayoutHistoryState); safecall;
    property layoutHistoryState : nsILayoutHistoryState read GetlayoutHistoryState write SetlayoutHistoryState;
    function GetshouldSaveLayoutState(): longbool; safecall;
    property shouldSaveLayoutState : longbool read GetshouldSaveLayoutState;
    function GetsecurityUI(): nsISecureBrowserUI; safecall;
    procedure SetsecurityUI(asecurityUI: nsISecureBrowserUI); safecall;
    property securityUI : nsISecureBrowserUI read GetsecurityUI write SetsecurityUI;
    procedure suspendRefreshURIs(); safecall;
    procedure resumeRefreshURIs(); safecall;
    procedure beginRestore(viewer: nsIContentViewer; top: longbool); safecall;
    procedure finishRestore(); safecall;
    function GetrestoringDocument(): longbool; safecall;
    property restoringDocument : longbool read GetrestoringDocument;
    function GetuseErrorPages(): longbool; safecall;
    procedure SetuseErrorPages(auseErrorPages: longbool); safecall;
    property useErrorPages : longbool read GetuseErrorPages write SetuseErrorPages;
    function GetpreviousTransIndex(): idllong; safecall;
    property previousTransIndex : idllong read GetpreviousTransIndex;
    function GetloadedTransIndex(): idllong; safecall;
    property loadedTransIndex : idllong read GetloadedTransIndex;
    procedure historyPurged(numEntries: idllong); safecall;
    function getSessionStorageForURI(uri: nsIURI; documentURI: DOMString) : nsIDOMStorage; safecall;
    function getSessionStorageForPrincipal(principal: nsIPrincipal; documentURI: DOMString; create: longbool) : nsIDOMStorage; safecall;
    procedure addSessionStorage(principal: nsIPrincipal; storage: nsIDOMStorage); safecall;
    function GetcurrentDocumentChannel(): nsIChannel; safecall;
    property currentDocumentChannel : nsIChannel read GetcurrentDocumentChannel;
    procedure setChildOffset(offset: idlulong); safecall;
    function GetisInUnload(): longbool; safecall;
    property isInUnload : longbool read GetisInUnload;
    function GetchannelIsUnsafe(): longbool; safecall;
    property channelIsUnsafe : longbool read GetchannelIsUnsafe;
    procedure DetachEditorFromWindow(); safecall;
    function GetisOffScreenBrowser(): longbool; safecall;
    procedure SetisOffScreenBrowser(aisOffScreenBrowser: longbool); safecall;
    property isOffScreenBrowser : longbool read GetisOffScreenBrowser write SetisOffScreenBrowser;
    function GetprintPreview(): nsIWebBrowserPrint; safecall;
    property printPreview : nsIWebBrowserPrint read GetprintPreview;
    function GetcanExecuteScripts(): longbool; safecall;
    property canExecuteScripts : longbool read GetcanExecuteScripts;
    function GetisActive(): longbool; safecall;
    procedure SetisActive(aisActive: longbool); safecall;
    property isActive : longbool read GetisActive write SetisActive;
    function GethistoryID(): idlulong; safecall;
    property historyID : idlulong read GethistoryID;
    function GetisAppTab(): longbool; safecall;
    procedure SetisAppTab(aisAppTab: longbool); safecall;
    property isAppTab : longbool read GetisAppTab write SetisAppTab;
    procedure createAboutBlankContentViewer(aPrincipal: nsIPrincipal); safecall;

  end;

const
  nsIDocShell_INTERNAL_LOAD_FLAGS_NONE=$0;
  nsIDocShell_INTERNAL_LOAD_FLAGS_INHERIT_OWNER=$1;
  nsIDocShell_INTERNAL_LOAD_FLAGS_DONT_SEND_REFERRER=$2;
  nsIDocShell_INTERNAL_LOAD_FLAGS_ALLOW_THIRD_PARTY_FIXUP=$4;
  nsIDocShell_INTERNAL_LOAD_FLAGS_FIRST_LOAD=$8;
  nsIDocShell_INTERNAL_LOAD_FLAGS_BYPASS_CLASSIFIER=$10;
  nsIDocShell_INTERNAL_LOAD_FLAGS_FORCE_ALLOW_COOKIES=$20;
  nsIDocShell_ENUMERATE_FORWARDS=0;
  nsIDocShell_ENUMERATE_BACKWARDS=1;
  nsIDocShell_APP_TYPE_UNKNOWN=0;
  nsIDocShell_APP_TYPE_MAIL=1;
  nsIDocShell_APP_TYPE_EDITOR=2;
  nsIDocShell_BUSY_FLAGS_NONE=0;
  nsIDocShell_BUSY_FLAGS_BUSY=1;
  nsIDocShell_BUSY_FLAGS_BEFORE_PAGE_LOAD=2;
  nsIDocShell_BUSY_FLAGS_PAGE_LOADING=4;
  nsIDocShell_LOAD_CMD_NORMAL=$1;
  nsIDocShell_LOAD_CMD_RELOAD=$2;
  nsIDocShell_LOAD_CMD_HISTORY=$4;
  nsIDocShell_LOAD_CMD_PUSHSTATE=$8;

