:pserver:cvsanon@mok.lvcm.com:/CVS/ReactOS reactos
[reactos.git] / include / ole32 / obj_serviceprovider.h
1 /*
2  * Defines the COM interfaces and APIs related to IServiceProvider
3  *
4  * Depends on 'obj_base.h'.
5  */
6
7 #ifndef __WINE_WINE_OBJ_SERVICEPROVIDER_H
8 #define __WINE_WINE_OBJ_SERVICEPROVIDER_H
9
10 #include "wine/obj_base.h"
11 #include "winbase.h"
12
13 #ifdef __cplusplus
14 extern "C" {
15 #endif /* defined(__cplusplus) */
16
17 /*****************************************************************************
18  * Predeclare the interfaces
19  */
20 DEFINE_GUID(IID_IServiceProvider, 0x6d5140c1, 0x7436, 0x11ce, 0x80, 0x34, 0x00, 0xaa, 0x00, 0x60, 0x09, 0xfa);
21 typedef struct IServiceProvider IServiceProvider, *LPSERVICEPROVIDER;
22
23
24 /*****************************************************************************
25  * IServiceProvider interface
26  */
27 #define ICOM_INTERFACE IServiceProvider
28 #define IServiceProvider_METHODS \
29     ICOM_METHOD3( HRESULT, QueryService, REFGUID, guidService, REFIID, riid, void**, ppv)
30 #define IServiceProvider_IMETHODS \
31     IUnknown_IMETHODS \
32     IServiceProvider_METHODS
33 ICOM_DEFINE(IServiceProvider,IUnknown)
34 #undef ICOM_INTERFACE
35
36 /*** IUnknown methods ***/
37 #define IServiceProvider_QueryInterface(p,a,b)          ICOM_CALL2(QueryInterface,p,a,b)
38 #define IServiceProvider_AddRef(p)                      ICOM_CALL (AddRef,p)
39 #define IServiceProvider_Release(p)                     ICOM_CALL (Release,p)
40 /*** IServiceProvider methods ***/
41 #define IServiceProvider_QueryService(p,a,b,c)          ICOM_CALL3(QueryService,p,a,b,c)
42
43 #ifdef __cplusplus
44 } /* extern "C" */
45 #endif /* defined(__cplusplus) */
46
47 #endif /* __WINE_WINE_OBJ_SERVICEPROVIDER_H */