| /* | |
| * 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) |