summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/compat
diff options
context:
space:
mode:
author Brad Hughes <bradhugh@outlook.com>2016-07-02 16:03:01 -0400
committer Brad Hughes <bradhugh@outlook.com>2016-07-02 16:03:01 -0400
commitf37865b3296d03b0369ebd71d320140dfe558584 (patch)
tree0e8c2adfb6c1ea29252a47fcd41a1c67f0057bbe /3rdparty/compat
parentd348747601520836538a9bed2e973f6712c18faf (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.h93
-rw-r--r--3rdparty/compat/winsdk-override/wrl/internal.h36
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