• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 typedef interface IIterator IIterator;
2 typedef interface IIterable IIterable;
3 
4 /* IIterator */
5 typedef struct IIteratorVtbl {
6   BEGIN_INTERFACE
7 
8   /*** IUnknown methods ***/
9   HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10     IIterator *This,
11     REFIID riid,
12     void **ppvObject);
13 
14   ULONG (STDMETHODCALLTYPE *AddRef)(
15     IIterator *This);
16 
17   ULONG (STDMETHODCALLTYPE *Release)(
18     IIterator *This);
19 
20   /*** IInspectable methods ***/
21   HRESULT (STDMETHODCALLTYPE *GetIids)(
22     IIterator *This,
23     UINT32 *count,
24     IID **ids);
25 
26   HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
27     IIterator *This,
28     HSTRING *className);
29 
30   HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
31     IIterator *This,
32     TrustLevel *trustLevel);
33 
34   /*** IIterator methods ***/
35   HRESULT (STDMETHODCALLTYPE *get_Current)(
36     IIterator *This,
37     IUnknown **current);
38 
39   HRESULT (STDMETHODCALLTYPE *get_HasCurrent)(
40     IIterator *This,
41     CHAR *hasCurrent);
42 
43   HRESULT (STDMETHODCALLTYPE *MoveNext)(
44     IIterator *This,
45     CHAR *hasCurrent);
46 
47   HRESULT (STDMETHODCALLTYPE *GetMany)(
48     IIterator *This,
49     UINT capacity,
50     void *value,
51     UINT *actual);
52 
53   END_INTERFACE
54 } IIteratorVtbl;
55 
56 interface IIterator {
57   CONST_VTBL IIteratorVtbl* lpVtbl;
58 };
59 
60 /*** IUnknown methods ***/
61 #define IIterator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
62 #define IIterator_AddRef(This) (This)->lpVtbl->AddRef(This)
63 #define IIterator_Release(This) (This)->lpVtbl->Release(This)
64 /*** IInspectable methods ***/
65 #define IIterator_GetIids(This,count,ids) (This)->lpVtbl->GetIids(This,count,ids)
66 #define IIterator_GetRuntimeClassName(This,name) (This)->lpVtbl->GetRuntimeClassName(This,name)
67 #define IIterator_GetTrustLevel(This,level) (This)->lpVtbl->GetTrustLevel(This,level)
68 /*** IIterator methods ***/
69 #define IIterator_get_Current(This,current) (This)->lpVtbl->get_Current(This,current)
70 #define IIterator_get_HasCurrent(This,hasCurrent) (This)->lpVtbl->get_HasCurrent(This,hasCurrent)
71 #define IIterator_MoveNext(This,hasCurrent) (This)->lpVtbl->MoveNext(This,hasCurrent)
72 #define IIterator_GetMany(This,capacity,value,actual) (This)->lpVtbl->GetMany(This,capacity,value,actual)
73 
74 /* IIterable */
75 typedef struct IIterableVtbl {
76   BEGIN_INTERFACE
77 
78   /*** IUnknown methods ***/
79   HRESULT (STDMETHODCALLTYPE *QueryInterface)(
80     IIterable *This,
81     REFIID riid,
82     void **ppvObject);
83 
84   ULONG (STDMETHODCALLTYPE *AddRef)(
85     IIterable *This);
86 
87   ULONG (STDMETHODCALLTYPE *Release)(
88     IIterable *This);
89 
90   /*** IInspectable methods ***/
91   HRESULT (STDMETHODCALLTYPE *GetIids)(
92     IIterable *This,
93     UINT32 *count,
94     IID **ids);
95 
96   HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
97     IIterable *This,
98     HSTRING *className);
99 
100   HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
101     IIterable *This,
102     TrustLevel *trustLevel);
103 
104   /*** IIterable methods ***/
105   HRESULT (STDMETHODCALLTYPE *First)(
106     IIterable *This,
107     IIterator **first);
108 
109   END_INTERFACE
110 } IIterableVtbl;
111 
112 interface IIterable {
113   CONST_VTBL IIterableVtbl* lpVtbl;
114 };
115 
116 /*** IUnknown methods ***/
117 #define IIterable_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
118 #define IIterable_AddRef(This) (This)->lpVtbl->AddRef(This)
119 #define IIterable_Release(This) (This)->lpVtbl->Release(This)
120 /*** IInspectable methods ***/
121 #define IIterable_GetIids(This,count,ids) (This)->lpVtbl->GetIids(This,count,ids)
122 #define IIterable_GetRuntimeClassName(This,name) (This)->lpVtbl->GetRuntimeClassName(This,name)
123 #define IIterable_GetTrustLevel(This,level) (This)->lpVtbl->GetTrustLevel(This,level)
124 /*** IIterable methods ***/
125 #define IIterable_First(This,retval) (This)->lpVtbl->First(This,retval)
126