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