mirror of
https://github.com/QB64Official/qb64.git
synced 2024-08-22 04:25:08 +00:00
97 lines
3 KiB
C
97 lines
3 KiB
C
/**
|
|
* This file is part of the mingw-w64 runtime package.
|
|
* No warranty is given; refer to the file DISCLAIMER within this package.
|
|
*/
|
|
|
|
#ifndef _BASETYPS_H_
|
|
#define _BASETYPS_H_
|
|
|
|
#ifdef __cplusplus
|
|
#define EXTERN_C extern "C"
|
|
#else
|
|
#define EXTERN_C extern
|
|
#endif
|
|
|
|
/* Keep in sync with winnt.h header. */
|
|
#ifndef STDMETHODCALLTYPE
|
|
#define STDMETHODCALLTYPE WINAPI
|
|
#define STDMETHODVCALLTYPE __cdecl
|
|
#define STDAPICALLTYPE WINAPI
|
|
#define STDAPIVCALLTYPE __cdecl
|
|
|
|
#define STDAPI EXTERN_C HRESULT STDAPICALLTYPE
|
|
#define STDAPI_(type) EXTERN_C type STDAPICALLTYPE
|
|
|
|
#define STDMETHODIMP HRESULT STDMETHODCALLTYPE
|
|
#define STDMETHODIMP_(type) type STDMETHODCALLTYPE
|
|
|
|
#define STDAPIV EXTERN_C HRESULT STDAPIVCALLTYPE
|
|
#define STDAPIV_(type) EXTERN_C type STDAPIVCALLTYPE
|
|
|
|
#define STDMETHODIMPV HRESULT STDMETHODVCALLTYPE
|
|
#define STDMETHODIMPV_(type) type STDMETHODVCALLTYPE
|
|
#endif
|
|
|
|
#if defined (__cplusplus) && !defined (CINTERFACE)
|
|
|
|
#ifdef COM_STDMETHOD_CAN_THROW
|
|
#define COM_DECLSPEC_NOTHROW
|
|
#else
|
|
#define COM_DECLSPEC_NOTHROW DECLSPEC_NOTHROW
|
|
#endif
|
|
|
|
#define __STRUCT__ struct
|
|
#ifndef __OBJC__
|
|
#undef interface
|
|
#define interface __STRUCT__
|
|
#endif
|
|
#define STDMETHOD(method) virtual COM_DECLSPEC_NOTHROW HRESULT STDMETHODCALLTYPE method
|
|
#define STDMETHOD_(type, method) virtual COM_DECLSPEC_NOTHROW type STDMETHODCALLTYPE method
|
|
#define STDMETHODV(method) virtual COM_DECLSPEC_NOTHROW HRESULT STDMETHODVCALLTYPE method
|
|
#define STDMETHODV_(type, method) virtual COM_DECLSPEC_NOTHROW type STDMETHODVCALLTYPE method
|
|
#define PURE = 0
|
|
#define THIS_
|
|
#define THIS void
|
|
#define DECLARE_INTERFACE(iface) interface DECLSPEC_NOVTABLE iface
|
|
#define DECLARE_INTERFACE_(iface, baseiface) interface DECLSPEC_NOVTABLE iface : public baseiface
|
|
#else
|
|
|
|
#ifndef __OBJC__
|
|
#undef interface
|
|
#define interface struct
|
|
#endif
|
|
|
|
#define STDMETHOD(method) HRESULT (STDMETHODCALLTYPE *method)
|
|
#define STDMETHOD_(type, method) type (STDMETHODCALLTYPE *method)
|
|
#define STDMETHODV(method) HRESULT (STDMETHODVCALLTYPE *method)
|
|
#define STDMETHODV_(type, method) type (STDMETHODVCALLTYPE *method)
|
|
|
|
#define PURE
|
|
#define THIS_ INTERFACE *This,
|
|
#define THIS INTERFACE *This
|
|
#ifdef CONST_VTABLE
|
|
#define DECLARE_INTERFACE(iface) typedef interface iface { const struct iface##Vtbl *lpVtbl; } iface; typedef const struct iface##Vtbl iface##Vtbl; const struct iface##Vtbl
|
|
#else
|
|
#define DECLARE_INTERFACE(iface) typedef interface iface { struct iface##Vtbl *lpVtbl; } iface; typedef struct iface##Vtbl iface##Vtbl; struct iface##Vtbl
|
|
#endif
|
|
#define DECLARE_INTERFACE_(iface, baseiface) DECLARE_INTERFACE (iface)
|
|
#endif
|
|
|
|
#define IFACEMETHOD(method) /*override*/ STDMETHOD (method)
|
|
#define IFACEMETHOD_(type, method) /*override*/ STDMETHOD_(type, method)
|
|
#define IFACEMETHODV(method) /*override*/ STDMETHODV (method)
|
|
#define IFACEMETHODV_(type, method) /*override*/ STDMETHODV_(type, method)
|
|
|
|
#include <guiddef.h>
|
|
|
|
#ifndef _ERROR_STATUS_T_DEFINED
|
|
#define _ERROR_STATUS_T_DEFINED
|
|
typedef unsigned __LONG32 error_status_t;
|
|
#endif
|
|
|
|
#ifndef _WCHAR_T_DEFINED
|
|
#define _WCHAR_T_DEFINED
|
|
typedef unsigned short wchar_t;
|
|
#endif
|
|
|
|
#endif
|