diff options
| author | 2016-07-02 16:03:01 -0400 | |
|---|---|---|
| committer | 2016-07-02 16:03:01 -0400 | |
| commit | f37865b3296d03b0369ebd71d320140dfe558584 (patch) | |
| tree | 0e8c2adfb6c1ea29252a47fcd41a1c67f0057bbe /3rdparty/compat | |
| parent | d348747601520836538a9bed2e973f6712c18faf (diff) | |
Add a couple msys2 updated mingw headers to winsdk-override to support linux cross-compile with stock mingw-w64 (nw)
Diffstat (limited to '3rdparty/compat')
| -rw-r--r-- | 3rdparty/compat/winsdk-override/roapi.h | 93 | ||||
| -rw-r--r-- | 3rdparty/compat/winsdk-override/wrl/internal.h | 36 |
2 files changed, 129 insertions, 0 deletions
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 <winapifamily.h> +#include <windows.h> +#include <sdkddkver.h> +#include <hstring.h> +#include <inspectable.h> +#include <activation.h> + +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<class T> __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<class T> __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 <windows.h> + +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<DWORD>(hr), flags, 0, NULL); + } + + template <bool b, typename T = void> + struct EnableIf {}; + + template <typename T> + struct EnableIf<true, T> { + typedef T type; + }; + } + } +} + +#endif |
