OSDN Git Service

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