Added IWebBrowse2 interface.
[wine] / include / exdisp.idl
1 /*
2  * Defines the COM interfaces and APIs related to the IE Web browser
3  *
4  * Copyright (C) 2001 John R. Sheets (for CodeWeavers)
5  * Copyright (C) 2003 Alexandre Julliard
6  *
7  * This library is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public
9  * License as published by the Free Software Foundation; either
10  * version 2.1 of the License, or (at your option) any later version.
11  *
12  * This library is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with this library; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
20  */
21
22 import "ocidl.idl";
23 import "docobj.idl";
24
25
26 /*****************************************************************************
27  * IWebBrowser interface
28  */
29 [
30     object,
31     oleautomation,
32     uuid(eab22ac1-30c1-11cf-a7eb-0000c05bae0b)
33 ]
34 interface IWebBrowser : IDispatch
35 {
36     typedef enum BrowserNavConstants
37     {
38         navOpenInNewWindow   = 0x1,
39         navNoHistory         = 0x2,
40         navNoReadFromCache   = 0x4,
41         navNoWriteToCache    = 0x8,
42         navAllowAutosearch   = 0x10,
43         navBrowserBar        = 0x20,
44         navHyperlink         = 0x40,
45         navEnforceRestricted = 0x80
46     } BrowserNavConstants;
47
48     typedef enum RefreshConstants
49     {
50         REFRESH_NORMAL     = 0,
51         REFRESH_IFEXPIRED  = 1,
52         REFRESH_COMPLETELY = 3
53     } RefreshConstants;
54
55     HRESULT GoBack();
56     HRESULT GoForward();
57     HRESULT GoHome();
58     HRESULT GoSearch();
59     HRESULT Navigate(
60         [in] BSTR URL,
61         [in] VARIANT *Flags,
62         [in] VARIANT *TargetFrameName,
63         [in] VARIANT *PostData,
64         [in] VARIANT *Headers);
65     HRESULT Refresh();
66     HRESULT Refresh2( [in] VARIANT *Level );
67     HRESULT Stop();
68     [propget] HRESULT Application([out] IDispatch** ppDisp);
69     [propget] HRESULT Parent([out] IDispatch** ppDisp);
70     [propget] HRESULT Container([out] IDispatch** ppDisp);
71     [propget] HRESULT Document([out] IDispatch** ppDisp);
72     [propget] HRESULT TopLevelContainer([out] VARIANT_BOOL* pBool);
73     [propget] HRESULT Type([out] BSTR* Type);
74     [propget] HRESULT Left([out] long *pl);
75     [propput] HRESULT Left([in] long Left);
76     [propget] HRESULT Top([out] long *pl);
77     [propput] HRESULT Top([in] long Top);
78     [propget] HRESULT Width([out] long *pl);
79     [propput] HRESULT Width([in] long Width);
80     [propget] HRESULT Height([out] long *pl);
81     [propput] HRESULT Height([in] long Height);
82     [propget] HRESULT LocationName([out] BSTR *LocationName);
83     [propget] HRESULT LocationURL([out] BSTR * LocationURL);
84     [propget] HRESULT Busy([out] VARIANT_BOOL *pBool);
85 }
86
87
88 /*****************************************************************************
89  * IWebBrowserApp interface
90  */
91 [
92     object,
93     oleautomation,
94     uuid(0002df05-0000-0000-c000-000000000046)
95 ]
96 interface IWebBrowserApp : IWebBrowser
97 {
98     HRESULT Quit();
99     HRESULT ClientToWindow([in,out] int* pcx, [in,out] int* pcy);
100     HRESULT PutProperty([in] BSTR szProperty, [in] VARIANT vtValue);
101     HRESULT GetProperty([in] BSTR szProperty, [out] VARIANT *pvtValue);
102     [propget] HRESULT Name([out] BSTR* Name);
103     [propget] HRESULT HWND([out] long *pHWND);
104     [propget] HRESULT FullName([out] BSTR* FullName);
105     [propget] HRESULT Path([out] BSTR* Path);
106     [propget] HRESULT Visible([out] VARIANT_BOOL* pBool);
107     [propput] HRESULT Visible([in] VARIANT_BOOL Value);
108     [propget] HRESULT StatusBar([out] VARIANT_BOOL* pBool);
109     [propput] HRESULT StatusBar([in] VARIANT_BOOL Value);
110     [propget] HRESULT StatusText([out] BSTR *StatusText);
111     [propput] HRESULT StatusText([in] BSTR StatusText);
112     [propget] HRESULT ToolBar([out] int * Value);
113     [propput] HRESULT ToolBar([in] int Value);
114     [propget] HRESULT MenuBar([out] VARIANT_BOOL * Value);
115     [propput] HRESULT MenuBar([in] VARIANT_BOOL Value);
116     [propget] HRESULT FullScreen([out] VARIANT_BOOL * pbFullScreen);
117     [propput] HRESULT FullScreen([in] VARIANT_BOOL bFullScreen);
118 }
119
120 /*****************************************************************************
121  * IWebBrowser2 interface
122  */
123 [
124     object,
125     oleautomation,
126     uuid(d30c1661-cdaf-11d0-8a3e-00c04fc9e26e)
127 ]
128 interface IWebBrowser2 : IWebBrowserApp
129 {
130     HRESULT Navigate2(
131         [in] VARIANT *URL,
132         [in] VARIANT *Flags,
133         [in] VARIANT *TargetFrameName,
134         [in] VARIANT *PostData,
135         [in] VARIANT *Headers);
136     HRESULT QueryStatusWB([in] OLECMDID cmdID, [out] OLECMDF *pcmdf);
137     HRESULT ExecWB([in] OLECMDID cmdID, [in] OLECMDEXECOPT cmdexecopt, [in] VARIANT *pvaIn, [out, in] VARIANT *pvaOut);
138     HRESULT ShowBrowserBar([in] VARIANT *pvaClsid, [in] VARIANT *pvarShow, [in] VARIANT *pvarSize);
139
140     [propget] HRESULT ReadyState([out] READYSTATE *plReadyState);
141     [propget] HRESULT Offline([out] VARIANT_BOOL *pbOffline);
142     [propput] HRESULT Offline([in] VARIANT_BOOL bOffline);
143     [propget] HRESULT Silent([out] VARIANT_BOOL *pbSilent);
144     [propput] HRESULT Silent([in] VARIANT_BOOL bSilent);
145     [propget] HRESULT RegisterAsBrowser([out] VARIANT_BOOL *pbRegister);
146     [propput] HRESULT RegisterAsBrowser([in] VARIANT_BOOL bRegister);
147     [propget] HRESULT RegisterAsDropTarget([out] VARIANT_BOOL *pbRegister);
148     [propput] HRESULT RegisterAsDropTarget([in] VARIANT_BOOL bRegister);
149     [propget] HRESULT TheaterMode([out] VARIANT_BOOL *pbRegister);
150     [propput] HRESULT TheaterMode([in] VARIANT_BOOL bRegister);
151     [propget] HRESULT AddressBar([out] VARIANT_BOOL *Value);
152     [propput] HRESULT AddressBar([in] VARIANT_BOOL Value);
153     [propget] HRESULT Resizable([out] VARIANT_BOOL *Value);
154     [propput] HRESULT Resizable([in] VARIANT_BOOL Value);
155 }
156
157 [
158     object,
159     oleautomation,
160     uuid(85cb6900-4d95-11cf-960c-0080c7f4ee85)
161 ]
162 interface IShellWindows : IDispatch
163 {
164     [propget] HRESULT Count( [out] long *Count );
165     HRESULT Item( [in] VARIANT index, [out] IDispatch **Folder );
166     HRESULT _NewEnum( [out] IUnknown **ppunk );
167     HRESULT Register( [in] IDispatch *pid, [in] long hWnd, [in] int swClass,
168                 [out] long *plCookie );
169     HRESULT RegisterPending( [in] long lThread, [in] VARIANT *pvarloc,
170                 [in] VARIANT *varlocRoot, [in] int swClass, [out] long *plCookie );
171     HRESULT Revoke( [in] long Cookie );
172     HRESULT OnNavigate( [in] long Cookie, [out] VARIANT *pvarLoc );
173     HRESULT OnActivated( [in] long Cookie, [in] VARIANT fActive );
174     HRESULT FindWindowSW( [in] VARIANT *pvarLoc, [in] VARIANT *pvarLocRoot, 
175                 [in] int swClass, [out] long *phwnd, int swfwOptions,
176                 IDispatch **ppdispOut );
177     HRESULT OnCreated( [in] long lCookie, [in] IUnknown *punk );
178     HRESULT ProcessAttachDetach( [in] VARIANT_BOOL fAttach );
179 }
180
181 /* FIXME */
182 cpp_quote("DEFINE_GUID(CLSID_WebBrowser, 0x8856f961, 0x340a, 0x11d0, 0xa9, 0x6b, 0x00, 0xc0, 0x4f, 0xd7, 0x05, 0xa2);")