1 /**
2  * This file is part of the mingw-w64 runtime package.
3  * No warranty is given; refer to the file DISCLAIMER within this package.
4  */
5 #ifndef _BEM_H_
6 #define _BEM_H_
7 
8 #include <apiset.h>
9 #include <apisetcconv.h>
10 #include <minwindef.h>
11 #include <minwinbase.h>
12 
13 #ifdef __cplusplus
14 extern "C" {
15 #endif
16 
17 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
18 #ifndef __WIDL__
19   typedef struct _CONTRACT_DESCRIPTION CONTRACT_DESCRIPTION;
20   typedef struct _BEM_REFERENCE BEM_REFERENCE;
21   typedef void (CALLBACK *BEM_FREE_INTERFACE_CALLBACK) (void *interfaceInstance);
22 
23   HRESULT WINAPI BemCreateReference (REFGUID iid, void *interfaceInstance, BEM_FREE_INTERFACE_CALLBACK freeCallback, BEM_REFERENCE **reference);
24   HRESULT WINAPI BemCreateContractFrom (LPCWSTR dllPath, REFGUID extensionId, const CONTRACT_DESCRIPTION *contractDescription, void *hostContract, void **contract);
25   HRESULT WINAPI BemCopyReference (BEM_REFERENCE *reference, BEM_REFERENCE **copiedReference);
26   void WINAPI BemFreeReference (BEM_REFERENCE *reference);
27   void WINAPI BemFreeContract (void *contract);
28 #endif
29 #endif
30 
31 #ifdef __cplusplus
32 }
33 #endif
34 #endif
35