Jactry Zeng : include: Add IDeviceWatcher interface.

Alexandre Julliard julliard at winehq.org
Wed Nov 3 16:42:01 CDT 2021


Module: wine
Branch: master
Commit: 489cdd1932da862e27f4cf4c582f2ed951a12caa
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=489cdd1932da862e27f4cf4c582f2ed951a12caa

Author: Jactry Zeng <jzeng at codeweavers.com>
Date:   Fri Oct 29 16:52:56 2021 +0800

include: Add IDeviceWatcher interface.

Signed-off-by: Jactry Zeng <jzeng at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 include/windows.devices.enumeration.idl | 50 +++++++++++++++++++++++++++++++++
 1 file changed, 50 insertions(+)

diff --git a/include/windows.devices.enumeration.idl b/include/windows.devices.enumeration.idl
index 20e4df9d33d..7cde49224a1 100644
--- a/include/windows.devices.enumeration.idl
+++ b/include/windows.devices.enumeration.idl
@@ -30,6 +30,7 @@ import "windows.foundation.idl";
 namespace Windows {
     namespace Devices {
         namespace Enumeration {
+            typedef enum DeviceWatcherStatus DeviceWatcherStatus;
             typedef enum Panel Panel;
 
             interface IDeviceInformation;
@@ -41,6 +42,7 @@ namespace Windows {
             runtimeclass DeviceInformation;
             runtimeclass DeviceInformationUpdate;
             runtimeclass DeviceThumbnail;
+            runtimeclass DeviceWatcher;
             runtimeclass EnclosureLocation;
         }
     }
@@ -59,6 +61,9 @@ namespace Windows
                 interface Windows.Foundation.Collections.IMapView<HSTRING, IInspectable *>;
                 interface Windows.Foundation.IAsyncOperation<Windows.Devices.Enumeration.DeviceInformation *>;
                 interface Windows.Foundation.IAsyncOperation<Windows.Devices.Enumeration.DeviceThumbnail *>;
+                interface Windows.Foundation.TypedEventHandler<Windows.Devices.Enumeration.DeviceWatcher *, IInspectable *>;
+                interface Windows.Foundation.TypedEventHandler<Windows.Devices.Enumeration.DeviceWatcher *, Windows.Devices.Enumeration.DeviceInformation *>;
+                interface Windows.Foundation.TypedEventHandler<Windows.Devices.Enumeration.DeviceWatcher *, Windows.Devices.Enumeration.DeviceInformationUpdate *>;
             }
         }
     }
@@ -82,6 +87,16 @@ namespace Windows
 namespace Windows {
     namespace Devices {
         namespace Enumeration {
+            enum DeviceWatcherStatus
+            {
+                Created              = 0,
+                Started              = 1,
+                EnumerationCompleted = 2,
+                Stopping             = 3,
+                Stopped              = 4,
+                Aborted              = 5
+            };
+
             enum Panel
             {
                 Unknown = 0,
@@ -120,6 +135,32 @@ namespace Windows {
                 [propget] HRESULT Properties([out, retval] Windows.Foundation.Collections.IMapView<HSTRING, IInspectable *> **value);
             }
 
+            [
+                exclusiveto(Windows.Devices.Enumeration.DeviceWatcher),
+                uuid(c9eab97d-8f6b-4f96-a9f4-abc814e22271),
+            ]
+            interface IDeviceWatcher : IInspectable
+            {
+                [eventadd] HRESULT Added([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Enumeration.DeviceWatcher*,
+                        Windows.Devices.Enumeration.DeviceInformation *> *handler, [out, retval] EventRegistrationToken *token);
+                [eventremove] HRESULT Added([in] EventRegistrationToken token);
+                [eventadd] HRESULT Updated([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Enumeration.DeviceWatcher *,
+                        Windows.Devices.Enumeration.DeviceInformationUpdate *> *handler, [out, retval] EventRegistrationToken *token);
+                [eventremove] HRESULT Updated([in] EventRegistrationToken token);
+                [eventadd] HRESULT Removed([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Enumeration.DeviceWatcher *,
+                        Windows.Devices.Enumeration.DeviceInformationUpdate *> *handler, [out, retval] EventRegistrationToken *token);
+                [eventremove] HRESULT Removed([in] EventRegistrationToken token);
+                [eventadd] HRESULT EnumerationCompleted([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Enumeration.DeviceWatcher *,
+                        IInspectable *> *handler, [out, retval] EventRegistrationToken *token);
+                [eventremove] HRESULT EnumerationCompleted([in] EventRegistrationToken token);
+                [eventadd] HRESULT Stopped([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Enumeration.DeviceWatcher *,
+                        IInspectable *> *handler, [out, retval] EventRegistrationToken *token);
+                [eventremove] HRESULT Stopped([in] EventRegistrationToken token);
+                [propget] HRESULT Status([out, retval] Windows.Devices.Enumeration.DeviceWatcherStatus *status);
+                HRESULT Start();
+                HRESULT Stop();
+            }
+
             [
                 exclusiveto(Windows.Devices.Enumeration.EnclosureLocation),
                 uuid(42340a27-5810-459c-aabb-c65e1f813ecf)
@@ -166,6 +207,15 @@ namespace Windows {
                 interface Windows.Storage.Streams.IInputStream;
             }
 
+            [
+                marshaling_behavior(agile),
+            ]
+            runtimeclass DeviceWatcher
+            {
+                [default] interface Windows.Devices.Enumeration.IDeviceWatcher;
+                interface Windows.Devices.Enumeration.IDeviceWatcher2;
+            }
+
             [
                 marshaling_behavior(agile)
             ]




More information about the wine-cvs mailing list