1 /**
2 * @file exdisp.h
3 * Copyright 2012, 2013 MinGW.org project
4 *
5 * Permission is hereby granted, free of charge, to any person obtaining a
6 * copy of this software and associated documentation files (the "Software"),
7 * to deal in the Software without restriction, including without limitation
8 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9 * and/or sell copies of the Software, and to permit persons to whom the
10 * Software is furnished to do so, subject to the following conditions:
11 *
12 * The above copyright notice and this permission notice (including the next
13 * paragraph) shall be included in all copies or substantial portions of the
14 * Software.
15 *
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22 * DEALINGS IN THE SOFTWARE.
23 */
24 #ifndef _EXDISP_H
25 #define _EXDISP_H
26 #pragma GCC system_header
27 #include <_mingw.h>
28
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32 #include <oaidl.h>
33 #include <ocidl.h>
34 #include <docobj.h>
35
36 EXTERN_C const CLSID CLSID_WebBrowser;
37 EXTERN_C const IID DIID_DWebBrowserEvents;
38
39 typedef enum {
40 navOpenInNewWindow = 0x1,
41 navNoHistory = 0x2,
42 navNoReadFromCache = 0x4,
43 navNoWriteTocache = 0x8,
44 navAllowAutosearch = 0x10,
45 navBrowserBar = 0x20,
46 navHyperLink = 0x40
47 } BrowserNavConstants;
48
49 EXTERN_C const IID IID_IWebBrowser;
50 #define INTERFACE IWebBrowser
DECLARE_INTERFACE_(IWebBrowser,IDispatch)51 DECLARE_INTERFACE_(IWebBrowser,IDispatch)
52 {
53 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
54 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
55 STDMETHOD_(ULONG,Release)(THIS) PURE;
56 STDMETHOD(GetTypeInfoCount)(THIS_ UINT*) PURE;
57 STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,LPTYPEINFO*) PURE;
58 STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID*) PURE;
59 STDMETHOD(Invoke)(THIS_ DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
60
61 STDMETHOD(GoBack)(THIS) PURE;
62 STDMETHOD(GoForward)(THIS) PURE;
63 STDMETHOD(GoHome)(THIS) PURE;
64 STDMETHOD(GoSearch)(THIS) PURE;
65 STDMETHOD(Navigate)(THIS_ BSTR,VARIANT*,VARIANT*,VARIANT*,VARIANT*) PURE;
66 STDMETHOD(Refresh)(THIS) PURE;
67 STDMETHOD(Refresh2)(THIS_ VARIANT*) PURE;
68 STDMETHOD(Stop)(THIS) PURE;
69 STDMETHOD(get_Application)(THIS_ IDispatch**) PURE;
70 STDMETHOD(get_Parent)(THIS_ IDispatch**) PURE;
71 STDMETHOD(get_Container)(THIS_ IDispatch**) PURE;
72 STDMETHOD(get_Document)(THIS_ IDispatch**) PURE;
73 STDMETHOD(get_TopLevelContainer)(THIS_ VARIANT_BOOL*) PURE;
74 STDMETHOD(get_Type)(THIS_ BSTR*) PURE;
75 STDMETHOD(get_Left)(THIS_ long*) PURE;
76 STDMETHOD(put_Left)(THIS_ long) PURE;
77 STDMETHOD(get_Top)(THIS_ long*) PURE;
78 STDMETHOD(put_Top)(THIS_ long) PURE;
79 STDMETHOD(get_Width)(THIS_ long*) PURE;
80 STDMETHOD(put_Width)(THIS_ long) PURE;
81 STDMETHOD(get_Height)(THIS_ long*) PURE;
82 STDMETHOD(put_Height)(THIS_ long) PURE;
83 STDMETHOD(get_LocationName)(THIS_ BSTR*) PURE;
84 STDMETHOD(get_LocationURL)(THIS_ BSTR*) PURE;
85 STDMETHOD(get_Busy)(THIS_ VARIANT_BOOL*) PURE;
86 };
87 #undef INTERFACE
88
89 EXTERN_C const IID IID_IWebBrowserApp;
90 #define INTERFACE IWebBrowserApp
DECLARE_INTERFACE_(IWebBrowserApp,IWebBrowser)91 DECLARE_INTERFACE_(IWebBrowserApp,IWebBrowser)
92 {
93 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
94 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
95 STDMETHOD_(ULONG,Release)(THIS) PURE;
96 STDMETHOD(GetTypeInfoCount)(THIS_ UINT*) PURE;
97 STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,LPTYPEINFO*) PURE;
98 STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID*) PURE;
99 STDMETHOD(Invoke)(THIS_ DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
100
101 STDMETHOD(GoBack)(THIS) PURE;
102 STDMETHOD(GoForward)(THIS) PURE;
103 STDMETHOD(GoHome)(THIS) PURE;
104 STDMETHOD(GoSearch)(THIS) PURE;
105 STDMETHOD(Navigate)(THIS_ BSTR,VARIANT*,VARIANT*,VARIANT*,VARIANT*) PURE;
106 STDMETHOD(Refresh)(THIS) PURE;
107 STDMETHOD(Refresh2)(THIS_ VARIANT*) PURE;
108 STDMETHOD(Stop)(THIS) PURE;
109 STDMETHOD(get_Application)(THIS_ IDispatch**) PURE;
110 STDMETHOD(get_Parent)(THIS_ IDispatch**) PURE;
111 STDMETHOD(get_Container)(THIS_ IDispatch**) PURE;
112 STDMETHOD(get_Document)(THIS_ IDispatch**) PURE;
113 STDMETHOD(get_TopLevelContainer)(THIS_ VARIANT_BOOL*) PURE;
114 STDMETHOD(get_Type)(THIS_ BSTR*) PURE;
115 STDMETHOD(get_Left)(THIS_ long*) PURE;
116 STDMETHOD(put_Left)(THIS_ long) PURE;
117 STDMETHOD(get_Top)(THIS_ long*) PURE;
118 STDMETHOD(put_Top)(THIS_ long) PURE;
119 STDMETHOD(get_Width)(THIS_ long*) PURE;
120 STDMETHOD(put_Width)(THIS_ long) PURE;
121 STDMETHOD(get_Height)(THIS_ long*) PURE;
122 STDMETHOD(put_Height)(THIS_ long) PURE;
123 STDMETHOD(get_LocationName)(THIS_ BSTR*) PURE;
124 STDMETHOD(get_LocationURL)(THIS_ BSTR*) PURE;
125 STDMETHOD(get_Busy)(THIS_ VARIANT_BOOL*) PURE;
126
127 STDMETHOD(Quit)(THIS) PURE;
128 STDMETHOD(ClientToWindow)(THIS_ int*,int*) PURE;
129 STDMETHOD(PutProperty)(THIS_ BSTR,VARIANT) PURE;
130 STDMETHOD(GetProperty)(THIS_ BSTR,VARIANT*) PURE;
131 STDMETHOD(get_Name)(THIS_ BSTR*) PURE;
132 STDMETHOD(get_HWND)(THIS_ long*) PURE;
133 STDMETHOD(get_FullName)(THIS_ BSTR*) PURE;
134 STDMETHOD(get_Path)(THIS_ BSTR*) PURE;
135 STDMETHOD(get_Visible)(THIS_ VARIANT_BOOL*) PURE;
136 STDMETHOD(put_Visible)(THIS_ VARIANT_BOOL) PURE;
137 STDMETHOD(get_StatusBar)(THIS_ VARIANT_BOOL*) PURE;
138 STDMETHOD(put_StatusBar)(THIS_ VARIANT_BOOL) PURE;
139 STDMETHOD(get_StatusText)(THIS_ BSTR*) PURE;
140 STDMETHOD(put_StatusText)(THIS_ BSTR) PURE;
141 STDMETHOD(get_ToolBar)(THIS_ int*) PURE;
142 STDMETHOD(put_ToolBar)(THIS_ int) PURE;
143 STDMETHOD(get_MenuBar)(THIS_ VARIANT_BOOL*) PURE;
144 STDMETHOD(put_MenuBar)(THIS_ VARIANT_BOOL) PURE;
145 STDMETHOD(get_FullScreen)(THIS_ VARIANT_BOOL*) PURE;
146 STDMETHOD(put_FullScreen)(THIS_ VARIANT_BOOL) PURE;
147 };
148 #undef INTERFACE
149
150 EXTERN_C const IID IID_IWebBrowser2;
151 #define INTERFACE IWebBrowser2
DECLARE_INTERFACE_(IWebBrowser2,IWebBrowserApp)152 DECLARE_INTERFACE_(IWebBrowser2,IWebBrowserApp)
153 {
154 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
155 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
156 STDMETHOD_(ULONG,Release)(THIS) PURE;
157 STDMETHOD(GetTypeInfoCount)(THIS_ UINT*) PURE;
158 STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,LPTYPEINFO*) PURE;
159 STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID*) PURE;
160 STDMETHOD(Invoke)(THIS_ DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
161
162 STDMETHOD(GoBack)(THIS) PURE;
163 STDMETHOD(GoForward)(THIS) PURE;
164 STDMETHOD(GoHome)(THIS) PURE;
165 STDMETHOD(GoSearch)(THIS) PURE;
166 STDMETHOD(Navigate)(THIS_ BSTR,VARIANT*,VARIANT*,VARIANT*,VARIANT*) PURE;
167 STDMETHOD(Refresh)(THIS) PURE;
168 STDMETHOD(Refresh2)(THIS_ VARIANT*) PURE;
169 STDMETHOD(Stop)(THIS) PURE;
170 STDMETHOD(get_Application)(THIS_ IDispatch**) PURE;
171 STDMETHOD(get_Parent)(THIS_ IDispatch**) PURE;
172 STDMETHOD(get_Container)(THIS_ IDispatch**) PURE;
173 STDMETHOD(get_Document)(THIS_ IDispatch**) PURE;
174 STDMETHOD(get_TopLevelContainer)(THIS_ VARIANT_BOOL*) PURE;
175 STDMETHOD(get_Type)(THIS_ BSTR*) PURE;
176 STDMETHOD(get_Left)(THIS_ long*) PURE;
177 STDMETHOD(put_Left)(THIS_ long) PURE;
178 STDMETHOD(get_Top)(THIS_ long*) PURE;
179 STDMETHOD(put_Top)(THIS_ long) PURE;
180 STDMETHOD(get_Width)(THIS_ long*) PURE;
181 STDMETHOD(put_Width)(THIS_ long) PURE;
182 STDMETHOD(get_Height)(THIS_ long*) PURE;
183 STDMETHOD(put_Height)(THIS_ long) PURE;
184 STDMETHOD(get_LocationName)(THIS_ BSTR*) PURE;
185 STDMETHOD(get_LocationURL)(THIS_ BSTR*) PURE;
186 STDMETHOD(get_Busy)(THIS_ VARIANT_BOOL*) PURE;
187
188 STDMETHOD(Quit)(THIS) PURE;
189 STDMETHOD(ClientToWindow)(THIS_ int*,int*) PURE;
190 STDMETHOD(PutProperty)(THIS_ BSTR,VARIANT) PURE;
191 STDMETHOD(GetProperty)(THIS_ BSTR,VARIANT*) PURE;
192 STDMETHOD(get_Name)(THIS_ BSTR*) PURE;
193 STDMETHOD(get_HWND)(THIS_ long*) PURE;
194 STDMETHOD(get_FullName)(THIS_ BSTR*) PURE;
195 STDMETHOD(get_Path)(THIS_ BSTR*) PURE;
196 STDMETHOD(get_Visible)(THIS_ VARIANT_BOOL*) PURE;
197 STDMETHOD(put_Visible)(THIS_ VARIANT_BOOL) PURE;
198 STDMETHOD(get_StatusBar)(THIS_ VARIANT_BOOL*) PURE;
199 STDMETHOD(put_StatusBar)(THIS_ VARIANT_BOOL) PURE;
200 STDMETHOD(get_StatusText)(THIS_ BSTR*) PURE;
201 STDMETHOD(put_StatusText)(THIS_ BSTR) PURE;
202 STDMETHOD(get_ToolBar)(THIS_ int*) PURE;
203 STDMETHOD(put_ToolBar)(THIS_ int) PURE;
204 STDMETHOD(get_MenuBar)(THIS_ VARIANT_BOOL*) PURE;
205 STDMETHOD(put_MenuBar)(THIS_ VARIANT_BOOL) PURE;
206 STDMETHOD(get_FullScreen)(THIS_ VARIANT_BOOL*) PURE;
207 STDMETHOD(put_FullScreen)(THIS_ VARIANT_BOOL) PURE;
208
209 STDMETHOD(Navigate2)(THIS_ VARIANT*,VARIANT*,VARIANT*,VARIANT*,VARIANT*) PURE;
210 STDMETHOD(QueryStatusWB)(THIS_ OLECMDID,OLECMDF*) PURE;
211 STDMETHOD(ExecWB)(THIS_ OLECMDID,OLECMDEXECOPT,VARIANT*,VARIANT*) PURE;
212 STDMETHOD(ShowBrowserBar)(THIS_ VARIANT*,VARIANT*,VARIANT*) PURE;
213 STDMETHOD(get_ReadyState)(THIS_ READYSTATE*) PURE;
214 STDMETHOD(get_Offline)(THIS_ VARIANT_BOOL*) PURE;
215 STDMETHOD(put_Offline)(THIS_ VARIANT_BOOL) PURE;
216 STDMETHOD(get_Silent)(THIS_ VARIANT_BOOL*) PURE;
217 STDMETHOD(put_Silent)(THIS_ VARIANT_BOOL) PURE;
218 STDMETHOD(get_RegisterAsBrowser)(THIS_ VARIANT_BOOL*) PURE;
219 STDMETHOD(put_RegisterAsBrowser)(THIS_ VARIANT_BOOL) PURE;
220 STDMETHOD(get_RegistaerAsDropTarget)(THIS_ VARIANT_BOOL*) PURE;
221 STDMETHOD(put_RegisterAsDropTarget)(THIS_ VARIANT_BOOL) PURE;
222 STDMETHOD(get_TheaterMode)(THIS_ VARIANT_BOOL*) PURE;
223 STDMETHOD(put_TheaterMode)(THIS_ VARIANT_BOOL) PURE;
224 STDMETHOD(get_AddressBar)(THIS_ VARIANT_BOOL*) PURE;
225 STDMETHOD(put_AddressBar)(THIS_ VARIANT_BOOL) PURE;
226 STDMETHOD(get_Resizable)(THIS_ VARIANT_BOOL*) PURE;
227 STDMETHOD(put_Resizable)(THIS_ VARIANT_BOOL) PURE;
228 };
229 #undef INTERFACE
230
231 EXTERN_C const IID DIID_DWebBrowserEvents2;
232 #define INTERFACE DWebBrowserEvents2
DECLARE_INTERFACE_(DWebBrowserEvents2,IDispatch)233 DECLARE_INTERFACE_(DWebBrowserEvents2,IDispatch)
234 {
235 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
236 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
237 STDMETHOD_(ULONG,Release)(THIS) PURE;
238 STDMETHOD(GetTypeInfoCount)(THIS_ UINT*) PURE;
239 STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,LPTYPEINFO*) PURE;
240 STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID*) PURE;
241 STDMETHOD(Invoke)(THIS_ DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
242 };
243 #undef INTERFACE
244
245 #ifdef __cplusplus
246 }
247 #endif
248 #endif
249