ReactOS  0.4.14-dev-49-gfb4591c
omnavigator.c
Go to the documentation of this file.
1 /*
2  * Copyright 2008 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 "mshtml_private.h"
20 
21 #ifdef __REACTOS__
22 /* HACK This is a Vista+ API */
23 static INT WINAPI LCIDToLocaleName( LCID lcid, LPWSTR name, INT count, DWORD flags )
24 {
25  if (flags) FIXME( "unsupported flags %x\n", flags );
26 
28 }
29 #endif
30 
33 
34 typedef struct {
36  IOmNavigator IOmNavigator_iface;
37 
39 
42 } OmNavigator;
43 
44 typedef struct {
46  IHTMLDOMImplementation IHTMLDOMImplementation_iface;
47 
50 
51 static inline HTMLDOMImplementation *impl_from_IHTMLDOMImplementation(IHTMLDOMImplementation *iface)
52 {
53  return CONTAINING_RECORD(iface, HTMLDOMImplementation, IHTMLDOMImplementation_iface);
54 }
55 
56 static HRESULT WINAPI HTMLDOMImplementation_QueryInterface(IHTMLDOMImplementation *iface, REFIID riid, void **ppv)
57 {
59 
60  TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
61 
62  if(IsEqualGUID(&IID_IUnknown, riid) || IsEqualGUID(&IID_IHTMLDOMImplementation, riid)) {
63  *ppv = &This->IHTMLDOMImplementation_iface;
64  }else if(dispex_query_interface(&This->dispex, riid, ppv)) {
65  return *ppv ? S_OK : E_NOINTERFACE;
66  }else {
67  WARN("Unsupported interface %s\n", debugstr_mshtml_guid(riid));
68  *ppv = NULL;
69  return E_NOINTERFACE;
70  }
71 
72  IUnknown_AddRef((IUnknown*)*ppv);
73  return S_OK;
74 }
75 
76 static ULONG WINAPI HTMLDOMImplementation_AddRef(IHTMLDOMImplementation *iface)
77 {
80 
81  TRACE("(%p) ref=%d\n", This, ref);
82 
83  return ref;
84 }
85 
86 static ULONG WINAPI HTMLDOMImplementation_Release(IHTMLDOMImplementation *iface)
87 {
90 
91  TRACE("(%p) ref=%d\n", This, ref);
92 
93  if(!ref) {
94  release_dispex(&This->dispex);
95  heap_free(This);
96  }
97 
98  return ref;
99 }
100 
101 static HRESULT WINAPI HTMLDOMImplementation_GetTypeInfoCount(IHTMLDOMImplementation *iface, UINT *pctinfo)
102 {
104 
105  return IDispatchEx_GetTypeInfoCount(&This->dispex.IDispatchEx_iface, pctinfo);
106 }
107 
108 static HRESULT WINAPI HTMLDOMImplementation_GetTypeInfo(IHTMLDOMImplementation *iface, UINT iTInfo,
109  LCID lcid, ITypeInfo **ppTInfo)
110 {
112 
113  return IDispatchEx_GetTypeInfo(&This->dispex.IDispatchEx_iface, iTInfo, lcid, ppTInfo);
114 }
115 
116 static HRESULT WINAPI HTMLDOMImplementation_GetIDsOfNames(IHTMLDOMImplementation *iface, REFIID riid,
117  LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
118 {
120 
121  return IDispatchEx_GetIDsOfNames(&This->dispex.IDispatchEx_iface, riid, rgszNames,
122  cNames, lcid, rgDispId);
123 }
124 
125 static HRESULT WINAPI HTMLDOMImplementation_Invoke(IHTMLDOMImplementation *iface, DISPID dispIdMember,
126  REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult,
127  EXCEPINFO *pExcepInfo, UINT *puArgErr)
128 {
130 
131  return IDispatchEx_Invoke(&This->dispex.IDispatchEx_iface, dispIdMember, riid,
132  lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
133 }
134 
135 static HRESULT WINAPI HTMLDOMImplementation_hasFeature(IHTMLDOMImplementation *iface, BSTR feature,
136  VARIANT version, VARIANT_BOOL *pfHasFeature)
137 {
139 
140  FIXME("(%p)->(%s %s %p) returning false\n", This, debugstr_w(feature), debugstr_variant(&version), pfHasFeature);
141 
142  *pfHasFeature = VARIANT_FALSE;
143  return S_OK;
144 }
145 
146 static const IHTMLDOMImplementationVtbl HTMLDOMImplementationVtbl = {
155 };
156 
158  IHTMLDOMImplementation_tid,
159  0
160 };
162  NULL,
163  IHTMLDOMImplementation_tid,
164  NULL,
166 };
167 
168 HRESULT create_dom_implementation(IHTMLDOMImplementation **ret)
169 {
170  HTMLDOMImplementation *dom_implementation;
171 
172  dom_implementation = heap_alloc_zero(sizeof(*dom_implementation));
173  if(!dom_implementation)
174  return E_OUTOFMEMORY;
175 
176  dom_implementation->IHTMLDOMImplementation_iface.lpVtbl = &HTMLDOMImplementationVtbl;
177  dom_implementation->ref = 1;
178 
179  init_dispex(&dom_implementation->dispex, (IUnknown*)&dom_implementation->IHTMLDOMImplementation_iface,
181 
182  *ret = &dom_implementation->IHTMLDOMImplementation_iface;
183  return S_OK;
184 }
185 
186 static inline OmHistory *impl_from_IOmHistory(IOmHistory *iface)
187 {
188  return CONTAINING_RECORD(iface, OmHistory, IOmHistory_iface);
189 }
190 
191 static HRESULT WINAPI OmHistory_QueryInterface(IOmHistory *iface, REFIID riid, void **ppv)
192 {
194 
195  TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
196 
197  if(IsEqualGUID(&IID_IUnknown, riid)) {
198  *ppv = &This->IOmHistory_iface;
199  }else if(IsEqualGUID(&IID_IOmHistory, riid)) {
200  *ppv = &This->IOmHistory_iface;
201  }else if(dispex_query_interface(&This->dispex, riid, ppv)) {
202  return *ppv ? S_OK : E_NOINTERFACE;
203  }else {
204  WARN("Unsupported interface %s\n", debugstr_mshtml_guid(riid));
205  *ppv = NULL;
206  return E_NOINTERFACE;
207  }
208 
209  IUnknown_AddRef((IUnknown*)*ppv);
210  return S_OK;
211 }
212 
213 static ULONG WINAPI OmHistory_AddRef(IOmHistory *iface)
214 {
217 
218  TRACE("(%p) ref=%d\n", This, ref);
219 
220  return ref;
221 }
222 
223 static ULONG WINAPI OmHistory_Release(IOmHistory *iface)
224 {
227 
228  TRACE("(%p) ref=%d\n", This, ref);
229 
230  if(!ref) {
231  release_dispex(&This->dispex);
232  heap_free(This);
233  }
234 
235  return ref;
236 }
237 
238 static HRESULT WINAPI OmHistory_GetTypeInfoCount(IOmHistory *iface, UINT *pctinfo)
239 {
241  FIXME("(%p)->(%p)\n", This, pctinfo);
242  return E_NOTIMPL;
243 }
244 
245 static HRESULT WINAPI OmHistory_GetTypeInfo(IOmHistory *iface, UINT iTInfo,
246  LCID lcid, ITypeInfo **ppTInfo)
247 {
249 
250  return IDispatchEx_GetTypeInfo(&This->dispex.IDispatchEx_iface, iTInfo, lcid, ppTInfo);
251 }
252 
253 static HRESULT WINAPI OmHistory_GetIDsOfNames(IOmHistory *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames,
254  LCID lcid, DISPID *rgDispId)
255 {
257 
258  return IDispatchEx_GetIDsOfNames(&This->dispex.IDispatchEx_iface, riid, rgszNames, cNames,
259  lcid, rgDispId);
260 }
261 
262 static HRESULT WINAPI OmHistory_Invoke(IOmHistory *iface, DISPID dispIdMember, REFIID riid, LCID lcid,
263  WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
264 {
266 
267  return IDispatchEx_Invoke(&This->dispex.IDispatchEx_iface, dispIdMember, riid, lcid, wFlags,
268  pDispParams, pVarResult, pExcepInfo, puArgErr);
269 }
270 
271 static HRESULT WINAPI OmHistory_get_length(IOmHistory *iface, short *p)
272 {
274 
275  TRACE("(%p)->(%p)\n", This, p);
276 
277  if(!This->window || !This->window->base.outer_window->doc_obj
278  || !This->window->base.outer_window->doc_obj->travel_log) {
279  *p = 0;
280  }else {
281  *p = ITravelLog_CountEntries(This->window->base.outer_window->doc_obj->travel_log,
282  This->window->base.outer_window->doc_obj->browser_service);
283  }
284  return S_OK;
285 }
286 
287 static HRESULT WINAPI OmHistory_back(IOmHistory *iface, VARIANT *pvargdistance)
288 {
290  FIXME("(%p)->(%s)\n", This, debugstr_variant(pvargdistance));
291  return E_NOTIMPL;
292 }
293 
294 static HRESULT WINAPI OmHistory_forward(IOmHistory *iface, VARIANT *pvargdistance)
295 {
297  FIXME("(%p)->(%s)\n", This, debugstr_variant(pvargdistance));
298  return E_NOTIMPL;
299 }
300 
301 static HRESULT WINAPI OmHistory_go(IOmHistory *iface, VARIANT *pvargdistance)
302 {
304  FIXME("(%p)->(%s)\n", This, debugstr_variant(pvargdistance));
305  return E_NOTIMPL;
306 }
307 
308 static const IOmHistoryVtbl OmHistoryVtbl = {
320 };
321 
322 static const tid_t OmHistory_iface_tids[] = {
323  IOmHistory_tid,
324  0
325 };
327  NULL,
328  DispHTMLHistory_tid,
329  NULL,
331 };
332 
333 
335 {
336  OmHistory *history;
337 
338  history = heap_alloc_zero(sizeof(*history));
339  if(!history)
340  return E_OUTOFMEMORY;
341 
342  init_dispex(&history->dispex, (IUnknown*)&history->IOmHistory_iface, &OmHistory_dispex);
343  history->IOmHistory_iface.lpVtbl = &OmHistoryVtbl;
344  history->ref = 1;
345 
346  history->window = window;
347 
348  *ret = history;
349  return S_OK;
350 }
351 
354  IHTMLPluginsCollection IHTMLPluginsCollection_iface;
355 
357 
359 };
360 
361 static inline HTMLPluginsCollection *impl_from_IHTMLPluginsCollection(IHTMLPluginsCollection *iface)
362 {
363  return CONTAINING_RECORD(iface, HTMLPluginsCollection, IHTMLPluginsCollection_iface);
364 }
365 
366 static HRESULT WINAPI HTMLPluginsCollection_QueryInterface(IHTMLPluginsCollection *iface, REFIID riid, void **ppv)
367 {
369 
370  TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
371 
372  if(IsEqualGUID(&IID_IUnknown, riid)) {
373  *ppv = &This->IHTMLPluginsCollection_iface;
374  }else if(IsEqualGUID(&IID_IHTMLPluginsCollection, riid)) {
375  *ppv = &This->IHTMLPluginsCollection_iface;
376  }else if(dispex_query_interface(&This->dispex, riid, ppv)) {
377  return *ppv ? S_OK : E_NOINTERFACE;
378  }else {
379  *ppv = NULL;
380  WARN("Unsupported interface %s\n", debugstr_mshtml_guid(riid));
381  return E_NOINTERFACE;
382  }
383 
384  IUnknown_AddRef((IUnknown*)*ppv);
385  return S_OK;
386 }
387 
388 static ULONG WINAPI HTMLPluginsCollection_AddRef(IHTMLPluginsCollection *iface)
389 {
392 
393  TRACE("(%p) ref=%d\n", This, ref);
394 
395  return ref;
396 }
397 
398 static ULONG WINAPI HTMLPluginsCollection_Release(IHTMLPluginsCollection *iface)
399 {
402 
403  TRACE("(%p) ref=%d\n", This, ref);
404 
405  if(!ref) {
406  if(This->navigator)
407  This->navigator->plugins = NULL;
408  release_dispex(&This->dispex);
409  heap_free(This);
410  }
411 
412  return ref;
413 }
414 
415 static HRESULT WINAPI HTMLPluginsCollection_GetTypeInfoCount(IHTMLPluginsCollection *iface, UINT *pctinfo)
416 {
418  return IDispatchEx_GetTypeInfoCount(&This->dispex.IDispatchEx_iface, pctinfo);
419 }
420 
421 static HRESULT WINAPI HTMLPluginsCollection_GetTypeInfo(IHTMLPluginsCollection *iface, UINT iTInfo,
422  LCID lcid, ITypeInfo **ppTInfo)
423 {
425  return IDispatchEx_GetTypeInfo(&This->dispex.IDispatchEx_iface, iTInfo, lcid, ppTInfo);
426 }
427 
428 static HRESULT WINAPI HTMLPluginsCollection_GetIDsOfNames(IHTMLPluginsCollection *iface, REFIID riid,
429  LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
430 {
432  return IDispatchEx_GetIDsOfNames(&This->dispex.IDispatchEx_iface, riid, rgszNames, cNames,
433  lcid, rgDispId);
434 }
435 
436 static HRESULT WINAPI HTMLPluginsCollection_Invoke(IHTMLPluginsCollection *iface, DISPID dispIdMember,
437  REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult,
438  EXCEPINFO *pExcepInfo, UINT *puArgErr)
439 {
441  return IDispatchEx_Invoke(&This->dispex.IDispatchEx_iface, dispIdMember, riid, lcid,
442  wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
443 }
444 
445 static HRESULT WINAPI HTMLPluginsCollection_get_length(IHTMLPluginsCollection *iface, LONG *p)
446 {
448 
449  TRACE("(%p)->(%p)\n", This, p);
450 
451  /* IE always returns 0 here */
452  *p = 0;
453  return S_OK;
454 }
455 
456 static HRESULT WINAPI HTMLPluginsCollection_refresh(IHTMLPluginsCollection *iface, VARIANT_BOOL reload)
457 {
459 
460  TRACE("(%p)->(%x)\n", This, reload);
461 
462  /* Nothing to do here. */
463  return S_OK;
464 }
465 
466 static const IHTMLPluginsCollectionVtbl HTMLPluginsCollectionVtbl = {
476 };
477 
479  IHTMLPluginsCollection_tid,
480  0
481 };
483  NULL,
484  DispCPlugins_tid,
485  NULL,
487 };
488 
490 {
492 
493  col = heap_alloc_zero(sizeof(*col));
494  if(!col)
495  return E_OUTOFMEMORY;
496 
498  col->ref = 1;
499  col->navigator = navigator;
500 
503 
504  *ret = col;
505  return S_OK;
506 }
507 
510  IHTMLMimeTypesCollection IHTMLMimeTypesCollection_iface;
511 
513 
515 };
516 
517 static inline HTMLMimeTypesCollection *impl_from_IHTMLMimeTypesCollection(IHTMLMimeTypesCollection *iface)
518 {
519  return CONTAINING_RECORD(iface, HTMLMimeTypesCollection, IHTMLMimeTypesCollection_iface);
520 }
521 
522 static HRESULT WINAPI HTMLMimeTypesCollection_QueryInterface(IHTMLMimeTypesCollection *iface, REFIID riid, void **ppv)
523 {
525 
526  TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
527 
528  if(IsEqualGUID(&IID_IUnknown, riid)) {
529  *ppv = &This->IHTMLMimeTypesCollection_iface;
530  }else if(IsEqualGUID(&IID_IHTMLMimeTypesCollection, riid)) {
531  *ppv = &This->IHTMLMimeTypesCollection_iface;
532  }else if(dispex_query_interface(&This->dispex, riid, ppv)) {
533  return *ppv ? S_OK : E_NOINTERFACE;
534  }else {
535  WARN("Unsupported interface %s\n", debugstr_mshtml_guid(riid));
536  *ppv = NULL;
537  return E_NOINTERFACE;
538  }
539 
540  IUnknown_AddRef((IUnknown*)*ppv);
541  return S_OK;
542 }
543 
544 static ULONG WINAPI HTMLMimeTypesCollection_AddRef(IHTMLMimeTypesCollection *iface)
545 {
548 
549  TRACE("(%p) ref=%d\n", This, ref);
550 
551  return ref;
552 }
553 
554 static ULONG WINAPI HTMLMimeTypesCollection_Release(IHTMLMimeTypesCollection *iface)
555 {
558 
559  TRACE("(%p) ref=%d\n", This, ref);
560 
561  if(!ref) {
562  if(This->navigator)
563  This->navigator->mime_types = NULL;
564  release_dispex(&This->dispex);
565  heap_free(This);
566  }
567 
568  return ref;
569 }
570 
571 static HRESULT WINAPI HTMLMimeTypesCollection_GetTypeInfoCount(IHTMLMimeTypesCollection *iface, UINT *pctinfo)
572 {
574  return IDispatchEx_GetTypeInfoCount(&This->dispex.IDispatchEx_iface, pctinfo);
575 }
576 
577 static HRESULT WINAPI HTMLMimeTypesCollection_GetTypeInfo(IHTMLMimeTypesCollection *iface, UINT iTInfo,
578  LCID lcid, ITypeInfo **ppTInfo)
579 {
581  return IDispatchEx_GetTypeInfo(&This->dispex.IDispatchEx_iface, iTInfo, lcid, ppTInfo);
582 }
583 
584 static HRESULT WINAPI HTMLMimeTypesCollection_GetIDsOfNames(IHTMLMimeTypesCollection *iface, REFIID riid,
585  LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
586 {
588  return IDispatchEx_GetIDsOfNames(&This->dispex.IDispatchEx_iface, riid, rgszNames, cNames,
589  lcid, rgDispId);
590 }
591 
592 static HRESULT WINAPI HTMLMimeTypesCollection_Invoke(IHTMLMimeTypesCollection *iface, DISPID dispIdMember,
593  REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult,
594  EXCEPINFO *pExcepInfo, UINT *puArgErr)
595 {
597  return IDispatchEx_Invoke(&This->dispex.IDispatchEx_iface, dispIdMember, riid, lcid,
598  wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
599 }
600 
601 static HRESULT WINAPI HTMLMimeTypesCollection_get_length(IHTMLMimeTypesCollection *iface, LONG *p)
602 {
604 
605  TRACE("(%p)->(%p)\n", This, p);
606 
607  /* This is just a stub for compatibility with other browser in IE */
608  *p = 0;
609  return S_OK;
610 }
611 
612 static const IHTMLMimeTypesCollectionVtbl HTMLMimeTypesCollectionVtbl = {
621 };
622 
624  IHTMLMimeTypesCollection_tid,
625  0
626 };
628  NULL,
629  IHTMLMimeTypesCollection_tid,
630  NULL,
632 };
633 
635 {
637 
638  col = heap_alloc_zero(sizeof(*col));
639  if(!col)
640  return E_OUTOFMEMORY;
641 
643  col->ref = 1;
644  col->navigator = navigator;
645 
648 
649  *ret = col;
650  return S_OK;
651 }
652 
653 static inline OmNavigator *impl_from_IOmNavigator(IOmNavigator *iface)
654 {
655  return CONTAINING_RECORD(iface, OmNavigator, IOmNavigator_iface);
656 }
657 
658 static HRESULT WINAPI OmNavigator_QueryInterface(IOmNavigator *iface, REFIID riid, void **ppv)
659 {
661 
662  TRACE("(%p)->(%s %p)\n", This, debugstr_mshtml_guid(riid), ppv);
663 
664  if(IsEqualGUID(&IID_IUnknown, riid)) {
665  *ppv = &This->IOmNavigator_iface;
666  }else if(IsEqualGUID(&IID_IOmNavigator, riid)) {
667  *ppv = &This->IOmNavigator_iface;
668  }else if(dispex_query_interface(&This->dispex, riid, ppv)) {
669  return *ppv ? S_OK : E_NOINTERFACE;
670  }else {
671  WARN("Unsupported interface %s\n", debugstr_mshtml_guid(riid));
672  *ppv = NULL;
673  return E_NOINTERFACE;
674  }
675 
676  IUnknown_AddRef((IUnknown*)*ppv);
677  return S_OK;
678 }
679 
680 static ULONG WINAPI OmNavigator_AddRef(IOmNavigator *iface)
681 {
684 
685  TRACE("(%p) ref=%d\n", This, ref);
686 
687  return ref;
688 }
689 
690 static ULONG WINAPI OmNavigator_Release(IOmNavigator *iface)
691 {
694 
695  TRACE("(%p) ref=%d\n", This, ref);
696 
697  if(!ref) {
698  if(This->plugins)
699  This->plugins->navigator = NULL;
700  if(This->mime_types)
701  This->mime_types->navigator = NULL;
702  release_dispex(&This->dispex);
703  heap_free(This);
704  }
705 
706  return ref;
707 }
708 
709 static HRESULT WINAPI OmNavigator_GetTypeInfoCount(IOmNavigator *iface, UINT *pctinfo)
710 {
712  FIXME("(%p)->(%p)\n", This, pctinfo);
713  return E_NOTIMPL;
714 }
715 
716 static HRESULT WINAPI OmNavigator_GetTypeInfo(IOmNavigator *iface, UINT iTInfo,
717  LCID lcid, ITypeInfo **ppTInfo)
718 {
720 
721  return IDispatchEx_GetTypeInfo(&This->dispex.IDispatchEx_iface, iTInfo, lcid, ppTInfo);
722 }
723 
724 static HRESULT WINAPI OmNavigator_GetIDsOfNames(IOmNavigator *iface, REFIID riid,
725  LPOLESTR *rgszNames, UINT cNames,
726  LCID lcid, DISPID *rgDispId)
727 {
729 
730  return IDispatchEx_GetIDsOfNames(&This->dispex.IDispatchEx_iface, riid, rgszNames, cNames,
731  lcid, rgDispId);
732 }
733 
734 static HRESULT WINAPI OmNavigator_Invoke(IOmNavigator *iface, DISPID dispIdMember,
735  REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams,
736  VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
737 {
739 
740  return IDispatchEx_Invoke(&This->dispex.IDispatchEx_iface, dispIdMember, riid, lcid, wFlags,
741  pDispParams, pVarResult, pExcepInfo, puArgErr);
742 }
743 
744 static HRESULT WINAPI OmNavigator_get_appCodeName(IOmNavigator *iface, BSTR *p)
745 {
747 
748  static const WCHAR mozillaW[] = {'M','o','z','i','l','l','a',0};
749 
750  TRACE("(%p)->(%p)\n", This, p);
751 
752  *p = SysAllocString(mozillaW);
753  return S_OK;
754 }
755 
756 static HRESULT WINAPI OmNavigator_get_appName(IOmNavigator *iface, BSTR *p)
757 {
759 
760  static const WCHAR app_nameW[] =
761  {'M','i','c','r','o','s','o','f','t',' ',
762  'I','n','t','e','r','n','e','t',' ',
763  'E','x','p','l','o','r','e','r',0};
764 
765  TRACE("(%p)->(%p)\n", This, p);
766 
767  *p = SysAllocString(app_nameW);
768  if(!*p)
769  return E_OUTOFMEMORY;
770 
771  return S_OK;
772 }
773 
774 static HRESULT WINAPI OmNavigator_get_appVersion(IOmNavigator *iface, BSTR *p)
775 {
777 
778  char user_agent[512];
779  DWORD size;
780  HRESULT hres;
781 
782  TRACE("(%p)->(%p)\n", This, p);
783 
784  size = sizeof(user_agent);
786  if(FAILED(hres))
787  return hres;
788 
789  if(strncmp(user_agent, "Mozilla/", 8)) {
790  FIXME("Unsupported user agent\n");
791  return E_FAIL;
792  }
793 
794  size = MultiByteToWideChar(CP_ACP, 0, user_agent+8, -1, NULL, 0);
795  *p = SysAllocStringLen(NULL, size-1);
796  if(!*p)
797  return E_OUTOFMEMORY;
798 
800  return S_OK;
801 }
802 
803 static HRESULT WINAPI OmNavigator_get_userAgent(IOmNavigator *iface, BSTR *p)
804 {
806  char user_agent[512];
807  DWORD size;
808  HRESULT hres;
809 
810  TRACE("(%p)->(%p)\n", This, p);
811 
812  size = sizeof(user_agent);
814  if(FAILED(hres))
815  return hres;
816 
818  *p = SysAllocStringLen(NULL, size-1);
819  if(!*p)
820  return E_OUTOFMEMORY;
821 
823  return S_OK;
824 }
825 
827 {
829 
830  FIXME("(%p)->(%p) semi-stub\n", This, enabled);
831 
832  *enabled = VARIANT_TRUE;
833  return S_OK;
834 }
835 
837 {
839  FIXME("(%p)->(%p)\n", This, enabled);
840  return E_NOTIMPL;
841 }
842 
843 static HRESULT WINAPI OmNavigator_get_mimeTypes(IOmNavigator *iface, IHTMLMimeTypesCollection **p)
844 {
846 
847  TRACE("(%p)->(%p)\n", This, p);
848 
849  if(!This->mime_types) {
850  HRESULT hres;
851 
852  hres = create_mime_types_collection(This, &This->mime_types);
853  if(FAILED(hres))
854  return hres;
855  }else {
856  IHTMLMimeTypesCollection_AddRef(&This->mime_types->IHTMLMimeTypesCollection_iface);
857  }
858 
859  *p = &This->mime_types->IHTMLMimeTypesCollection_iface;
860  return S_OK;
861 }
862 
863 static HRESULT WINAPI OmNavigator_get_plugins(IOmNavigator *iface, IHTMLPluginsCollection **p)
864 {
866 
867  TRACE("(%p)->(%p)\n", This, p);
868 
869  if(!This->plugins) {
870  HRESULT hres;
871 
872  hres = create_plugins_collection(This, &This->plugins);
873  if(FAILED(hres))
874  return hres;
875  }else {
876  IHTMLPluginsCollection_AddRef(&This->plugins->IHTMLPluginsCollection_iface);
877  }
878 
879  *p = &This->plugins->IHTMLPluginsCollection_iface;
880  return S_OK;
881 }
882 
884 {
886 
887  WARN("(%p)->(%p) semi-stub\n", This, p);
888 
889  *p = VARIANT_TRUE;
890  return S_OK;
891 }
892 
893 static HRESULT WINAPI OmNavigator_get_opsProfile(IOmNavigator *iface, IHTMLOpsProfile **p)
894 {
896  FIXME("(%p)->(%p)\n", This, p);
897  return E_NOTIMPL;
898 }
899 
900 static HRESULT WINAPI OmNavigator_toString(IOmNavigator *iface, BSTR *String)
901 {
903 
904  static const WCHAR objectW[] = {'[','o','b','j','e','c','t',']',0};
905 
906  TRACE("(%p)->(%p)\n", This, String);
907 
908  if(!String)
909  return E_INVALIDARG;
910 
912  return *String ? S_OK : E_OUTOFMEMORY;
913 }
914 
915 static HRESULT WINAPI OmNavigator_get_cpuClass(IOmNavigator *iface, BSTR *p)
916 {
918 
919  static const WCHAR cpu_classW[] =
920 #ifdef _WIN64
921  {'x','6','4',0};
922 #else
923  {'x','8','6',0};
924 #endif
925 
926  TRACE("(%p)->(%p)\n", This, p);
927 
928  *p = SysAllocString(cpu_classW);
929  return *p ? S_OK : E_OUTOFMEMORY;
930 }
931 
933 {
934  BSTR ret;
935  int len;
936 
937  len = LCIDToLocaleName(lcid, NULL, 0, 0);
938  if(!len) {
939  WARN("LCIDToLocaleName failed: %u\n", GetLastError());
940  return E_FAIL;
941  }
942 
944  if(!ret)
945  return E_OUTOFMEMORY;
946 
947  len = LCIDToLocaleName(lcid, ret, len, 0);
948  if(!len) {
949  WARN("LCIDToLocaleName failed: %u\n", GetLastError());
951  return E_FAIL;
952  }
953 
954  *p = ret;
955  return S_OK;
956 }
957 
958 static HRESULT WINAPI OmNavigator_get_systemLanguage(IOmNavigator *iface, BSTR *p)
959 {
961 
962  TRACE("(%p)->(%p)\n", This, p);
963 
965 }
966 
967 static HRESULT WINAPI OmNavigator_get_browserLanguage(IOmNavigator *iface, BSTR *p)
968 {
970 
971  TRACE("(%p)->(%p)\n", This, p);
972 
974 }
975 
976 static HRESULT WINAPI OmNavigator_get_userLanguage(IOmNavigator *iface, BSTR *p)
977 {
979 
980  TRACE("(%p)->(%p)\n", This, p);
981 
983 }
984 
985 static HRESULT WINAPI OmNavigator_get_platform(IOmNavigator *iface, BSTR *p)
986 {
988 
989 #ifdef _WIN64
990  static const WCHAR platformW[] = {'W','i','n','6','4',0};
991 #else
992  static const WCHAR platformW[] = {'W','i','n','3','2',0};
993 #endif
994 
995  TRACE("(%p)->(%p)\n", This, p);
996 
997  *p = SysAllocString(platformW);
998  return S_OK;
999 }
1000 
1001 static HRESULT WINAPI OmNavigator_get_appMinorVersion(IOmNavigator *iface, BSTR *p)
1002 {
1004 
1005  static const WCHAR zeroW[] = {'0',0};
1006 
1007  TRACE("(%p)->(%p)\n", This, p);
1008 
1009  /* NOTE: MSIE returns "0" or values like ";SP2;". Returning "0" should be enough. */
1010  *p = SysAllocString(zeroW);
1011  return S_OK;
1012 }
1013 
1014 static HRESULT WINAPI OmNavigator_get_connectionSpeed(IOmNavigator *iface, LONG *p)
1015 {
1017  FIXME("(%p)->(%p)\n", This, p);
1018  return E_NOTIMPL;
1019 }
1020 
1021 static HRESULT WINAPI OmNavigator_get_onLine(IOmNavigator *iface, VARIANT_BOOL *p)
1022 {
1024 
1025  WARN("(%p)->(%p) semi-stub, returning true\n", This, p);
1026 
1027  *p = VARIANT_TRUE;
1028  return S_OK;
1029 }
1030 
1031 static HRESULT WINAPI OmNavigator_get_userProfile(IOmNavigator *iface, IHTMLOpsProfile **p)
1032 {
1034  FIXME("(%p)->(%p)\n", This, p);
1035  return E_NOTIMPL;
1036 }
1037 
1038 static const IOmNavigatorVtbl OmNavigatorVtbl = {
1066 };
1067 
1068 static const tid_t OmNavigator_iface_tids[] = {
1069  IOmNavigator_tid,
1070  0
1071 };
1073  NULL,
1074  DispHTMLNavigator_tid,
1075  NULL,
1077 };
1078 
1079 IOmNavigator *OmNavigator_Create(void)
1080 {
1081  OmNavigator *ret;
1082 
1083  ret = heap_alloc_zero(sizeof(*ret));
1084  if(!ret)
1085  return NULL;
1086 
1087  ret->IOmNavigator_iface.lpVtbl = &OmNavigatorVtbl;
1088  ret->ref = 1;
1089 
1090  init_dispex(&ret->dispex, (IUnknown*)&ret->IOmNavigator_iface, &OmNavigator_dispex);
1091 
1092  return &ret->IOmNavigator_iface;
1093 }
static HRESULT WINAPI OmNavigator_get_connectionSpeed(IOmNavigator *iface, LONG *p)
Definition: omnavigator.c:1014
INTERNETFEATURELIST feature
Definition: misc.c:1689
static HRESULT WINAPI OmNavigator_get_onLine(IOmNavigator *iface, VARIANT_BOOL *p)
Definition: omnavigator.c:1021
HTMLMimeTypesCollection * mime_types
Definition: omnavigator.c:41
static HRESULT WINAPI OmNavigator_get_platform(IOmNavigator *iface, BSTR *p)
Definition: omnavigator.c:985
LANGID WINAPI GetUserDefaultUILanguage(void)
Definition: lang.c:806
static HRESULT WINAPI OmNavigator_get_plugins(IOmNavigator *iface, IHTMLPluginsCollection **p)
Definition: omnavigator.c:863
static HRESULT WINAPI OmNavigator_get_mimeTypes(IOmNavigator *iface, IHTMLMimeTypesCollection **p)
Definition: omnavigator.c:843
#define REFIID
Definition: guiddef.h:118
#define E_NOINTERFACE
Definition: winerror.h:2364
static HRESULT WINAPI OmNavigator_get_appName(IOmNavigator *iface, BSTR *p)
Definition: omnavigator.c:756
static HRESULT WINAPI OmNavigator_GetTypeInfo(IOmNavigator *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
Definition: omnavigator.c:716
static HRESULT WINAPI OmNavigator_get_appCodeName(IOmNavigator *iface, BSTR *p)
Definition: omnavigator.c:744
static HRESULT create_plugins_collection(OmNavigator *navigator, HTMLPluginsCollection **ret)
Definition: omnavigator.c:489
static HRESULT WINAPI HTMLPluginsCollection_GetIDsOfNames(IHTMLPluginsCollection *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
Definition: omnavigator.c:428
HRESULT create_dom_implementation(IHTMLDOMImplementation **ret)
Definition: omnavigator.c:168
static HRESULT WINAPI OmNavigator_toString(IOmNavigator *iface, BSTR *String)
Definition: omnavigator.c:900
BSTR WINAPI SysAllocStringLen(const OLECHAR *str, unsigned int len)
Definition: oleaut.c:342
static HRESULT WINAPI HTMLPluginsCollection_GetTypeInfoCount(IHTMLPluginsCollection *iface, UINT *pctinfo)
Definition: omnavigator.c:415
static HRESULT WINAPI HTMLPluginsCollection_refresh(IHTMLPluginsCollection *iface, VARIANT_BOOL reload)
Definition: omnavigator.c:456
static HRESULT WINAPI HTMLPluginsCollection_get_length(IHTMLPluginsCollection *iface, LONG *p)
Definition: omnavigator.c:445
static HRESULT WINAPI OmNavigator_javaEnabled(IOmNavigator *iface, VARIANT_BOOL *enabled)
Definition: omnavigator.c:826
static HRESULT WINAPI OmHistory_GetTypeInfo(IOmHistory *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
Definition: omnavigator.c:245
REFIID riid
Definition: precomp.h:44
static HRESULT WINAPI OmNavigator_Invoke(IOmNavigator *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
Definition: omnavigator.c:734
static HRESULT WINAPI HTMLMimeTypesCollection_GetTypeInfoCount(IHTMLMimeTypesCollection *iface, UINT *pctinfo)
Definition: omnavigator.c:571
#define CP_ACP
Definition: compat.h:99
#define LOCALE_USER_DEFAULT
GLuint GLuint GLsizei count
Definition: gl.h:1545
tid_t
Definition: ieframe.h:311
static HRESULT WINAPI OmHistory_GetTypeInfoCount(IOmHistory *iface, UINT *pctinfo)
Definition: omnavigator.c:238
#define WARN(fmt,...)
Definition: debug.h:111
static HRESULT WINAPI HTMLMimeTypesCollection_get_length(IHTMLMimeTypesCollection *iface, LONG *p)
Definition: omnavigator.c:601
static dispex_static_data_t HTMLPluginsCollection_dispex
Definition: omnavigator.c:482
static ULONG WINAPI HTMLMimeTypesCollection_AddRef(IHTMLMimeTypesCollection *iface)
Definition: omnavigator.c:544
static dispex_static_data_t HTMLMimeTypesCollection_dispex
Definition: omnavigator.c:627
REFIID LPVOID * ppv
Definition: atlbase.h:39
static OmHistory * impl_from_IOmHistory(IOmHistory *iface)
Definition: omnavigator.c:186
HRESULT create_history(HTMLInnerWindow *window, OmHistory **ret)
Definition: omnavigator.c:334
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1059
IHTMLPluginsCollection IHTMLPluginsCollection_iface
Definition: omnavigator.c:354
static HRESULT WINAPI HTMLPluginsCollection_Invoke(IHTMLPluginsCollection *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
Definition: omnavigator.c:436
static const tid_t HTMLMimeTypesCollection_iface_tids[]
Definition: omnavigator.c:623
static HRESULT WINAPI HTMLDOMImplementation_GetTypeInfoCount(IHTMLDOMImplementation *iface, UINT *pctinfo)
Definition: omnavigator.c:101
static HTMLDOMImplementation * impl_from_IHTMLDOMImplementation(IHTMLDOMImplementation *iface)
Definition: omnavigator.c:51
static WCHAR String[]
Definition: stringtable.c:55
DWORD LCID
Definition: nls.h:13
OLECHAR * BSTR
Definition: compat.h:1934
static const IOmNavigatorVtbl OmNavigatorVtbl
Definition: omnavigator.c:1038
static ULONG WINAPI HTMLDOMImplementation_Release(IHTMLDOMImplementation *iface)
Definition: omnavigator.c:86
OmNavigator * navigator
Definition: omnavigator.c:358
static LPOLESTR
Definition: stg_prop.c:27
static HTMLMimeTypesCollection * impl_from_IHTMLMimeTypesCollection(IHTMLMimeTypesCollection *iface)
Definition: omnavigator.c:517
#define E_FAIL
Definition: ddrawi.h:102
int32_t INT
Definition: typedefs.h:56
GLenum GLenum GLsizei const GLuint GLboolean enabled
Definition: glext.h:7750
short VARIANT_BOOL
Definition: compat.h:1931
Definition: send.c:47
static HRESULT WINAPI OmNavigator_get_appMinorVersion(IOmNavigator *iface, BSTR *p)
Definition: omnavigator.c:1001
OmNavigator * navigator
Definition: omnavigator.c:514
static HRESULT WINAPI OmHistory_get_length(IOmHistory *iface, short *p)
Definition: omnavigator.c:271
static HRESULT WINAPI OmNavigator_get_userProfile(IOmNavigator *iface, IHTMLOpsProfile **p)
Definition: omnavigator.c:1031
IHTMLDOMImplementation IHTMLDOMImplementation_iface
Definition: omnavigator.c:46
INT WINAPI GetLocaleInfoW(LCID lcid, LCTYPE lctype, LPWSTR buffer, INT len)
Definition: lang.c:1098
const char * debugstr_mshtml_guid(const GUID *iid)
Definition: main.c:535
static HRESULT WINAPI OmNavigator_get_cookieEnabled(IOmNavigator *iface, VARIANT_BOOL *p)
Definition: omnavigator.c:883
IOmHistory IOmHistory_iface
IOmNavigator * OmNavigator_Create(void)
Definition: omnavigator.c:1079
static HRESULT WINAPI OmNavigator_get_appVersion(IOmNavigator *iface, BSTR *p)
Definition: omnavigator.c:774
#define LOCALE_NOUSEROVERRIDE
Definition: winnls.h:19
static HRESULT WINAPI OmHistory_QueryInterface(IOmHistory *iface, REFIID riid, void **ppv)
Definition: omnavigator.c:191
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
long LONG
Definition: pedump.c:60
#define debugstr_w
Definition: kernel32.h:32
GLenum GLint ref
Definition: glext.h:6028
#define FIXME(fmt,...)
Definition: debug.h:110
static HRESULT WINAPI OmHistory_Invoke(IOmHistory *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
Definition: omnavigator.c:262
#define E_INVALIDARG
Definition: ddrawi.h:101
static ULONG WINAPI HTMLMimeTypesCollection_Release(IHTMLMimeTypesCollection *iface)
Definition: omnavigator.c:554
HTMLPluginsCollection * plugins
Definition: omnavigator.c:40
smooth NULL
Definition: ftsmooth.c:416
static const WCHAR version[]
Definition: asmname.c:64
BSTR WINAPI SysAllocString(LPCOLESTR str)
Definition: oleaut.c:241
static HRESULT WINAPI OmHistory_GetIDsOfNames(IOmHistory *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
Definition: omnavigator.c:253
static HRESULT WINAPI OmNavigator_GetTypeInfoCount(IOmNavigator *iface, UINT *pctinfo)
Definition: omnavigator.c:709
static const IHTMLMimeTypesCollectionVtbl HTMLMimeTypesCollectionVtbl
Definition: omnavigator.c:612
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 HTMLPluginsCollection_GetTypeInfo(IHTMLPluginsCollection *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
Definition: omnavigator.c:421
static HRESULT WINAPI OmHistory_go(IOmHistory *iface, VARIANT *pvargdistance)
Definition: omnavigator.c:301
static HRESULT WINAPI HTMLDOMImplementation_GetIDsOfNames(IHTMLDOMImplementation *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
Definition: omnavigator.c:116
static HRESULT WINAPI OmHistory_forward(IOmHistory *iface, VARIANT *pvargdistance)
Definition: omnavigator.c:294
static HRESULT WINAPI HTMLDOMImplementation_GetTypeInfo(IHTMLDOMImplementation *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
Definition: omnavigator.c:108
static ULONG WINAPI OmNavigator_Release(IOmNavigator *iface)
Definition: omnavigator.c:690
static HRESULT create_mime_types_collection(OmNavigator *navigator, HTMLMimeTypesCollection **ret)
Definition: omnavigator.c:634
#define TRACE(s)
Definition: solgame.cpp:4
static const tid_t HTMLDOMImplementation_iface_tids[]
Definition: omnavigator.c:157
static ULONG WINAPI OmNavigator_AddRef(IOmNavigator *iface)
Definition: omnavigator.c:680
GLsizeiptr size
Definition: glext.h:5919
static const IOmHistoryVtbl OmHistoryVtbl
Definition: omnavigator.c:308
HRESULT hres
Definition: protocol.c:465
HTMLInnerWindow * window
__wchar_t WCHAR
Definition: xmlstorage.h:180
LONG HRESULT
Definition: typedefs.h:77
static HRESULT WINAPI OmNavigator_get_browserLanguage(IOmNavigator *iface, BSTR *p)
Definition: omnavigator.c:967
const GUID IID_IUnknown
static LPWSTR user_agent
Definition: session.c:520
static HRESULT WINAPI OmNavigator_get_cpuClass(IOmNavigator *iface, BSTR *p)
Definition: omnavigator.c:915
#define WINAPI
Definition: msvc.h:8
int strncmp(const char *String1, const char *String2, ACPI_SIZE Count)
Definition: utclib.c:534
#define LOCALE_SYSTEM_DEFAULT
IHTMLMimeTypesCollection IHTMLMimeTypesCollection_iface
Definition: omnavigator.c:510
#define LOCALE_SNAME
Definition: winnls.h:129
unsigned short WORD
Definition: ntddk_ex.h:93
unsigned long DWORD
Definition: ntddk_ex.h:95
static ULONG WINAPI HTMLDOMImplementation_AddRef(IHTMLDOMImplementation *iface)
Definition: omnavigator.c:76
static HRESULT WINAPI HTMLMimeTypesCollection_GetTypeInfo(IHTMLMimeTypesCollection *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
Definition: omnavigator.c:577
GLbitfield flags
Definition: glext.h:7161
static ULONG WINAPI OmHistory_AddRef(IOmHistory *iface)
Definition: omnavigator.c:213
static HRESULT WINAPI OmNavigator_QueryInterface(IOmNavigator *iface, REFIID riid, void **ppv)
Definition: omnavigator.c:658
static const IHTMLDOMImplementationVtbl HTMLDOMImplementationVtbl
Definition: omnavigator.c:146
DispatchEx dispex
Definition: omnavigator.c:35
static HRESULT WINAPI OmNavigator_get_opsProfile(IOmNavigator *iface, IHTMLOpsProfile **p)
Definition: omnavigator.c:893
int ret
static HRESULT WINAPI HTMLPluginsCollection_QueryInterface(IHTMLPluginsCollection *iface, REFIID riid, void **ppv)
Definition: omnavigator.c:366
#define InterlockedDecrement
Definition: armddk.h:52
static ULONG WINAPI HTMLPluginsCollection_AddRef(IHTMLPluginsCollection *iface)
Definition: omnavigator.c:388
GLenum GLsizei len
Definition: glext.h:6722
static const IHTMLPluginsCollectionVtbl HTMLPluginsCollectionVtbl
Definition: omnavigator.c:466
static const tid_t HTMLPluginsCollection_iface_tids[]
Definition: omnavigator.c:478
static HRESULT WINAPI HTMLMimeTypesCollection_GetIDsOfNames(IHTMLMimeTypesCollection *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
Definition: omnavigator.c:584
static IHTMLWindow2 * window
Definition: events.c:77
static HRESULT WINAPI OmHistory_back(IOmHistory *iface, VARIANT *pvargdistance)
Definition: omnavigator.c:287
static HRESULT WINAPI HTMLDOMImplementation_hasFeature(IHTMLDOMImplementation *iface, BSTR feature, VARIANT version, VARIANT_BOOL *pfHasFeature)
Definition: omnavigator.c:135
_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 HTMLMimeTypesCollection_QueryInterface(IHTMLMimeTypesCollection *iface, REFIID riid, void **ppv)
Definition: omnavigator.c:522
static ULONG WINAPI OmHistory_Release(IOmHistory *iface)
Definition: omnavigator.c:223
static const tid_t OmHistory_iface_tids[]
Definition: omnavigator.c:322
#define InterlockedIncrement
Definition: armddk.h:53
BOOL dispex_query_interface(DispatchEx *This, REFIID riid, void **ppv)
Definition: dispex.c:1656
static const tid_t OmNavigator_iface_tids[]
Definition: omnavigator.c:1068
static const WCHAR objectW[]
Definition: engine.c:35
IOmNavigator IOmNavigator_iface
Definition: omnavigator.c:36
#define E_NOTIMPL
Definition: ddrawi.h:99
static HRESULT WINAPI OmNavigator_get_userLanguage(IOmNavigator *iface, BSTR *p)
Definition: omnavigator.c:976
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
Definition: oleaut.c:274
unsigned int UINT
Definition: ndis.h:50
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
Definition: compobj.c:4021
static HRESULT WINAPI OmNavigator_GetIDsOfNames(IOmNavigator *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
Definition: omnavigator.c:724
static HRESULT WINAPI OmNavigator_get_userAgent(IOmNavigator *iface, BSTR *p)
Definition: omnavigator.c:803
static dispex_static_data_t OmNavigator_dispex
Definition: omnavigator.c:1072
HRESULT init_dispex(jsdisp_t *dispex, script_ctx_t *ctx, const builtin_info_t *builtin_info, jsdisp_t *prototype)
Definition: dispex.c:940
static HRESULT get_language_string(LCID lcid, BSTR *p)
Definition: omnavigator.c:932
static dispex_static_data_t HTMLDOMImplementation_dispex
Definition: omnavigator.c:161
#define MultiByteToWideChar
Definition: compat.h:100
Definition: name.c:36
struct stdole::DISPPARAMS DISPPARAMS
static HRESULT WINAPI OmNavigator_taintEnabled(IOmNavigator *iface, VARIANT_BOOL *enabled)
Definition: omnavigator.c:836
unsigned int ULONG
Definition: retypes.h:1
static ULONG WINAPI HTMLPluginsCollection_Release(IHTMLPluginsCollection *iface)
Definition: omnavigator.c:398
static OmNavigator * impl_from_IOmNavigator(IOmNavigator *iface)
Definition: omnavigator.c:653
static HTMLPluginsCollection * impl_from_IHTMLPluginsCollection(IHTMLPluginsCollection *iface)
Definition: omnavigator.c:361
static HRESULT WINAPI HTMLDOMImplementation_QueryInterface(IHTMLDOMImplementation *iface, REFIID riid, void **ppv)
Definition: omnavigator.c:56
GLfloat GLfloat p
Definition: glext.h:8902
WCHAR * LPWSTR
Definition: xmlstorage.h:184
static HRESULT WINAPI HTMLMimeTypesCollection_Invoke(IHTMLMimeTypesCollection *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
Definition: omnavigator.c:592
HRESULT WINAPI ObtainUserAgentString(DWORD dwOption, LPSTR pcszUAOut, DWORD *cbSize)
Definition: session.c:725
static dispex_static_data_t OmHistory_dispex
Definition: omnavigator.c:326
static HRESULT WINAPI HTMLDOMImplementation_Invoke(IHTMLDOMImplementation *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
Definition: omnavigator.c:125
DispatchEx dispex
void release_dispex(DispatchEx *This)
Definition: dispex.c:1706
static HRESULT WINAPI OmNavigator_get_systemLanguage(IOmNavigator *iface, BSTR *p)
Definition: omnavigator.c:958
static BOOL heap_free(void *mem)
Definition: appwiz.h:75