Removed some uses of the non-standard ICOM_THIS macro.
[wine] / dlls / shdocvw / webbrowser.c
1 /*
2  * Implementation of IWebBrowser interface for IE Web Browser control
3  *
4  * Copyright 2001 John R. Sheets (for CodeWeavers)
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19  */
20
21 #include "wine/debug.h"
22 #include "shdocvw.h"
23
24 WINE_DEFAULT_DEBUG_CHANNEL(shdocvw);
25
26 /**********************************************************************
27  * Implement the IWebBrowser interface
28  */
29
30 static HRESULT WINAPI WB_QueryInterface(IWebBrowser *iface, REFIID riid, LPVOID *ppobj)
31 {
32     IWebBrowserImpl *This = (IWebBrowserImpl *)iface;
33
34     FIXME("(%p)->(%s,%p),stub!\n", This, debugstr_guid(riid), ppobj);
35     return E_NOINTERFACE;
36 }
37
38 static ULONG WINAPI WB_AddRef(IWebBrowser *iface)
39 {
40     IWebBrowserImpl *This = (IWebBrowserImpl *)iface;
41
42     TRACE("\n");
43     return ++(This->ref);
44 }
45
46 static ULONG WINAPI WB_Release(IWebBrowser *iface)
47 {
48     IWebBrowserImpl *This = (IWebBrowserImpl *)iface;
49
50     /* static class, won't be freed */
51     TRACE("\n");
52     return --(This->ref);
53 }
54
55 /* IDispatch methods */
56 static HRESULT WINAPI WB_GetTypeInfoCount(IWebBrowser *iface, UINT *pctinfo)
57 {
58     FIXME("stub \n");
59     return S_OK;
60 }
61
62 static HRESULT WINAPI WB_GetTypeInfo(IWebBrowser *iface, UINT iTInfo, LCID lcid,
63                                      LPTYPEINFO *ppTInfo)
64 {
65     FIXME("stub \n");
66     return S_OK;
67 }
68
69 static HRESULT WINAPI WB_GetIDsOfNames(IWebBrowser *iface, REFIID riid,
70                                        LPOLESTR *rgszNames, UINT cNames,
71                                        LCID lcid, DISPID *rgDispId)
72 {
73     FIXME("stub \n");
74     return S_OK;
75 }
76
77 static HRESULT WINAPI WB_Invoke(IWebBrowser *iface, DISPID dispIdMember,
78                                 REFIID riid, LCID lcid, WORD wFlags,
79                                 DISPPARAMS *pDispParams, VARIANT *pVarResult,
80                                 EXCEPINFO *pExepInfo, UINT *puArgErr)
81 {
82     FIXME("stub dispIdMember = %d, IID = %s\n", (int)dispIdMember, debugstr_guid(riid));
83     return S_OK;
84 }
85
86 /* IWebBrowser methods */
87 static HRESULT WINAPI WB_GoBack(IWebBrowser *iface)
88 {
89     FIXME("stub \n");
90     return S_OK;
91 }
92
93 static HRESULT WINAPI WB_GoForward(IWebBrowser *iface)
94 {
95     FIXME("stub \n");
96     return S_OK;
97 }
98
99 static HRESULT WINAPI WB_GoHome(IWebBrowser *iface)
100 {
101     FIXME("stub \n");
102     return S_OK;
103 }
104
105 static HRESULT WINAPI WB_GoSearch(IWebBrowser *iface)
106 {
107     FIXME("stub \n");
108     return S_OK;
109 }
110
111 static HRESULT WINAPI WB_Navigate(IWebBrowser *iface, BSTR URL,
112                                   VARIANT *Flags, VARIANT *TargetFrameName,
113                                   VARIANT *PostData, VARIANT *Headers)
114 {
115     FIXME("stub: URL = %p (%p, %p, %p, %p)\n", URL, Flags, TargetFrameName,
116           PostData, Headers);
117     return S_OK;
118 }
119
120 static HRESULT WINAPI WB_Refresh(IWebBrowser *iface)
121 {
122     FIXME("stub \n");
123     return S_OK;
124 }
125
126 static HRESULT WINAPI WB_Refresh2(IWebBrowser *iface, VARIANT *Level)
127 {
128     FIXME("stub: %p\n", Level);
129     return S_OK;
130 }
131
132 static HRESULT WINAPI WB_Stop(IWebBrowser *iface)
133 {
134     FIXME("stub \n");
135     return S_OK;
136 }
137
138 static HRESULT WINAPI WB_get_Application(IWebBrowser *iface, IDispatch **ppDisp)
139 {
140     FIXME("stub \n");
141     return S_OK;
142 }
143
144 static HRESULT WINAPI WB_get_Parent(IWebBrowser *iface, IDispatch **ppDisp)
145 {
146     FIXME("stub \n");
147     return S_OK;
148 }
149
150 static HRESULT WINAPI WB_get_Container(IWebBrowser *iface, IDispatch **ppDisp)
151 {
152     FIXME("stub \n");
153     return S_OK;
154 }
155
156 static HRESULT WINAPI WB_get_Document(IWebBrowser *iface, IDispatch **ppDisp)
157 {
158     FIXME("stub \n");
159     return S_OK;
160 }
161
162 static HRESULT WINAPI WB_get_TopLevelContainer(IWebBrowser *iface, VARIANT_BOOL *pBool)
163 {
164     FIXME("stub \n");
165     return S_OK;
166 }
167
168 static HRESULT WINAPI WB_get_Type(IWebBrowser *iface, BSTR *Type)
169 {
170     FIXME("stub \n");
171     return S_OK;
172 }
173
174 static HRESULT WINAPI WB_get_Left(IWebBrowser *iface, long *pl)
175 {
176     FIXME("stub \n");
177     return S_OK;
178 }
179
180 static HRESULT WINAPI WB_put_Left(IWebBrowser *iface, long Left)
181 {
182     FIXME("stub \n");
183     return S_OK;
184 }
185
186 static HRESULT WINAPI WB_get_Top(IWebBrowser *iface, long *pl)
187 {
188     FIXME("stub \n");
189     return S_OK;
190 }
191
192 static HRESULT WINAPI WB_put_Top(IWebBrowser *iface, long Top)
193 {
194     FIXME("stub \n");
195     return S_OK;
196 }
197
198 static HRESULT WINAPI WB_get_Width(IWebBrowser *iface, long *pl)
199 {
200     FIXME("stub \n");
201     return S_OK;
202 }
203
204 static HRESULT WINAPI WB_put_Width(IWebBrowser *iface, long Width)
205 {
206     FIXME("stub \n");
207     return S_OK;
208 }
209
210 static HRESULT WINAPI WB_get_Height(IWebBrowser *iface, long *pl)
211 {
212     FIXME("stub \n");
213     return S_OK;
214 }
215
216 static HRESULT WINAPI WB_put_Height(IWebBrowser *iface, long Height)
217 {
218     FIXME("stub \n");
219     return S_OK;
220 }
221
222 static HRESULT WINAPI WB_get_LocationName(IWebBrowser *iface, BSTR *LocationName)
223 {
224     FIXME("stub \n");
225     return S_OK;
226 }
227
228 static HRESULT WINAPI WB_get_LocationURL(IWebBrowser *iface, BSTR *LocationURL)
229 {
230     FIXME("stub \n");
231     return S_OK;
232 }
233
234 static HRESULT WINAPI WB_get_Busy(IWebBrowser *iface, VARIANT_BOOL *pBool)
235 {
236     FIXME("stub \n");
237     return S_OK;
238 }
239
240 /**********************************************************************
241  * IWebBrowser virtual function table for IE Web Browser component
242  */
243
244 static IWebBrowserVtbl WB_Vtbl =
245 {
246     WB_QueryInterface,
247     WB_AddRef,
248     WB_Release,
249     WB_GetTypeInfoCount,
250     WB_GetTypeInfo,
251     WB_GetIDsOfNames,
252     WB_Invoke,
253     WB_GoBack,
254     WB_GoForward,
255     WB_GoHome,
256     WB_GoSearch,
257     WB_Navigate,
258     WB_Refresh,
259     WB_Refresh2,
260     WB_Stop,
261     WB_get_Application,
262     WB_get_Parent,
263     WB_get_Container,
264     WB_get_Document,
265     WB_get_TopLevelContainer,
266     WB_get_Type,
267     WB_get_Left,
268     WB_put_Left,
269     WB_get_Top,
270     WB_put_Top,
271     WB_get_Width,
272     WB_put_Width,
273     WB_get_Height,
274     WB_put_Height,
275     WB_get_LocationName,
276     WB_get_LocationURL,
277     WB_get_Busy
278 };
279
280 IWebBrowserImpl SHDOCVW_WebBrowser = { &WB_Vtbl, 1 };