| /* |
| * SPDX-FileCopyrightText: This file has no copyright assigned and is placed in the Public Domain. |
| * SPDX-License-Identifier: CC0-1.0 |
| * |
| * This file is part of the w64 mingw-runtime package. |
| * No warranty is given; refer to https://github.com/kinke/mingw-w64-crt/blob/master/DISCLAIMER.PD. |
| */ |
| |
| typedef interface IIterator IIterator; |
| typedef interface IIterable IIterable; |
| |
| /* IIterator */ |
| typedef struct IIteratorVtbl { |
| BEGIN_INTERFACE |
| |
| /*** IUnknown methods ***/ |
| HRESULT (STDMETHODCALLTYPE *QueryInterface)( |
| IIterator *This, |
| REFIID riid, |
| void **ppvObject); |
| |
| ULONG (STDMETHODCALLTYPE *AddRef)( |
| IIterator *This); |
| |
| ULONG (STDMETHODCALLTYPE *Release)( |
| IIterator *This); |
| |
| /*** IInspectable methods ***/ |
| HRESULT (STDMETHODCALLTYPE *GetIids)( |
| IIterator *This, |
| UINT32 *count, |
| IID **ids); |
| |
| HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)( |
| IIterator *This, |
| HSTRING *className); |
| |
| HRESULT (STDMETHODCALLTYPE *GetTrustLevel)( |
| IIterator *This, |
| TrustLevel *trustLevel); |
| |
| /*** IIterator methods ***/ |
| HRESULT (STDMETHODCALLTYPE *get_Current)( |
| IIterator *This, |
| IUnknown **current); |
| |
| HRESULT (STDMETHODCALLTYPE *get_HasCurrent)( |
| IIterator *This, |
| CHAR *hasCurrent); |
| |
| HRESULT (STDMETHODCALLTYPE *MoveNext)( |
| IIterator *This, |
| CHAR *hasCurrent); |
| |
| HRESULT (STDMETHODCALLTYPE *GetMany)( |
| IIterator *This, |
| UINT capacity, |
| void *value, |
| UINT *actual); |
| |
| END_INTERFACE |
| } IIteratorVtbl; |
| |
| interface IIterator { |
| CONST_VTBL IIteratorVtbl* lpVtbl; |
| }; |
| |
| /*** IUnknown methods ***/ |
| #define IIterator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) |
| #define IIterator_AddRef(This) (This)->lpVtbl->AddRef(This) |
| #define IIterator_Release(This) (This)->lpVtbl->Release(This) |
| /*** IInspectable methods ***/ |
| #define IIterator_GetIids(This,count,ids) (This)->lpVtbl->GetIids(This,count,ids) |
| #define IIterator_GetRuntimeClassName(This,name) (This)->lpVtbl->GetRuntimeClassName(This,name) |
| #define IIterator_GetTrustLevel(This,level) (This)->lpVtbl->GetTrustLevel(This,level) |
| /*** IIterator methods ***/ |
| #define IIterator_get_Current(This,current) (This)->lpVtbl->get_Current(This,current) |
| #define IIterator_get_HasCurrent(This,hasCurrent) (This)->lpVtbl->get_HasCurrent(This,hasCurrent) |
| #define IIterator_MoveNext(This,hasCurrent) (This)->lpVtbl->MoveNext(This,hasCurrent) |
| #define IIterator_GetMany(This,capacity,value,actual) (This)->lpVtbl->GetMany(This,capacity,value,actual) |
| |
| /* IIterable */ |
| typedef struct IIterableVtbl { |
| BEGIN_INTERFACE |
| |
| /*** IUnknown methods ***/ |
| HRESULT (STDMETHODCALLTYPE *QueryInterface)( |
| IIterable *This, |
| REFIID riid, |
| void **ppvObject); |
| |
| ULONG (STDMETHODCALLTYPE *AddRef)( |
| IIterable *This); |
| |
| ULONG (STDMETHODCALLTYPE *Release)( |
| IIterable *This); |
| |
| /*** IInspectable methods ***/ |
| HRESULT (STDMETHODCALLTYPE *GetIids)( |
| IIterable *This, |
| UINT32 *count, |
| IID **ids); |
| |
| HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)( |
| IIterable *This, |
| HSTRING *className); |
| |
| HRESULT (STDMETHODCALLTYPE *GetTrustLevel)( |
| IIterable *This, |
| TrustLevel *trustLevel); |
| |
| /*** IIterable methods ***/ |
| HRESULT (STDMETHODCALLTYPE *First)( |
| IIterable *This, |
| IIterator **first); |
| |
| END_INTERFACE |
| } IIterableVtbl; |
| |
| interface IIterable { |
| CONST_VTBL IIterableVtbl* lpVtbl; |
| }; |
| |
| /*** IUnknown methods ***/ |
| #define IIterable_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) |
| #define IIterable_AddRef(This) (This)->lpVtbl->AddRef(This) |
| #define IIterable_Release(This) (This)->lpVtbl->Release(This) |
| /*** IInspectable methods ***/ |
| #define IIterable_GetIids(This,count,ids) (This)->lpVtbl->GetIids(This,count,ids) |
| #define IIterable_GetRuntimeClassName(This,name) (This)->lpVtbl->GetRuntimeClassName(This,name) |
| #define IIterable_GetTrustLevel(This,level) (This)->lpVtbl->GetTrustLevel(This,level) |
| /*** IIterable methods ***/ |
| #define IIterable_First(This,retval) (This)->lpVtbl->First(This,retval) |