server: Add hardware_msg_data size for variable size messages.
[wine.git] / include / windows.media.devices.idl
blobd0b3fcef873405e3a98a47d8805468fb8efa11d0
1 /*
2 * Copyright 2021 Andrew Eikum for CodeWeavers
3 * Copyright 2020 RĂ©mi Bernon for CodeWeavers
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
20 #ifdef __WIDL__
21 #pragma winrt ns_prefix
22 #endif
24 import "inspectable.idl";
25 import "eventtoken.idl";
26 import "windows.foundation.idl";
28 namespace Windows {
29 namespace Media {
30 namespace Devices {
31 typedef enum AudioDeviceRole AudioDeviceRole;
32 interface IDefaultAudioDeviceChangedEventArgs;
33 interface IMediaDeviceStatics;
34 runtimeclass DefaultAudioCaptureDeviceChangedEventArgs;
35 runtimeclass DefaultAudioRenderDeviceChangedEventArgs;
36 runtimeclass MediaDevice;
41 namespace Windows {
42 namespace Media {
43 namespace Devices {
44 declare {
45 interface Windows.Foundation.TypedEventHandler<IInspectable *, Windows.Media.Devices.DefaultAudioCaptureDeviceChangedEventArgs *>;
46 interface Windows.Foundation.TypedEventHandler<IInspectable *, Windows.Media.Devices.DefaultAudioRenderDeviceChangedEventArgs *>;
52 namespace Windows {
53 namespace Media {
54 namespace Devices {
55 enum AudioDeviceRole {
56 Default = 0,
57 Communications = 1,
63 namespace Windows {
64 namespace Media {
65 namespace Devices {
67 uuid(110f882f-1c05-4657-a18e-47c9b69f07ab)
69 interface IDefaultAudioDeviceChangedEventArgs : IInspectable
71 [propget] HRESULT Id([out] [retval] HSTRING *value);
72 [propget] HRESULT Role([out] [retval] Windows.Media.Devices.AudioDeviceRole *value);
76 exclusiveto(Windows.Media.Devices.MediaDevice),
77 uuid(aa2d9a40-909f-4bba-bf8b-0c0d296f14f0)
79 interface IMediaDeviceStatics : IInspectable
81 HRESULT GetAudioCaptureSelector([out] [retval] HSTRING *value);
82 HRESULT GetAudioRenderSelector([out] [retval] HSTRING *value);
83 HRESULT GetVideoCaptureSelector([out] [retval] HSTRING *value);
84 HRESULT GetDefaultAudioCaptureId([in] Windows.Media.Devices.AudioDeviceRole role, [out] [retval] HSTRING *value);
85 HRESULT GetDefaultAudioRenderId([in] Windows.Media.Devices.AudioDeviceRole role, [out] [retval] HSTRING *value);
87 [eventadd] HRESULT DefaultAudioCaptureDeviceChanged(
88 [in] Windows.Foundation.TypedEventHandler<IInspectable *, Windows.Media.Devices.DefaultAudioCaptureDeviceChangedEventArgs *> *handler,
89 [out, retval] EventRegistrationToken* token);
90 [eventremove] HRESULT DefaultAudioCaptureDeviceChanged(
91 [in] EventRegistrationToken token);
93 [eventadd] HRESULT DefaultAudioRenderDeviceChanged(
94 [in] Windows.Foundation.TypedEventHandler<IInspectable *, Windows.Media.Devices.DefaultAudioRenderDeviceChangedEventArgs *> *handler,
95 [out, retval] EventRegistrationToken* token);
96 [eventremove] HRESULT DefaultAudioRenderDeviceChanged(
97 [in] EventRegistrationToken token);
101 activatable(Windows.Foundation.UniversalApiContract, 1.0),
102 marshaling_behavior(agile),
103 static(Windows.Media.Devices.IMediaDeviceStatics, Windows.Foundation.UniversalApiContract, 1.0),
105 runtimeclass MediaDevice
110 marshaling_behavior(agile)
112 runtimeclass DefaultAudioRenderDeviceChangedEventArgs
114 [default] interface Windows.Media.Devices.IDefaultAudioDeviceChangedEventArgs;
118 marshaling_behavior(agile)
120 runtimeclass DefaultAudioCaptureDeviceChangedEventArgs
122 [default] interface Windows.Media.Devices.IDefaultAudioDeviceChangedEventArgs;