https://git.reactos.org/?p=reactos.git;a=commitdiff;h=76a73b429519543e959f41...
commit 76a73b429519543e959f411f661915b9114fd241 Author: Jared Smudde computerwhiz02@hotmail.com AuthorDate: Tue Jun 5 10:17:00 2018 -0500 Commit: Hermès BÉLUSCA - MAÏTO hermes.belusca-maito@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@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