1 2 #ifndef _BASETYPS_H 3 #define _BASETYPS_H 4 #pragma once 5 6 #include <guiddef.h> 7 8 #ifndef __OBJC__ 9 # ifdef __cplusplus 10 # define EXTERN_C extern "C" 11 # else 12 # define EXTERN_C extern 13 # endif /* __cplusplus */ 14 # ifndef _MSC_VER 15 # ifndef __int64 16 # define __int64 long long 17 # endif 18 # ifndef __int32 19 # define __int32 long 20 # endif 21 # ifndef __int16 22 # define __int16 int 23 # endif 24 # ifndef __int8 25 # define __int8 char 26 # endif 27 # endif 28 # ifndef __small 29 # define __small char 30 # endif 31 # ifndef __hyper 32 # define __hyper __int64 33 # endif 34 #endif 35 36 #ifndef STDMETHODCALLTYPE 37 #define STDMETHODCALLTYPE __stdcall 38 #define STDMETHODVCALLTYPE __cdecl 39 #define STDAPICALLTYPE __stdcall 40 #define STDAPIVCALLTYPE __cdecl 41 #define STDAPI EXTERN_C HRESULT STDAPICALLTYPE 42 #define STDAPI_(t) EXTERN_C t STDAPICALLTYPE 43 #define STDMETHODIMP HRESULT STDMETHODCALLTYPE 44 #define STDMETHODIMP_(t) t STDMETHODCALLTYPE 45 #define STDAPIV EXTERN_C HRESULT STDAPIVCALLTYPE 46 #define STDAPIV_(t) EXTERN_C t STDAPIVCALLTYPE 47 #define STDMETHODIMPV HRESULT STDMETHODVCALLTYPE 48 #define STDMETHODIMPV_(t) t STDMETHODVCALLTYPE 49 #endif /* !STDMETHODCALLTYPE */ 50 51 #if defined(__cplusplus) && !defined(CINTERFACE) 52 # define interface struct 53 # define STDMETHOD(m) virtual HRESULT STDMETHODCALLTYPE m 54 # define STDMETHOD_(t,m) virtual t STDMETHODCALLTYPE m 55 # define PURE =0 56 # define THIS_ 57 # define THIS void 58 # define DECLARE_INTERFACE(i) interface i 59 # define DECLARE_INTERFACE_(i,b) interface i : public b 60 #else 61 # define interface struct 62 # define STDMETHOD(m) HRESULT (STDMETHODCALLTYPE *m) 63 # define STDMETHOD_(t,m) t (STDMETHODCALLTYPE *m) 64 # define PURE 65 # define THIS_ INTERFACE *, 66 # define THIS INTERFACE * 67 # ifdef CONST_VTABLE 68 # define DECLARE_INTERFACE(i) \ 69 typedef interface i { const struct i##Vtbl *lpVtbl; } i; \ 70 typedef struct i##Vtbl i##Vtbl; \ 71 struct i##Vtbl 72 # else 73 # define DECLARE_INTERFACE(i) \ 74 typedef interface i { struct i##Vtbl *lpVtbl; } i; \ 75 typedef struct i##Vtbl i##Vtbl; \ 76 struct i##Vtbl 77 # endif 78 # define DECLARE_INTERFACE_(i,b) DECLARE_INTERFACE(i) 79 #endif 80 81 #ifndef _ERROR_STATUS_T_DEFINED 82 #define _ERROR_STATUS_T_DEFINED 83 typedef unsigned long error_status_t; 84 #endif 85 86 #ifndef _WCHAR_T_DEFINED 87 typedef unsigned short wchar_t; 88 #define _WCHAR_T_DEFINED 89 #endif 90 91 #endif /* _BASETYPS_H_ */ 92