ReactOS 0.4.15-dev-7681-g776c3a3
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#endif
30
33
34typedef struct {
36 IOmNavigator IOmNavigator_iface;
37
39
43
44typedef struct {
46 IHTMLDOMImplementation IHTMLDOMImplementation_iface;
47
50
51static inline HTMLDOMImplementation *impl_from_IHTMLDOMImplementation(IHTMLDOMImplementation *iface)
52{
53 return CONTAINING_RECORD(iface, HTMLDOMImplementation, IHTMLDOMImplementation_iface);
54}
55
56static 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
76static ULONG WINAPI HTMLDOMImplementation_AddRef(IHTMLDOMImplementation *iface)
77{
80
81 TRACE("(%p) ref=%d\n", This, ref);
82
83 return ref;
84}
85
86static 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);
96 }
97
98 return ref;
99}
100
101static HRESULT WINAPI HTMLDOMImplementation_GetTypeInfoCount(IHTMLDOMImplementation *iface, UINT *pctinfo)
102{
104
105 return IDispatchEx_GetTypeInfoCount(&This->dispex.IDispatchEx_iface, pctinfo);
106}
107
108static 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
116static 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
125static 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
135static 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
146static const IHTMLDOMImplementationVtbl HTMLDOMImplementationVtbl = {
155};
156
158 IHTMLDOMImplementation_tid,
159 0
160};
162 NULL,
163 IHTMLDOMImplementation_tid,
164 NULL,
166};
167
168HRESULT 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
186static inline OmHistory *impl_from_IOmHistory(IOmHistory *iface)
187{
188 return CONTAINING_RECORD(iface, OmHistory, IOmHistory_iface);
189}
190
191static 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
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
213static ULONG WINAPI OmHistory_AddRef(IOmHistory *iface)
214{
217
218 TRACE("(%p) ref=%d\n", This, ref);
219
220 return ref;
221}
222
223static 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);
233 }
234
235 return ref;
236}
237
238static HRESULT WINAPI OmHistory_GetTypeInfoCount(IOmHistory *iface, UINT *pctinfo)
239{
241 FIXME("(%p)->(%p)\n", This, pctinfo);
242 return E_NOTIMPL;
243}
244
245static 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
253static 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
262static 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
271static 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
287static HRESULT WINAPI OmHistory_back(IOmHistory *iface, VARIANT *pvargdistance)
288{
290 FIXME("(%p)->(%s)\n", This, debugstr_variant(pvargdistance));
291 return E_NOTIMPL;
292}
293
294static HRESULT WINAPI OmHistory_forward(IOmHistory *iface, VARIANT *pvargdistance)
295{
297 FIXME("(%p)->(%s)\n", This, debugstr_variant(pvargdistance));
298 return E_NOTIMPL;
299}
300
301static HRESULT WINAPI OmHistory_go(IOmHistory *iface, VARIANT *pvargdistance)
302{
304 FIXME("(%p)->(%s)\n", This, debugstr_variant(pvargdistance));
305 return E_NOTIMPL;
306}
307
308static const IOmHistoryVtbl OmHistoryVtbl = {
320};
321
322static 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
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
361static inline HTMLPluginsCollection *impl_from_IHTMLPluginsCollection(IHTMLPluginsCollection *iface)
362{
363 return CONTAINING_RECORD(iface, HTMLPluginsCollection, IHTMLPluginsCollection_iface);
364}
365
366static 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
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
388static ULONG WINAPI HTMLPluginsCollection_AddRef(IHTMLPluginsCollection *iface)
389{
392
393 TRACE("(%p) ref=%d\n", This, ref);
394
395 return ref;
396}
397
398static 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);
410 }
411
412 return ref;
413}
414
415static HRESULT WINAPI HTMLPluginsCollection_GetTypeInfoCount(IHTMLPluginsCollection *iface, UINT *pctinfo)
416{
418 return IDispatchEx_GetTypeInfoCount(&This->dispex.IDispatchEx_iface, pctinfo);
419}
420
421static 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
428static 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
436static 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
445static 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
456static 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
466static 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
517static inline HTMLMimeTypesCollection *impl_from_IHTMLMimeTypesCollection(IHTMLMimeTypesCollection *iface)
518{
519 return CONTAINING_RECORD(iface, HTMLMimeTypesCollection, IHTMLMimeTypesCollection_iface);
520}
521
522static 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
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
544static ULONG WINAPI HTMLMimeTypesCollection_AddRef(IHTMLMimeTypesCollection *iface)
545{
548
549 TRACE("(%p) ref=%d\n", This, ref);
550
551 return ref;
552}
553
554static 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);
566 }
567
568 return ref;
569}
570
571static HRESULT WINAPI HTMLMimeTypesCollection_GetTypeInfoCount(IHTMLMimeTypesCollection *iface, UINT *pctinfo)
572{
574 return IDispatchEx_GetTypeInfoCount(&This->dispex.IDispatchEx_iface, pctinfo);
575}
576
577static 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
584static 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
592static 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
601static 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
612static 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
653static inline OmNavigator *impl_from_IOmNavigator(IOmNavigator *iface)
654{
655 return CONTAINING_RECORD(iface, OmNavigator, IOmNavigator_iface);
656}
657
658static 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
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
680static ULONG WINAPI OmNavigator_AddRef(IOmNavigator *iface)
681{
684
685 TRACE("(%p) ref=%d\n", This, ref);
686
687 return ref;
688}
689
690static 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);
704 }
705
706 return ref;
707}
708
709static HRESULT WINAPI OmNavigator_GetTypeInfoCount(IOmNavigator *iface, UINT *pctinfo)
710{
712 FIXME("(%p)->(%p)\n", This, pctinfo);
713 return E_NOTIMPL;
714}
715
716static 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
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
734static 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
744static 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
756static 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
774static HRESULT WINAPI OmNavigator_get_appVersion(IOmNavigator *iface, BSTR *p)
775{
777
778 char user_agent[512];
779 DWORD size;
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
796 if(!*p)
797 return E_OUTOFMEMORY;
798
800 return S_OK;
801}
802
803static HRESULT WINAPI OmNavigator_get_userAgent(IOmNavigator *iface, BSTR *p)
804{
806 char user_agent[512];
807 DWORD size;
809
810 TRACE("(%p)->(%p)\n", This, p);
811
812 size = sizeof(user_agent);
814 if(FAILED(hres))
815 return hres;
816
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
843static HRESULT WINAPI OmNavigator_get_mimeTypes(IOmNavigator *iface, IHTMLMimeTypesCollection **p)
844{
846
847 TRACE("(%p)->(%p)\n", This, p);
848
849 if(!This->mime_types) {
851
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
863static HRESULT WINAPI OmNavigator_get_plugins(IOmNavigator *iface, IHTMLPluginsCollection **p)
864{
866
867 TRACE("(%p)->(%p)\n", This, p);
868
869 if(!This->plugins) {
871
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
893static HRESULT WINAPI OmNavigator_get_opsProfile(IOmNavigator *iface, IHTMLOpsProfile **p)
894{
896 FIXME("(%p)->(%p)\n", This, p);
897 return E_NOTIMPL;
898}
899
900static 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
915static 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
959{
961
962 TRACE("(%p)->(%p)\n", This, p);
963
965}
966
968{
970
971 TRACE("(%p)->(%p)\n", This, p);
972
974}
975
976static HRESULT WINAPI OmNavigator_get_userLanguage(IOmNavigator *iface, BSTR *p)
977{
979
980 TRACE("(%p)->(%p)\n", This, p);
981
983}
984
985static 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
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
1015{
1017 FIXME("(%p)->(%p)\n", This, p);
1018 return E_NOTIMPL;
1019}
1020
1022{
1024
1025 WARN("(%p)->(%p) semi-stub, returning true\n", This, p);
1026
1027 *p = VARIANT_TRUE;
1028 return S_OK;
1029}
1030
1031static HRESULT WINAPI OmNavigator_get_userProfile(IOmNavigator *iface, IHTMLOpsProfile **p)
1032{
1034 FIXME("(%p)->(%p)\n", This, p);
1035 return E_NOTIMPL;
1036}
1037
1038static const IOmNavigatorVtbl OmNavigatorVtbl = {
1066};
1067
1069 IOmNavigator_tid,
1070 0
1071};
1073 NULL,
1074 DispHTMLNavigator_tid,
1075 NULL,
1077};
1078
1079IOmNavigator *OmNavigator_Create(void)
1080{
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}
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
const GUID IID_IUnknown
#define FIXME(fmt,...)
Definition: debug.h:111
#define WARN(fmt,...)
Definition: debug.h:112
#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
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
GLsizeiptr size
Definition: glext.h:5919
GLenum GLenum GLsizei const GLuint GLboolean enabled
Definition: glext.h:7750
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
LANGID WINAPI GetUserDefaultUILanguage(void)
Definition: lang.c:816
INT WINAPI GetLocaleInfoW(LCID lcid, LCTYPE lctype, LPWSTR buffer, INT len)
Definition: lang.c:1108
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:168
static const tid_t OmNavigator_iface_tids[]
Definition: omnavigator.c:1068
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
static HRESULT WINAPI HTMLPluginsCollection_QueryInterface(IHTMLPluginsCollection *iface, REFIID riid, void **ppv)
Definition: omnavigator.c:366
static HRESULT WINAPI OmNavigator_get_opsProfile(IOmNavigator *iface, IHTMLOpsProfile **p)
Definition: omnavigator.c:893
static HRESULT WINAPI HTMLPluginsCollection_refresh(IHTMLPluginsCollection *iface, VARIANT_BOOL reload)
Definition: omnavigator.c:456
static HRESULT WINAPI OmHistory_get_length(IOmHistory *iface, short *p)
Definition: omnavigator.c:271
static HRESULT WINAPI OmHistory_GetTypeInfo(IOmHistory *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
Definition: omnavigator.c:245
static OmHistory * impl_from_IOmHistory(IOmHistory *iface)
Definition: omnavigator.c:186
static HRESULT WINAPI OmHistory_back(IOmHistory *iface, VARIANT *pvargdistance)
Definition: omnavigator.c:287
static HRESULT WINAPI OmNavigator_get_cookieEnabled(IOmNavigator *iface, VARIANT_BOOL *p)
Definition: omnavigator.c:883
static dispex_static_data_t HTMLPluginsCollection_dispex
Definition: omnavigator.c:482
static HRESULT WINAPI OmHistory_GetTypeInfoCount(IOmHistory *iface, UINT *pctinfo)
Definition: omnavigator.c:238
static HTMLMimeTypesCollection * impl_from_IHTMLMimeTypesCollection(IHTMLMimeTypesCollection *iface)
Definition: omnavigator.c:517
static const IOmNavigatorVtbl OmNavigatorVtbl
Definition: omnavigator.c:1038
static ULONG WINAPI HTMLDOMImplementation_AddRef(IHTMLDOMImplementation *iface)
Definition: omnavigator.c:76
static HRESULT WINAPI HTMLDOMImplementation_QueryInterface(IHTMLDOMImplementation *iface, REFIID riid, void **ppv)
Definition: omnavigator.c:56
static ULONG WINAPI HTMLPluginsCollection_AddRef(IHTMLPluginsCollection *iface)
Definition: omnavigator.c:388
static dispex_static_data_t HTMLDOMImplementation_dispex
Definition: omnavigator.c:161
static HRESULT WINAPI OmNavigator_get_userAgent(IOmNavigator *iface, BSTR *p)
Definition: omnavigator.c:803
static const tid_t HTMLDOMImplementation_iface_tids[]
Definition: omnavigator.c:157
static ULONG WINAPI OmHistory_AddRef(IOmHistory *iface)
Definition: omnavigator.c:213
static HRESULT WINAPI HTMLMimeTypesCollection_GetTypeInfo(IHTMLMimeTypesCollection *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
Definition: omnavigator.c:577
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
static ULONG WINAPI HTMLPluginsCollection_Release(IHTMLPluginsCollection *iface)
Definition: omnavigator.c:398
static HRESULT WINAPI OmNavigator_taintEnabled(IOmNavigator *iface, VARIANT_BOOL *enabled)
Definition: omnavigator.c:836
static HRESULT WINAPI OmNavigator_get_appName(IOmNavigator *iface, BSTR *p)
Definition: omnavigator.c:756
static dispex_static_data_t HTMLMimeTypesCollection_dispex
Definition: omnavigator.c:627
static HRESULT WINAPI HTMLDOMImplementation_hasFeature(IHTMLDOMImplementation *iface, BSTR feature, VARIANT version, VARIANT_BOOL *pfHasFeature)
Definition: omnavigator.c:135
static HRESULT WINAPI HTMLDOMImplementation_GetTypeInfo(IHTMLDOMImplementation *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
Definition: omnavigator.c:108
static HTMLPluginsCollection * impl_from_IHTMLPluginsCollection(IHTMLPluginsCollection *iface)
Definition: omnavigator.c:361
static HRESULT WINAPI OmNavigator_javaEnabled(IOmNavigator *iface, VARIANT_BOOL *enabled)
Definition: omnavigator.c:826
static ULONG WINAPI HTMLMimeTypesCollection_Release(IHTMLMimeTypesCollection *iface)
Definition: omnavigator.c:554
static ULONG WINAPI OmNavigator_Release(IOmNavigator *iface)
Definition: omnavigator.c:690
static const tid_t HTMLPluginsCollection_iface_tids[]
Definition: omnavigator.c:478
static HRESULT WINAPI HTMLPluginsCollection_GetTypeInfoCount(IHTMLPluginsCollection *iface, UINT *pctinfo)
Definition: omnavigator.c:415
static ULONG WINAPI HTMLDOMImplementation_Release(IHTMLDOMImplementation *iface)
Definition: omnavigator.c:86
static HRESULT WINAPI HTMLPluginsCollection_GetIDsOfNames(IHTMLPluginsCollection *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
Definition: omnavigator.c:428
static HRESULT WINAPI OmNavigator_get_appVersion(IOmNavigator *iface, BSTR *p)
Definition: omnavigator.c:774
static HRESULT WINAPI HTMLMimeTypesCollection_get_length(IHTMLMimeTypesCollection *iface, LONG *p)
Definition: omnavigator.c:601
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 dispex_static_data_t OmHistory_dispex
Definition: omnavigator.c:326
static HRESULT WINAPI OmNavigator_get_onLine(IOmNavigator *iface, VARIANT_BOOL *p)
Definition: omnavigator.c:1021
static HRESULT WINAPI OmHistory_forward(IOmHistory *iface, VARIANT *pvargdistance)
Definition: omnavigator.c:294
static HRESULT WINAPI OmNavigator_get_cpuClass(IOmNavigator *iface, BSTR *p)
Definition: omnavigator.c:915
static HRESULT WINAPI OmNavigator_GetTypeInfo(IOmNavigator *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
Definition: omnavigator.c:716
static HRESULT WINAPI HTMLPluginsCollection_get_length(IHTMLPluginsCollection *iface, LONG *p)
Definition: omnavigator.c:445
static HRESULT WINAPI OmNavigator_get_browserLanguage(IOmNavigator *iface, BSTR *p)
Definition: omnavigator.c:967
static HTMLDOMImplementation * impl_from_IHTMLDOMImplementation(IHTMLDOMImplementation *iface)
Definition: omnavigator.c:51
static HRESULT WINAPI OmNavigator_get_connectionSpeed(IOmNavigator *iface, LONG *p)
Definition: omnavigator.c:1014
static ULONG WINAPI OmNavigator_AddRef(IOmNavigator *iface)
Definition: omnavigator.c:680
static HRESULT WINAPI OmNavigator_get_appMinorVersion(IOmNavigator *iface, BSTR *p)
Definition: omnavigator.c:1001
static HRESULT WINAPI OmNavigator_QueryInterface(IOmNavigator *iface, REFIID riid, void **ppv)
Definition: omnavigator.c:658
HRESULT create_history(HTMLInnerWindow *window, OmHistory **ret)
Definition: omnavigator.c:334
static HRESULT WINAPI OmNavigator_GetTypeInfoCount(IOmNavigator *iface, UINT *pctinfo)
Definition: omnavigator.c:709
static const tid_t OmHistory_iface_tids[]
Definition: omnavigator.c:322
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 HRESULT WINAPI OmNavigator_get_appCodeName(IOmNavigator *iface, BSTR *p)
Definition: omnavigator.c:744
static dispex_static_data_t OmNavigator_dispex
Definition: omnavigator.c:1072
static HRESULT WINAPI OmNavigator_get_platform(IOmNavigator *iface, BSTR *p)
Definition: omnavigator.c:985
static HRESULT create_plugins_collection(OmNavigator *navigator, HTMLPluginsCollection **ret)
Definition: omnavigator.c:489
static const IHTMLPluginsCollectionVtbl HTMLPluginsCollectionVtbl
Definition: omnavigator.c:466
static ULONG WINAPI HTMLMimeTypesCollection_AddRef(IHTMLMimeTypesCollection *iface)
Definition: omnavigator.c:544
static HRESULT WINAPI OmHistory_QueryInterface(IOmHistory *iface, REFIID riid, void **ppv)
Definition: omnavigator.c:191
static OmNavigator * impl_from_IOmNavigator(IOmNavigator *iface)
Definition: omnavigator.c:653
static HRESULT WINAPI OmNavigator_get_systemLanguage(IOmNavigator *iface, BSTR *p)
Definition: omnavigator.c:958
static const IHTMLMimeTypesCollectionVtbl HTMLMimeTypesCollectionVtbl
Definition: omnavigator.c:612
static const IOmHistoryVtbl OmHistoryVtbl
Definition: omnavigator.c:308
static HRESULT WINAPI HTMLDOMImplementation_GetIDsOfNames(IHTMLDOMImplementation *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
Definition: omnavigator.c:116
IOmNavigator * OmNavigator_Create(void)
Definition: omnavigator.c:1079
static HRESULT WINAPI HTMLMimeTypesCollection_GetTypeInfoCount(IHTMLMimeTypesCollection *iface, UINT *pctinfo)
Definition: omnavigator.c:571
static HRESULT WINAPI OmNavigator_toString(IOmNavigator *iface, BSTR *String)
Definition: omnavigator.c:900
static HRESULT WINAPI OmNavigator_get_mimeTypes(IOmNavigator *iface, IHTMLMimeTypesCollection **p)
Definition: omnavigator.c:843
static HRESULT WINAPI HTMLMimeTypesCollection_QueryInterface(IHTMLMimeTypesCollection *iface, REFIID riid, void **ppv)
Definition: omnavigator.c:522
static const tid_t HTMLMimeTypesCollection_iface_tids[]
Definition: omnavigator.c:623
static HRESULT WINAPI HTMLPluginsCollection_GetTypeInfo(IHTMLPluginsCollection *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
Definition: omnavigator.c:421
static const IHTMLDOMImplementationVtbl HTMLDOMImplementationVtbl
Definition: omnavigator.c:146
static HRESULT WINAPI OmNavigator_GetIDsOfNames(IOmNavigator *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
Definition: omnavigator.c:724
static HRESULT WINAPI HTMLDOMImplementation_GetTypeInfoCount(IHTMLDOMImplementation *iface, UINT *pctinfo)
Definition: omnavigator.c:101
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_get_userProfile(IOmNavigator *iface, IHTMLOpsProfile **p)
Definition: omnavigator.c:1031
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
static HRESULT WINAPI OmNavigator_get_plugins(IOmNavigator *iface, IHTMLPluginsCollection **p)
Definition: omnavigator.c:863
static HRESULT WINAPI HTMLMimeTypesCollection_GetIDsOfNames(IHTMLMimeTypesCollection *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
Definition: omnavigator.c:584
static HRESULT WINAPI OmNavigator_get_userLanguage(IOmNavigator *iface, BSTR *p)
Definition: omnavigator.c:976
static HRESULT create_mime_types_collection(OmNavigator *navigator, HTMLMimeTypesCollection **ret)
Definition: omnavigator.c:634
static ULONG WINAPI OmHistory_Release(IOmHistory *iface)
Definition: omnavigator.c:223
static HRESULT WINAPI OmHistory_go(IOmHistory *iface, VARIANT *pvargdistance)
Definition: omnavigator.c:301
static HRESULT get_language_string(LCID lcid, BSTR *p)
Definition: omnavigator.c:932
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:46
IHTMLMimeTypesCollection IHTMLMimeTypesCollection_iface
Definition: omnavigator.c:510
OmNavigator * navigator
Definition: omnavigator.c:514
IHTMLPluginsCollection IHTMLPluginsCollection_iface
Definition: omnavigator.c:354
OmNavigator * navigator
Definition: omnavigator.c:358
IOmHistory IOmHistory_iface
HTMLInnerWindow * window
DispatchEx dispex
IOmNavigator IOmNavigator_iface
Definition: omnavigator.c:36
HTMLPluginsCollection * plugins
Definition: omnavigator.c:40
DispatchEx dispex
Definition: omnavigator.c:35
HTMLMimeTypesCollection * mime_types
Definition: omnavigator.c:41
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
#define LOCALE_SNAME
Definition: winnls.h:130
#define LOCALE_NOUSEROVERRIDE
Definition: winnls.h:19
__wchar_t WCHAR
Definition: xmlstorage.h:180
WCHAR * LPWSTR
Definition: xmlstorage.h:184