https://git.reactos.org/?p=reactos.git;a=commitdiff;h=b28272c545845084d8233…
commit b28272c545845084d8233162fb9e22e6fc88c822
Author: Amine Khaldi <amine.khaldi(a)reactos.org>
AuthorDate: Sun Nov 26 14:16:29 2017 +0100
[SHELLBTRFS] Add a PCH.
---
dll/shellext/shellbtrfs/CMakeLists.txt | 13 +++++++++----
dll/shellext/shellbtrfs/balance.h | 2 ++
dll/shellext/shellbtrfs/contextmenu.h | 2 ++
dll/shellext/shellbtrfs/devices.h | 2 ++
dll/shellext/shellbtrfs/factory.h | 2 ++
dll/shellext/shellbtrfs/guid.c | 13 +++++++++++++
dll/shellext/shellbtrfs/iconoverlay.h | 2 ++
dll/shellext/shellbtrfs/precomp.h | 29 +++++++++++++++++++++++++++++
dll/shellext/shellbtrfs/propsheet.h | 2 ++
dll/shellext/shellbtrfs/recv.h | 2 ++
dll/shellext/shellbtrfs/scrub.h | 2 ++
dll/shellext/shellbtrfs/send.h | 2 ++
dll/shellext/shellbtrfs/shellext.h | 2 ++
dll/shellext/shellbtrfs/volpropsheet.h | 2 ++
14 files changed, 73 insertions(+), 4 deletions(-)
diff --git a/dll/shellext/shellbtrfs/CMakeLists.txt
b/dll/shellext/shellbtrfs/CMakeLists.txt
index fd11cc123c..6802f6b108 100644
--- a/dll/shellext/shellbtrfs/CMakeLists.txt
+++ b/dll/shellext/shellbtrfs/CMakeLists.txt
@@ -3,6 +3,8 @@ set_cpp(WITH_RUNTIME WITH_EXCEPTIONS WITH_STL)
remove_definitions(-D_WIN32_WINNT=0x502)
add_definitions(-D_WIN32_WINNT=0x603)
+include_directories(${REACTOS_SOURCE_DIR}/drivers/filesystems/btrfs)
+
spec2def(shellbtrfs.dll shellbtrfs.spec)
list(APPEND SOURCE
@@ -18,16 +20,19 @@ list(APPEND SOURCE
scrub.cpp
send.cpp
volpropsheet.cpp
- ${CMAKE_CURRENT_BINARY_DIR}/shellbtrfs.def)
+ precomp.h)
-include_directories(
- ${REACTOS_SOURCE_DIR}/drivers/filesystems/btrfs)
+add_library(shellbtrfs SHARED
+ ${SOURCE}
+ guid.c
+ shellbtrfs.rc
+ ${CMAKE_CURRENT_BINARY_DIR}/shellbtrfs.def)
file(GLOB shellbtrfs_rc_deps *.ico)
add_rc_deps(shellbtrfs.rc ${shellbtrfs_rc_deps})
-add_library(shellbtrfs SHARED ${SOURCE} shellbtrfs.rc)
set_module_type(shellbtrfs win32dll UNICODE)
target_link_libraries(shellbtrfs uuid)
add_importlibs(shellbtrfs advapi32 advapi32_vista ole32 shell32 shlwapi user32 comctl32
uxtheme setupapi comdlg32 gdi32 msvcrt kernel32_vista kernel32 ntdll)
+add_pch(shellbtrfs precomp.h SOURCE)
add_cd_file(TARGET shellbtrfs DESTINATION reactos/system32 FOR all)
diff --git a/dll/shellext/shellbtrfs/balance.h b/dll/shellext/shellbtrfs/balance.h
index 262f29923b..0c07de4c2c 100644
--- a/dll/shellext/shellbtrfs/balance.h
+++ b/dll/shellext/shellbtrfs/balance.h
@@ -15,6 +15,8 @@
* You should have received a copy of the GNU Lesser General Public Licence
* along with WinBtrfs. If not, see <http://www.gnu.org/licenses/>. */
+#pragma once
+
#include <windows.h>
#ifndef __REACTOS__
#include "../btrfsioctl.h"
diff --git a/dll/shellext/shellbtrfs/contextmenu.h
b/dll/shellext/shellbtrfs/contextmenu.h
index d9d32ed91c..12779f422b 100644
--- a/dll/shellext/shellbtrfs/contextmenu.h
+++ b/dll/shellext/shellbtrfs/contextmenu.h
@@ -15,6 +15,8 @@
* You should have received a copy of the GNU Lesser General Public Licence
* along with WinBtrfs. If not, see <http://www.gnu.org/licenses/>. */
+#pragma once
+
#include <shlobj.h>
extern LONG objs_loaded;
diff --git a/dll/shellext/shellbtrfs/devices.h b/dll/shellext/shellbtrfs/devices.h
index 218a244ff3..e6b949abd9 100644
--- a/dll/shellext/shellbtrfs/devices.h
+++ b/dll/shellext/shellbtrfs/devices.h
@@ -15,6 +15,8 @@
* You should have received a copy of the GNU Lesser General Public Licence
* along with WinBtrfs. If not, see <http://www.gnu.org/licenses/>. */
+#pragma once
+
#ifndef __REACTOS__
#include <windows.h>
#include <winternl.h>
diff --git a/dll/shellext/shellbtrfs/factory.h b/dll/shellext/shellbtrfs/factory.h
index af8b46bf8e..8575e61f52 100644
--- a/dll/shellext/shellbtrfs/factory.h
+++ b/dll/shellext/shellbtrfs/factory.h
@@ -15,6 +15,8 @@
* You should have received a copy of the GNU Lesser General Public Licence
* along with WinBtrfs. If not, see <http://www.gnu.org/licenses/>. */
+#pragma once
+
extern LONG objs_loaded;
typedef enum {
diff --git a/dll/shellext/shellbtrfs/guid.c b/dll/shellext/shellbtrfs/guid.c
new file mode 100644
index 0000000000..2396fb1c59
--- /dev/null
+++ b/dll/shellext/shellbtrfs/guid.c
@@ -0,0 +1,13 @@
+/* DO NOT USE THE PRECOMPILED HEADER FOR THIS FILE! */
+
+#define WIN32_NO_STATuS
+#define _INC_WINDOWS
+#define COM_NO_WINDOWS_H
+
+#include <windef.h>
+#include <winbase.h>
+#include <initguid.h>
+#define DEVICE_TYPE ULONG
+#include <ntddstor.h>
+
+/* NO CODE HERE, THIS IS JUST REQUIRED FOR THE GUID DEFINITIONS */
diff --git a/dll/shellext/shellbtrfs/iconoverlay.h
b/dll/shellext/shellbtrfs/iconoverlay.h
index efcc1e7b79..24276ddcb9 100644
--- a/dll/shellext/shellbtrfs/iconoverlay.h
+++ b/dll/shellext/shellbtrfs/iconoverlay.h
@@ -15,6 +15,8 @@
* You should have received a copy of the GNU Lesser General Public Licence
* along with WinBtrfs. If not, see <http://www.gnu.org/licenses/>. */
+#pragma once
+
#include <shlobj.h>
extern LONG objs_loaded;
diff --git a/dll/shellext/shellbtrfs/precomp.h b/dll/shellext/shellbtrfs/precomp.h
new file mode 100644
index 0000000000..dde8baa9f1
--- /dev/null
+++ b/dll/shellext/shellbtrfs/precomp.h
@@ -0,0 +1,29 @@
+#ifndef _SHELLBTRFS_PRECOMP_H_
+#define _SHELLBTRFS_PRECOMP_H_
+
+#include <stddef.h>
+#include <stdio.h>
+#include <string>
+#include <sys/stat.h>
+#define WIN32_NO_STATUS
+#include <windows.h>
+#define STRSAFE_NO_DEPRECATE
+#include <strsafe.h>
+#define NO_SHLWAPI_STRFCNS
+#include <shlwapi.h>
+#include <ntddstor.h>
+#include <ndk/iofuncs.h>
+#include <ndk/rtlfuncs.h>
+#include <shlobj.h>
+#include <shellext.h>
+#include <btrfsioctl.h>
+#include <uxtheme.h>
+
+#include "contextmenu.h"
+#include "factory.h"
+#include "iconoverlay.h"
+#include "propsheet.h"
+#include "resource.h"
+#include "volpropsheet.h"
+
+#endif /* _SHELLBTRFS_PRECOMP_H_ */
diff --git a/dll/shellext/shellbtrfs/propsheet.h b/dll/shellext/shellbtrfs/propsheet.h
index 90d9fc0874..1920dbb940 100644
--- a/dll/shellext/shellbtrfs/propsheet.h
+++ b/dll/shellext/shellbtrfs/propsheet.h
@@ -15,6 +15,8 @@
* You should have received a copy of the GNU Lesser General Public Licence
* along with WinBtrfs. If not, see <http://www.gnu.org/licenses/>. */
+#pragma once
+
#include <shlobj.h>
#include <deque>
#include <string>
diff --git a/dll/shellext/shellbtrfs/recv.h b/dll/shellext/shellbtrfs/recv.h
index 85e93298c5..8301a20f28 100644
--- a/dll/shellext/shellbtrfs/recv.h
+++ b/dll/shellext/shellbtrfs/recv.h
@@ -15,6 +15,8 @@
* You should have received a copy of the GNU Lesser General Public Licence
* along with WinBtrfs. If not, see <http://www.gnu.org/licenses/>. */
+#pragma once
+
#include <shlobj.h>
#include <string>
#include <vector>
diff --git a/dll/shellext/shellbtrfs/scrub.h b/dll/shellext/shellbtrfs/scrub.h
index 8ac94ac0a1..daae71255e 100644
--- a/dll/shellext/shellbtrfs/scrub.h
+++ b/dll/shellext/shellbtrfs/scrub.h
@@ -15,6 +15,8 @@
* You should have received a copy of the GNU Lesser General Public Licence
* along with WinBtrfs. If not, see <http://www.gnu.org/licenses/>. */
+#pragma once
+
#include <windows.h>
#ifndef __REACTOS__
#include "../btrfs.h"
diff --git a/dll/shellext/shellbtrfs/send.h b/dll/shellext/shellbtrfs/send.h
index 713031b359..5d1b939aa9 100644
--- a/dll/shellext/shellbtrfs/send.h
+++ b/dll/shellext/shellbtrfs/send.h
@@ -15,6 +15,8 @@
* You should have received a copy of the GNU Lesser General Public Licence
* along with WinBtrfs. If not, see <http://www.gnu.org/licenses/>. */
+#pragma once
+
#ifdef __REACTOS__
#include "btrfs.h"
#include <stdlib.h>
diff --git a/dll/shellext/shellbtrfs/shellext.h b/dll/shellext/shellbtrfs/shellext.h
index 152f4a1254..a31c44bada 100644
--- a/dll/shellext/shellbtrfs/shellext.h
+++ b/dll/shellext/shellbtrfs/shellext.h
@@ -15,6 +15,8 @@
* You should have received a copy of the GNU Lesser General Public Licence
* along with WinBtrfs. If not, see <http://www.gnu.org/licenses/>. */
+#pragma once
+
#define ISOLATION_AWARE_ENABLED 1
#define STRSAFE_NO_DEPRECATE
diff --git a/dll/shellext/shellbtrfs/volpropsheet.h
b/dll/shellext/shellbtrfs/volpropsheet.h
index a0e618b423..6600dbbf4b 100644
--- a/dll/shellext/shellbtrfs/volpropsheet.h
+++ b/dll/shellext/shellbtrfs/volpropsheet.h
@@ -15,6 +15,8 @@
* You should have received a copy of the GNU Lesser General Public Licence
* along with WinBtrfs. If not, see <http://www.gnu.org/licenses/>. */
+#pragma once
+
#include <shlobj.h>
#ifndef __REACTOS__
#include "../btrfsioctl.h"