diff --git a/3rdparty/compat/winsdk-override/roapi.h b/3rdparty/compat/winsdk-override/roapi.h new file mode 100644 index 00000000000..14d94c38283 --- /dev/null +++ b/3rdparty/compat/winsdk-override/roapi.h @@ -0,0 +1,93 @@ +/** + * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the mingw-w64 runtime package. + * No warranty is given; refer to the file DISCLAIMER.PD within this package. + */ +#ifndef __ROAPI_H__ +#define __ROAPI_H__ + +#include +#include +#include +#include +#include +#include + +typedef enum RO_INIT_TYPE { +#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) + RO_INIT_SINGLETHREADED = 0, +#endif + RO_INIT_MULTITHREADED = 1 +} RO_INIT_TYPE; + +typedef struct { } *RO_REGISTRATION_COOKIE; + +typedef HRESULT (WINAPI *PFNGETACTIVATIONFACTORY)(HSTRING, IActivationFactory **); + +#ifdef __cplusplus +extern "C" { +#endif + +HRESULT WINAPI RoActivateInstance(HSTRING activatableClassId, IInspectable **instance); + +HRESULT WINAPI RoGetActivationFactory(HSTRING activatableClassId, REFIID iid, void **factory); + +HRESULT WINAPI RoGetApartmentIdentifier(UINT64 *apartmentIdentifier); + +HRESULT WINAPI RoInitialize(RO_INIT_TYPE initType); + +HRESULT WINAPI RoRegisterActivationFactories(HSTRING *activatableClassIds, PFNGETACTIVATIONFACTORY *activationFactoryCallbacks, UINT32 count, RO_REGISTRATION_COOKIE *cookie); + +void WINAPI RoRevokeActivationFactories(RO_REGISTRATION_COOKIE cookie); + +void WINAPI RoUninitialize(void); + +typedef interface IApartmentShutdown IApartmentShutdown; +DECLARE_HANDLE (APARTMENT_SHUTDOWN_REGISTRATION_COOKIE); + +HRESULT WINAPI RoRegisterForApartmentShutdown (IApartmentShutdown *callbackObj, UINT64 *apartmentId, APARTMENT_SHUTDOWN_REGISTRATION_COOKIE *regCookie); + +HRESULT WINAPI RoUnregisterForApartmentShutdown (APARTMENT_SHUTDOWN_REGISTRATION_COOKIE regCookie); + +HRESULT WINAPI RoGetApartmentIdentifier (UINT64 *apartmentId); + +#ifdef __cplusplus +} /* extern "C" */ + +namespace Windows { + namespace Foundation { + __inline HRESULT Initialize (RO_INIT_TYPE it +#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) + = RO_INIT_SINGLETHREADED +#endif + ) { return RoInitialize (it); } + __inline void Uninitialize () + { RoUninitialize (); } + + template __inline HRESULT GetActivationFactory(HSTRING classid, T **factory) { + return RoGetActivationFactory(classid, IID_INS_ARGS(factory)); + } + } +} + +namespace ABI { + namespace Windows { + namespace Foundation { + __inline HRESULT Initialze (RO_INIT_TYPE it +#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) + = RO_INIT_SINGLETHREADED +#endif + ) { return RoInitialize (it); } + __inline void Uninitialize () + { RoUninitialize (); } + } + + template __inline HRESULT GetActivationFactory(HSTRING classid, T **factory) { + return RoGetActivationFactory(classid, IID_INS_ARGS(factory)); + } + } +} + +#endif + +#endif diff --git a/3rdparty/compat/winsdk-override/wrl/internal.h b/3rdparty/compat/winsdk-override/wrl/internal.h new file mode 100644 index 00000000000..715ef74e331 --- /dev/null +++ b/3rdparty/compat/winsdk-override/wrl/internal.h @@ -0,0 +1,36 @@ +/** + * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the mingw-w64 runtime package. + * No warranty is given; refer to the file DISCLAIMER.PD within this package. + */ + +#ifndef _WRL_INTERNAL_H_ +#define _WRL_INTERNAL_H_ + +#include + +namespace Microsoft { + namespace WRL { + namespace Details { + struct BoolStruct { + int Member; + }; + + typedef int BoolStruct::* BoolType; + + inline void DECLSPEC_NORETURN RaiseException(HRESULT hr, DWORD flags = EXCEPTION_NONCONTINUABLE) throw() { + ::RaiseException(static_cast(hr), flags, 0, NULL); + } + + template + struct EnableIf {}; + + template + struct EnableIf { + typedef T type; + }; + } + } +} + +#endif diff --git a/scripts/src/osd/modules.lua b/scripts/src/osd/modules.lua index b8e5bb61b83..7b24531fbf5 100644 --- a/scripts/src/osd/modules.lua +++ b/scripts/src/osd/modules.lua @@ -121,11 +121,9 @@ function osdmodulesbuild() MAME_DIR .. "3rdparty/compat/mingw", } - if _OPTIONS["MODERN_WIN_API"]~="1" then - includedirs { - MAME_DIR .. "3rdparty/compat/winsdk-override", - } - end + includedirs { + MAME_DIR .. "3rdparty/compat/winsdk-override", + } end if _OPTIONS["NO_OPENGL"]=="1" then