https://git.reactos.org/?p=reactos.git;a=commitdiff;h=76a73b429519543e959f4…
commit 76a73b429519543e959f411f661915b9114fd241
Author: Jared Smudde <computerwhiz02(a)hotmail.com>
AuthorDate: Tue Jun 5 10:17:00 2018 -0500
Commit: Hermès BÉLUSCA - MAÏTO <hermes.belusca-maito(a)reactos.org>
CommitDate: Tue Jun 5 17:17:00 2018 +0200
[MSHTA] Implement MSHTA.exe (#577) CORE-12813
Implement mshta.exe. It links directly to the function RunHTMLApplication in mshtml
and passes the file name and other optional arguments along. While the function is
unimplemented in mshtml, it's a start.
[MSHTML] Add ADD_IMPORTLIB to CMakeLists so mshta can link to mshtml.
[BOOTDATA] Add the association information for mshta.exe to the registry.
---
base/applications/CMakeLists.txt | 1 +
base/applications/mshta/CMakeLists.txt | 6 ++++++
base/applications/mshta/main.c | 18 ++++++++++++++++++
base/applications/mshta/mshta.ico | Bin 0 -> 5430 bytes
base/applications/mshta/mshta.rc | 7 +++++++
boot/bootdata/hivecls.inf | 6 ++++++
dll/win32/mshtml/CMakeLists.txt | 2 +-
7 files changed, 39 insertions(+), 1 deletion(-)
diff --git a/base/applications/CMakeLists.txt b/base/applications/CMakeLists.txt
index 2af017dff5..4c7677abdc 100644
--- a/base/applications/CMakeLists.txt
+++ b/base/applications/CMakeLists.txt
@@ -23,6 +23,7 @@ add_subdirectory(mplay32)
add_subdirectory(msconfig)
add_subdirectory(msconfig_new)
add_subdirectory(mscutils)
+add_subdirectory(mshta)
add_subdirectory(mspaint)
add_subdirectory(mstsc)
add_subdirectory(network)
diff --git a/base/applications/mshta/CMakeLists.txt
b/base/applications/mshta/CMakeLists.txt
new file mode 100644
index 0000000000..e34b8228f2
--- /dev/null
+++ b/base/applications/mshta/CMakeLists.txt
@@ -0,0 +1,6 @@
+
+add_executable(mshta main.c mshta.rc)
+target_link_libraries(mshta)
+set_module_type(mshta win32gui)
+add_importlibs(mshta msvcrt mshtml kernel32 ntdll)
+add_cd_file(TARGET mshta DESTINATION reactos/system32 FOR all)
diff --git a/base/applications/mshta/main.c b/base/applications/mshta/main.c
new file mode 100644
index 0000000000..b7a47d047d
--- /dev/null
+++ b/base/applications/mshta/main.c
@@ -0,0 +1,18 @@
+/*
+ * PROJECT: ReactOS HTML Application Host
+ * LICENSE: GPL-2.0+ (
https://spdx.org/licenses/GPL-2.0+)
+ * PURPOSE: Forwards HTA application information to mshtml
+ * COPYRIGHT: Copyright 2017-2018 Jared Smudde(computerwhiz02(a)hotmail.com)
+ */
+
+#include <windef.h>
+#include <winbase.h>
+#include <winuser.h>
+#include <mshtml.h>
+
+extern DWORD WINAPI RunHTMLApplication(HINSTANCE hinst, HINSTANCE hPrevInst, LPSTR
szCmdLine, int nCmdShow);
+
+int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR cmdline, int cmdshow)
+{
+ return RunHTMLApplication(hInst, hPrevInst, cmdline, cmdshow);
+}
diff --git a/base/applications/mshta/mshta.ico b/base/applications/mshta/mshta.ico
new file mode 100644
index 0000000000..c0ab82c23c
Binary files /dev/null and b/base/applications/mshta/mshta.ico differ
diff --git a/base/applications/mshta/mshta.rc b/base/applications/mshta/mshta.rc
new file mode 100644
index 0000000000..6865b5de3e
--- /dev/null
+++ b/base/applications/mshta/mshta.rc
@@ -0,0 +1,7 @@
+#define REACTOS_STR_FILE_DESCRIPTION "ReactOS HTML Application Host"
+#define REACTOS_STR_INTERNAL_NAME "mshta"
+#define REACTOS_STR_ORIGINAL_FILENAME "mshta.exe"
+
+#include <reactos/version.rc>
+
+1 ICON "mshta.ico"
diff --git a/boot/bootdata/hivecls.inf b/boot/bootdata/hivecls.inf
index 1568b545f5..61d6f4f318 100644
--- a/boot/bootdata/hivecls.inf
+++ b/boot/bootdata/hivecls.inf
@@ -216,6 +216,12 @@ HKCR,"chm.file","",0x00000000,%CHMFILE%
HKCR,"chm.file\DefaultIcon","",0x00020000,"%SystemRoot%\hh.exe,0"
HKCR,"chm.file\shell\open\command","",0x00020000,"%SystemRoot%\hh.exe
%1"
+; HTA Files
+HKCR,".hta","",0x00000000,"htafile"
+HKCR,"htafile","",0x00000000,"HTML Application"
+HKCR,"htafile\DefaultIcon","",0x00020000,"%SystemRoot%\system32\mshta.exe,-1"
+HKCR,"htafile\shell\open\command","",0x00020000,"%SystemRoot%\system32\mshta.exe
""%1"" %*"
+
; set MIME type for .html and .htm because Tiny webserver needs it
HKCR,".htm","",0x00000000,"htmlfile"
HKCR,".htm","Content Type",0x00000000,"text/html"
diff --git a/dll/win32/mshtml/CMakeLists.txt b/dll/win32/mshtml/CMakeLists.txt
index 5db472483d..1b93bfa575 100644
--- a/dll/win32/mshtml/CMakeLists.txt
+++ b/dll/win32/mshtml/CMakeLists.txt
@@ -8,7 +8,7 @@ add_definitions(
include_directories(${REACTOS_SOURCE_DIR}/sdk/include/reactos/wine)
add_idl_headers(mshtml_nsiface_header nsiface.idl)
-spec2def(mshtml.dll mshtml.spec)
+spec2def(mshtml.dll mshtml.spec ADD_IMPORTLIB)
list(APPEND SOURCE
conpoint.c