Load advpack.dll at runtime to avoid link problems with the platform
[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     FIXME("- no interface\n\tIID:\t%s\n", debugstr_guid(riid));
33
34     if (ppobj == NULL) return E_POINTER;
35     
36     return E_NOINTERFACE;
37 }
38
39 static ULONG WINAPI WB_AddRef(IWebBrowser *iface)
40 {
41     SHDOCVW_LockModule();
42
43     return 2; /* non-heap based object */
44 }
45
46 static ULONG WINAPI WB_Release(IWebBrowser *iface)
47 {
48     SHDOCVW_UnlockModule();
49
50     return 1; /* non-heap based object */
51 }
52
53 /* IDispatch methods */
54 static HRESULT WINAPI WB_GetTypeInfoCount(IWebBrowser *iface, UINT *pctinfo)
55 {
56     FIXME("stub \n");
57     return S_OK;
58 }
59
60 static HRESULT WINAPI WB_GetTypeInfo(IWebBrowser *iface, UINT iTInfo, LCID lcid,
61                                      LPTYPEINFO *ppTInfo)
62 {
63     FIXME("stub \n");
64     return S_OK;
65 }
66
67 static HRESULT WINAPI WB_GetIDsOfNames(IWebBrowser *iface, REFIID riid,
68                                        LPOLESTR *rgszNames, UINT cNames,
69                                        LCID lcid, DISPID *rgDispId)
70 {
71     FIXME("stub \n");
72     return S_OK;
73 }
74
75 static HRESULT WINAPI WB_Invoke(IWebBrowser *iface, DISPID dispIdMember,
76                                 REFIID riid, LCID lcid, WORD wFlags,
77                                 DISPPARAMS *pDispParams, VARIANT *pVarResult,
78                                 EXCEPINFO *pExepInfo, UINT *puArgErr)
79 {
80     FIXME("stub dispIdMember = %d, IID = %s\n", (int)dispIdMember, debugstr_guid(riid));
81     return S_OK;
82 }
83
84 /* IWebBrowser methods */
85 static HRESULT WINAPI WB_GoBack(IWebBrowser *iface)
86 {
87     FIXME("stub \n");
88     return S_OK;
89 }
90
91 static HRESULT WINAPI WB_GoForward(IWebBrowser *iface)
92 {
93     FIXME("stub \n");
94     return S_OK;
95 }
96
97 static HRESULT WINAPI WB_GoHome(IWebBrowser *iface)
98 {
99     FIXME("stub \n");
100     return S_OK;
101 }
102
103 static HRESULT WINAPI WB_GoSearch(IWebBrowser *iface)
104 {
105     FIXME("stub \n");
106     return S_OK;
107 }
108
109 static HRESULT WINAPI WB_Navigate(IWebBrowser *iface, BSTR URL,
110                                   VARIANT *Flags, VARIANT *TargetFrameName,
111                                   VARIANT *PostData, VARIANT *Headers)
112 {
113     FIXME("stub: URL = %p (%p, %p, %p, %p)\n", URL, Flags, TargetFrameName,
114           PostData, Headers);
115     return S_OK;
116 }
117
118 static HRESULT WINAPI WB_Refresh(IWebBrowser *iface)
119 {
120     FIXME("stub \n");
121     return S_OK;
122 }
123
124 static HRESULT WINAPI WB_Refresh2(IWebBrowser *iface, VARIANT *Level)
125 {
126     FIXME("stub: %p\n", Level);
127     return S_OK;
128 }
129
130 static HRESULT WINAPI WB_Stop(IWebBrowser *iface)
131 {
132     FIXME("stub \n");
133     return S_OK;
134 }
135
136 static HRESULT WINAPI WB_get_Application(IWebBrowser *iface, IDispatch **ppDisp)
137 {
138     FIXME("stub \n");
139     return S_OK;
140 }
141
142 static HRESULT WINAPI WB_get_Parent(IWebBrowser *iface, IDispatch **ppDisp)
143 {
144     FIXME("stub \n");
145     return S_OK;
146 }
147
148 static HRESULT WINAPI WB_get_Container(IWebBrowser *iface, IDispatch **ppDisp)
149 {
150     FIXME("stub \n");
151     return S_OK;
152 }
153
154 static HRESULT WINAPI WB_get_Document(IWebBrowser *iface, IDispatch **ppDisp)
155 {
156     FIXME("stub \n");
157     return S_OK;
158 }
159
160 static HRESULT WINAPI WB_get_TopLevelContainer(IWebBrowser *iface, VARIANT_BOOL *pBool)
161 {
162     FIXME("stub \n");
163     return S_OK;
164 }
165
166 static HRESULT WINAPI WB_get_Type(IWebBrowser *iface, BSTR *Type)
167 {
168     FIXME("stub \n");
169     return S_OK;
170 }
171
172 static HRESULT WINAPI WB_get_Left(IWebBrowser *iface, long *pl)
173 {
174     FIXME("stub \n");
175     return S_OK;
176 }
177
178 static HRESULT WINAPI WB_put_Left(IWebBrowser *iface, long Left)
179 {
180     FIXME("stub \n");
181     return S_OK;
182 }
183
184 static HRESULT WINAPI WB_get_Top(IWebBrowser *iface, long *pl)
185 {
186     FIXME("stub \n");
187     return S_OK;
188 }
189
190 static HRESULT WINAPI WB_put_Top(IWebBrowser *iface, long Top)
191 {
192     FIXME("stub \n");
193     return S_OK;
194 }
195
196 static HRESULT WINAPI WB_get_Width(IWebBrowser *iface, long *pl)
197 {
198     FIXME("stub \n");
199     return S_OK;
200 }
201
202 static HRESULT WINAPI WB_put_Width(IWebBrowser *iface, long Width)
203 {
204     FIXME("stub \n");
205     return S_OK;
206 }
207
208 static HRESULT WINAPI WB_get_Height(IWebBrowser *iface, long *pl)
209 {
210     FIXME("stub \n");
211     return S_OK;
212 }
213
214 static HRESULT WINAPI WB_put_Height(IWebBrowser *iface, long Height)
215 {
216     FIXME("stub \n");
217     return S_OK;
218 }
219
220 static HRESULT WINAPI WB_get_LocationName(IWebBrowser *iface, BSTR *LocationName)
221 {
222     FIXME("stub \n");
223     return S_OK;
224 }
225
226 static HRESULT WINAPI WB_get_LocationURL(IWebBrowser *iface, BSTR *LocationURL)
227 {
228     FIXME("stub \n");
229     return S_OK;
230 }
231
232 static HRESULT WINAPI WB_get_Busy(IWebBrowser *iface, VARIANT_BOOL *pBool)
233 {
234     FIXME("stub \n");
235     return S_OK;
236 }
237
238 /**********************************************************************
239  * IWebBrowser virtual function table for IE Web Browser component
240  */
241
242 static IWebBrowserVtbl WB_Vtbl =
243 {
244     WB_QueryInterface,
245     WB_AddRef,
246     WB_Release,
247     WB_GetTypeInfoCount,
248     WB_GetTypeInfo,
249     WB_GetIDsOfNames,
250     WB_Invoke,
251     WB_GoBack,
252     WB_GoForward,
253     WB_GoHome,
254     WB_GoSearch,
255     WB_Navigate,
256     WB_Refresh,
257     WB_Refresh2,
258     WB_Stop,
259     WB_get_Application,
260     WB_get_Parent,
261     WB_get_Container,
262     WB_get_Document,
263     WB_get_TopLevelContainer,
264     WB_get_Type,
265     WB_get_Left,
266     WB_put_Left,
267     WB_get_Top,
268     WB_put_Top,
269     WB_get_Width,
270     WB_put_Width,
271     WB_get_Height,
272     WB_put_Height,
273     WB_get_LocationName,
274     WB_get_LocationURL,
275     WB_get_Busy
276 };
277
278 IWebBrowserImpl SHDOCVW_WebBrowser = {&WB_Vtbl};