summaryrefslogtreecommitdiff
path: root/widget/windows/mozwrlbase.h
diff options
context:
space:
mode:
Diffstat (limited to 'widget/windows/mozwrlbase.h')
-rw-r--r--widget/windows/mozwrlbase.h77
1 files changed, 77 insertions, 0 deletions
diff --git a/widget/windows/mozwrlbase.h b/widget/windows/mozwrlbase.h
new file mode 100644
index 000000000..d82be8f04
--- /dev/null
+++ b/widget/windows/mozwrlbase.h
@@ -0,0 +1,77 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#pragma once
+
+/*
+ * Includes <wrl.h> and it's children. Defines imports needed by
+ * corewrappers.h in the case where windows.h has already been
+ * included w/WINVER < 0x600. Also ups WINVER/_WIN32_WINNT prior
+ * to including wrl.h. Mozilla's build currently has WINVER set to
+ * 0x502 for XP support.
+ */
+
+#if _WIN32_WINNT < 0x600
+
+#include <windows.h>
+
+VOID
+WINAPI
+ReleaseSRWLockExclusive(
+ _Inout_ PSRWLOCK SRWLock
+ );
+
+VOID
+WINAPI
+ReleaseSRWLockShared(
+ _Inout_ PSRWLOCK SRWLock
+ );
+
+BOOL
+WINAPI
+InitializeCriticalSectionEx(
+ _Out_ LPCRITICAL_SECTION lpCriticalSection,
+ _In_ DWORD dwSpinCount,
+ _In_ DWORD Flags
+ );
+
+VOID
+WINAPI
+InitializeSRWLock(
+ _Out_ PSRWLOCK SRWLock
+ );
+
+VOID
+WINAPI
+AcquireSRWLockExclusive(
+ _Inout_ PSRWLOCK SRWLock
+ );
+
+BOOLEAN
+WINAPI
+TryAcquireSRWLockExclusive(
+ _Inout_ PSRWLOCK SRWLock
+ );
+
+BOOLEAN
+WINAPI
+TryAcquireSRWLockShared(
+ _Inout_ PSRWLOCK SRWLock
+ );
+
+VOID
+WINAPI
+AcquireSRWLockShared(
+ _Inout_ PSRWLOCK SRWLock
+ );
+
+#undef WINVER
+#undef _WIN32_WINNT
+#define WINVER 0x600
+#define _WIN32_WINNT 0x600
+
+#endif // _WIN32_WINNT < 0x600
+
+#include <wrl.h>