/* * Defines the COM interfaces and APIs related to the IE Web browser * * Copyright (C) 2001 John R. Sheets (for CodeWeavers) * Copyright (C) 2003 Alexandre Julliard * Copuright (C) 2004 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 */ import "ocidl.idl"; import "docobj.idl"; #include /***************************************************************************** * IWebBrowser interface */ [ object, oleautomation, uuid(eab22ac1-30c1-11cf-a7eb-0000c05bae0b) ] interface IWebBrowser : IDispatch { typedef enum BrowserNavConstants { navOpenInNewWindow = 0x1, navNoHistory = 0x2, navNoReadFromCache = 0x4, navNoWriteToCache = 0x8, navAllowAutosearch = 0x10, navBrowserBar = 0x20, navHyperlink = 0x40, navEnforceRestricted = 0x80 } BrowserNavConstants; typedef enum RefreshConstants { REFRESH_NORMAL = 0, REFRESH_IFEXPIRED = 1, REFRESH_COMPLETELY = 3 } RefreshConstants; HRESULT GoBack(); HRESULT GoForward(); HRESULT GoHome(); HRESULT GoSearch(); HRESULT Navigate( [in] BSTR URL, [in] VARIANT *Flags, [in] VARIANT *TargetFrameName, [in] VARIANT *PostData, [in] VARIANT *Headers); HRESULT Refresh(); HRESULT Refresh2( [in] VARIANT *Level ); HRESULT Stop(); [propget] HRESULT Application([out] IDispatch** ppDisp); [propget] HRESULT Parent([out] IDispatch** ppDisp); [propget] HRESULT Container([out] IDispatch** ppDisp); [propget] HRESULT Document([out] IDispatch** ppDisp); [propget] HRESULT TopLevelContainer([out] VARIANT_BOOL* pBool); [propget] HRESULT Type([out] BSTR* Type); [propget] HRESULT Left([out] long *pl); [propput] HRESULT Left([in] long Left); [propget] HRESULT Top([out] long *pl); [propput] HRESULT Top([in] long Top); [propget] HRESULT Width([out] long *pl); [propput] HRESULT Width([in] long Width); [propget] HRESULT Height([out] long *pl); [propput] HRESULT Height([in] long Height); [propget] HRESULT LocationName([out] BSTR *LocationName); [propget] HRESULT LocationURL([out] BSTR * LocationURL); [propget] HRESULT Busy([out] VARIANT_BOOL *pBool); } /***************************************************************************** * IWebBrowserApp interface */ [ object, oleautomation, uuid(0002df05-0000-0000-c000-000000000046) ] interface IWebBrowserApp : IWebBrowser { HRESULT Quit(); HRESULT ClientToWindow([in,out] int* pcx, [in,out] int* pcy); HRESULT PutProperty([in] BSTR szProperty, [in] VARIANT vtValue); HRESULT GetProperty([in] BSTR szProperty, [out] VARIANT *pvtValue); [propget] HRESULT Name([out] BSTR* Name); [propget] HRESULT HWND([out] long *pHWND); [propget] HRESULT FullName([out] BSTR* FullName); [propget] HRESULT Path([out] BSTR* Path); [propget] HRESULT Visible([out] VARIANT_BOOL* pBool); [propput] HRESULT Visible([in] VARIANT_BOOL Value); [propget] HRESULT StatusBar([out] VARIANT_BOOL* pBool); [propput] HRESULT StatusBar([in] VARIANT_BOOL Value); [propget] HRESULT StatusText([out] BSTR *StatusText); [propput] HRESULT StatusText([in] BSTR StatusText); [propget] HRESULT ToolBar([out] int * Value); [propput] HRESULT ToolBar([in] int Value); [propget] HRESULT MenuBar([out] VARIANT_BOOL * Value); [propput] HRESULT MenuBar([in] VARIANT_BOOL Value); [propget] HRESULT FullScreen([out] VARIANT_BOOL * pbFullScreen); [propput] HRESULT FullScreen([in] VARIANT_BOOL bFullScreen); } /***************************************************************************** * IWebBrowser2 interface */ [ object, oleautomation, uuid(d30c1661-cdaf-11d0-8a3e-00c04fc9e26e) ] interface IWebBrowser2 : IWebBrowserApp { HRESULT Navigate2( [in] VARIANT *URL, [in] VARIANT *Flags, [in] VARIANT *TargetFrameName, [in] VARIANT *PostData, [in] VARIANT *Headers); HRESULT QueryStatusWB([in] OLECMDID cmdID, [out] OLECMDF *pcmdf); HRESULT ExecWB([in] OLECMDID cmdID, [in] OLECMDEXECOPT cmdexecopt, [in] VARIANT *pvaIn, [out, in] VARIANT *pvaOut); HRESULT ShowBrowserBar([in] VARIANT *pvaClsid, [in] VARIANT *pvarShow, [in] VARIANT *pvarSize); [propget] HRESULT ReadyState([out] READYSTATE *plReadyState); [propget] HRESULT Offline([out] VARIANT_BOOL *pbOffline); [propput] HRESULT Offline([in] VARIANT_BOOL bOffline); [propget] HRESULT Silent([out] VARIANT_BOOL *pbSilent); [propput] HRESULT Silent([in] VARIANT_BOOL bSilent); [propget] HRESULT RegisterAsBrowser([out] VARIANT_BOOL *pbRegister); [propput] HRESULT RegisterAsBrowser([in] VARIANT_BOOL bRegister); [propget] HRESULT RegisterAsDropTarget([out] VARIANT_BOOL *pbRegister); [propput] HRESULT RegisterAsDropTarget([in] VARIANT_BOOL bRegister); [propget] HRESULT TheaterMode([out] VARIANT_BOOL *pbRegister); [propput] HRESULT TheaterMode([in] VARIANT_BOOL bRegister); [propget] HRESULT AddressBar([out] VARIANT_BOOL *Value); [propput] HRESULT AddressBar([in] VARIANT_BOOL Value); [propget] HRESULT Resizable([out] VARIANT_BOOL *Value); [propput] HRESULT Resizable([in] VARIANT_BOOL Value); } [ uuid(eab22ac2-30c1-11CF-a7eb-0000C05bae0b) ] dispinterface DWebBrowserEvents { properties: methods: [id(DISPID_BEFORENAVIGATE)] void BeforeNavigate( [in] BSTR URL, [in] long Flags, [in] BSTR TargetFrameName, [in] VARIANT *PostData, [in] BSTR Headers, [in, out] VARIANT_BOOL *Cancel); [id(DISPID_NAVIGATECOMPLETE)] void NavigateComplete([in] BSTR URL); [id(DISPID_STATUSTEXTCHANGE)] void StatusTextChange([in] BSTR Text); [id(DISPID_PROGRESSCHANGE)] void ProgressChange([in] long Progress, [in] long ProgressMax); [id(DISPID_DOWNLOADCOMPLETE)] void DownloadComplete(); [id(DISPID_COMMANDSTATECHANGE)] void CommandStateChange([in] long Command, [in]VARIANT_BOOL Enable); [id(DISPID_DOWNLOADBEGIN)] void DownloadBegin(); [id(DISPID_NEWWINDOW)] void NewWindow( [in] BSTR URL, [in] long Flags, [in] BSTR TargetFrameName, [in] VARIANT *PostData, [in] BSTR Headers, [in,out] VARIANT_BOOL *Processed); [id(DISPID_TITLECHANGE)] void TitleChange([in] BSTR Text); [id(DISPID_FRAMEBEFORENAVIGATE)] void FrameBeforeNavigate( [in] BSTR URL, [in] long Flags, [in] BSTR TargetFrameName, [in] VARIANT *PostData, [in] BSTR Headers, [in, out]VARIANT_BOOL *Cancel); [id(DISPID_FRAMENAVIGATECOMPLETE)] void FrameNavigateComplete([in] BSTR URL); [id(DISPID_FRAMENEWWINDOW)] void FrameNewWindow( [in] BSTR URL, [in] long Flags, [in] BSTR TargetFrameName, [in] VARIANT *PostData, [in] BSTR Headers, [in,out] VARIANT_BOOL *Processed); [id(DISPID_QUIT)] void Quit([in, out] VARIANT_BOOL *Cancel); [id(DISPID_WINDOWMOVE)] void WindowMove(); [id(DISPID_WINDOWRESIZE)] void WindowResize(); [id(DISPID_WINDOWACTIVATE)] void WindowActivate(); [id(DISPID_PROPERTYCHANGE)] void PropertyChange([in] BSTR Property); } [ uuid(34a715a0-6587-11d0-924a-0020afc7ac4d) ] dispinterface DWebBrowserEvents2 { properties: methods: [id(DISPID_STATUSTEXTCHANGE)] void StatusTextChange([in] BSTR Text); [id(DISPID_PROGRESSCHANGE)] void ProgressChange([in] long Progress, [in] long ProgressMax); [id(DISPID_COMMANDSTATECHANGE)] void CommandStateChange([in] long Command, [in] VARIANT_BOOL Enable); [id(DISPID_DOWNLOADBEGIN)] void DownloadBegin(); [id(DISPID_DOWNLOADCOMPLETE)] void DownloadComplete(); [id(DISPID_TITLECHANGE)] void TitleChange([in] BSTR szProperty); [id(DISPID_PROPERTYCHANGE)] void PropertyChange([in] BSTR szProperty); [id(DISPID_BEFORENAVIGATE2)] void BeforeNavigate2( [in] IDispatch *pDisp, [in] VARIANT *URL, [in] VARIANT *Flags, [in] VARIANT *TargetFrameName, [in] VARIANT *PostData, [in] VARIANT *Headers, [in, out] VARIANT_BOOL *Cancel); [id(DISPID_NEWWINDOW2)] void NewWindow2([in, out] IDispatch **ppDisp, [in, out] VARIANT_BOOL *Cancel); [id(DISPID_NAVIGATECOMPLETE2)] void NavigateComplete2([in] IDispatch *pDisp, [in] VARIANT *URL); [id(DISPID_DOCUMENTCOMPLETE)] void DocumentComplete([in] IDispatch *pDisp, [in] VARIANT *URL); [id(DISPID_ONQUIT)] void OnQuit(); [id(DISPID_ONVISIBLE)] void OnVisible([in] VARIANT_BOOL Visible); [id(DISPID_ONTOOLBAR)] void OnToolBar([in] VARIANT_BOOL ToolBar); [id(DISPID_ONMENUBAR)] void OnMenuBar([in] VARIANT_BOOL MenuBar); [id(DISPID_ONSTATUSBAR)] void OnStatusBar([in] VARIANT_BOOL StatusBar); [id(DISPID_ONFULLSCREEN)] void OnFullScreen([in] VARIANT_BOOL FullScreen); [id(DISPID_ONTHEATERMODE)] void OnTheaterMode([in] VARIANT_BOOL TheaterMode); } [ uuid(8856f961-340a-11d0-a96b-00c04fd705a2) ] coclass WebBrowser { [default] interface IWebBrowser2; interface IWebBrowser; [default, source] dispinterface DWebBrowserEvents2; [source] dispinterface DWebBrowserEvents; } [ object, oleautomation, uuid(85cb6900-4d95-11cf-960c-0080c7f4ee85) ] interface IShellWindows : IDispatch { [propget] HRESULT Count( [out] long *Count ); HRESULT Item( [in] VARIANT index, [out] IDispatch **Folder ); HRESULT _NewEnum( [out] IUnknown **ppunk ); HRESULT Register( [in] IDispatch *pid, [in] long hWnd, [in] int swClass, [out] long *plCookie ); HRESULT RegisterPending( [in] long lThread, [in] VARIANT *pvarloc, [in] VARIANT *varlocRoot, [in] int swClass, [out] long *plCookie ); HRESULT Revoke( [in] long Cookie ); HRESULT OnNavigate( [in] long Cookie, [out] VARIANT *pvarLoc ); HRESULT OnActivated( [in] long Cookie, [in] VARIANT fActive ); HRESULT FindWindowSW( [in] VARIANT *pvarLoc, [in] VARIANT *pvarLocRoot, [in] int swClass, [out] long *phwnd, int swfwOptions, IDispatch **ppdispOut ); HRESULT OnCreated( [in] long lCookie, [in] IUnknown *punk ); HRESULT ProcessAttachDetach( [in] VARIANT_BOOL fAttach ); } [ uuid(9ba05972-f6a8-11cf-a442-00a0c90a8f39) ] coclass ShellWindows { [default] interface IShellWindows; [default, source] dispinterface DShellWindowsEvents; }