2 * Copyright 2021 RĂ©mi Bernon for CodeWeavers
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
20 #pragma winrt ns_prefix
23 import
"inspectable.idl";
24 import
"asyncinfo.idl";
25 import
"eventtoken.idl";
26 import
"windowscontracts.idl";
27 import
"windows.foundation.idl";
29 namespace Windows.Gaming.Input.ForceFeedback
{
30 typedef enum ForceFeedbackEffectAxes ForceFeedbackEffectAxes
;
31 typedef enum ForceFeedbackEffectState ForceFeedbackEffectState
;
32 typedef enum ForceFeedbackLoadEffectResult ForceFeedbackLoadEffectResult
;
33 interface IForceFeedbackEffect
;
34 runtimeclass ForceFeedbackMotor
;
37 interface Windows.Foundation.AsyncOperationCompletedHandler
<Windows.Gaming.Input.ForceFeedback.ForceFeedbackLoadEffectResult
>;
38 interface Windows.Foundation.IAsyncOperation
<Windows.Gaming.Input.ForceFeedback.ForceFeedbackLoadEffectResult
>;
39 interface Windows.Foundation.Collections.IVectorView
<Windows.Gaming.Input.ForceFeedback.ForceFeedbackMotor
*>;
43 contract
(Windows.Foundation.UniversalApiContract
, 3.0),
46 enum ForceFeedbackEffectAxes
54 [contract
(Windows.Foundation.UniversalApiContract
, 3.0)]
55 enum ForceFeedbackEffectState
63 [contract
(Windows.Foundation.UniversalApiContract
, 3.0)]
64 enum ForceFeedbackLoadEffectResult
67 EffectStorageFull
= 1,
68 EffectNotSupported
= 2
72 contract
(Windows.Foundation.UniversalApiContract
, 3.0),
73 uuid(a17fba0c
-2ae4
-48c2
-8063-eabd0777cb89
)
75 interface IForceFeedbackEffect
: IInspectable
77 [propget] HRESULT Gain
([out, retval] DOUBLE *value
);
78 [propput] HRESULT Gain
([in] DOUBLE value
);
79 [propget] HRESULT State
([out, retval] Windows.Gaming.Input.ForceFeedback.ForceFeedbackEffectState
*value
);
85 contract
(Windows.Foundation.UniversalApiContract
, 3.0),
86 exclusiveto
(Windows.Gaming.Input.ForceFeedback.ForceFeedbackMotor
),
87 uuid(8d3d417c
-a5ea
-4516-8026-2b00f74ef6e5
)
89 interface IForceFeedbackMotor
: IInspectable
91 [propget] HRESULT AreEffectsPaused
([out, retval] boolean *value
);
92 [propget] HRESULT MasterGain
([out, retval] DOUBLE *value
);
93 [propput] HRESULT MasterGain
([in] DOUBLE value
);
94 [propget] HRESULT IsEnabled
([out, retval] boolean *value
);
95 [propget] HRESULT SupportedAxes
([out, retval] Windows.Gaming.Input.ForceFeedback.ForceFeedbackEffectAxes
*value
);
96 HRESULT LoadEffectAsync
([in] Windows.Gaming.Input.ForceFeedback.IForceFeedbackEffect
*effect
,
97 [out, retval] Windows.Foundation.IAsyncOperation
<Windows.Gaming.Input.ForceFeedback.ForceFeedbackLoadEffectResult
> **async_op
);
98 HRESULT PauseAllEffects
();
99 HRESULT ResumeAllEffects
();
100 HRESULT StopAllEffects
();
101 HRESULT TryDisableAsync
([out, retval] Windows.Foundation.IAsyncOperation
<boolean> **async_op
);
102 HRESULT TryEnableAsync
([out, retval] Windows.Foundation.IAsyncOperation
<boolean> **async_op
);
103 HRESULT TryResetAsync
([out, retval] Windows.Foundation.IAsyncOperation
<boolean> **async_op
);
104 HRESULT TryUnloadEffectAsync
([in] Windows.Gaming.Input.ForceFeedback.IForceFeedbackEffect
*effect
,
105 [out, retval] Windows.Foundation.IAsyncOperation
<boolean> **async_op
);
109 contract
(Windows.Foundation.UniversalApiContract
, 3.0),
110 marshaling_behavior
(agile
),
113 runtimeclass ForceFeedbackMotor
115 [default] interface Windows.Gaming.Input.ForceFeedback.IForceFeedbackMotor
;