2 * Defines the COM interfaces and APIs related to the IE Web browser
4 * Copyright (C) 2001 John R. Sheets (for CodeWeavers)
5 * Copyright (C) 2003 Alexandre Julliard
6 * Copuright (C) 2004 Jacek Caban
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either
11 * version 2.1 of the License, or (at your option) any later version.
13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with this library; if not, write to the Free Software
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
28 /*****************************************************************************
29 * IWebBrowser interface
34 uuid(eab22ac1-30c1-11cf-a7eb-0000c05bae0b)
36 interface IWebBrowser : IDispatch
38 typedef enum BrowserNavConstants
40 navOpenInNewWindow = 0x1,
42 navNoReadFromCache = 0x4,
43 navNoWriteToCache = 0x8,
44 navAllowAutosearch = 0x10,
47 navEnforceRestricted = 0x80
48 } BrowserNavConstants;
50 typedef enum RefreshConstants
53 REFRESH_IFEXPIRED = 1,
54 REFRESH_COMPLETELY = 3
64 [in] VARIANT *TargetFrameName,
65 [in] VARIANT *PostData,
66 [in] VARIANT *Headers);
68 HRESULT Refresh2( [in] VARIANT *Level );
70 [propget] HRESULT Application([out] IDispatch** ppDisp);
71 [propget] HRESULT Parent([out] IDispatch** ppDisp);
72 [propget] HRESULT Container([out] IDispatch** ppDisp);
73 [propget] HRESULT Document([out] IDispatch** ppDisp);
74 [propget] HRESULT TopLevelContainer([out] VARIANT_BOOL* pBool);
75 [propget] HRESULT Type([out] BSTR* Type);
76 [propget] HRESULT Left([out] long *pl);
77 [propput] HRESULT Left([in] long Left);
78 [propget] HRESULT Top([out] long *pl);
79 [propput] HRESULT Top([in] long Top);
80 [propget] HRESULT Width([out] long *pl);
81 [propput] HRESULT Width([in] long Width);
82 [propget] HRESULT Height([out] long *pl);
83 [propput] HRESULT Height([in] long Height);
84 [propget] HRESULT LocationName([out] BSTR *LocationName);
85 [propget] HRESULT LocationURL([out] BSTR * LocationURL);
86 [propget] HRESULT Busy([out] VARIANT_BOOL *pBool);
90 /*****************************************************************************
91 * IWebBrowserApp interface
96 uuid(0002df05-0000-0000-c000-000000000046)
98 interface IWebBrowserApp : IWebBrowser
101 HRESULT ClientToWindow([in,out] int* pcx, [in,out] int* pcy);
102 HRESULT PutProperty([in] BSTR szProperty, [in] VARIANT vtValue);
103 HRESULT GetProperty([in] BSTR szProperty, [out] VARIANT *pvtValue);
104 [propget] HRESULT Name([out] BSTR* Name);
105 [propget] HRESULT HWND([out] long *pHWND);
106 [propget] HRESULT FullName([out] BSTR* FullName);
107 [propget] HRESULT Path([out] BSTR* Path);
108 [propget] HRESULT Visible([out] VARIANT_BOOL* pBool);
109 [propput] HRESULT Visible([in] VARIANT_BOOL Value);
110 [propget] HRESULT StatusBar([out] VARIANT_BOOL* pBool);
111 [propput] HRESULT StatusBar([in] VARIANT_BOOL Value);
112 [propget] HRESULT StatusText([out] BSTR *StatusText);
113 [propput] HRESULT StatusText([in] BSTR StatusText);
114 [propget] HRESULT ToolBar([out] int * Value);
115 [propput] HRESULT ToolBar([in] int Value);
116 [propget] HRESULT MenuBar([out] VARIANT_BOOL * Value);
117 [propput] HRESULT MenuBar([in] VARIANT_BOOL Value);
118 [propget] HRESULT FullScreen([out] VARIANT_BOOL * pbFullScreen);
119 [propput] HRESULT FullScreen([in] VARIANT_BOOL bFullScreen);
122 /*****************************************************************************
123 * IWebBrowser2 interface
128 uuid(d30c1661-cdaf-11d0-8a3e-00c04fc9e26e)
130 interface IWebBrowser2 : IWebBrowserApp
135 [in] VARIANT *TargetFrameName,
136 [in] VARIANT *PostData,
137 [in] VARIANT *Headers);
138 HRESULT QueryStatusWB([in] OLECMDID cmdID, [out] OLECMDF *pcmdf);
139 HRESULT ExecWB([in] OLECMDID cmdID, [in] OLECMDEXECOPT cmdexecopt, [in] VARIANT *pvaIn, [out, in] VARIANT *pvaOut);
140 HRESULT ShowBrowserBar([in] VARIANT *pvaClsid, [in] VARIANT *pvarShow, [in] VARIANT *pvarSize);
142 [propget] HRESULT ReadyState([out] READYSTATE *plReadyState);
143 [propget] HRESULT Offline([out] VARIANT_BOOL *pbOffline);
144 [propput] HRESULT Offline([in] VARIANT_BOOL bOffline);
145 [propget] HRESULT Silent([out] VARIANT_BOOL *pbSilent);
146 [propput] HRESULT Silent([in] VARIANT_BOOL bSilent);
147 [propget] HRESULT RegisterAsBrowser([out] VARIANT_BOOL *pbRegister);
148 [propput] HRESULT RegisterAsBrowser([in] VARIANT_BOOL bRegister);
149 [propget] HRESULT RegisterAsDropTarget([out] VARIANT_BOOL *pbRegister);
150 [propput] HRESULT RegisterAsDropTarget([in] VARIANT_BOOL bRegister);
151 [propget] HRESULT TheaterMode([out] VARIANT_BOOL *pbRegister);
152 [propput] HRESULT TheaterMode([in] VARIANT_BOOL bRegister);
153 [propget] HRESULT AddressBar([out] VARIANT_BOOL *Value);
154 [propput] HRESULT AddressBar([in] VARIANT_BOOL Value);
155 [propget] HRESULT Resizable([out] VARIANT_BOOL *Value);
156 [propput] HRESULT Resizable([in] VARIANT_BOOL Value);
160 uuid(eab22ac2-30c1-11CF-a7eb-0000C05bae0b)
162 dispinterface DWebBrowserEvents
166 [id(DISPID_BEFORENAVIGATE)]
170 [in] BSTR TargetFrameName,
171 [in] VARIANT *PostData,
173 [in, out] VARIANT_BOOL *Cancel);
175 [id(DISPID_NAVIGATECOMPLETE)]
176 void NavigateComplete([in] BSTR URL);
178 [id(DISPID_STATUSTEXTCHANGE)]
179 void StatusTextChange([in] BSTR Text);
181 [id(DISPID_PROGRESSCHANGE)]
182 void ProgressChange([in] long Progress, [in] long ProgressMax);
184 [id(DISPID_DOWNLOADCOMPLETE)]
185 void DownloadComplete();
187 [id(DISPID_COMMANDSTATECHANGE)]
188 void CommandStateChange([in] long Command, [in]VARIANT_BOOL Enable);
190 [id(DISPID_DOWNLOADBEGIN)]
191 void DownloadBegin();
193 [id(DISPID_NEWWINDOW)]
197 [in] BSTR TargetFrameName,
198 [in] VARIANT *PostData,
200 [in,out] VARIANT_BOOL *Processed);
202 [id(DISPID_TITLECHANGE)]
203 void TitleChange([in] BSTR Text);
205 [id(DISPID_FRAMEBEFORENAVIGATE)]
206 void FrameBeforeNavigate(
209 [in] BSTR TargetFrameName,
210 [in] VARIANT *PostData,
212 [in, out]VARIANT_BOOL *Cancel);
214 [id(DISPID_FRAMENAVIGATECOMPLETE)]
215 void FrameNavigateComplete([in] BSTR URL);
217 [id(DISPID_FRAMENEWWINDOW)]
221 [in] BSTR TargetFrameName,
222 [in] VARIANT *PostData,
224 [in,out] VARIANT_BOOL *Processed);
227 void Quit([in, out] VARIANT_BOOL *Cancel);
229 [id(DISPID_WINDOWMOVE)]
232 [id(DISPID_WINDOWRESIZE)]
235 [id(DISPID_WINDOWACTIVATE)]
236 void WindowActivate();
238 [id(DISPID_PROPERTYCHANGE)]
239 void PropertyChange([in] BSTR Property);
243 uuid(34a715a0-6587-11d0-924a-0020afc7ac4d)
245 dispinterface DWebBrowserEvents2
249 [id(DISPID_STATUSTEXTCHANGE)]
250 void StatusTextChange([in] BSTR Text);
252 [id(DISPID_PROGRESSCHANGE)]
253 void ProgressChange([in] long Progress, [in] long ProgressMax);
255 [id(DISPID_COMMANDSTATECHANGE)]
256 void CommandStateChange([in] long Command, [in] VARIANT_BOOL Enable);
258 [id(DISPID_DOWNLOADBEGIN)]
259 void DownloadBegin();
261 [id(DISPID_DOWNLOADCOMPLETE)]
262 void DownloadComplete();
264 [id(DISPID_TITLECHANGE)]
265 void TitleChange([in] BSTR szProperty);
267 [id(DISPID_PROPERTYCHANGE)]
268 void PropertyChange([in] BSTR szProperty);
270 [id(DISPID_BEFORENAVIGATE2)]
271 void BeforeNavigate2(
272 [in] IDispatch *pDisp,
275 [in] VARIANT *TargetFrameName,
276 [in] VARIANT *PostData,
277 [in] VARIANT *Headers,
278 [in, out] VARIANT_BOOL *Cancel);
280 [id(DISPID_NEWWINDOW2)]
281 void NewWindow2([in, out] IDispatch **ppDisp, [in, out] VARIANT_BOOL *Cancel);
283 [id(DISPID_NAVIGATECOMPLETE2)]
284 void NavigateComplete2([in] IDispatch *pDisp, [in] VARIANT *URL);
286 [id(DISPID_DOCUMENTCOMPLETE)]
287 void DocumentComplete([in] IDispatch *pDisp, [in] VARIANT *URL);
292 [id(DISPID_ONVISIBLE)]
293 void OnVisible([in] VARIANT_BOOL Visible);
295 [id(DISPID_ONTOOLBAR)]
296 void OnToolBar([in] VARIANT_BOOL ToolBar);
298 [id(DISPID_ONMENUBAR)]
299 void OnMenuBar([in] VARIANT_BOOL MenuBar);
301 [id(DISPID_ONSTATUSBAR)]
302 void OnStatusBar([in] VARIANT_BOOL StatusBar);
304 [id(DISPID_ONFULLSCREEN)]
305 void OnFullScreen([in] VARIANT_BOOL FullScreen);
307 [id(DISPID_ONTHEATERMODE)]
308 void OnTheaterMode([in] VARIANT_BOOL TheaterMode);
312 uuid(8856f961-340a-11d0-a96b-00c04fd705a2)
316 [default] interface IWebBrowser2;
317 interface IWebBrowser;
318 [default, source] dispinterface DWebBrowserEvents2;
319 [source] dispinterface DWebBrowserEvents;
325 uuid(85cb6900-4d95-11cf-960c-0080c7f4ee85)
327 interface IShellWindows : IDispatch
329 [propget] HRESULT Count( [out] long *Count );
330 HRESULT Item( [in] VARIANT index, [out] IDispatch **Folder );
331 HRESULT _NewEnum( [out] IUnknown **ppunk );
332 HRESULT Register( [in] IDispatch *pid, [in] long hWnd, [in] int swClass,
333 [out] long *plCookie );
334 HRESULT RegisterPending( [in] long lThread, [in] VARIANT *pvarloc,
335 [in] VARIANT *varlocRoot, [in] int swClass, [out] long *plCookie );
336 HRESULT Revoke( [in] long Cookie );
337 HRESULT OnNavigate( [in] long Cookie, [out] VARIANT *pvarLoc );
338 HRESULT OnActivated( [in] long Cookie, [in] VARIANT fActive );
339 HRESULT FindWindowSW( [in] VARIANT *pvarLoc, [in] VARIANT *pvarLocRoot,
340 [in] int swClass, [out] long *phwnd, int swfwOptions,
341 IDispatch **ppdispOut );
342 HRESULT OnCreated( [in] long lCookie, [in] IUnknown *punk );
343 HRESULT ProcessAttachDetach( [in] VARIANT_BOOL fAttach );
347 uuid(9ba05972-f6a8-11cf-a442-00a0c90a8f39)
351 [default] interface IShellWindows;
352 [default, source] dispinterface DShellWindowsEvents;