[PATCH 1/5] include: Add IAsyncInfo interface in asyncinfo.idl.

Rémi Bernon rbernon at codeweavers.com
Fri Mar 19 05:06:25 CDT 2021


Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
---

These are the interfaces and runtimeclasses required to implement
RawGameControllerStatics runtimeclass stubs, which is also now used
by some applications to enumerate gamepads on startup.

 include/Makefile.in                        |  1 +
 include/asyncinfo.idl                      | 45 ++++++++++++++++++++++
 include/windows.foundation.collections.idl |  2 +-
 include/windows.foundation.idl             |  2 +-
 4 files changed, 48 insertions(+), 2 deletions(-)
 create mode 100644 include/asyncinfo.idl

diff --git a/include/Makefile.in b/include/Makefile.in
index 1c80421ef6f..115da5bd080 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -20,6 +20,7 @@ SOURCES = \
 	appmodel.h \
 	asferr.h \
 	asptlb.idl \
+	asyncinfo.idl \
 	asynot.idl \
 	asysta.idl \
 	atlbase.h \
diff --git a/include/asyncinfo.idl b/include/asyncinfo.idl
new file mode 100644
index 00000000000..4662b462f5f
--- /dev/null
+++ b/include/asyncinfo.idl
@@ -0,0 +1,45 @@
+/*
+ * 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";
+
+typedef [v1_enum] enum AsyncStatus
+{
+    Started = 0,
+    Completed, 
+    Canceled, 
+    Error,
+} AsyncStatus;
+
+[
+    object,
+    uuid(00000036-0000-0000-c000-000000000046),
+    pointer_default(unique)
+]
+interface IAsyncInfo : IInspectable
+{
+    [propget] HRESULT Id([out, retval] unsigned __int32 *id);
+    [propget] HRESULT Status([out, retval] AsyncStatus *status);
+    [propget] HRESULT ErrorCode([out, retval] HRESULT *error_code);
+    HRESULT Cancel();
+    HRESULT Close();
+}
diff --git a/include/windows.foundation.collections.idl b/include/windows.foundation.collections.idl
index ed05016b96d..53513b4c1ab 100644
--- a/include/windows.foundation.collections.idl
+++ b/include/windows.foundation.collections.idl
@@ -21,7 +21,7 @@
 #endif
 
 import "inspectable.idl";
-/* import "asyncinfo.idl"; */
+import "asyncinfo.idl";
 import "windowscontracts.idl";
 /* import "eventtoken.idl"; */
 
diff --git a/include/windows.foundation.idl b/include/windows.foundation.idl
index 3c60278cf05..595f8af69e7 100644
--- a/include/windows.foundation.idl
+++ b/include/windows.foundation.idl
@@ -21,7 +21,7 @@
 #endif
 
 import "inspectable.idl";
-/* import "asyncinfo.idl"; */
+import "asyncinfo.idl";
 import "windowscontracts.idl";
 /* import "eventtoken.idl"; */
 /* import "ivectorchangedeventargs.idl"; */
-- 
2.30.2




More information about the wine-devel mailing list