      interface Window {
/* IID: { 0xa6cf906b, 0x15b3, 0x11d2, \
  { 0x93, 0x2e, 0x00, 0x80, 0x5f, 0x8a, 0xdd, 0x32 } } */
        readonly attribute  Window window;
        readonly attribute  Window self;
        readonly attribute  Document document;
        readonly attribute  Navigator navigator;
        readonly attribute  Screen screen;
        readonly attribute  History history;
        readonly attribute  Window parent;
        readonly attribute  Window top;
        readonly attribute  Window content;
        readonly attribute  BarProp menubar;
        readonly attribute  BarProp toolbar;
        readonly attribute  BarProp locationbar;
        readonly attribute  BarProp personalbar;
        readonly attribute  BarProp statusbar;
        readonly attribute  BarProp scrollbars;
        readonly attribute  BarProp directories;
        readonly attribute  boolean closed;
        readonly attribute  WindowCollection frames;
                 attribute  Window opener;
                 attribute  wstring status;
                 attribute  wstring defaultStatus;
                 attribute  wstring name;
                 attribute  long innerWidth;
                 attribute  long innerHeight;
                 attribute  long outerWidth;
                 attribute  long outerHeight;
                 attribute  long screenX;
                 attribute  long screenY;
                 attribute  long pageXOffset;
                 attribute  long pageYOffset;

        void  dump(in wstring str);
        void  alert(/* ... */);
	boolean  confirm(/* ... */);
        DOMString  prompt(/* ... */);
        void  focus();
        void  blur();
        void  close();
        void  back();
        void  forward();
        void  home();
        void  stop();
        void  print();

        void  moveTo(in long xPos, in long yPos);
        void  moveBy(in long xDif, in long yDif);
        void  resizeTo(in long width, in long height);
        void  resizeBy(in long widthDif, in long heightDif);        
        void  scrollTo(in long xScroll, in long yScroll);
        void  scrollBy(in long xScrollDif, in long yScrollDif);        

        void clearTimeout(in long timerID);
        void clearInterval(in long timerID);
        long setTimeout(/* ... */);
        long setInterval(/* ... */);

		Window createPopup(in Element element, in Element popupContent,
					     in long xPos, in long yPos, 
						 in DOMString popupType, in DOMString anchorAlignment,
						 in DOMString popupAlignment);
						  
        Window open(/* ... */);
        Window openDialog(/* ... */);
      };

     interface EventCapturer : EventReceiver {
/* IID: { 0xa6cf906c, 0x15b3, 0x11d2, \
  { 0x93, 0x2e, 0x00, 0x80, 0x5f, 0x8a, 0xdd, 0x32 } } */

       void   captureEvent(in wstring type);
	   void   releaseEvent(in wstring type);
     };

     interface EventTarget {
 /* IID: { 0x1c773b30, 0xd1cf, 0x11d2, \
  { 0xbd, 0x95, 0x00, 0x80, 0x5f, 0x8a, 0xe3, 0xf4 } } */

	   void	addEventListener(in DOMString type, in function EventListener listener, in boolean postProcess, in boolean useCapture);
	   void	removeEventListener(in DOMString type, in function EventListener listener, in boolean postProcess, in boolean useCapture);
	 };
