(root)/
glib-2.79.0/
gio/
gwin32api-iterator.h
       1  /*
       2   * SPDX-FileCopyrightText: This file has no copyright assigned and is placed in the Public Domain.
       3   * SPDX-License-Identifier: CC0-1.0
       4   *
       5   * This file is part of the w64 mingw-runtime package.
       6   * No warranty is given; refer to https://github.com/kinke/mingw-w64-crt/blob/master/DISCLAIMER.PD.
       7   */
       8  
       9  typedef interface IIterator IIterator;
      10  typedef interface IIterable IIterable;
      11  
      12  /* IIterator */
      13  typedef struct IIteratorVtbl {
      14    BEGIN_INTERFACE
      15  
      16    /*** IUnknown methods ***/
      17    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
      18      IIterator *This,
      19      REFIID riid,
      20      void **ppvObject);
      21  
      22    ULONG (STDMETHODCALLTYPE *AddRef)(
      23      IIterator *This);
      24  
      25    ULONG (STDMETHODCALLTYPE *Release)(
      26      IIterator *This);
      27  
      28    /*** IInspectable methods ***/
      29    HRESULT (STDMETHODCALLTYPE *GetIids)(
      30      IIterator *This,
      31      UINT32 *count,
      32      IID **ids);
      33  
      34    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
      35      IIterator *This,
      36      HSTRING *className);
      37  
      38    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
      39      IIterator *This,
      40      TrustLevel *trustLevel);
      41  
      42    /*** IIterator methods ***/
      43    HRESULT (STDMETHODCALLTYPE *get_Current)(
      44      IIterator *This,
      45      IUnknown **current);
      46  
      47    HRESULT (STDMETHODCALLTYPE *get_HasCurrent)(
      48      IIterator *This,
      49      CHAR *hasCurrent);
      50  
      51    HRESULT (STDMETHODCALLTYPE *MoveNext)(
      52      IIterator *This,
      53      CHAR *hasCurrent);
      54  
      55    HRESULT (STDMETHODCALLTYPE *GetMany)(
      56      IIterator *This,
      57      UINT capacity,
      58      void *value,
      59      UINT *actual);
      60  
      61    END_INTERFACE
      62  } IIteratorVtbl;
      63  
      64  interface IIterator {
      65    CONST_VTBL IIteratorVtbl* lpVtbl;
      66  };
      67  
      68  /*** IUnknown methods ***/
      69  #define IIterator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
      70  #define IIterator_AddRef(This) (This)->lpVtbl->AddRef(This)
      71  #define IIterator_Release(This) (This)->lpVtbl->Release(This)
      72  /*** IInspectable methods ***/
      73  #define IIterator_GetIids(This,count,ids) (This)->lpVtbl->GetIids(This,count,ids)
      74  #define IIterator_GetRuntimeClassName(This,name) (This)->lpVtbl->GetRuntimeClassName(This,name)
      75  #define IIterator_GetTrustLevel(This,level) (This)->lpVtbl->GetTrustLevel(This,level)
      76  /*** IIterator methods ***/
      77  #define IIterator_get_Current(This,current) (This)->lpVtbl->get_Current(This,current)
      78  #define IIterator_get_HasCurrent(This,hasCurrent) (This)->lpVtbl->get_HasCurrent(This,hasCurrent)
      79  #define IIterator_MoveNext(This,hasCurrent) (This)->lpVtbl->MoveNext(This,hasCurrent)
      80  #define IIterator_GetMany(This,capacity,value,actual) (This)->lpVtbl->GetMany(This,capacity,value,actual)
      81  
      82  /* IIterable */
      83  typedef struct IIterableVtbl {
      84    BEGIN_INTERFACE
      85  
      86    /*** IUnknown methods ***/
      87    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
      88      IIterable *This,
      89      REFIID riid,
      90      void **ppvObject);
      91  
      92    ULONG (STDMETHODCALLTYPE *AddRef)(
      93      IIterable *This);
      94  
      95    ULONG (STDMETHODCALLTYPE *Release)(
      96      IIterable *This);
      97  
      98    /*** IInspectable methods ***/
      99    HRESULT (STDMETHODCALLTYPE *GetIids)(
     100      IIterable *This,
     101      UINT32 *count,
     102      IID **ids);
     103  
     104    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
     105      IIterable *This,
     106      HSTRING *className);
     107  
     108    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
     109      IIterable *This,
     110      TrustLevel *trustLevel);
     111  
     112    /*** IIterable methods ***/
     113    HRESULT (STDMETHODCALLTYPE *First)(
     114      IIterable *This,
     115      IIterator **first);
     116  
     117    END_INTERFACE
     118  } IIterableVtbl;
     119  
     120  interface IIterable {
     121    CONST_VTBL IIterableVtbl* lpVtbl;
     122  };
     123  
     124  /*** IUnknown methods ***/
     125  #define IIterable_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
     126  #define IIterable_AddRef(This) (This)->lpVtbl->AddRef(This)
     127  #define IIterable_Release(This) (This)->lpVtbl->Release(This)
     128  /*** IInspectable methods ***/
     129  #define IIterable_GetIids(This,count,ids) (This)->lpVtbl->GetIids(This,count,ids)
     130  #define IIterable_GetRuntimeClassName(This,name) (This)->lpVtbl->GetRuntimeClassName(This,name)
     131  #define IIterable_GetTrustLevel(This,level) (This)->lpVtbl->GetTrustLevel(This,level)
     132  /*** IIterable methods ***/
     133  #define IIterable_First(This,retval) (This)->lpVtbl->First(This,retval)