mingw-5.1.4/win32/include/unknwn.h
changeset 0 76b1f169d9fe
equal deleted inserted replaced
-1:000000000000 0:76b1f169d9fe
       
     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
       
    12 extern "C"{
       
    13 #endif
       
    14 #include <objfwd.h>
       
    15 #include <wtypes.h>
       
    16 
       
    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)
       
    25 {
       
    26 	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
       
    27 	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
       
    28 	STDMETHOD_(ULONG,Release)(THIS) PURE;
       
    29 };
       
    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)
       
    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
       
    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);
       
    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