diff --git a/include/Makefile.in b/include/Makefile.in index 102ea551cac..9bde0bcceb0 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -815,6 +815,7 @@ SOURCES = \ windows.gaming.input.idl \ windows.gaming.ui.idl \ windows.globalization.idl \ + windows.graphics.capture.idl \ windows.graphics.directx.direct3d11.idl \ windows.graphics.directx.idl \ windows.graphics.effects.idl \ diff --git a/include/windows.graphics.capture.idl b/include/windows.graphics.capture.idl new file mode 100644 index 00000000000..f89f91afc42 --- /dev/null +++ b/include/windows.graphics.capture.idl @@ -0,0 +1,77 @@ +/* + * Copyright (C) 2023 Mohamad Al-Jaf + * + * 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.idl"; */ +import "windows.graphics.directx.idl"; +import "windows.graphics.directx.direct3d11.idl"; +/* import "windows.security.authorization.appcapabilityaccess.idl"; */ +import "windows.system.idl"; +import "windows.ui.idl"; +/* import "windows.ui.composition.idl"; */ + +namespace Windows.Graphics.Capture { + interface IGraphicsCaptureSession; + interface IGraphicsCaptureSession2; + interface IGraphicsCaptureSession3; + interface IGraphicsCaptureSessionStatics; + + runtimeclass GraphicsCaptureSession; + + [ + contract(Windows.Foundation.UniversalApiContract, 6.0), + exclusiveto(Windows.Graphics.Capture.GraphicsCaptureSession), + uuid(814e42a9-f70f-4ad7-939b-fddcc6eb880d) + ] + interface IGraphicsCaptureSession : IInspectable + { + HRESULT StartCapture(); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 6.0), + exclusiveto(Windows.Graphics.Capture.GraphicsCaptureSession), + uuid(2224a540-5974-49aa-b232-0882536f4cb5) + ] + interface IGraphicsCaptureSessionStatics : IInspectable + { + HRESULT IsSupported([out, retval] boolean *result); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 6.0), + marshaling_behavior(agile), + static(Windows.Graphics.Capture.IGraphicsCaptureSessionStatics, Windows.Foundation.UniversalApiContract, 6.0), + threading(both) + ] + runtimeclass GraphicsCaptureSession + { + [default] interface Windows.Graphics.Capture.IGraphicsCaptureSession; + [contract(Windows.Foundation.UniversalApiContract, 10.0)] interface Windows.Graphics.Capture.IGraphicsCaptureSession2; + [contract(Windows.Foundation.UniversalApiContract, 12.0)] interface Windows.Graphics.Capture.IGraphicsCaptureSession3; + interface Windows.Foundation.IClosable; + } +}