d3dx9: Implement ID3DXBaseEffect::GetBoolArray().
[wine/multimedia.git] / dlls / shdocvw / shellbrowser.c
blob1ccf379229ebe847b2170a336224d90bf32b845d
1 /*
2 * Implementation of IShellBrowser interface
4 * Copyright 2011 Piotr Caban for CodeWeavers
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.
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.
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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
21 #include "wine/debug.h"
22 #include "shdocvw.h"
23 #include "shdeprecated.h"
24 #include "docobjectservice.h"
26 WINE_DEFAULT_DEBUG_CHANNEL(shdocvw);
28 typedef struct {
29 IShellBrowser IShellBrowser_iface;
30 IBrowserService IBrowserService_iface;
31 IDocObjectService IDocObjectService_iface;
33 LONG ref;
34 } ShellBrowser;
36 static inline ShellBrowser *impl_from_IShellBrowser(IShellBrowser *iface)
38 return CONTAINING_RECORD(iface, ShellBrowser, IShellBrowser_iface);
41 static HRESULT WINAPI ShellBrowser_QueryInterface(
42 IShellBrowser* iface,
43 REFIID riid,
44 void **ppvObject)
46 ShellBrowser *This = impl_from_IShellBrowser(iface);
47 *ppvObject = NULL;
49 if(IsEqualGUID(&IID_IShellBrowser, riid) || IsEqualGUID(&IID_IOleWindow, riid)
50 || IsEqualGUID(&IID_IUnknown, riid))
51 *ppvObject = &This->IShellBrowser_iface;
52 else if(IsEqualGUID(&IID_IBrowserService, riid))
53 *ppvObject = &This->IBrowserService_iface;
54 else if(IsEqualGUID(&IID_IDocObjectService, riid))
55 *ppvObject = &This->IDocObjectService_iface;
57 if(*ppvObject) {
58 TRACE("%p %s %p\n", This, debugstr_guid(riid), ppvObject);
59 IUnknown_AddRef((IUnknown*)*ppvObject);
60 return S_OK;
63 FIXME("%p %s %p\n", This, debugstr_guid(riid), ppvObject);
64 return E_NOINTERFACE;
67 static ULONG WINAPI ShellBrowser_AddRef(
68 IShellBrowser* iface)
70 ShellBrowser *This = impl_from_IShellBrowser(iface);
71 LONG ref = InterlockedIncrement(&This->ref);
73 TRACE("(%p) ref=%d\n", This, ref);
75 return ref;
78 static ULONG WINAPI ShellBrowser_Release(
79 IShellBrowser* iface)
81 ShellBrowser *This = impl_from_IShellBrowser(iface);
82 LONG ref = InterlockedDecrement(&This->ref);
84 TRACE("(%p) ref=%d\n", This, ref);
86 if(!ref)
87 heap_free(This);
88 return ref;
91 static HRESULT WINAPI ShellBrowser_GetWindow(
92 IShellBrowser* iface,
93 HWND *phwnd)
95 ShellBrowser *This = impl_from_IShellBrowser(iface);
96 FIXME("%p %p\n", This, phwnd);
97 return E_NOTIMPL;
100 static HRESULT WINAPI ShellBrowser_ContextSensitiveHelp(
101 IShellBrowser* iface,
102 BOOL fEnterMode)
104 ShellBrowser *This = impl_from_IShellBrowser(iface);
105 FIXME("%p %d\n", This, fEnterMode);
106 return E_NOTIMPL;
109 static HRESULT WINAPI ShellBrowser_InsertMenusSB(
110 IShellBrowser* iface,
111 HMENU hmenuShared,
112 LPOLEMENUGROUPWIDTHS lpMenuWidths)
114 ShellBrowser *This = impl_from_IShellBrowser(iface);
115 FIXME("%p %p %p\n", This, hmenuShared, lpMenuWidths);
116 return E_NOTIMPL;
119 static HRESULT WINAPI ShellBrowser_SetMenuSB(
120 IShellBrowser* iface,
121 HMENU hmenuShared,
122 HOLEMENU holemenuReserved,
123 HWND hwndActiveObject)
125 ShellBrowser *This = impl_from_IShellBrowser(iface);
126 FIXME("%p %p %p %p\n", This, hmenuShared, holemenuReserved, hwndActiveObject);
127 return E_NOTIMPL;
130 static HRESULT WINAPI ShellBrowser_RemoveMenusSB(
131 IShellBrowser* iface,
132 HMENU hmenuShared)
134 ShellBrowser *This = impl_from_IShellBrowser(iface);
135 FIXME("%p %p\n", This, hmenuShared);
136 return E_NOTIMPL;
139 static HRESULT WINAPI ShellBrowser_SetStatusTextSB(
140 IShellBrowser* iface,
141 LPCOLESTR pszStatusText)
143 ShellBrowser *This = impl_from_IShellBrowser(iface);
144 FIXME("%p %s\n", This, debugstr_w(pszStatusText));
145 return E_NOTIMPL;
148 static HRESULT WINAPI ShellBrowser_EnableModelessSB(
149 IShellBrowser* iface,
150 BOOL fEnable)
152 ShellBrowser *This = impl_from_IShellBrowser(iface);
153 FIXME("%p %d\n", This, fEnable);
154 return E_NOTIMPL;
157 static HRESULT WINAPI ShellBrowser_TranslateAcceleratorSB(
158 IShellBrowser* iface,
159 MSG *pmsg,
160 WORD wID)
162 ShellBrowser *This = impl_from_IShellBrowser(iface);
163 FIXME("%p %p %d\n", This, pmsg, (int)wID);
164 return E_NOTIMPL;
167 static HRESULT WINAPI ShellBrowser_BrowseObject(
168 IShellBrowser* iface,
169 LPCITEMIDLIST pidl,
170 UINT wFlags)
172 ShellBrowser *This = impl_from_IShellBrowser(iface);
173 FIXME("%p %p %u\n", This, pidl, wFlags);
174 return E_NOTIMPL;
177 static HRESULT WINAPI ShellBrowser_GetViewStateStream(
178 IShellBrowser* iface,
179 DWORD grfMode,
180 IStream **ppStrm)
182 ShellBrowser *This = impl_from_IShellBrowser(iface);
183 FIXME("%p %x %p\n", This, grfMode, ppStrm);
184 return E_NOTIMPL;
187 static HRESULT WINAPI ShellBrowser_GetControlWindow(
188 IShellBrowser* iface,
189 UINT id,
190 HWND *phwnd)
192 ShellBrowser *This = impl_from_IShellBrowser(iface);
193 FIXME("%p %u %p\n", This, id, phwnd);
194 return E_NOTIMPL;
197 static HRESULT WINAPI ShellBrowser_SendControlMsg(
198 IShellBrowser* iface,
199 UINT id,
200 UINT uMsg,
201 WPARAM wParam,
202 LPARAM lParam,
203 LRESULT *pret)
205 ShellBrowser *This = impl_from_IShellBrowser(iface);
206 FIXME("%p %u %u %p\n", This, id, uMsg, pret);
207 return E_NOTIMPL;
210 static HRESULT WINAPI ShellBrowser_QueryActiveShellView(
211 IShellBrowser* iface,
212 IShellView **ppshv)
214 ShellBrowser *This = impl_from_IShellBrowser(iface);
215 FIXME("%p %p\n", This, ppshv);
216 return E_NOTIMPL;
219 static HRESULT WINAPI ShellBrowser_OnViewWindowActive(
220 IShellBrowser* iface,
221 IShellView *pshv)
223 ShellBrowser *This = impl_from_IShellBrowser(iface);
224 FIXME("%p %p\n", This, pshv);
225 return E_NOTIMPL;
228 static HRESULT WINAPI ShellBrowser_SetToolbarItems(
229 IShellBrowser* iface,
230 LPTBBUTTONSB lpButtons,
231 UINT nButtons,
232 UINT uFlags)
234 ShellBrowser *This = impl_from_IShellBrowser(iface);
235 FIXME("%p %p %u %u\n", This, lpButtons, nButtons, uFlags);
236 return E_NOTIMPL;
239 static const IShellBrowserVtbl ShellBrowserVtbl = {
240 ShellBrowser_QueryInterface,
241 ShellBrowser_AddRef,
242 ShellBrowser_Release,
243 ShellBrowser_GetWindow,
244 ShellBrowser_ContextSensitiveHelp,
245 ShellBrowser_InsertMenusSB,
246 ShellBrowser_SetMenuSB,
247 ShellBrowser_RemoveMenusSB,
248 ShellBrowser_SetStatusTextSB,
249 ShellBrowser_EnableModelessSB,
250 ShellBrowser_TranslateAcceleratorSB,
251 ShellBrowser_BrowseObject,
252 ShellBrowser_GetViewStateStream,
253 ShellBrowser_GetControlWindow,
254 ShellBrowser_SendControlMsg,
255 ShellBrowser_QueryActiveShellView,
256 ShellBrowser_OnViewWindowActive,
257 ShellBrowser_SetToolbarItems
260 static inline ShellBrowser *impl_from_IBrowserService(IBrowserService *iface)
262 return CONTAINING_RECORD(iface, ShellBrowser, IBrowserService_iface);
265 static HRESULT WINAPI BrowserService_QueryInterface(
266 IBrowserService* iface,
267 REFIID riid,
268 void **ppvObject)
270 ShellBrowser *This = impl_from_IBrowserService(iface);
271 return IShellBrowser_QueryInterface(&This->IShellBrowser_iface, riid, ppvObject);
274 static ULONG WINAPI BrowserService_AddRef(
275 IBrowserService *iface)
277 ShellBrowser *This = impl_from_IBrowserService(iface);
278 return IShellBrowser_AddRef(&This->IShellBrowser_iface);
281 static ULONG WINAPI BrowserService_Release(
282 IBrowserService* iface)
284 ShellBrowser *This = impl_from_IBrowserService(iface);
285 return IShellBrowser_Release(&This->IShellBrowser_iface);
288 static HRESULT WINAPI BrowserService_GetParentSite(
289 IBrowserService* iface,
290 IOleInPlaceSite **ppipsite)
292 ShellBrowser *This = impl_from_IBrowserService(iface);
293 FIXME("%p %p\n", This, ppipsite);
294 return E_NOTIMPL;
297 static HRESULT WINAPI BrowserService_SetTitle(
298 IBrowserService* iface,
299 IShellView *psv,
300 LPCWSTR pszName)
302 ShellBrowser *This = impl_from_IBrowserService(iface);
303 FIXME("%p %p %s\n", This, psv, debugstr_w(pszName));
304 return E_NOTIMPL;
307 static HRESULT WINAPI BrowserService_GetTitle(
308 IBrowserService* iface,
309 IShellView *psv,
310 LPWSTR pszName,
311 DWORD cchName)
313 ShellBrowser *This = impl_from_IBrowserService(iface);
314 FIXME("%p %p %p %d\n", This, psv, pszName, cchName);
315 return E_NOTIMPL;
318 static HRESULT WINAPI BrowserService_GetOleObject(
319 IBrowserService* iface,
320 IOleObject **ppobjv)
322 ShellBrowser *This = impl_from_IBrowserService(iface);
323 FIXME("%p %p\n", This, ppobjv);
324 return E_NOTIMPL;
327 static HRESULT WINAPI BrowserService_GetTravelLog(
328 IBrowserService* iface,
329 ITravelLog **pptl)
331 ShellBrowser *This = impl_from_IBrowserService(iface);
332 FIXME("%p %p\n", This, pptl);
333 return E_NOTIMPL;
336 static HRESULT WINAPI BrowserService_ShowControlWindow(
337 IBrowserService* iface,
338 UINT id,
339 BOOL fShow)
341 ShellBrowser *This = impl_from_IBrowserService(iface);
342 FIXME("%p %u %d\n", This, id, fShow);
343 return E_NOTIMPL;
346 static HRESULT WINAPI BrowserService_IsControlWindowShown(
347 IBrowserService* iface,
348 UINT id,
349 BOOL *pfShown)
351 ShellBrowser *This = impl_from_IBrowserService(iface);
352 FIXME("%p %u %p\n", This, id, pfShown);
353 return E_NOTIMPL;
356 static HRESULT WINAPI BrowserService_IEGetDisplayName(
357 IBrowserService* iface,
358 PCIDLIST_ABSOLUTE pidl,
359 LPWSTR pwszName,
360 UINT uFlags)
362 ShellBrowser *This = impl_from_IBrowserService(iface);
363 FIXME("%p %p %p %u\n", This, pidl, pwszName, uFlags);
364 return E_NOTIMPL;
367 static HRESULT WINAPI BrowserService_IEParseDisplayName(
368 IBrowserService* iface,
369 UINT uiCP,
370 LPCWSTR pwszPath,
371 PIDLIST_ABSOLUTE *ppidlOut)
373 ShellBrowser *This = impl_from_IBrowserService(iface);
374 FIXME("%p %u %s %p\n", This, uiCP, debugstr_w(pwszPath), ppidlOut);
375 return E_NOTIMPL;
378 static HRESULT WINAPI BrowserService_DisplayParseError(
379 IBrowserService* iface,
380 HRESULT hres,
381 LPCWSTR pwszPath)
383 ShellBrowser *This = impl_from_IBrowserService(iface);
384 FIXME("%p %x %s\n", This, hres, debugstr_w(pwszPath));
385 return E_NOTIMPL;
388 static HRESULT WINAPI BrowserService_NavigateToPidl(
389 IBrowserService* iface,
390 PCIDLIST_ABSOLUTE pidl,
391 DWORD grfHLNF)
393 ShellBrowser *This = impl_from_IBrowserService(iface);
394 FIXME("%p %p %d\n", This, pidl, grfHLNF);
395 return E_NOTIMPL;
398 static HRESULT WINAPI BrowserService_SetNavigateState(
399 IBrowserService* iface,
400 BNSTATE bnstate)
402 ShellBrowser *This = impl_from_IBrowserService(iface);
403 FIXME("%p %d\n", This, bnstate);
404 return E_NOTIMPL;
407 static HRESULT WINAPI BrowserService_GetNavigateState(
408 IBrowserService* iface,
409 BNSTATE *pbnstate)
411 ShellBrowser *This = impl_from_IBrowserService(iface);
412 FIXME("%p %p\n", This, pbnstate);
413 return E_NOTIMPL;
416 static HRESULT WINAPI BrowserService_NotifyRedirect(
417 IBrowserService* iface,
418 IShellView *psv,
419 PCIDLIST_ABSOLUTE pidl,
420 BOOL *pfDidBrowse)
422 ShellBrowser *This = impl_from_IBrowserService(iface);
423 FIXME("%p %p %p %p\n", This, psv, pidl, pfDidBrowse);
424 return E_NOTIMPL;
427 static HRESULT WINAPI BrowserService_UpdateWindowList(
428 IBrowserService* iface)
430 ShellBrowser *This = impl_from_IBrowserService(iface);
431 FIXME("%p\n", This);
432 return E_NOTIMPL;
435 static HRESULT WINAPI BrowserService_UpdateBackForwardState(
436 IBrowserService* iface)
438 ShellBrowser *This = impl_from_IBrowserService(iface);
439 FIXME("%p\n", This);
440 return E_NOTIMPL;
443 static HRESULT WINAPI BrowserService_SetFlags(
444 IBrowserService* iface,
445 DWORD dwFlags,
446 DWORD dwFlagMask)
448 ShellBrowser *This = impl_from_IBrowserService(iface);
449 FIXME("%p %x %x\n", This, dwFlags, dwFlagMask);
450 return E_NOTIMPL;
453 static HRESULT WINAPI BrowserService_GetFlags(
454 IBrowserService* iface,
455 DWORD *pdwFlags)
457 ShellBrowser *This = impl_from_IBrowserService(iface);
458 FIXME("%p %p\n", This, pdwFlags);
459 return E_NOTIMPL;
462 static HRESULT WINAPI BrowserService_CanNavigateNow(
463 IBrowserService* iface)
465 ShellBrowser *This = impl_from_IBrowserService(iface);
466 FIXME("%p\n", This);
467 return E_NOTIMPL;
470 static HRESULT WINAPI BrowserService_GetPidl(
471 IBrowserService* iface,
472 PIDLIST_ABSOLUTE *ppidl)
474 ShellBrowser *This = impl_from_IBrowserService(iface);
475 FIXME("%p %p\n", This, ppidl);
476 return E_NOTIMPL;
479 static HRESULT WINAPI BrowserService_SetReferrer(
480 IBrowserService* iface,
481 PCIDLIST_ABSOLUTE pidl)
483 ShellBrowser *This = impl_from_IBrowserService(iface);
484 FIXME("%p %p\n", This, pidl);
485 return E_NOTIMPL;
488 static DWORD WINAPI BrowserService_GetBrowserIndex(
489 IBrowserService* iface)
491 ShellBrowser *This = impl_from_IBrowserService(iface);
492 FIXME("%p\n", This);
493 return E_NOTIMPL;
496 static HRESULT WINAPI BrowserService_GetBrowserByIndex(
497 IBrowserService* iface,
498 DWORD dwID,
499 IUnknown **ppunk)
501 ShellBrowser *This = impl_from_IBrowserService(iface);
502 FIXME("%p %x %p\n", This, dwID, ppunk);
503 return E_NOTIMPL;
506 static HRESULT WINAPI BrowserService_GetHistoryObject(
507 IBrowserService* iface,
508 IOleObject **ppole,
509 IStream **pstm,
510 IBindCtx **ppbc)
512 ShellBrowser *This = impl_from_IBrowserService(iface);
513 FIXME("%p %p %p %p\n", This, ppole, pstm, ppbc);
514 return E_NOTIMPL;
517 static HRESULT WINAPI BrowserService_SetHistoryObject(
518 IBrowserService* iface,
519 IOleObject *pole,
520 BOOL fIsLocalAnchor)
522 ShellBrowser *This = impl_from_IBrowserService(iface);
523 FIXME("%p %p %d\n", This, pole, fIsLocalAnchor);
524 return E_NOTIMPL;
527 static HRESULT WINAPI BrowserService_CacheOLEServer(
528 IBrowserService* iface,
529 IOleObject *pole)
531 ShellBrowser *This = impl_from_IBrowserService(iface);
532 FIXME("%p %p\n", This, pole);
533 return E_NOTIMPL;
536 static HRESULT WINAPI BrowserService_GetSetCodePage(
537 IBrowserService* iface,
538 VARIANT *pvarIn,
539 VARIANT *pvarOut)
541 ShellBrowser *This = impl_from_IBrowserService(iface);
542 FIXME("%p %p %p\n", This, pvarIn, pvarOut);
543 return E_NOTIMPL;
546 static HRESULT WINAPI BrowserService_OnHttpEquiv(
547 IBrowserService* iface,
548 IShellView *psv,
549 BOOL fDone,
550 VARIANT *pvarargIn,
551 VARIANT *pvarargOut)
553 ShellBrowser *This = impl_from_IBrowserService(iface);
554 FIXME("%p %p %d %p %p\n", This, psv, fDone, pvarargIn, pvarargOut);
555 return E_NOTIMPL;
558 static HRESULT WINAPI BrowserService_GetPalette(
559 IBrowserService* iface,
560 HPALETTE *hpal)
562 ShellBrowser *This = impl_from_IBrowserService(iface);
563 FIXME("%p %p\n", This, hpal);
564 return E_NOTIMPL;
567 static HRESULT WINAPI BrowserService_RegisterWindow(
568 IBrowserService* iface,
569 BOOL fForceRegister,
570 int swc)
572 ShellBrowser *This = impl_from_IBrowserService(iface);
573 FIXME("%p %d %d\n", This, fForceRegister, swc);
574 return E_NOTIMPL;
577 static const IBrowserServiceVtbl BrowserServiceVtbl = {
578 BrowserService_QueryInterface,
579 BrowserService_AddRef,
580 BrowserService_Release,
581 BrowserService_GetParentSite,
582 BrowserService_SetTitle,
583 BrowserService_GetTitle,
584 BrowserService_GetOleObject,
585 BrowserService_GetTravelLog,
586 BrowserService_ShowControlWindow,
587 BrowserService_IsControlWindowShown,
588 BrowserService_IEGetDisplayName,
589 BrowserService_IEParseDisplayName,
590 BrowserService_DisplayParseError,
591 BrowserService_NavigateToPidl,
592 BrowserService_SetNavigateState,
593 BrowserService_GetNavigateState,
594 BrowserService_NotifyRedirect,
595 BrowserService_UpdateWindowList,
596 BrowserService_UpdateBackForwardState,
597 BrowserService_SetFlags,
598 BrowserService_GetFlags,
599 BrowserService_CanNavigateNow,
600 BrowserService_GetPidl,
601 BrowserService_SetReferrer,
602 BrowserService_GetBrowserIndex,
603 BrowserService_GetBrowserByIndex,
604 BrowserService_GetHistoryObject,
605 BrowserService_SetHistoryObject,
606 BrowserService_CacheOLEServer,
607 BrowserService_GetSetCodePage,
608 BrowserService_OnHttpEquiv,
609 BrowserService_GetPalette,
610 BrowserService_RegisterWindow
613 static inline ShellBrowser *impl_from_IDocObjectService(IDocObjectService *iface)
615 return CONTAINING_RECORD(iface, ShellBrowser, IDocObjectService_iface);
618 static HRESULT WINAPI DocObjectService_QueryInterface(
619 IDocObjectService* iface,
620 REFIID riid,
621 void **ppvObject)
623 ShellBrowser *This = impl_from_IDocObjectService(iface);
624 return IShellBrowser_QueryInterface(&This->IShellBrowser_iface, riid, ppvObject);
627 static ULONG WINAPI DocObjectService_AddRef(
628 IDocObjectService* iface)
630 ShellBrowser *This = impl_from_IDocObjectService(iface);
631 return IShellBrowser_AddRef(&This->IShellBrowser_iface);
634 static ULONG WINAPI DocObjectService_Release(
635 IDocObjectService* iface)
637 ShellBrowser *This = impl_from_IDocObjectService(iface);
638 return IShellBrowser_Release(&This->IShellBrowser_iface);
641 static HRESULT WINAPI DocObjectService_FireBeforeNavigate2(
642 IDocObjectService* iface,
643 IDispatch *pDispatch,
644 LPCWSTR lpszUrl,
645 DWORD dwFlags,
646 LPCWSTR lpszFrameName,
647 BYTE *pPostData,
648 DWORD cbPostData,
649 LPCWSTR lpszHeaders,
650 BOOL fPlayNavSound,
651 BOOL *pfCancel)
653 ShellBrowser *This = impl_from_IDocObjectService(iface);
654 FIXME("%p %p %s %x %s %p %d %s %d %p\n", This, pDispatch, debugstr_w(lpszUrl),
655 dwFlags, debugstr_w(lpszFrameName), pPostData, cbPostData,
656 debugstr_w(lpszHeaders), fPlayNavSound, pfCancel);
657 return E_NOTIMPL;
660 static HRESULT WINAPI DocObjectService_FireNavigateComplete2(
661 IDocObjectService* iface,
662 IHTMLWindow2 *pHTMLWindow2,
663 DWORD dwFlags)
665 ShellBrowser *This = impl_from_IDocObjectService(iface);
666 FIXME("%p %p %x\n", This, pHTMLWindow2, dwFlags);
667 return E_NOTIMPL;
670 static HRESULT WINAPI DocObjectService_FireDownloadBegin(
671 IDocObjectService* iface)
673 ShellBrowser *This = impl_from_IDocObjectService(iface);
674 FIXME("%p\n", This);
675 return E_NOTIMPL;
678 static HRESULT WINAPI DocObjectService_FireDownloadComplete(
679 IDocObjectService* iface)
681 ShellBrowser *This = impl_from_IDocObjectService(iface);
682 FIXME("%p\n", This);
683 return E_NOTIMPL;
686 static HRESULT WINAPI DocObjectService_FireDocumentComplete(
687 IDocObjectService* iface,
688 IHTMLWindow2 *pHTMLWindow,
689 DWORD dwFlags)
691 ShellBrowser *This = impl_from_IDocObjectService(iface);
692 FIXME("%p %p %x\n", This, pHTMLWindow, dwFlags);
693 return E_NOTIMPL;
696 static HRESULT WINAPI DocObjectService_UpdateDesktopComponent(
697 IDocObjectService* iface,
698 IHTMLWindow2 *pHTMLWindow)
700 ShellBrowser *This = impl_from_IDocObjectService(iface);
701 FIXME("%p %p\n", This, pHTMLWindow);
702 return E_NOTIMPL;
705 static HRESULT WINAPI DocObjectService_GetPendingUrl(
706 IDocObjectService* iface,
707 BSTR *pbstrPendingUrl)
709 ShellBrowser *This = impl_from_IDocObjectService(iface);
710 FIXME("%p %p\n", This, pbstrPendingUrl);
711 return E_NOTIMPL;
714 static HRESULT WINAPI DocObjectService_ActiveElementChanged(
715 IDocObjectService* iface,
716 IHTMLElement *pHTMLElement)
718 ShellBrowser *This = impl_from_IDocObjectService(iface);
719 FIXME("%p %p\n", This, pHTMLElement);
720 return E_NOTIMPL;
723 static HRESULT WINAPI DocObjectService_GetUrlSearchComponent(
724 IDocObjectService* iface,
725 BSTR *pbstrSearch)
727 ShellBrowser *This = impl_from_IDocObjectService(iface);
728 FIXME("%p %p\n", This, pbstrSearch);
729 return E_NOTIMPL;
732 static HRESULT WINAPI DocObjectService_IsErrorUrl(
733 IDocObjectService* iface,
734 LPCWSTR lpszUrl,
735 BOOL *pfIsError)
737 ShellBrowser *This = impl_from_IDocObjectService(iface);
738 FIXME("%p %s %p\n", This, debugstr_w(lpszUrl), pfIsError);
740 *pfIsError = FALSE;
741 return S_OK;
744 static const IDocObjectServiceVtbl DocObjectServiceVtbl = {
745 DocObjectService_QueryInterface,
746 DocObjectService_AddRef,
747 DocObjectService_Release,
748 DocObjectService_FireBeforeNavigate2,
749 DocObjectService_FireNavigateComplete2,
750 DocObjectService_FireDownloadBegin,
751 DocObjectService_FireDownloadComplete,
752 DocObjectService_FireDocumentComplete,
753 DocObjectService_UpdateDesktopComponent,
754 DocObjectService_GetPendingUrl,
755 DocObjectService_ActiveElementChanged,
756 DocObjectService_GetUrlSearchComponent,
757 DocObjectService_IsErrorUrl
760 HRESULT ShellBrowser_Create(IShellBrowser **ppv)
762 ShellBrowser *sb;
764 sb = heap_alloc(sizeof(ShellBrowser));
765 if(!sb)
766 return E_OUTOFMEMORY;
768 sb->IShellBrowser_iface.lpVtbl = &ShellBrowserVtbl;
769 sb->IBrowserService_iface.lpVtbl = &BrowserServiceVtbl;
770 sb->IDocObjectService_iface.lpVtbl = &DocObjectServiceVtbl;
772 sb->ref = 1;
774 *ppv = &sb->IShellBrowser_iface;
775 return S_OK;