:pserver:cvsanon@mok.lvcm.com:/CVS/ReactOS reactos
[reactos.git] / include / ole32 / obj_enumidlist.h
1 /*
2  * Defines the COM interfaces and APIs related to EnumIDList
3  *
4  * Depends on 'obj_base.h'.
5  */
6
7 #ifndef __WINE_WINE_OBJ_ENUMIDLIST_H
8 #define __WINE_WINE_OBJ_ENUMIDLIST_H
9
10 #ifdef __cplusplus
11 extern "C" {
12 #endif /* defined(__cplusplus) */
13
14 /*****************************************************************************
15  * Predeclare the interfaces
16  */
17 typedef struct IEnumIDList IEnumIDList, *LPENUMIDLIST;
18
19 #define ICOM_INTERFACE IEnumIDList
20 #define IEnumIDList_METHODS \
21     ICOM_METHOD3(HRESULT, Next, ULONG, celt, LPITEMIDLIST*, rgelt, ULONG*, pceltFetched) \
22     ICOM_METHOD1(HRESULT, Skip, ULONG, celt) \
23     ICOM_METHOD (HRESULT, Reset) \
24     ICOM_METHOD1(HRESULT, Clone, IEnumIDList**, ppenum)
25 #define IEnumIDList_IMETHODS \
26     IUnknown_IMETHODS \
27     IEnumIDList_METHODS
28 ICOM_DEFINE(IEnumIDList,IUnknown)
29 #undef ICOM_INTERFACE
30
31 /*** IUnknown methods ***/
32 #define IEnumIDList_QueryInterface(p,a,b)       ICOM_CALL2(QueryInterface,p,a,b)
33 #define IEnumIDList_AddRef(p)                   ICOM_CALL (AddRef,p)
34 #define IEnumIDList_Release(p)                  ICOM_CALL (Release,p)
35 /*** IEnumIDList methods ***/
36 #define IEnumIDList_Next(p,a,b,c)               ICOM_CALL3(Next,p,a,b,c)
37 #define IEnumIDList_Skip(p,a)                   ICOM_CALL1(Skip,p,a)
38 #define IEnumIDList_Reset(p)                    ICOM_CALL(Reset,p)
39 #define IEnumIDList_Clone(p,a)                  ICOM_CALL1(Clone,p,a)
40
41 #ifdef __cplusplus
42 } /* extern "C" */
43 #endif /* defined(__cplusplus) */
44
45 #endif /* __WINE_WINE_OBJ_ENUMIDLIST_H */