diff --git a/modules/rostests/winetests/mshtml/CMakeLists.txt b/modules/rostests/winetests/mshtml/CMakeLists.txt
index 5384512e52b..f744975c2f7 100644
--- a/modules/rostests/winetests/mshtml/CMakeLists.txt
+++ b/modules/rostests/winetests/mshtml/CMakeLists.txt
@@ -13,10 +13,14 @@ list(APPEND SOURCE
protocol.c
script.c
style.c
- testlist.c
- xmlhttprequest.c)
+ xmlhttprequest.c
+ precomp.h)
-add_executable(mshtml_winetest ${SOURCE} rsrc.rc)
+add_executable(mshtml_winetest
+ ${SOURCE}
+ guid.c
+ testlist.c
+ rsrc.rc)
list(APPEND mshtml_winetest_rc_deps
${CMAKE_CURRENT_BINARY_DIR}/test_tlb.tlb
@@ -33,4 +37,5 @@ target_link_libraries(mshtml_winetest uuid strmiids)
set_module_type(mshtml_winetest win32cui)
add_importlibs(mshtml_winetest wininet ole32 oleaut32 user32 gdi32 urlmon advapi32 msvcrt kernel32)
add_dependencies(mshtml_winetest test_tlb_header stdole2)
+add_pch(mshtml_winetest precomp.h SOURCE)
add_rostests_file(TARGET mshtml_winetest)
diff --git a/modules/rostests/winetests/mshtml/activex.c b/modules/rostests/winetests/mshtml/activex.c
index c145b4ab540..117becd79af 100644
--- a/modules/rostests/winetests/mshtml/activex.c
+++ b/modules/rostests/winetests/mshtml/activex.c
@@ -16,27 +16,8 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
-#define COBJMACROS
-#define CONST_VTABLE
+#include "precomp.h"
-#include
-//#include
-#include
-
-//#include "windef.h"
-//#include "winbase.h"
-//#include "ole2.h"
-#include
-//#include "docobj.h"
-#include
-//#include "dispex.h"
-#include
-//#include "activscp.h"
-//#include "objsafe.h"
-#include
-#include "mshtml_test.h"
-
-#include
#include
#define DEFINE_EXPECT(func) \
diff --git a/modules/rostests/winetests/mshtml/dom.c b/modules/rostests/winetests/mshtml/dom.c
index 1874ead8b5e..09d0c7fda20 100644
--- a/modules/rostests/winetests/mshtml/dom.c
+++ b/modules/rostests/winetests/mshtml/dom.c
@@ -16,27 +16,10 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
-#define COBJMACROS
-#define CONST_VTABLE
+#include "precomp.h"
-#include
-//#include
#include
-//#include "windef.h"
-//#include "winbase.h"
-//#include "ole2.h"
-#include
-#include
-#include
-//#include "docobj.h"
-#include
-//#include "dispex.h"
-#include "mshtml_test.h"
-#include
-#include
-#include
-
static INT (WINAPI *pLCIDToLocaleName)(LCID,LPWSTR,INT,DWORD);
static LANGID (WINAPI *pGetUserDefaultUILanguage)(void);
diff --git a/modules/rostests/winetests/mshtml/events.c b/modules/rostests/winetests/mshtml/events.c
index b5f14b84457..e3218509f1f 100644
--- a/modules/rostests/winetests/mshtml/events.c
+++ b/modules/rostests/winetests/mshtml/events.c
@@ -16,21 +16,9 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
-#define COBJMACROS
-#define CONST_VTABLE
+#include "precomp.h"
-#include
-//#include
-#include
-
-//#include "windef.h"
-//#include "winbase.h"
-//#include "ole2.h"
-#include
-#include
#include
-#include
-//#include "dispex.h"
#define DEFINE_EXPECT(func) \
static BOOL expect_ ## func = FALSE, called_ ## func = FALSE
diff --git a/modules/rostests/winetests/mshtml/guid.c b/modules/rostests/winetests/mshtml/guid.c
new file mode 100644
index 00000000000..49ddc829616
--- /dev/null
+++ b/modules/rostests/winetests/mshtml/guid.c
@@ -0,0 +1,15 @@
+/* DO NOT USE THE PRECOMPILED HEADER FOR THIS FILE! */
+
+#include
+
+#define WIN32_NO_STATUS
+#define _INC_WINDOWS
+
+#include
+#include
+#include
+#include
+#include
+#include
+
+/* NO CODE HERE, THIS IS JUST REQUIRED FOR THE GUID DEFINITIONS */
diff --git a/modules/rostests/winetests/mshtml/htmldoc.c b/modules/rostests/winetests/mshtml/htmldoc.c
index 1ca1878b585..78583894f0a 100644
--- a/modules/rostests/winetests/mshtml/htmldoc.c
+++ b/modules/rostests/winetests/mshtml/htmldoc.c
@@ -16,35 +16,16 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
-#define COBJMACROS
-#define CONST_VTABLE
+#include "precomp.h"
-#include
-//#include
-#include
-
-//#include "windef.h"
-//#include "winbase.h"
-#include
-//#include "ole2.h"
-#include
-//#include "docobj.h"
-#include
-#include
-#include
-#include
-#include
-//#include "hlink.h"
-//#include "dispex.h"
#include
#include
#include
#include
-//#include "shobjidl.h"
-#include
-#include
#include
-#include "mshtml_test.h"
+
+#include
+#include
DEFINE_GUID(GUID_NULL,0,0,0,0,0,0,0,0,0,0,0);
DEFINE_GUID(IID_IProxyManager,0x00000008,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46);
diff --git a/modules/rostests/winetests/mshtml/htmllocation.c b/modules/rostests/winetests/mshtml/htmllocation.c
index 8bf5517dd5b..e28e126db94 100644
--- a/modules/rostests/winetests/mshtml/htmllocation.c
+++ b/modules/rostests/winetests/mshtml/htmllocation.c
@@ -16,13 +16,7 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
-#define COBJMACROS
-#define CONST_VTABLE
-
-#include
-
-#include "mshtml.h"
-#include "wininet.h"
+#include "precomp.h"
struct location_test {
const char *name;
diff --git a/modules/rostests/winetests/mshtml/misc.c b/modules/rostests/winetests/mshtml/misc.c
index d57aabc354e..b33b88db890 100644
--- a/modules/rostests/winetests/mshtml/misc.c
+++ b/modules/rostests/winetests/mshtml/misc.c
@@ -16,15 +16,8 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
-#define COBJMACROS
+#include "precomp.h"
-#include
-//#include
-
-//#include "windef.h"
-//#include "winbase.h"
-//#include "ole2.h"
-//#include "initguid.h"
#include
static void test_HTMLLoadOptions(void)
diff --git a/modules/rostests/winetests/mshtml/mshtml_test.h b/modules/rostests/winetests/mshtml/mshtml_test.h
index c0844958dc9..b6d896ad33f 100644
--- a/modules/rostests/winetests/mshtml/mshtml_test.h
+++ b/modules/rostests/winetests/mshtml/mshtml_test.h
@@ -16,9 +16,11 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
+#pragma once
+
/* Check if Internet Explorer is configured to run in "Enhanced Security Configuration" (aka hardened mode) */
/* Note: this code is duplicated in dlls/mshtml/tests/mshtml_test.h and dlls/urlmon/tests/sec_mgr.c */
-static BOOL is_ie_hardened(void)
+static inline BOOL is_ie_hardened(void)
{
HKEY zone_map;
DWORD ie_harden, type, size;
diff --git a/modules/rostests/winetests/mshtml/precomp.h b/modules/rostests/winetests/mshtml/precomp.h
new file mode 100644
index 00000000000..acb5807b69d
--- /dev/null
+++ b/modules/rostests/winetests/mshtml/precomp.h
@@ -0,0 +1,28 @@
+#ifndef _MSHTML_WINETEST_PRECOMP_H_
+#define _MSHTML_WINETEST_PRECOMP_H_
+
+#define WIN32_NO_STATUS
+#define _INC_WINDOWS
+#define COM_NO_WINDOWS_H
+#define COBJMACROS
+#define CONST_VTABLE
+
+#include
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+#include "mshtml_test.h"
+
+#endif /* !_MSHTML_WINETEST_PRECOMP_H_ */
diff --git a/modules/rostests/winetests/mshtml/protocol.c b/modules/rostests/winetests/mshtml/protocol.c
index b90451e4fd7..bda617c7ab0 100644
--- a/modules/rostests/winetests/mshtml/protocol.c
+++ b/modules/rostests/winetests/mshtml/protocol.c
@@ -16,18 +16,9 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
-#define COBJMACROS
+#include "precomp.h"
-#include
-//#include
-#include
-
-//#include "windef.h"
-//#include "winbase.h"
-//#include "ole2.h"
-#include
#include
-#include
#include
diff --git a/modules/rostests/winetests/mshtml/script.c b/modules/rostests/winetests/mshtml/script.c
index 1c5171bffc2..102f9949462 100644
--- a/modules/rostests/winetests/mshtml/script.c
+++ b/modules/rostests/winetests/mshtml/script.c
@@ -16,28 +16,9 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
-#define COBJMACROS
-#define CONST_VTABLE
+#include "precomp.h"
-#include
-//#include
-#include
-
-//#include "windef.h"
-//#include "winbase.h"
-//#include "ole2.h"
-#include
-//#include "docobj.h"
-//#include "dispex.h"
-#include
-#include
-#include
-//#include "initguid.h"
-//#include "activscp.h"
#include
-#include
-#include
-#include "mshtml_test.h"
DEFINE_GUID(CLSID_IdentityUnmarshal,0x0000001b,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46);
diff --git a/modules/rostests/winetests/mshtml/style.c b/modules/rostests/winetests/mshtml/style.c
index 974ec2baae4..71c432dd02c 100644
--- a/modules/rostests/winetests/mshtml/style.c
+++ b/modules/rostests/winetests/mshtml/style.c
@@ -16,19 +16,7 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
-#define COBJMACROS
-#define CONST_VTABLE
-
-#include
-//#include
-//#include
-
-//#include "windef.h"
-//#include "winbase.h"
-//#include "ole2.h"
-#include
-//#include "mshtmhst.h"
-//#include "docobj.h"
+#include "precomp.h"
static int strcmp_wa(LPCWSTR strw, const char *stra)
{
diff --git a/modules/rostests/winetests/mshtml/xmlhttprequest.c b/modules/rostests/winetests/mshtml/xmlhttprequest.c
index 09972068bb4..8a4bd1793be 100644
--- a/modules/rostests/winetests/mshtml/xmlhttprequest.c
+++ b/modules/rostests/winetests/mshtml/xmlhttprequest.c
@@ -16,15 +16,7 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
-#define COBJMACROS
-
-#include
-#include
-
-#include "windef.h"
-#include "winbase.h"
-#include "ole2.h"
-#include "mshtml.h"
+#include "precomp.h"
static BSTR a2bstr(const char *str)
{