diff --git a/include/windows.ui.composition.idl b/include/windows.ui.composition.idl index 11deb2ab5d7..c2c1dea6fec 100644 --- a/include/windows.ui.composition.idl +++ b/include/windows.ui.composition.idl @@ -40,6 +40,7 @@ namespace Windows.UI.Composition { typedef enum CompositionColorSpace CompositionColorSpace; typedef enum CompositionCompositeMode CompositionCompositeMode; typedef enum CompositionEffectFactoryLoadStatus CompositionEffectFactoryLoadStatus; + typedef enum CompositionGetValueStatus CompositionGetValueStatus; typedef enum CompositionStretch CompositionStretch; interface IColorKeyFrameAnimation; @@ -54,6 +55,8 @@ namespace Windows.UI.Composition { interface ICompositionEasingFunctionStatics; interface ICompositionEffectBrush; interface ICompositionEffectFactory; + interface ICompositionPropertySet; + interface ICompositionPropertySet2; interface ICompositionSurface; interface ICompositionSurfaceBrush; interface ICompositionSurfaceBrush2; @@ -82,6 +85,7 @@ namespace Windows.UI.Composition { runtimeclass CompositionEffectBrush; runtimeclass CompositionEffectFactory; runtimeclass CompositionObject; + runtimeclass CompositionPropertySet; runtimeclass CompositionSurfaceBrush; runtimeclass ContainerVisual; runtimeclass CubicBezierEasingFunction; @@ -182,6 +186,16 @@ namespace Windows.UI.Composition { Other = -1, }; + [ + contract(Windows.Foundation.UniversalApiContract, 2.0) + ] + enum CompositionGetValueStatus + { + Succeeded = 0, + TypeMismatch = 1, + NotFound = 2, + }; + [ contract(Windows.Foundation.UniversalApiContract, 2.0) ] @@ -297,6 +311,49 @@ namespace Windows.UI.Composition { [propget] HRESULT LoadStatus([out, retval] Windows.UI.Composition.CompositionEffectFactoryLoadStatus *value); } + [ + contract(Windows.Foundation.UniversalApiContract, 2.0), + exclusiveto(Windows.UI.Composition.CompositionPropertySet), + uuid(c9d6d202-5f67-4453-9117-9eadd430d3c2) + ] + interface ICompositionPropertySet : IInspectable + { + HRESULT InsertColor([in] HSTRING name, [in] Windows.UI.Color value); + HRESULT InsertMatrix3x2([in] HSTRING name, [in] Windows.Foundation.Numerics.Matrix3x2 value); + HRESULT InsertMatrix4x4([in] HSTRING name, [in] Windows.Foundation.Numerics.Matrix4x4 value); + HRESULT InsertQuaternion([in] HSTRING name, [in] Windows.Foundation.Numerics.Quaternion value); + HRESULT InsertScalar([in] HSTRING name, [in] FLOAT value); + HRESULT InsertVector2([in] HSTRING name, [in] Windows.Foundation.Numerics.Vector2 value); + HRESULT InsertVector3([in] HSTRING name, [in] Windows.Foundation.Numerics.Vector3 value); + HRESULT InsertVector4([in] HSTRING name, [in] Windows.Foundation.Numerics.Vector4 value); + HRESULT TryGetColor([in] HSTRING name, [out] Windows.UI.Color *value, [out, retval] Windows.UI.Composition.CompositionGetValueStatus *result); + HRESULT TryGetMatrix3x2( + [in] HSTRING name, [out] Windows.Foundation.Numerics.Matrix3x2 *value, + [out, retval] Windows.UI.Composition.CompositionGetValueStatus *result + ); + HRESULT TryGetMatrix4x4( + [in] HSTRING name, [out] Windows.Foundation.Numerics.Matrix4x4 *value, + [out, retval] Windows.UI.Composition.CompositionGetValueStatus *result + ); + HRESULT TryGetQuaternion( + [in] HSTRING name, [out] Windows.Foundation.Numerics.Quaternion *value, + [out, retval] Windows.UI.Composition.CompositionGetValueStatus *result + ); + HRESULT TryGetScalar([in] HSTRING name, [out] FLOAT *value, [out, retval] Windows.UI.Composition.CompositionGetValueStatus *result); + HRESULT TryGetVector2( + [in] HSTRING name, [out] Windows.Foundation.Numerics.Vector2 *value, + [out, retval] Windows.UI.Composition.CompositionGetValueStatus *result + ); + HRESULT TryGetVector3( + [in] HSTRING name, [out] Windows.Foundation.Numerics.Vector3 *value, + [out, retval] Windows.UI.Composition.CompositionGetValueStatus *result + ); + HRESULT TryGetVector4( + [in] HSTRING name, [out] Windows.Foundation.Numerics.Vector4 *value, + [out, retval] Windows.UI.Composition.CompositionGetValueStatus *result + ); + } + [ contract(Windows.Foundation.UniversalApiContract, 2.0), uuid(1527540d-42c7-47a6-a408-668f79a90dfb) @@ -544,6 +601,17 @@ namespace Windows.UI.Composition { [default] interface Windows.UI.Composition.ICompositionEffectFactory; } + [ + contract(Windows.Foundation.UniversalApiContract, 2.0), + marshaling_behavior(agile), + threading(both) + ] + runtimeclass CompositionPropertySet : Windows.UI.Composition.CompositionObject + { + [default] interface Windows.UI.Composition.ICompositionPropertySet; + [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.UI.Composition.ICompositionPropertySet2; + } + [ contract(Windows.Foundation.UniversalApiContract, 2.0), marshaling_behavior(agile),