Initial bulk commit for "Git on MSys"
[msysgit/historical-msysgit.git] / mingw / include / unknwn.h
blob4a8c3fc4712c16c02b0975c7382503901c3e0243
1 #ifndef COM_NO_WINDOWS_H
2 #include <windows.h>
3 #endif
5 #ifndef _UNKNWN_H
6 #define _UNKNWN_H
7 #if __GNUC__ >=3
8 #pragma GCC system_header
9 #endif
11 #ifdef __cplusplus
12 extern "C"{
13 #endif
14 #include <objfwd.h>
15 #include <wtypes.h>
17 void * __RPC_USER MIDL_user_allocate(size_t);
18 void __RPC_USER MIDL_user_free(void*);
19 EXTERN_C const IID IID_IUnknown;
20 EXTERN_C const IID IID_IClassFactory;
21 #ifndef __IUnknown_INTERFACE_DEFINED__
22 #define __IUnknown_INTERFACE_DEFINED__
23 #define INTERFACE IUnknown
24 DECLARE_INTERFACE(IUnknown)
26 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
27 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
28 STDMETHOD_(ULONG,Release)(THIS) PURE;
30 #undef INTERFACE
31 typedef IUnknown *LPUNKNOWN;
32 #endif
33 #ifndef __IClassFactory_INTERFACE_DEFINED__
34 #define __IClassFactory_INTERFACE_DEFINED__
35 #define INTERFACE IClassFactory
36 DECLARE_INTERFACE_(IClassFactory,IUnknown)
38 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
39 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
40 STDMETHOD_(ULONG,Release)(THIS) PURE;
41 STDMETHOD(CreateInstance)(THIS_ LPUNKNOWN,REFIID,PVOID*) PURE;
42 STDMETHOD(LockServer)(THIS_ BOOL) PURE;
44 #undef INTERFACE
45 typedef IClassFactory *LPCLASSFACTORY;
46 #endif
47 HRESULT STDMETHODCALLTYPE IUnknown_QueryInterface_Proxy(IUnknown*,REFIID,void**);
48 void __RPC_STUB IUnknown_QueryInterface_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD);
49 ULONG STDMETHODCALLTYPE IUnknown_AddRef_Proxy(IUnknown*);
50 void __RPC_STUB IUnknown_AddRef_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD);
51 ULONG STDMETHODCALLTYPE IUnknown_Release_Proxy(IUnknown*);
52 void __RPC_STUB IUnknown_Release_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD);
53 HRESULT STDMETHODCALLTYPE IClassFactory_RemoteCreateInstance_Proxy(IClassFactory*,REFIID,IUnknown**);
54 void __RPC_STUB IClassFactory_RemoteCreateInstance_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD);
55 HRESULT __stdcall IClassFactory_RemoteLockServer_Proxy(IClassFactory*,BOOL);
56 void __RPC_STUB IClassFactory_RemoteLockServer_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD);
57 HRESULT STDMETHODCALLTYPE IClassFactory_CreateInstance_Proxy(IClassFactory*,IUnknown*,REFIID,void**);
58 HRESULT STDMETHODCALLTYPE IClassFactory_CreateInstance_Stub(IClassFactory*,REFIID,IUnknown**);
59 HRESULT STDMETHODCALLTYPE IClassFactory_LockServer_Proxy(IClassFactory*,BOOL);
60 HRESULT STDMETHODCALLTYPE IClassFactory_LockServer_Stub(IClassFactory*,BOOL);
62 #if (!defined (__cplusplus) || defined (CINTERFACE)) \
63 && defined (COBJMACROS)
64 #define IUnknown_QueryInterface(T,r,O) (T)->lpVtbl->QueryInterface(T,r,O)
65 #define IUnknown_AddRef(T) (T)->lpVtbl->AddRef(T)
66 #define IUnknown_Release(T) (T)->lpVtbl->Release(T)
67 #define IClassFactory_QueryInterface(T,r,O) (T)->lpVtbl->QueryInterface(T,r,O)
68 #define IClassFactory_AddRef(T) (T)->lpVtbl->AddRef(T)
69 #define IClassFactory_Release(T) (T)->lpVtbl->Release(T)
70 #define IClassFactory_CreateInstance(T,p,r,O) (T)->lpVtbl->CreateInstance(T,p,r,O)
71 #define IClassFactory_LockServer(T,f) (T)->lpVtbl->LockServer(T,f)
72 #endif /* COBJMACROS */
73 #ifdef __cplusplus
75 #endif
76 #endif