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