https://git.reactos.org/?p=reactos.git;a=commitdiff;h=76a73b429519543e959f411f661915b9114fd241

commit 76a73b429519543e959f411f661915b9114fd241
Author:     Jared Smudde <[email protected]>
AuthorDate: Tue Jun 5 10:17:00 2018 -0500
Commit:     Hermès BÉLUSCA - MAÏTO <[email protected]>
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([email protected])
+ */
+
+#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

Reply via email to