Needed for PyWinRT.
-- v2: include: Add windows.graphics.capture.interop.idl file. widl: Add support for WinRT HMONITOR type.
From: Mohamad Al-Jaf mohamadaljaf@gmail.com
Needed by windows.graphics.capture.interop.idl. --- tools/widl/parser.y | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/widl/parser.y b/tools/widl/parser.y index b802f75874d..6c90f6829a2 100644 --- a/tools/widl/parser.y +++ b/tools/widl/parser.y @@ -2482,7 +2482,7 @@ static void check_field_common(const type_t *container_type, } case TGT_POINTER: if (type_get_type(type_pointer_get_ref_type(type)) != TYPE_VOID || - !type->name || strcmp(type->name, "HANDLE")) + !type->name || ( strcmp(type->name, "HANDLE") && strcmp(type->name, "HMONITOR") )) { type = type_pointer_get_ref_type(type); more_to_do = TRUE;
From: Mohamad Al-Jaf mohamadaljaf@gmail.com
Needed for PyWinRT. --- include/Makefile.in | 1 + include/windows.graphics.capture.interop.idl | 38 ++++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 include/windows.graphics.capture.interop.idl
diff --git a/include/Makefile.in b/include/Makefile.in index 54d6dca234d..7a6e5d62763 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -817,6 +817,7 @@ SOURCES = \ windows.gaming.ui.idl \ windows.globalization.idl \ windows.graphics.capture.idl \ + windows.graphics.capture.interop.idl \ windows.graphics.directx.direct3d11.idl \ windows.graphics.directx.idl \ windows.graphics.effects.idl \ diff --git a/include/windows.graphics.capture.interop.idl b/include/windows.graphics.capture.interop.idl new file mode 100644 index 00000000000..c9ae243942e --- /dev/null +++ b/include/windows.graphics.capture.interop.idl @@ -0,0 +1,38 @@ +/* + * 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 "windows.ui.composition.idl"; +import "windows.graphics.capture.idl"; +import "sdkddkver.h"; + +cpp_quote("#if 0") +typedef HANDLE HMONITOR; +cpp_quote("#endif /* 0 */") + +[ + uuid(3628e81b-3cac-4c60-b7f4-23ce0e0c3356) +] +interface IGraphicsCaptureItemInterop : IUnknown +{ + HRESULT CreateForWindow([in] HWND window, [in] REFIID iid, [out, iid_is(iid)] void **result); + HRESULT CreateForMonitor([in] HMONITOR monitor, [in] REFIID iid, [out, iid_is(iid)] void **result); +}
On Mon Apr 17 07:07:01 2023 +0000, Rémi Bernon wrote:
Actually only HMONITOR is an issue, and it could be added to the same widl case as HANDLE, then something like that would work:
#ifdef __WIDL__ #pragma winrt ns_prefix #endif import "windows.ui.composition.idl"; import "windows.graphics.capture.idl"; import "sdkddkver.h"; cpp_quote("#if 0") typedef HANDLE HMONITOR; cpp_quote("#endif /* 0 */") [ uuid(3628e81b-3cac-4c60-b7f4-23ce0e0c3356) ] interface IGraphicsCaptureItemInterop : IUnknown { HRESULT CreateForWindow([in] HWND window, [in] REFIID iid, [out, iid_is(iid)] void **result); HRESULT CreateForMonitor([in] HMONITOR monitor, [in] REFIID iid, [out, iid_is(iid)] void **result); }
Looks like there was an issue in my build environment. Thanks, that works with added `HMONITOR` support.
This merge request was approved by Rémi Bernon.