* contrib/hbwin/hbwin.ch
* contrib/hbwin/win_svc.c
+ added 4th param to WIN_SERVICEINSTALL() to spec start type
+ added related constants
* contrib/hbwin/wapi_misc.c
! cast for win64
* contrib/hbwin/wapi_misc.c
! trying to make hbwapi_LoadLibrarySystem() really safe
by using LoadLibraryEx() with special flag. On win7/64 tested
with 32-bit or 64-bit exe, it still tries to load f.e. winspool.drv
from the apps own dir, at least as per procmon. GetSystemDirectory()
will return system32 as the .dll dir, though it is SysWOW64, but
this seems to be fixed internall by kernel.
(safety is apparently fully going against MS's will, but anyway,
maybe I'm not getting it)
* contrib/hbwin/wce_simc.c
* contrib/hbwin/wce_smsc.c
* contrib/hbwin/hbwin.hbx
* contrib/hbwin/wce_sim.prg
! fixed to always define wce (and compiler) specific .prg level functions
* contrib/hbwin/hbwapi.h
* contrib/hbwin/wapi_misc.c
* hbwapi_FileNameAtSystemDir() made static
+ hbwapi_LoadLibrarySystem() public function added
this is safe version of LoadLibrary() when loading Windows
system dlls. it will avoid dll hijacking vulnerability.
! deleted HB_EXPORT from hbwapi_t*() functions, they are
public to this lib due to UNICODE setting dependance
; TODO: make hbwapi_LoadLibrarySystem() effective also for WinCE,
for now it will not add any system path under this platform.
* contrib/hbwin/axcore.c
* contrib/hbwin/mapi.c
* contrib/hbwin/win_prn2.c
* contrib/hbwin/win_prn3.c
* contrib/hbwin/wapi_shellapi.c
! LoadLibrary() -> hbwapi_LoadLibrarySystem()
thus fixing dll hijack vulnerability
+ contrib/hbwin/wapi_misc.c
* contrib/hbwin/hbwin.hbp
* contrib/hbwin/hbwapi.h
* contrib/hbwin/win_prn3.c
* hb_tstrlen() -> hbwapi_tstrlen() and made public
* hb_tstrncat() -> hbwapi_tstrncat() and made public
+ hbwapi_tstrdup()
+ hbwapi_FileNameAtSystemDir() public function
please review it, I'm notoriously bad with 1 byte over/underruns