ReactOS  0.4.13-dev-922-g2fbff73
ie.c
Go to the documentation of this file.
1 /*
2  * Copyright 2006 Jacek Caban for CodeWeavers
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17  */
18 
19 #include "ieframe.h"
20 
21 #include "wine/debug.h"
22 
24 
25 static inline InternetExplorer *impl_from_IWebBrowser2(IWebBrowser2 *iface)
26 {
27  return CONTAINING_RECORD(iface, InternetExplorer, IWebBrowser2_iface);
28 }
29 
31 {
33 
34  *ppv = NULL;
35 
37  TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
38  *ppv = &This->IWebBrowser2_iface;
39  }else if(IsEqualGUID(&IID_IDispatch, riid)) {
40  TRACE("(%p)->(IID_IDispatch %p)\n", This, ppv);
41  *ppv = &This->IWebBrowser2_iface;
42  }else if(IsEqualGUID(&IID_IWebBrowser, riid)) {
43  TRACE("(%p)->(IID_IWebBrowser %p)\n", This, ppv);
44  *ppv = &This->IWebBrowser2_iface;
45  }else if(IsEqualGUID(&IID_IWebBrowserApp, riid)) {
46  TRACE("(%p)->(IID_IWebBrowserApp %p)\n", This, ppv);
47  *ppv = &This->IWebBrowser2_iface;
48  }else if(IsEqualGUID(&IID_IWebBrowser2, riid)) {
49  TRACE("(%p)->(IID_IWebBrowser2 %p)\n", This, ppv);
50  *ppv = &This->IWebBrowser2_iface;
52  TRACE("(%p)->(IID_IConnectionPointContainer %p)\n", This, ppv);
53  *ppv = &This->doc_host.cps.IConnectionPointContainer_iface;
54  }else if(IsEqualGUID(&IID_IExternalConnection, riid)) {
55  TRACE("(%p)->(IID_IExternalConnection %p)\n", This, ppv);
56  *ppv = &This->IExternalConnection_iface;
57  }else if(IsEqualGUID(&IID_IServiceProvider, riid)) {
58  TRACE("(%p)->(IID_IServiceProvider %p)\n", This, ppv);
59  *ppv = &This->IServiceProvider_iface;
60  }else if(HlinkFrame_QI(&This->hlink_frame, riid, ppv)) {
61  return S_OK;
62  }
63 
64  if(*ppv) {
65  IUnknown_AddRef((IUnknown*)*ppv);
66  return S_OK;
67  }
68 
69  WARN("(%p)->(%s %p) interface not supported\n", This, debugstr_guid(riid), ppv);
70  return E_NOINTERFACE;
71 }
72 
73 static ULONG WINAPI InternetExplorer_AddRef(IWebBrowser2 *iface)
74 {
77  TRACE("(%p) ref=%d\n", This, ref);
78  return ref;
79 }
80 
81 static ULONG WINAPI InternetExplorer_Release(IWebBrowser2 *iface)
82 {
85 
86  TRACE("(%p) ref=%d\n", This, ref);
87 
88  if(!ref) {
89  deactivate_document(&This->doc_host);
90  DocHost_Release(&This->doc_host);
91 
92  if(This->frame_hwnd)
93  DestroyWindow(This->frame_hwnd);
94  list_remove(&This->entry);
95  heap_free(This);
96 
97  released_obj();
98  }
99 
100  return ref;
101 }
102 
103 static HRESULT WINAPI InternetExplorer_GetTypeInfoCount(IWebBrowser2 *iface, UINT *pctinfo)
104 {
106  FIXME("(%p)->(%p)\n", This, pctinfo);
107  return E_NOTIMPL;
108 }
109 
110 static HRESULT WINAPI InternetExplorer_GetTypeInfo(IWebBrowser2 *iface, UINT iTInfo, LCID lcid,
111  LPTYPEINFO *ppTInfo)
112 {
114  FIXME("(%p)->(%d %d %p)\n", This, iTInfo, lcid, ppTInfo);
115  return E_NOTIMPL;
116 }
117 
119  LPOLESTR *rgszNames, UINT cNames,
120  LCID lcid, DISPID *rgDispId)
121 {
123  FIXME("(%p)->(%s %p %d %d %p)\n", This, debugstr_guid(riid), rgszNames, cNames,
124  lcid, rgDispId);
125  return E_NOTIMPL;
126 }
127 
128 static HRESULT WINAPI InternetExplorer_Invoke(IWebBrowser2 *iface, DISPID dispIdMember,
129  REFIID riid, LCID lcid, WORD wFlags,
130  DISPPARAMS *pDispParams, VARIANT *pVarResult,
131  EXCEPINFO *pExepInfo, UINT *puArgErr)
132 {
134  FIXME("(%p)->(%d %s %d %08x %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid),
135  lcid, wFlags, pDispParams, pVarResult, pExepInfo, puArgErr);
136  return E_NOTIMPL;
137 }
138 
139 static HRESULT WINAPI InternetExplorer_GoBack(IWebBrowser2 *iface)
140 {
142  TRACE("(%p)\n", This);
143  return go_back(&This->doc_host);
144 }
145 
146 static HRESULT WINAPI InternetExplorer_GoForward(IWebBrowser2 *iface)
147 {
149  TRACE("(%p)\n", This);
150  return go_forward(&This->doc_host);
151 }
152 
153 static HRESULT WINAPI InternetExplorer_GoHome(IWebBrowser2 *iface)
154 {
156  TRACE("(%p)\n", This);
157  return go_home(&This->doc_host);
158 }
159 
160 static HRESULT WINAPI InternetExplorer_GoSearch(IWebBrowser2 *iface)
161 {
163  FIXME("(%p)\n", This);
164  return E_NOTIMPL;
165 }
166 
167 static HRESULT WINAPI InternetExplorer_Navigate(IWebBrowser2 *iface, BSTR szUrl,
168  VARIANT *Flags, VARIANT *TargetFrameName,
169  VARIANT *PostData, VARIANT *Headers)
170 {
172 
173  TRACE("(%p)->(%s %s %s %s %s)\n", This, debugstr_w(szUrl), debugstr_variant(Flags),
174  debugstr_variant(TargetFrameName), debugstr_variant(PostData), debugstr_variant(Headers));
175 
176  return navigate_url(&This->doc_host, szUrl, Flags, TargetFrameName, PostData, Headers);
177 }
178 
179 static HRESULT WINAPI InternetExplorer_Refresh(IWebBrowser2 *iface)
180 {
182 
183  TRACE("(%p)\n", This);
184 
185  return refresh_document(&This->doc_host, NULL);
186 }
187 
188 static HRESULT WINAPI InternetExplorer_Refresh2(IWebBrowser2 *iface, VARIANT *Level)
189 {
191 
192  TRACE("(%p)->(%s)\n", This, debugstr_variant(Level));
193 
194  return refresh_document(&This->doc_host, Level);
195 }
196 
197 static HRESULT WINAPI InternetExplorer_Stop(IWebBrowser2 *iface)
198 {
200  FIXME("(%p)\n", This);
201  return E_NOTIMPL;
202 }
203 
204 static HRESULT WINAPI InternetExplorer_get_Application(IWebBrowser2 *iface, IDispatch **ppDisp)
205 {
207  FIXME("(%p)->(%p)\n", This, ppDisp);
208  return E_NOTIMPL;
209 }
210 
211 static HRESULT WINAPI InternetExplorer_get_Parent(IWebBrowser2 *iface, IDispatch **ppDisp)
212 {
214  FIXME("(%p)->(%p)\n", This, ppDisp);
215  return E_NOTIMPL;
216 }
217 
218 static HRESULT WINAPI InternetExplorer_get_Container(IWebBrowser2 *iface, IDispatch **ppDisp)
219 {
221  FIXME("(%p)->(%p)\n", This, ppDisp);
222  return E_NOTIMPL;
223 }
224 
225 static HRESULT WINAPI InternetExplorer_get_Document(IWebBrowser2 *iface, IDispatch **ppDisp)
226 {
228  FIXME("(%p)->(%p)\n", This, ppDisp);
229  return E_NOTIMPL;
230 }
231 
233 {
235  FIXME("(%p)->(%p)\n", This, pBool);
236  return E_NOTIMPL;
237 }
238 
239 static HRESULT WINAPI InternetExplorer_get_Type(IWebBrowser2 *iface, BSTR *Type)
240 {
242  FIXME("(%p)->(%p)\n", This, Type);
243  return E_NOTIMPL;
244 }
245 
246 static HRESULT WINAPI InternetExplorer_get_Left(IWebBrowser2 *iface, LONG *pl)
247 {
249  FIXME("(%p)->(%p)\n", This, pl);
250  return E_NOTIMPL;
251 }
252 
253 static HRESULT WINAPI InternetExplorer_put_Left(IWebBrowser2 *iface, LONG Left)
254 {
256  FIXME("(%p)->(%d)\n", This, Left);
257  return E_NOTIMPL;
258 }
259 
260 static HRESULT WINAPI InternetExplorer_get_Top(IWebBrowser2 *iface, LONG *pl)
261 {
263  FIXME("(%p)->(%p)\n", This, pl);
264  return E_NOTIMPL;
265 }
266 
267 static HRESULT WINAPI InternetExplorer_put_Top(IWebBrowser2 *iface, LONG Top)
268 {
270  FIXME("(%p)->(%d)\n", This, Top);
271  return E_NOTIMPL;
272 }
273 
274 static HRESULT WINAPI InternetExplorer_get_Width(IWebBrowser2 *iface, LONG *pl)
275 {
277  FIXME("(%p)->(%p)\n", This, pl);
278  return E_NOTIMPL;
279 }
280 
281 static HRESULT WINAPI InternetExplorer_put_Width(IWebBrowser2 *iface, LONG Width)
282 {
284  FIXME("(%p)->(%d)\n", This, Width);
285  return E_NOTIMPL;
286 }
287 
288 static HRESULT WINAPI InternetExplorer_get_Height(IWebBrowser2 *iface, LONG *pl)
289 {
291  FIXME("(%p)->(%p)\n", This, pl);
292  return E_NOTIMPL;
293 }
294 
295 static HRESULT WINAPI InternetExplorer_put_Height(IWebBrowser2 *iface, LONG Height)
296 {
298  FIXME("(%p)->(%d)\n", This, Height);
299  return E_NOTIMPL;
300 }
301 
302 static HRESULT WINAPI InternetExplorer_get_LocationName(IWebBrowser2 *iface, BSTR *LocationName)
303 {
305  FIXME("(%p)->(%p)\n", This, LocationName);
306  return E_NOTIMPL;
307 }
308 
309 static HRESULT WINAPI InternetExplorer_get_LocationURL(IWebBrowser2 *iface, BSTR *LocationURL)
310 {
312 
313  TRACE("(%p)->(%p)\n", This, LocationURL);
314 
315  return get_location_url(&This->doc_host, LocationURL);
316 }
317 
318 static HRESULT WINAPI InternetExplorer_get_Busy(IWebBrowser2 *iface, VARIANT_BOOL *pBool)
319 {
321  FIXME("(%p)->(%p)\n", This, pBool);
322  return E_NOTIMPL;
323 }
324 
325 static HRESULT WINAPI InternetExplorer_Quit(IWebBrowser2 *iface)
326 {
328  FIXME("(%p)\n", This);
329  return E_NOTIMPL;
330 }
331 
332 static HRESULT WINAPI InternetExplorer_ClientToWindow(IWebBrowser2 *iface, int *pcx, int *pcy)
333 {
335  FIXME("(%p)->(%p %p)\n", This, pcx, pcy);
336  return E_NOTIMPL;
337 }
338 
339 static HRESULT WINAPI InternetExplorer_PutProperty(IWebBrowser2 *iface, BSTR szProperty, VARIANT vtValue)
340 {
342  FIXME("(%p)->(%s %s)\n", This, debugstr_w(szProperty), debugstr_variant(&vtValue));
343  return E_NOTIMPL;
344 }
345 
346 static HRESULT WINAPI InternetExplorer_GetProperty(IWebBrowser2 *iface, BSTR szProperty, VARIANT *pvtValue)
347 {
349  FIXME("(%p)->(%s %p)\n", This, debugstr_w(szProperty), pvtValue);
350  return E_NOTIMPL;
351 }
352 
353 static HRESULT WINAPI InternetExplorer_get_Name(IWebBrowser2 *iface, BSTR *Name)
354 {
356  FIXME("(%p)->(%p)\n", This, Name);
357  return E_NOTIMPL;
358 }
359 
360 static HRESULT WINAPI InternetExplorer_get_HWND(IWebBrowser2 *iface, SHANDLE_PTR *pHWND)
361 {
363 
364  TRACE("(%p)->(%p)\n", This, pHWND);
365 
366  *pHWND = (SHANDLE_PTR)This->frame_hwnd;
367  return S_OK;
368 }
369 
371 {
373  FIXME("(%p)->(%p)\n", This, FullName);
374  return E_NOTIMPL;
375 }
376 
377 static HRESULT WINAPI InternetExplorer_get_Path(IWebBrowser2 *iface, BSTR *Path)
378 {
380  FIXME("(%p)->(%p)\n", This, Path);
381  return E_NOTIMPL;
382 }
383 
384 static HRESULT WINAPI InternetExplorer_get_Visible(IWebBrowser2 *iface, VARIANT_BOOL *pBool)
385 {
387 
388  TRACE("(%p)->(%p)\n", This, pBool);
389 
390  *pBool = IsWindowVisible(This->frame_hwnd) ? VARIANT_TRUE : VARIANT_FALSE;
391  return S_OK;
392 }
393 
395 {
397  TRACE("(%p)->(%x)\n", This, Value);
398 
399  ShowWindow(This->frame_hwnd, Value ? SW_SHOW : SW_HIDE);
400 
401  return S_OK;
402 }
403 
404 static HRESULT WINAPI InternetExplorer_get_StatusBar(IWebBrowser2 *iface, VARIANT_BOOL *pBool)
405 {
407  FIXME("(%p)->(%p)\n", This, pBool);
408  return E_NOTIMPL;
409 }
410 
412 {
414  FIXME("(%p)->(%x)\n", This, Value);
415  return E_NOTIMPL;
416 }
417 
418 static HRESULT WINAPI InternetExplorer_get_StatusText(IWebBrowser2 *iface, BSTR *StatusText)
419 {
421  FIXME("(%p)->(%p)\n", This, StatusText);
422  return E_NOTIMPL;
423 }
424 
425 static HRESULT WINAPI InternetExplorer_put_StatusText(IWebBrowser2 *iface, BSTR StatusText)
426 {
428 
429  TRACE("(%p)->(%s)\n", This, debugstr_w(StatusText));
430 
431  return update_ie_statustext(This, StatusText);
432 }
433 
434 static HRESULT WINAPI InternetExplorer_get_ToolBar(IWebBrowser2 *iface, int *Value)
435 {
437  FIXME("(%p)->(%p)\n", This, Value);
438  return E_NOTIMPL;
439 }
440 
441 static HRESULT WINAPI InternetExplorer_put_ToolBar(IWebBrowser2 *iface, int Value)
442 {
444  FIXME("(%p)->(%d)\n", This, Value);
445  return E_NOTIMPL;
446 }
447 
449 {
451  FIXME("(%p)->(%p)\n", This, Value);
452  return E_NOTIMPL;
453 }
454 
456 {
458  HMENU menu = NULL;
459 
460  TRACE("(%p)->(%x)\n", This, Value);
461 
462  if(Value)
463  menu = This->menu;
464 
465  if(!SetMenu(This->frame_hwnd, menu))
467 
468  return S_OK;
469 }
470 
471 static HRESULT WINAPI InternetExplorer_get_FullScreen(IWebBrowser2 *iface, VARIANT_BOOL *pbFullScreen)
472 {
474  FIXME("(%p)->(%p)\n", This, pbFullScreen);
475  return E_NOTIMPL;
476 }
477 
478 static HRESULT WINAPI InternetExplorer_put_FullScreen(IWebBrowser2 *iface, VARIANT_BOOL bFullScreen)
479 {
481  FIXME("(%p)->(%x)\n", This, bFullScreen);
482  return E_NOTIMPL;
483 }
484 
485 static HRESULT WINAPI InternetExplorer_Navigate2(IWebBrowser2 *iface, VARIANT *URL, VARIANT *Flags,
486  VARIANT *TargetFrameName, VARIANT *PostData, VARIANT *Headers)
487 {
489 
490  TRACE("(%p)->(%s %s %s %s %s)\n", This, debugstr_variant(URL), debugstr_variant(Flags),
491  debugstr_variant(TargetFrameName), debugstr_variant(PostData), debugstr_variant(Headers));
492 
493  if(!URL)
494  return S_OK;
495 
496  if(V_VT(URL) != VT_BSTR) {
497  FIXME("Unsupported V_VT(URL) %d\n", V_VT(URL));
498  return E_INVALIDARG;
499  }
500 
501  return navigate_url(&This->doc_host, V_BSTR(URL), Flags, TargetFrameName, PostData, Headers);
502 }
503 
504 static HRESULT WINAPI InternetExplorer_QueryStatusWB(IWebBrowser2 *iface, OLECMDID cmdID, OLECMDF *pcmdf)
505 {
507  FIXME("(%p)->(%d %p)\n", This, cmdID, pcmdf);
508  return E_NOTIMPL;
509 }
510 
511 static HRESULT WINAPI InternetExplorer_ExecWB(IWebBrowser2 *iface, OLECMDID cmdID,
512  OLECMDEXECOPT cmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut)
513 {
515  FIXME("(%p)->(%d %d %s %p)\n", This, cmdID, cmdexecopt, debugstr_variant(pvaIn), pvaOut);
516  return E_NOTIMPL;
517 }
518 
519 static HRESULT WINAPI InternetExplorer_ShowBrowserBar(IWebBrowser2 *iface, VARIANT *pvaClsid,
520  VARIANT *pvarShow, VARIANT *pvarSize)
521 {
523  FIXME("(%p)->(%s %s %s)\n", This, debugstr_variant(pvaClsid), debugstr_variant(pvarShow),
524  debugstr_variant(pvarSize));
525  return E_NOTIMPL;
526 }
527 
528 static HRESULT WINAPI InternetExplorer_get_ReadyState(IWebBrowser2 *iface, READYSTATE *lpReadyState)
529 {
531  FIXME("(%p)->(%p)\n", This, lpReadyState);
532  return E_NOTIMPL;
533 }
534 
535 static HRESULT WINAPI InternetExplorer_get_Offline(IWebBrowser2 *iface, VARIANT_BOOL *pbOffline)
536 {
538  FIXME("(%p)->(%p)\n", This, pbOffline);
539  return E_NOTIMPL;
540 }
541 
542 static HRESULT WINAPI InternetExplorer_put_Offline(IWebBrowser2 *iface, VARIANT_BOOL bOffline)
543 {
545  FIXME("(%p)->(%x)\n", This, bOffline);
546  return E_NOTIMPL;
547 }
548 
549 static HRESULT WINAPI InternetExplorer_get_Silent(IWebBrowser2 *iface, VARIANT_BOOL *pbSilent)
550 {
552  FIXME("(%p)->(%p)\n", This, pbSilent);
553  return E_NOTIMPL;
554 }
555 
556 static HRESULT WINAPI InternetExplorer_put_Silent(IWebBrowser2 *iface, VARIANT_BOOL bSilent)
557 {
559  FIXME("(%p)->(%x)\n", This, bSilent);
560  return E_NOTIMPL;
561 }
562 
564  VARIANT_BOOL *pbRegister)
565 {
567  FIXME("(%p)->(%p)\n", This, pbRegister);
568  return E_NOTIMPL;
569 }
570 
572  VARIANT_BOOL bRegister)
573 {
575  FIXME("(%p)->(%x)\n", This, bRegister);
576  return E_NOTIMPL;
577 }
578 
580  VARIANT_BOOL *pbRegister)
581 {
583  FIXME("(%p)->(%p)\n", This, pbRegister);
584  return E_NOTIMPL;
585 }
586 
588  VARIANT_BOOL bRegister)
589 {
591  FIXME("(%p)->(%x)\n", This, bRegister);
592  return E_NOTIMPL;
593 }
594 
595 static HRESULT WINAPI InternetExplorer_get_TheaterMode(IWebBrowser2 *iface, VARIANT_BOOL *pbRegister)
596 {
598  FIXME("(%p)->(%p)\n", This, pbRegister);
599  return E_NOTIMPL;
600 }
601 
602 static HRESULT WINAPI InternetExplorer_put_TheaterMode(IWebBrowser2 *iface, VARIANT_BOOL bRegister)
603 {
605  FIXME("(%p)->(%x)\n", This, bRegister);
606  return E_NOTIMPL;
607 }
608 
610 {
612  FIXME("(%p)->(%p)\n", This, Value);
613  return E_NOTIMPL;
614 }
615 
617 {
619  FIXME("(%p)->(%x)\n", This, Value);
620  return E_NOTIMPL;
621 }
622 
624 {
626  FIXME("(%p)->(%p)\n", This, Value);
627  return E_NOTIMPL;
628 }
629 
631 {
633  FIXME("(%p)->(%x)\n", This, Value);
634  return E_NOTIMPL;
635 }
636 
637 static const IWebBrowser2Vtbl InternetExplorerVtbl =
638 {
710 };
711 
713 {
714  return CONTAINING_RECORD(iface, InternetExplorer, IExternalConnection_iface);
715 }
716 
717 /*
718  * Document may keep references to InternetExplorer object causing circular references.
719  * We keep track of external references and release the document object when all
720  * external references are released. A visible main window is also considered as
721  * an external reference.
722  */
724 {
725  LONG ref = InterlockedDecrement(&This->extern_ref);
726 
727  TRACE("ref = %d\n", ref);
728 
729  if(ref)
730  return ref;
731 
732  if(!last_closes) {
733  WARN("Last external connection released with FALSE last_closes.\n");
734  return ref;
735  }
736 
737  deactivate_document(&This->doc_host);
738  return ref;
739 }
740 
742 {
744  return IWebBrowser2_QueryInterface(&This->IWebBrowser2_iface, riid, ppv);
745 }
746 
748 {
750  return IWebBrowser2_AddRef(&This->IWebBrowser2_iface);
751 }
752 
754 {
756  return IWebBrowser2_Release(&This->IWebBrowser2_iface);
757 }
758 
760 {
762 
763  TRACE("(%p)->(%x %x)\n", This, extconn, reserved);
764 
765  if(extconn != EXTCONN_STRONG)
766  return 0;
767 
768  return InterlockedIncrement(&This->extern_ref);
769 }
770 
772  DWORD reserved, BOOL fLastReleaseCloses)
773 {
775 
776  TRACE("(%p)->(%x %x %x)\n", This, extconn, reserved, fLastReleaseCloses);
777 
778  if(extconn != EXTCONN_STRONG)
779  return 0;
780 
781  return release_extern_ref(This, fLastReleaseCloses);
782 }
783 
784 static const IExternalConnectionVtbl ExternalConnectionVtbl = {
790 };
791 
793 {
794  return CONTAINING_RECORD(iface, InternetExplorer, IServiceProvider_iface);
795 }
796 
798  REFIID riid, LPVOID *ppv)
799 {
801  return IWebBrowser2_QueryInterface(&This->IWebBrowser2_iface, riid, ppv);
802 }
803 
805 {
807  return IWebBrowser2_AddRef(&This->IWebBrowser2_iface);
808 }
809 
811 {
813  return IWebBrowser2_Release(&This->IWebBrowser2_iface);
814 }
815 
817  REFGUID guidService, REFIID riid, void **ppv)
818 {
820 
821  if(IsEqualGUID(&SID_SHTMLWindow, riid)) {
822  TRACE("(%p)->(SID_SHTMLWindow)\n", This);
823  return IHTMLWindow2_QueryInterface(&This->doc_host.html_window.IHTMLWindow2_iface, riid, ppv);
824  }
825 
826  FIXME("(%p)->(%s, %s %p)\n", This, debugstr_guid(guidService), debugstr_guid(riid), ppv);
827  *ppv = NULL;
828  return E_NOINTERFACE;
829 }
830 
831 static const IServiceProviderVtbl ServiceProviderVtbl =
832 {
837 };
838 
840 {
841  This->IWebBrowser2_iface.lpVtbl = &InternetExplorerVtbl;
842  This->IExternalConnection_iface.lpVtbl = &ExternalConnectionVtbl;
843  This->IServiceProvider_iface.lpVtbl = &ServiceProviderVtbl;
844 }
static const IServiceProviderVtbl ServiceProviderVtbl
Definition: ie.c:831
static HRESULT WINAPI InternetExplorer_put_TheaterMode(IWebBrowser2 *iface, VARIANT_BOOL bRegister)
Definition: ie.c:602
_In_opt_ ULONG _Out_ PULONG Value
Definition: rtlfuncs.h:2343
static HRESULT WINAPI InternetExplorer_PutProperty(IWebBrowser2 *iface, BSTR szProperty, VARIANT vtValue)
Definition: ie.c:339
static HRESULT WINAPI InternetExplorer_put_Silent(IWebBrowser2 *iface, VARIANT_BOOL bSilent)
Definition: ie.c:556
static HRESULT WINAPI InternetExplorer_get_StatusText(IWebBrowser2 *iface, BSTR *StatusText)
Definition: ie.c:418
static HRESULT WINAPI InternetExplorer_Quit(IWebBrowser2 *iface)
Definition: ie.c:325
static HRESULT WINAPI InternetExplorer_GoSearch(IWebBrowser2 *iface)
Definition: ie.c:160
static HRESULT WINAPI IEServiceProvider_QueryService(IServiceProvider *iface, REFGUID guidService, REFIID riid, void **ppv)
Definition: ie.c:816
#define REFIID
Definition: guiddef.h:118
static HRESULT WINAPI InternetExplorer_get_ToolBar(IWebBrowser2 *iface, int *Value)
Definition: ie.c:434
#define E_NOINTERFACE
Definition: winerror.h:2364
#define HRESULT_FROM_WIN32(x)
Definition: winerror.h:92
static ULONG WINAPI InternetExplorer_AddRef(IWebBrowser2 *iface)
Definition: ie.c:73
static HRESULT WINAPI InternetExplorer_put_StatusText(IWebBrowser2 *iface, BSTR StatusText)
Definition: ie.c:425
static InternetExplorer * impl_from_IServiceProvider(IServiceProvider *iface)
Definition: ie.c:792
BOOL HlinkFrame_QI(HlinkFrame *, REFIID, void **) DECLSPEC_HIDDEN
Definition: navigate.c:1661
static HRESULT WINAPI InternetExplorer_QueryStatusWB(IWebBrowser2 *iface, OLECMDID cmdID, OLECMDF *pcmdf)
Definition: ie.c:504
Type
Definition: Type.h:6
static HRESULT WINAPI InternetExplorer_get_TopLevelContainer(IWebBrowser2 *iface, VARIANT_BOOL *pBool)
Definition: ie.c:232
Definition: scsiwmi.h:51
static DWORD WINAPI ExternalConnection_AddConnection(IExternalConnection *iface, DWORD extconn, DWORD reserved)
Definition: ie.c:759
HRESULT refresh_document(DocHost *This, const VARIANT *level)
Definition: dochost.c:573
static HRESULT navigate_url(HHInfo *info, LPCWSTR surl)
Definition: help.c:189
void released_obj(void) DECLSPEC_HIDDEN
Definition: iexplore.c:946
static HRESULT WINAPI InternetExplorer_put_Top(IWebBrowser2 *iface, LONG Top)
Definition: ie.c:267
#define SW_HIDE
Definition: winuser.h:762
REFIID riid
Definition: precomp.h:44
static HRESULT WINAPI InternetExplorer_get_Path(IWebBrowser2 *iface, BSTR *Path)
Definition: ie.c:377
static HRESULT WINAPI InternetExplorer_get_ReadyState(IWebBrowser2 *iface, READYSTATE *lpReadyState)
Definition: ie.c:528
static const IWebBrowser2Vtbl InternetExplorerVtbl
Definition: ie.c:637
#define WARN(fmt,...)
Definition: debug.h:111
static ULONG WINAPI IEServiceProvider_AddRef(IServiceProvider *iface)
Definition: ie.c:804
static HRESULT WINAPI InternetExplorer_get_Left(IWebBrowser2 *iface, LONG *pl)
Definition: ie.c:246
REFIID LPVOID * ppv
Definition: atlbase.h:39
const GUID IID_IConnectionPointContainer
HRESULT update_ie_statustext(InternetExplorer *, LPCWSTR) DECLSPEC_HIDDEN
Definition: iexplore.c:63
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1059
static HRESULT WINAPI InternetExplorer_get_TheaterMode(IWebBrowser2 *iface, VARIANT_BOOL *pbRegister)
Definition: ie.c:595
_IRQL_requires_same_ typedef _In_ ULONG _In_ UCHAR Level
Definition: wmitypes.h:55
DWORD LCID
Definition: nls.h:13
OLECHAR * BSTR
Definition: compat.h:1934
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
static const IExternalConnectionVtbl ExternalConnectionVtbl
Definition: ie.c:784
static LPOLESTR
Definition: stg_prop.c:27
static HRESULT WINAPI InternetExplorer_GetProperty(IWebBrowser2 *iface, BSTR szProperty, VARIANT *pvtValue)
Definition: ie.c:346
static HRESULT WINAPI InternetExplorer_get_Top(IWebBrowser2 *iface, LONG *pl)
Definition: ie.c:260
BOOL WINAPI DestroyWindow(_In_ HWND)
static HRESULT WINAPI InternetExplorer_get_Type(IWebBrowser2 *iface, BSTR *Type)
Definition: ie.c:239
short VARIANT_BOOL
Definition: compat.h:1931
Definition: send.c:47
static HRESULT WINAPI InternetExplorer_ExecWB(IWebBrowser2 *iface, OLECMDID cmdID, OLECMDEXECOPT cmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut)
Definition: ie.c:511
long SHANDLE_PTR
Definition: basetsd.h:77
static HRESULT WINAPI InternetExplorer_get_FullScreen(IWebBrowser2 *iface, VARIANT_BOOL *pbFullScreen)
Definition: ie.c:471
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
static ULONG WINAPI IEServiceProvider_Release(IServiceProvider *iface)
Definition: ie.c:810
static HRESULT WINAPI InternetExplorer_put_RegisterAsBrowser(IWebBrowser2 *iface, VARIANT_BOOL bRegister)
Definition: ie.c:571
static HRESULT WINAPI InternetExplorer_put_AddressBar(IWebBrowser2 *iface, VARIANT_BOOL Value)
Definition: ie.c:616
static HRESULT WINAPI InternetExplorer_GetIDsOfNames(IWebBrowser2 *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
Definition: ie.c:118
unsigned int BOOL
Definition: ntddk_ex.h:94
long LONG
Definition: pedump.c:60
static HRESULT WINAPI InternetExplorer_get_RegisterAsDropTarget(IWebBrowser2 *iface, VARIANT_BOOL *pbRegister)
Definition: ie.c:579
static HRESULT WINAPI InternetExplorer_put_Height(IWebBrowser2 *iface, LONG Height)
Definition: ie.c:295
#define debugstr_w
Definition: kernel32.h:32
GLenum GLint ref
Definition: glext.h:6028
static HRESULT WINAPI InternetExplorer_get_StatusBar(IWebBrowser2 *iface, VARIANT_BOOL *pBool)
Definition: ie.c:404
#define FIXME(fmt,...)
Definition: debug.h:110
static HRESULT WINAPI InternetExplorer_put_MenuBar(IWebBrowser2 *iface, VARIANT_BOOL Value)
Definition: ie.c:455
r reserved
Definition: btrfs.c:2704
static HRESULT WINAPI InternetExplorer_get_Silent(IWebBrowser2 *iface, VARIANT_BOOL *pbSilent)
Definition: ie.c:549
#define E_INVALIDARG
Definition: ddrawi.h:101
HRESULT go_home(DocHost *) DECLSPEC_HIDDEN
Definition: navigate.c:1060
smooth NULL
Definition: ftsmooth.c:416
static HRESULT WINAPI InternetExplorer_get_RegisterAsBrowser(IWebBrowser2 *iface, VARIANT_BOOL *pbRegister)
Definition: ie.c:563
static HRESULT WINAPI InternetExplorer_get_AddressBar(IWebBrowser2 *iface, VARIANT_BOOL *Value)
Definition: ie.c:609
static ULONG WINAPI ExternalConnection_AddRef(IExternalConnection *iface)
Definition: ie.c:747
static HRESULT WINAPI InternetExplorer_put_ToolBar(IWebBrowser2 *iface, int Value)
Definition: ie.c:441
HRESULT go_forward(DocHost *) DECLSPEC_HIDDEN
Definition: navigate.c:1127
#define SW_SHOW
Definition: winuser.h:769
static HRESULT WINAPI InternetExplorer_ClientToWindow(IWebBrowser2 *iface, int *pcx, int *pcy)
Definition: ie.c:332
#define debugstr_guid
Definition: kernel32.h:35
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
Definition: Messaging.c:560
static HRESULT WINAPI InternetExplorer_get_Height(IWebBrowser2 *iface, LONG *pl)
Definition: ie.c:288
void deactivate_document(DocHost *This)
Definition: dochost.c:511
static HRESULT WINAPI InternetExplorer_GetTypeInfo(IWebBrowser2 *iface, UINT iTInfo, LCID lcid, LPTYPEINFO *ppTInfo)
Definition: ie.c:110
__WINE_SERVER_LIST_INLINE void list_remove(struct list *elem)
Definition: list.h:108
static HRESULT WINAPI InternetExplorer_put_Resizable(IWebBrowser2 *iface, VARIANT_BOOL Value)
Definition: ie.c:630
static HRESULT WINAPI InternetExplorer_put_StatusBar(IWebBrowser2 *iface, VARIANT_BOOL Value)
Definition: ie.c:411
static HRESULT WINAPI InternetExplorer_QueryInterface(IWebBrowser2 *iface, REFIID riid, LPVOID *ppv)
Definition: ie.c:30
static HRESULT WINAPI InternetExplorer_put_RegisterAsDropTarget(IWebBrowser2 *iface, VARIANT_BOOL bRegister)
Definition: ie.c:587
#define TRACE(s)
Definition: solgame.cpp:4
LONG HRESULT
Definition: typedefs.h:77
BOOL WINAPI SetMenu(_In_ HWND, _In_opt_ HMENU)
const GUID IID_IUnknown
static HRESULT WINAPI InternetExplorer_ShowBrowserBar(IWebBrowser2 *iface, VARIANT *pvaClsid, VARIANT *pvarShow, VARIANT *pvarSize)
Definition: ie.c:519
static HRESULT WINAPI InternetExplorer_Refresh(IWebBrowser2 *iface)
Definition: ie.c:179
static HRESULT WINAPI InternetExplorer_get_Busy(IWebBrowser2 *iface, VARIANT_BOOL *pBool)
Definition: ie.c:318
#define WINAPI
Definition: msvc.h:8
static HRESULT WINAPI InternetExplorer_GetTypeInfoCount(IWebBrowser2 *iface, UINT *pctinfo)
Definition: ie.c:103
static HRESULT WINAPI InternetExplorer_get_Visible(IWebBrowser2 *iface, VARIANT_BOOL *pBool)
Definition: ie.c:384
unsigned short WORD
Definition: ntddk_ex.h:93
static HRESULT WINAPI InternetExplorer_put_Offline(IWebBrowser2 *iface, VARIANT_BOOL bOffline)
Definition: ie.c:542
unsigned long DWORD
Definition: ntddk_ex.h:95
_In_ PSTRING FullName
Definition: rtlfuncs.h:1649
static HRESULT WINAPI InternetExplorer_put_Width(IWebBrowser2 *iface, LONG Width)
Definition: ie.c:281
static HRESULT WINAPI InternetExplorer_Refresh2(IWebBrowser2 *iface, VARIANT *Level)
Definition: ie.c:188
void DocHost_Release(DocHost *This)
Definition: dochost.c:1127
static ULONG WINAPI InternetExplorer_Release(IWebBrowser2 *iface)
Definition: ie.c:81
const GUID IID_IDispatch
#define InterlockedDecrement
Definition: armddk.h:52
DWORD release_extern_ref(InternetExplorer *This, BOOL last_closes)
Definition: ie.c:723
#define V_VT(A)
Definition: oleauto.h:211
static HRESULT WINAPI InternetExplorer_Navigate2(IWebBrowser2 *iface, VARIANT *URL, VARIANT *Flags, VARIANT *TargetFrameName, VARIANT *PostData, VARIANT *Headers)
Definition: ie.c:485
static HRESULT WINAPI InternetExplorer_Stop(IWebBrowser2 *iface)
Definition: ie.c:197
static HRESULT WINAPI InternetExplorer_put_FullScreen(IWebBrowser2 *iface, VARIANT_BOOL bFullScreen)
Definition: ie.c:478
static HRESULT WINAPI IEServiceProvider_QueryInterface(IServiceProvider *iface, REFIID riid, LPVOID *ppv)
Definition: ie.c:797
static HRESULT WINAPI InternetExplorer_GoBack(IWebBrowser2 *iface)
Definition: ie.c:139
static HRESULT WINAPI InternetExplorer_Invoke(IWebBrowser2 *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExepInfo, UINT *puArgErr)
Definition: ie.c:128
#define V_BSTR(A)
Definition: oleauto.h:226
static HRESULT WINAPI InternetExplorer_get_FullName(IWebBrowser2 *iface, BSTR *FullName)
Definition: ie.c:370
static HRESULT WINAPI InternetExplorer_GoHome(IWebBrowser2 *iface)
Definition: ie.c:153
_In_ DWORD _Out_ _In_ WORD wFlags
Definition: wincon.h:519
struct stdole::EXCEPINFO EXCEPINFO
static const char * debugstr_variant(const VARIANT *var)
Definition: container.c:46
static VARIANTARG static DISPID
Definition: ordinal.c:49
#define S_OK
Definition: intsafe.h:59
static HRESULT WINAPI ExternalConnection_QueryInterface(IExternalConnection *iface, REFIID riid, void **ppv)
Definition: ie.c:741
PRTL_UNICODE_STRING_BUFFER Path
static HRESULT WINAPI InternetExplorer_get_Parent(IWebBrowser2 *iface, IDispatch **ppDisp)
Definition: ie.c:211
static InternetExplorer * impl_from_IExternalConnection(IExternalConnection *iface)
Definition: ie.c:712
#define InterlockedIncrement
Definition: armddk.h:53
HRESULT go_back(DocHost *) DECLSPEC_HIDDEN
Definition: navigate.c:1117
static HRESULT WINAPI InternetExplorer_get_LocationURL(IWebBrowser2 *iface, BSTR *LocationURL)
Definition: ie.c:309
static HRESULT WINAPI InternetExplorer_get_Container(IWebBrowser2 *iface, IDispatch **ppDisp)
Definition: ie.c:218
static HRESULT WINAPI InternetExplorer_get_Application(IWebBrowser2 *iface, IDispatch **ppDisp)
Definition: ie.c:204
#define E_NOTIMPL
Definition: ddrawi.h:99
static const WCHAR szProperty[]
Definition: msipriv.h:1198
unsigned int UINT
Definition: ndis.h:50
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
Definition: compobj.c:4021
static InternetExplorer * impl_from_IWebBrowser2(IWebBrowser2 *iface)
Definition: ie.c:25
static HRESULT WINAPI InternetExplorer_Navigate(IWebBrowser2 *iface, BSTR szUrl, VARIANT *Flags, VARIANT *TargetFrameName, VARIANT *PostData, VARIANT *Headers)
Definition: ie.c:167
static DWORD WINAPI ExternalConnection_ReleaseConnection(IExternalConnection *iface, DWORD extconn, DWORD reserved, BOOL fLastReleaseCloses)
Definition: ie.c:771
HRESULT get_location_url(DocHost *, BSTR *) DECLSPEC_HIDDEN
Definition: navigate.c:1137
static HRESULT WINAPI InternetExplorer_get_Document(IWebBrowser2 *iface, IDispatch **ppDisp)
Definition: ie.c:225
struct stdole::DISPPARAMS DISPPARAMS
static HRESULT WINAPI InternetExplorer_get_Offline(IWebBrowser2 *iface, VARIANT_BOOL *pbOffline)
Definition: ie.c:535
static HRESULT WINAPI InternetExplorer_get_Width(IWebBrowser2 *iface, LONG *pl)
Definition: ie.c:274
unsigned int ULONG
Definition: retypes.h:1
BOOL WINAPI IsWindowVisible(_In_ HWND)
static HRESULT WINAPI InternetExplorer_put_Left(IWebBrowser2 *iface, LONG Left)
Definition: ie.c:253
void InternetExplorer_WebBrowser_Init(InternetExplorer *This)
Definition: ie.c:839
static HRESULT WINAPI InternetExplorer_put_Visible(IWebBrowser2 *iface, VARIANT_BOOL Value)
Definition: ie.c:394
static HRESULT WINAPI InternetExplorer_get_LocationName(IWebBrowser2 *iface, BSTR *LocationName)
Definition: ie.c:302
WINE_DEFAULT_DEBUG_CHANNEL(ieframe)
static HRESULT WINAPI InternetExplorer_get_HWND(IWebBrowser2 *iface, SHANDLE_PTR *pHWND)
Definition: ie.c:360
static ULONG WINAPI ExternalConnection_Release(IExternalConnection *iface)
Definition: ie.c:753
static HRESULT WINAPI InternetExplorer_get_MenuBar(IWebBrowser2 *iface, VARIANT_BOOL *Value)
Definition: ie.c:448
static HRESULT WINAPI InternetExplorer_get_Resizable(IWebBrowser2 *iface, VARIANT_BOOL *Value)
Definition: ie.c:623
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
Definition: ordinal.c:60
static HRESULT WINAPI InternetExplorer_GoForward(IWebBrowser2 *iface)
Definition: ie.c:146
static LPHIST_ENTRY Top
Definition: history.c:53
static HRESULT WINAPI InternetExplorer_get_Name(IWebBrowser2 *iface, BSTR *Name)
Definition: ie.c:353
static BOOL heap_free(void *mem)
Definition: appwiz.h:75