source: Daodan/MinGW/include/unknwn.h@ 1068

Last change on this file since 1068 was 1046, checked in by alloc, 8 years ago

Daodan: Added Windows MinGW and build batch file

File size: 3.0 KB
Line 
1#ifndef COM_NO_WINDOWS_H
2#include <windows.h>
3#endif
4
5#ifndef _UNKNWN_H
6#define _UNKNWN_H
7#if __GNUC__ >=3
8#pragma GCC system_header
9#endif
10
11#ifdef __cplusplus
12extern "C"{
13#endif
14#include <objfwd.h>
15#include <wtypes.h>
16
17void * __RPC_USER MIDL_user_allocate(size_t);
18void __RPC_USER MIDL_user_free(void*);
19EXTERN_C const IID IID_IUnknown;
20EXTERN_C const IID IID_IClassFactory;
21#ifndef __IUnknown_INTERFACE_DEFINED__
22#define __IUnknown_INTERFACE_DEFINED__
23#define INTERFACE IUnknown
24DECLARE_INTERFACE(IUnknown)
25{
26 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
27 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
28 STDMETHOD_(ULONG,Release)(THIS) PURE;
29};
30#undef INTERFACE
31typedef IUnknown *LPUNKNOWN;
32#endif
33#ifndef __IClassFactory_INTERFACE_DEFINED__
34#define __IClassFactory_INTERFACE_DEFINED__
35#define INTERFACE IClassFactory
36DECLARE_INTERFACE_(IClassFactory,IUnknown)
37{
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;
43};
44#undef INTERFACE
45typedef IClassFactory *LPCLASSFACTORY;
46#endif
47HRESULT STDMETHODCALLTYPE IUnknown_QueryInterface_Proxy(IUnknown*,REFIID,void**);
48void __RPC_STUB IUnknown_QueryInterface_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD);
49ULONG STDMETHODCALLTYPE IUnknown_AddRef_Proxy(IUnknown*);
50void __RPC_STUB IUnknown_AddRef_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD);
51ULONG STDMETHODCALLTYPE IUnknown_Release_Proxy(IUnknown*);
52void __RPC_STUB IUnknown_Release_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD);
53HRESULT STDMETHODCALLTYPE IClassFactory_RemoteCreateInstance_Proxy(IClassFactory*,REFIID,IUnknown**);
54void __RPC_STUB IClassFactory_RemoteCreateInstance_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD);
55HRESULT __stdcall IClassFactory_RemoteLockServer_Proxy(IClassFactory*,BOOL);
56void __RPC_STUB IClassFactory_RemoteLockServer_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD);
57HRESULT STDMETHODCALLTYPE IClassFactory_CreateInstance_Proxy(IClassFactory*,IUnknown*,REFIID,void**);
58HRESULT STDMETHODCALLTYPE IClassFactory_CreateInstance_Stub(IClassFactory*,REFIID,IUnknown**);
59HRESULT STDMETHODCALLTYPE IClassFactory_LockServer_Proxy(IClassFactory*,BOOL);
60HRESULT STDMETHODCALLTYPE IClassFactory_LockServer_Stub(IClassFactory*,BOOL);
61
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
74}
75#endif
76#endif
Note: See TracBrowser for help on using the repository browser.