From: Biswapriyo Nath nathbappai@gmail.com
--- include/windows.graphics.imaging.idl | 11 +++++ include/windows.media.faceanalysis.idl | 64 ++++++++++++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 include/windows.media.faceanalysis.idl
diff --git a/include/windows.graphics.imaging.idl b/include/windows.graphics.imaging.idl index 6c78663a473..4ca51490dcd 100644 --- a/include/windows.graphics.imaging.idl +++ b/include/windows.graphics.imaging.idl @@ -32,6 +32,7 @@ namespace Windows.Graphics.Imaging { typedef enum BitmapAlphaMode BitmapAlphaMode; typedef enum BitmapBufferAccessMode BitmapBufferAccessMode; typedef enum BitmapPixelFormat BitmapPixelFormat; + typedef struct BitmapBounds BitmapBounds; typedef struct BitmapPlaneDescription BitmapPlaneDescription;
interface IBitmapBuffer; @@ -50,6 +51,7 @@ namespace Windows.Graphics.Imaging { interface Windows.Foundation.Collections.IVectorView<Windows.Graphics.Imaging.BitmapPixelFormat>; interface Windows.Foundation.IAsyncOperation<Windows.Graphics.Imaging.SoftwareBitmap *>; interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Graphics.Imaging.SoftwareBitmap *>; + interface Windows.Foundation.IReference<Windows.Graphics.Imaging.BitmapBounds>; }
[contract(Windows.Foundation.UniversalApiContract, 1.0)] @@ -87,6 +89,15 @@ namespace Windows.Graphics.Imaging { Yuy2 = 107, };
+ [contract(Windows.Foundation.UniversalApiContract, 1.0)] + struct BitmapBounds + { + UINT32 X; + UINT32 Y; + UINT32 Width; + UINT32 Height; + }; + [contract(Windows.Foundation.UniversalApiContract, 1.0)] struct BitmapPlaneDescription { diff --git a/include/windows.media.faceanalysis.idl b/include/windows.media.faceanalysis.idl new file mode 100644 index 00000000000..de5cf136ab9 --- /dev/null +++ b/include/windows.media.faceanalysis.idl @@ -0,0 +1,64 @@ +/* + * Copyright (C) 2024 Biswapriyo Nath + * + * 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"; +import "asyncinfo.idl"; +import "eventtoken.idl"; +import "windowscontracts.idl"; +import "windows.foundation.idl"; +import "windows.graphics.imaging.idl"; +import "windows.media.idl"; + +namespace Windows.Media.FaceAnalysis { + interface IDetectedFace; + + runtimeclass DetectedFace; + + declare { + interface Windows.Foundation.Collections.IIterable<Windows.Media.FaceAnalysis.DetectedFace *>; + interface Windows.Foundation.Collections.IIterator<Windows.Media.FaceAnalysis.DetectedFace *>; + interface Windows.Foundation.Collections.IVectorView<Windows.Media.FaceAnalysis.DetectedFace *>; + interface Windows.Foundation.Collections.IVector<Windows.Media.FaceAnalysis.DetectedFace *>; + interface Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVector<Windows.Media.FaceAnalysis.DetectedFace *> *>; + interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Foundation.Collections.IVector<Windows.Media.FaceAnalysis.DetectedFace *> *>; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.Media.FaceAnalysis.DetectedFace), + uuid(8200d454-66bc-34df-9410-e89400195414) + ] + interface IDetectedFace : IInspectable + { + [propget] HRESULT FaceBox([out, retval] Windows.Graphics.Imaging.BitmapBounds *return_value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile), + threading(both) + ] + runtimeclass DetectedFace + { + [default] interface Windows.Media.FaceAnalysis.IDetectedFace; + } +}