From: "Rémi Bernon" Subject: [PATCH 2/7] include: Split Windows.Foundation.Collections parameterized types. Message-Id: <20210222090305.557337-2-rbernon@codeweavers.com> Date: Mon, 22 Feb 2021 10:03:00 +0100 In-Reply-To: <20210222090305.557337-1-rbernon@codeweavers.com> References: <20210222090305.557337-1-rbernon@codeweavers.com> To windows.foundation.collections.idl. Signed-off-by: Rémi Bernon --- include/Makefile.in | 1 + include/windows.foundation.collections.idl | 74 ++++++++++++++++++++++ include/windows.foundation.idl | 45 +------------ 3 files changed, 76 insertions(+), 44 deletions(-) create mode 100644 include/windows.foundation.collections.idl diff --git a/include/Makefile.in b/include/Makefile.in index c1efee700fa..6c16e01a271 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -746,6 +746,7 @@ SOURCES = \ wincrypt.h \ windef.h \ windns.h \ + windows.foundation.collections.idl \ windows.foundation.idl \ windows.h \ windows.media.speechsynthesis.idl \ diff --git a/include/windows.foundation.collections.idl b/include/windows.foundation.collections.idl new file mode 100644 index 00000000000..9f7a59ab907 --- /dev/null +++ b/include/windows.foundation.collections.idl @@ -0,0 +1,74 @@ +/* + * Copyright 2021 Rémi Bernon for CodeWeavers + * + * 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 "windowscontracts.idl"; +/* import "eventtoken.idl"; */ + +namespace Windows { + namespace Foundation { +#ifdef __WIDL__ + [ + contract(Windows.Foundation.FoundationContract, 1.0), + uuid(9de1c535-6ae1-11e0-84e1-18a905bcc53f) + ] + delegate HRESULT EventHandler([in] IInspectable *sender, [in] T args); + + namespace Collections + { + [ + contract(Windows.Foundation.FoundationContract, 1.0), + uuid(6a79e863-4300-459a-9966-cbb660963ee1) + ] + interface IIterator : IInspectable + { + [propget] HRESULT Current([out, retval] T *value); + [propget] HRESULT HasCurrent([out, retval] BOOL *value); + HRESULT MoveNext([out, retval] BOOL *value); + HRESULT GetMany([in] UINT32 count, [out] T *items, [out, retval] UINT32 *value); + } + + [ + contract(Windows.Foundation.FoundationContract, 1.0), + uuid(faa585ea-6214-4217-afda-7f46de5869b3) + ] + interface IIterable : IInspectable + { + HRESULT First([out, retval] Windows.Foundation.Collections.IIterator **value); + } + + [ + contract(Windows.Foundation.FoundationContract, 1.0), + uuid(bbe1fa4c-b0e3-4583-baef-1f1b2e483e56) + ] + interface IVectorView : IInspectable + { + HRESULT GetAt([in] ULONG index, [out, retval] T *value); + [propget] HRESULT Size([out, retval] ULONG *value); + HRESULT IndexOf([in, optional] T element, [out] ULONG *index, [out, retval] BOOLEAN *value); + HRESULT GetMany([in] ULONG start_index, [out] T *items, [out, retval] ULONG *value); + } + } +#endif + } +} diff --git a/include/windows.foundation.idl b/include/windows.foundation.idl index bb0fafcab77..3c60278cf05 100644 --- a/include/windows.foundation.idl +++ b/include/windows.foundation.idl @@ -25,6 +25,7 @@ import "inspectable.idl"; import "windowscontracts.idl"; /* import "eventtoken.idl"; */ /* import "ivectorchangedeventargs.idl"; */ +import "windows.foundation.collections.idl"; namespace Windows { namespace Foundation { @@ -111,49 +112,5 @@ namespace Windows { { HRESULT ToString([out, retval] HSTRING *value); } - -#ifdef __WIDL__ - [ - contract(Windows.Foundation.FoundationContract, 1.0), - uuid(9de1c535-6ae1-11e0-84e1-18a905bcc53f) - ] - delegate HRESULT EventHandler([in] IInspectable *sender, [in] T args); - - namespace Collections - { - [ - contract(Windows.Foundation.FoundationContract, 1.0), - uuid(6a79e863-4300-459a-9966-cbb660963ee1) - ] - interface IIterator : IInspectable - { - [propget] HRESULT Current([out, retval] T *value); - [propget] HRESULT HasCurrent([out, retval] BOOL *value); - HRESULT MoveNext([out, retval] BOOL *value); - HRESULT GetMany([in] UINT32 count, [out] T *items, [out, retval] UINT32 *value); - } - - [ - contract(Windows.Foundation.FoundationContract, 1.0), - uuid(faa585ea-6214-4217-afda-7f46de5869b3) - ] - interface IIterable : IInspectable - { - HRESULT First([out, retval] Windows.Foundation.Collections.IIterator **value); - } - - [ - contract(Windows.Foundation.FoundationContract, 1.0), - uuid(bbe1fa4c-b0e3-4583-baef-1f1b2e483e56) - ] - interface IVectorView : IInspectable - { - HRESULT GetAt([in] ULONG index, [out, retval] T *value); - [propget] HRESULT Size([out, retval] ULONG *value); - HRESULT IndexOf([in, optional] T element, [out] ULONG *index, [out, retval] BOOLEAN *value); - HRESULT GetMany([in] ULONG start_index, [out] T *items, [out, retval] ULONG *value); - } - } -#endif } } -- 2.30.0