[PATCH 2/7] include: Split Windows.Foundation.Collections parameterized types.
Rémi Bernon
rbernon at codeweavers.com
Mon Feb 22 03:03:00 CST 2021
To windows.foundation.collections.idl.
Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
---
include/Makefile.in | 1 +
include/windows.foundation.collections.idl | 74 ++++++++++++++++++++++
include/windows.foundation.idl | 45 +------------
3 files changed, 76 insertions(+), 44 deletions(-)
create mode 100644 include/windows.foundation.collections.idl
diff --git a/include/Makefile.in b/include/Makefile.in
index c1efee700fa..6c16e01a271 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -746,6 +746,7 @@ SOURCES = \
wincrypt.h \
windef.h \
windns.h \
+ windows.foundation.collections.idl \
windows.foundation.idl \
windows.h \
windows.media.speechsynthesis.idl \
diff --git a/include/windows.foundation.collections.idl b/include/windows.foundation.collections.idl
new file mode 100644
index 00000000000..9f7a59ab907
--- /dev/null
+++ b/include/windows.foundation.collections.idl
@@ -0,0 +1,74 @@
+/*
+ * 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 {
+#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/include/windows.foundation.idl b/include/windows.foundation.idl
index bb0fafcab77..3c60278cf05 100644
--- a/include/windows.foundation.idl
+++ b/include/windows.foundation.idl
@@ -25,6 +25,7 @@ import "inspectable.idl";
import "windowscontracts.idl";
/* import "eventtoken.idl"; */
/* import "ivectorchangedeventargs.idl"; */
+import "windows.foundation.collections.idl";
namespace Windows {
namespace Foundation {
@@ -111,49 +112,5 @@ namespace Windows {
{
HRESULT ToString([out, retval] HSTRING *value);
}
-
-#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
}
}
--
2.30.0
More information about the wine-devel
mailing list