Skip to content

Commit

Permalink
[MSHTA] Implement MSHTA.exe (#577) CORE-12813
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
JaredSmudde authored and HBelusca committed Jun 5, 2018
1 parent 1d39805 commit 76a73b4
Show file tree
Hide file tree
Showing 7 changed files with 39 additions and 1 deletion.
1 change: 1 addition & 0 deletions base/applications/CMakeLists.txt
Expand Up @@ -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)
Expand Down
6 changes: 6 additions & 0 deletions 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)
18 changes: 18 additions & 0 deletions 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);
}
Binary file added base/applications/mshta/mshta.ico
Binary file not shown.
7 changes: 7 additions & 0 deletions 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"
6 changes: 6 additions & 0 deletions boot/bootdata/hivecls.inf
Expand Up @@ -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"
Expand Down
2 changes: 1 addition & 1 deletion dll/win32/mshtml/CMakeLists.txt
Expand Up @@ -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
Expand Down

0 comments on commit 76a73b4

Please sign in to comment.