headers: Import windows.foundation.collections.idl from Wine.
Signed-off-by: Biswapriyo Nath <nathbappai@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
diff --git a/mingw-w64-headers/Makefile.am b/mingw-w64-headers/Makefile.am
index 2ddd726..09b6572 100644
--- a/mingw-w64-headers/Makefile.am
+++ b/mingw-w64-headers/Makefile.am
@@ -242,6 +242,7 @@
include/wsmandisp.idl \
include/wtypesbase.idl \
include/windows.foundation.idl \
+ include/windows.foundation.collections.idl \
include/windows.security.cryptography.idl \
include/windows.storage.idl \
include/windows.storage.streams.idl \
diff --git a/mingw-w64-headers/Makefile.in b/mingw-w64-headers/Makefile.in
index d1ad190..c90c1c2 100644
--- a/mingw-w64-headers/Makefile.in
+++ b/mingw-w64-headers/Makefile.in
@@ -544,6 +544,7 @@
@HAVE_WIDL_TRUE@ include/wsmandisp.idl \
@HAVE_WIDL_TRUE@ include/wtypesbase.idl \
@HAVE_WIDL_TRUE@ include/windows.foundation.idl \
+@HAVE_WIDL_TRUE@ include/windows.foundation.collections.idl \
@HAVE_WIDL_TRUE@ include/windows.security.cryptography.idl \
@HAVE_WIDL_TRUE@ include/windows.storage.idl \
@HAVE_WIDL_TRUE@ include/windows.storage.streams.idl \
diff --git a/mingw-w64-headers/include/dxva2api.h b/mingw-w64-headers/include/dxva2api.h
index 3388a8d..f7d79c8 100644
--- a/mingw-w64-headers/include/dxva2api.h
+++ b/mingw-w64-headers/include/dxva2api.h
@@ -1567,15 +1567,13 @@
}
static inline float DXVA2FixedToFloat(DXVA2_Fixed32 f32) {
- typedef struct { USHORT Fraction; SHORT Value; } fields;
- fields *_f32 = (fields *)(void *)&f32;
+ struct { USHORT Fraction; SHORT Value; } *_f32 = (void *)&f32;
return (float)_f32->Value + (float)_f32->Fraction / (1 << 16);
}
static inline DXVA2_Fixed32 DXVA2FloatToFixed(float f) {
DXVA2_Fixed32 f32;
- typedef struct { USHORT Fraction; SHORT Value; } fields;
- fields *_f32 = (fields *)(void *)&f32;
+ struct { USHORT Fraction; SHORT Value; } *_f32 = (void *)&f32;
_f32->Value = ((ULONG) (f * (1 << 16))) >> 16;
_f32->Fraction = ((ULONG) (f * (1 << 16))) & 0xFFFF;
return f32;
diff --git a/mingw-w64-headers/include/dxva2api.idl b/mingw-w64-headers/include/dxva2api.idl
index 31cacbd..99c9351 100644
--- a/mingw-w64-headers/include/dxva2api.idl
+++ b/mingw-w64-headers/include/dxva2api.idl
@@ -815,15 +815,13 @@
cpp_quote("}")
cpp_quote("")
cpp_quote("static inline float DXVA2FixedToFloat(DXVA2_Fixed32 f32) {")
-cpp_quote(" typedef struct { USHORT Fraction; SHORT Value; } fields;")
-cpp_quote(" fields *_f32 = (fields *)(void *)&f32;")
+cpp_quote(" struct { USHORT Fraction; SHORT Value; } *_f32 = (void *)&f32;")
cpp_quote(" return (float)_f32->Value + (float)_f32->Fraction / (1 << 16);")
cpp_quote("}")
cpp_quote("")
cpp_quote("static inline DXVA2_Fixed32 DXVA2FloatToFixed(float f) {")
cpp_quote(" DXVA2_Fixed32 f32;")
-cpp_quote(" typedef struct { USHORT Fraction; SHORT Value; } fields;")
-cpp_quote(" fields *_f32 = (fields *)(void *)&f32;")
+cpp_quote(" struct { USHORT Fraction; SHORT Value; } *_f32 = (void *)&f32;")
cpp_quote(" _f32->Value = ((ULONG) (f * (1 << 16))) >> 16;")
cpp_quote(" _f32->Fraction = ((ULONG) (f * (1 << 16))) & 0xFFFF;")
cpp_quote(" return f32;")
diff --git a/mingw-w64-headers/include/windows.foundation.collections.h b/mingw-w64-headers/include/windows.foundation.collections.h
new file mode 100644
index 0000000..cb37f40
--- /dev/null
+++ b/mingw-w64-headers/include/windows.foundation.collections.h
@@ -0,0 +1,208 @@
+/*** Autogenerated by WIDL 6.3 from include/windows.foundation.collections.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __windows_foundation_collections_h__
+#define __windows_foundation_collections_h__
+
+/* Forward declarations */
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+namespace ABI {
+ namespace Windows {
+ namespace Foundation {
+ template <class T>
+ struct IEventHandler_impl;
+
+ template <class T>
+ struct IEventHandler : IEventHandler_impl<T> {};
+ }
+ }
+}
+#endif
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+namespace ABI {
+ namespace Windows {
+ namespace Foundation {
+ namespace Collections {
+ template <class T>
+ struct IIterator_impl;
+
+ template <class T>
+ struct IIterator : IIterator_impl<T> {};
+ }
+ }
+ }
+}
+#endif
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+namespace ABI {
+ namespace Windows {
+ namespace Foundation {
+ namespace Collections {
+ template <class T>
+ struct IIterable_impl;
+
+ template <class T>
+ struct IIterable : IIterable_impl<T> {};
+ }
+ }
+ }
+}
+#endif
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+namespace ABI {
+ namespace Windows {
+ namespace Foundation {
+ namespace Collections {
+ template <class T>
+ struct IVectorView_impl;
+
+ template <class T>
+ struct IVectorView : IVectorView_impl<T> {};
+ }
+ }
+ }
+}
+#endif
+
+/* Headers for imported files */
+
+#include <inspectable.h>
+#include <windowscontracts.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI { namespace Windows { namespace Foundation { namespace Internal {
+template <class T> struct GetAbiType { typedef T type; };
+template <class T> struct GetLogicalType { typedef T type; };
+template <class L, class A> struct AggregateType {};
+template <class L, class A> struct GetAbiType<AggregateType<L, A> > { typedef A type; };
+template <class L, class A> struct GetLogicalType<AggregateType<L, A> > { typedef L type; };
+}}}}
+extern "C" {
+#endif
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+ namespace Windows {
+ namespace Foundation {
+ template <class T>
+ struct IEventHandler_impl : IUnknown
+ {
+ private:
+ typedef typename Windows::Foundation::Internal::GetAbiType<T>::type T_abi;
+ typedef typename Windows::Foundation::Internal::GetLogicalType<T>::type T_logical;
+ public:
+ typedef T T_complex;
+ virtual HRESULT STDMETHODCALLTYPE Invoke(IInspectable *sender,T_abi args) = 0;
+ };
+ }
+ }
+}
+extern "C" {
+#endif
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+ namespace Windows {
+ namespace Foundation {
+ namespace Collections {
+ template <class T>
+ struct IIterator_impl : IInspectable
+ {
+ private:
+ typedef typename Windows::Foundation::Internal::GetAbiType<T>::type T_abi;
+ typedef typename Windows::Foundation::Internal::GetLogicalType<T>::type T_logical;
+ public:
+ typedef T T_complex;
+ virtual HRESULT STDMETHODCALLTYPE get_Current(T_abi *value) = 0;
+ virtual HRESULT STDMETHODCALLTYPE get_HasCurrent(WINBOOL *value) = 0;
+ virtual HRESULT STDMETHODCALLTYPE MoveNext(WINBOOL *value) = 0;
+ virtual HRESULT STDMETHODCALLTYPE GetMany(UINT32 count,T_abi *items,UINT32 *value) = 0;
+ };
+ }
+ }
+ }
+}
+extern "C" {
+#endif
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+ namespace Windows {
+ namespace Foundation {
+ namespace Collections {
+ template <class T>
+ struct IIterable_impl : IInspectable
+ {
+ private:
+ typedef typename Windows::Foundation::Internal::GetAbiType<T>::type T_abi;
+ typedef typename Windows::Foundation::Internal::GetLogicalType<T>::type T_logical;
+ public:
+ typedef T T_complex;
+ virtual HRESULT STDMETHODCALLTYPE First(IIterator<T_logical> **value) = 0;
+ };
+ }
+ }
+ }
+}
+extern "C" {
+#endif
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+ namespace Windows {
+ namespace Foundation {
+ namespace Collections {
+ template <class T>
+ struct IVectorView_impl : IInspectable
+ {
+ private:
+ typedef typename Windows::Foundation::Internal::GetAbiType<T>::type T_abi;
+ typedef typename Windows::Foundation::Internal::GetLogicalType<T>::type T_logical;
+ public:
+ typedef T T_complex;
+ virtual HRESULT STDMETHODCALLTYPE GetAt(ULONG index,T_abi *value) = 0;
+ virtual HRESULT STDMETHODCALLTYPE get_Size(ULONG *value) = 0;
+ virtual HRESULT STDMETHODCALLTYPE IndexOf(T_abi element,ULONG *index,BOOLEAN *value) = 0;
+ virtual HRESULT STDMETHODCALLTYPE GetMany(ULONG start_index,T_abi *items,ULONG *value) = 0;
+ };
+ }
+ }
+ }
+}
+extern "C" {
+#endif
+
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __windows_foundation_collections_h__ */
diff --git a/mingw-w64-headers/include/windows.foundation.collections.idl b/mingw-w64-headers/include/windows.foundation.collections.idl
new file mode 100644
index 0000000..ed05016
--- /dev/null
+++ b/mingw-w64-headers/include/windows.foundation.collections.idl
@@ -0,0 +1,87 @@
+/*
+ * Copyright 2021 Rémi Bernon for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifdef __WIDL__
+#pragma winrt ns_prefix
+#endif
+
+import "inspectable.idl";
+/* import "asyncinfo.idl"; */
+import "windowscontracts.idl";
+/* import "eventtoken.idl"; */
+
+namespace Windows {
+ namespace Foundation {
+
+cpp_quote("#ifdef __cplusplus")
+cpp_quote("} /* extern \"C\" */")
+cpp_quote("namespace ABI { namespace Windows { namespace Foundation { namespace Internal {")
+cpp_quote("template <class T> struct GetAbiType { typedef T type; };")
+cpp_quote("template <class T> struct GetLogicalType { typedef T type; };")
+cpp_quote("template <class L, class A> struct AggregateType {};")
+cpp_quote("template <class L, class A> struct GetAbiType<AggregateType<L, A> > { typedef A type; };")
+cpp_quote("template <class L, class A> struct GetLogicalType<AggregateType<L, A> > { typedef L type; };")
+cpp_quote("}}}}")
+cpp_quote("extern \"C\" {")
+cpp_quote("#endif")
+
+#ifdef __WIDL__
+ [
+ contract(Windows.Foundation.FoundationContract, 1.0),
+ uuid(9de1c535-6ae1-11e0-84e1-18a905bcc53f)
+ ]
+ delegate HRESULT EventHandler<T>([in] IInspectable *sender, [in] T args);
+
+ namespace Collections
+ {
+ [
+ contract(Windows.Foundation.FoundationContract, 1.0),
+ uuid(6a79e863-4300-459a-9966-cbb660963ee1)
+ ]
+ interface IIterator<T> : IInspectable
+ {
+ [propget] HRESULT Current([out, retval] T *value);
+ [propget] HRESULT HasCurrent([out, retval] BOOL *value);
+ HRESULT MoveNext([out, retval] BOOL *value);
+ HRESULT GetMany([in] UINT32 count, [out] T *items, [out, retval] UINT32 *value);
+ }
+
+ [
+ contract(Windows.Foundation.FoundationContract, 1.0),
+ uuid(faa585ea-6214-4217-afda-7f46de5869b3)
+ ]
+ interface IIterable<T> : IInspectable
+ {
+ HRESULT First([out, retval] Windows.Foundation.Collections.IIterator<T> **value);
+ }
+
+ [
+ contract(Windows.Foundation.FoundationContract, 1.0),
+ uuid(bbe1fa4c-b0e3-4583-baef-1f1b2e483e56)
+ ]
+ interface IVectorView<T> : IInspectable
+ {
+ HRESULT GetAt([in] ULONG index, [out, retval] T *value);
+ [propget] HRESULT Size([out, retval] ULONG *value);
+ HRESULT IndexOf([in, optional] T element, [out] ULONG *index, [out, retval] BOOLEAN *value);
+ HRESULT GetMany([in] ULONG start_index, [out] T *items, [out, retval] ULONG *value);
+ }
+ }
+#endif
+ }
+}
diff --git a/mingw-w64-headers/include/windows.foundation.h b/mingw-w64-headers/include/windows.foundation.h
index 4f77188..2cd1653 100644
--- a/mingw-w64-headers/include/windows.foundation.h
+++ b/mingw-w64-headers/include/windows.foundation.h
@@ -81,6 +81,8 @@
/* Headers for imported files */
#include <inspectable.h>
+#include <windowscontracts.h>
+#include <windows.foundation.collections.h>
#ifdef __cplusplus
extern "C" {
@@ -195,23 +197,6 @@
#endif /* WIDL_using_Windows_Foundation */
#endif
-#ifndef ____x_ABI_CWindows_CFoundation_CCollections_CIVectorView_FWD_DEFINED__
-#define ____x_ABI_CWindows_CFoundation_CCollections_CIVectorView_FWD_DEFINED__
-typedef interface __x_ABI_CWindows_CFoundation_CCollections_CIVectorView __x_ABI_CWindows_CFoundation_CCollections_CIVectorView;
-#ifdef __cplusplus
-#define __x_ABI_CWindows_CFoundation_CCollections_CIVectorView ABI::Windows::Foundation::Collections::IVectorView
-namespace ABI {
- namespace Windows {
- namespace Foundation {
- namespace Collections {
- interface IVectorView;
- }
- }
- }
-}
-#endif /* __cplusplus */
-#endif
-
#ifndef ____x_ABI_CWindows_CFoundation_CCollections_CIPropertySet_FWD_DEFINED__
#define ____x_ABI_CWindows_CFoundation_CCollections_CIPropertySet_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CFoundation_CCollections_CIPropertySet __x_ABI_CWindows_CFoundation_CCollections_CIPropertySet;
diff --git a/mingw-w64-headers/include/windows.foundation.idl b/mingw-w64-headers/include/windows.foundation.idl
index fa76a44..bfc93ae 100644
--- a/mingw-w64-headers/include/windows.foundation.idl
+++ b/mingw-w64-headers/include/windows.foundation.idl
@@ -9,6 +9,8 @@
#endif
import "inspectable.idl";
+import "windowscontracts.idl";
+import "windows.foundation.collections.idl";
namespace Windows {
namespace Foundation {
@@ -21,7 +23,6 @@
struct EventRegistrationToken;
namespace Collections {
- interface IVectorView;
interface IPropertySet;
}
}
diff --git a/mingw-w64-headers/wine-import.sh b/mingw-w64-headers/wine-import.sh
index 1dd2748..3e4b8dc 100755
--- a/mingw-w64-headers/wine-import.sh
+++ b/mingw-w64-headers/wine-import.sh
@@ -192,7 +192,8 @@
vmr9 \
wincodec \
wincodecsdk \
- windowscontracts \
+ windowscontracts \
+ windows.foundation.collections \
wmdrmsdk \
wmp \
wmsbuffer \