@iWindoze I know the wayback machine. I visited Paul Chitescu`s hp last time 1999 ,remembered the link and posted without searching for it
as I don`t administrate Win3.1x machines anymore.
So I don`t care much about Win31.x /Win32s issues anymore.
( OS/2 came with a much superior Win16 support so I didn`t use Win3.1x myself ).
I admit I`m to lazy to search for something like before I post.
@PeteK27
>>as far as i know shell32.dll is one of the files who will only loaded from the %windir%\system because of a registry entry.
>I think this would be the case with 16-bit DLL’s. It may also be the case with certain COM/OLE based DLL’s. However shell32.dll is, for the most part, just a standard Win32 DLL. With these types of DLL’s Windows just searches for and loads the required file as I described earlier.
I changed for a long period of time inf-files of Win9x Setup to exclude somethings etc.simply make life easier for me.
HKLM stands for HKEY_LOCAL_MACHINE inside inf-files
in Msbase.inf inside Windows 98 precopy1.cab is a addreg section called
[msbase.reg]
; List of 32 bit DLLs known to be loaded always from SYSTEM dir
( KEY_KNOWNDLLS stands for
"SYSTEM\CurrentControlSet\Control\SessionManager\KnownDLLs" )
HKLM,%KEY_KNOWNDLLS%,DIGSIG,2,DIGSIG.DLL
HKLM,%KEY_KNOWNDLLS%,KERNEL32,,KERNEL32.DLL
HKLM,%KEY_KNOWNDLLS%,USER32,,USER32.DLL
HKLM,%KEY_KNOWNDLLS%,GDI32,,GDI32.DLL
HKLM,%KEY_KNOWNDLLS%,WOW32,,WOW32.DLL
HKLM,%KEY_KNOWNDLLS%,WINMM,,WINMM.DLL
HKLM,%KEY_KNOWNDLLS%,WINNT,,WINNT.DLL
HKLM,%KEY_KNOWNDLLS%,RPCRT4,,RPCRT4.DLL
HKLM,%KEY_KNOWNDLLS%,ADVAPI32,,ADVAPI32.DLL
HKLM,%KEY_KNOWNDLLS%,COMDLG32,,COMDLG32.DLL
HKLM,%KEY_KNOWNDLLS%,CRTDLL,,CRTDLL.DLL
HKLM,%KEY_KNOWNDLLS%,SHELL32,,SHELL32.DLL ; shell32 is mentioned.
HKLM,%KEY_KNOWNDLLS%,SHSCRAP,,SHSCRAP.DLL
HKLM,%KEY_KNOWNDLLS%,LZ32,,LZ32.DLL
HKLM,%KEY_KNOWNDLLS%,OLECLI32,,OLECLI32.DLL
HKLM,%KEY_KNOWNDLLS%,OLESVR32,,OLESVR32.DLL
HKLM,%KEY_KNOWNDLLS%,VERSION,,VERSION.DLL
HKLM,%KEY_KNOWNDLLS%,COMCTL32,,COMCTL32.DLL
HKLM,%KEY_KNOWNDLLS%,MSNP32,,MSNP32.DLL
HKLM,%KEY_KNOWNDLLS%,NWNP32,,NWNP32.DLL
HKLM,%KEY_KNOWNDLLS%,MPR,,MPR.DLL
HKLM,%KEY_KNOWNDLLS%,MPRSERV,,MPRSERV.DLL
HKLM,%KEY_KNOWNDLLS%,MSSHRUI,,MSSHRUI.DLL
HKLM,%KEY_KNOWNDLLS%,MSNET32,,MSNET32.DLL
HKLM,%KEY_KNOWNDLLS%,NWNET32,,NWNET32.DLL
HKLM,%KEY_KNOWNDLLS%,MSPWL32,,MSPWL32.DLL
HKLM,%KEY_KNOWNDLLS%,OLE32,,OLE32.DLL
HKLM,%KEY_KNOWNDLLS%,OLEAUT32,,OLEAUT32.DLL
HKLM,%KEY_KNOWNDLLS%,OLEDLG,,OLEDLG.DLL
HKLM,%KEY_KNOWNDLLS%,OLETHK32,,OLETHK32.DLL
HKLM,%KEY_KNOWNDLLS%,NETBIOS,,NETBIOS.DLL
HKLM,%KEY_KNOWNDLLS%,MSAB32,,MSAB32.DLL
HKLM,%KEY_KNOWNDLLS%,NWAB32,,NWAB32.DLL
HKLM,%KEY_KNOWNDLLS%,SVRAPI,,SVRAPI.DLL
HKLM,%KEY_KNOWNDLLS%,CHOOSUSR,,CHOOSUSR.DLL
HKLM,%KEY_KNOWNDLLS%,MSSHRUI,,MSSHRUI.DLL
HKLM,%KEY_KNOWNDLLS%,SYNCUI,,SYNCUI.DLL
HKLM,%KEY_KNOWNDLLS%,LINKINFO,,LINKINFO.DLL
HKLM,%KEY_KNOWNDLLS%,MSVCRT20,,MSVCRT20.DLL
HKLM,%KEY_KNOWNDLLS%,RICHED32,,RICHED32.DLL
HKLM,%KEY_KNOWNDLLS%,WINSPOOL,,WINSPOOL.DRV
HKLM,%KEY_KNOWNDLLS%,MFC30,,MFC30.DLL
HKLM,%KEY_KNOWNDLLS%,MFCUIA32,,MFCUIA32.DLL
HKLM,%KEY_KNOWNDLLS%,MFCANS32,,MFCANS32.DLL
HKLM,%KEY_KNOWNDLLS%,NTDLL,,NTDLL.DLL
HKLM,%KEY_KNOWNDLLS%,RASAPI32,,RASAPI32.DLL
HKLM,%KEY_KNOWNDLLS%,TAPI32,,TAPI32.DLL
HKLM,%KEY_KNOWNDLLS%,UMDM32,,UMDM32.DLL
; List of 16 bit DLLs known to be loaded always from SYSTEM dir
( %KEY_KNOWN16% stands for
SYSTEM\CurrentControlSet\Control\SessionManager\Known16DLLs )
HKLM,%KEY_KNOWN16%,TOOLHELP.DLL,,TOOLHELP.DLL
HKLM,%KEY_KNOWN16%,COMPOBJ.DLL,,COMPOBJ.DLL
HKLM,%KEY_KNOWN16%,STORAGE.DLL,,STORAGE.DLL
HKLM,%KEY_KNOWN16%,OLE2.DLL,,OLE2.DLL
HKLM,%KEY_KNOWN16%,OLE2DISP.DLL,,OLE2DISP.DLL
HKLM,%KEY_KNOWN16%,TYPELIB.DLL,,TYPELIB.DLL
HKLM,%KEY_KNOWN16%,WIN87EM.DLL,,WIN87EM.DLL
HKLM,%KEY_KNOWN16%,OLE2NLS.DLL,,OLE2NLS.DLL
HKLM,%KEY_KNOWN16%,COMMDLG.DLL,,COMMDLG.DLL
HKLM,%KEY_KNOWN16%,COMMCTRL.DLL,,COMMCTRL.DLL
HKLM,%KEY_KNOWN16%,LZEXPAND.DLL,,LZEXPAND.DLL
HKLM,%KEY_KNOWN16%,VER.DLL,,VER.DLL
HKLM,%KEY_KNOWN16%,OLESVR.DLL,,OLESVR.DLL
HKLM,%KEY_KNOWN16%,OLECLI.DLL,,OLECLI.DLL
HKLM,%KEY_KNOWN16%,UNIDRV.DLL,,UNIDRV.DLL
HKLM,%KEY_KNOWN16%,HPPCL.DRV,,HPPCL.DRV
HKLM,%KEY_KNOWN16%,FINSTALL.DLL,,FINSTALL.DLL
HKLM,%KEY_KNOWN16%,WINOA386.MOD,,WINOA386.MOD
HKLM,%KEY_KNOWN16%,VGAFULL.3GR,,VGAFULL.3GR
HKLM,%KEY_KNOWN16%,MMSYSTEM.DLL,,MMSYSTEM.DLL
HKLM,%KEY_KNOWN16%,DIBENG.DLL,,DIBENG.DLL
HKLM,%KEY_KNOWN16%,SHELL.DLL,,SHELL.DLL
HKLM,%KEY_KNOWN16%,MSVIDEO.DLL,,MSVIDEO.DLL
HKLM,%KEY_KNOWN16%,MCIAVI.DRV,,MCIAVI.DRV
Unless you delete the registry entries under
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\KnownDLLs (Known16DLLs)
Shell32.dll should be only loaded from system directory.
(these entries exist part to some extent still under Win2k)
loading shell32.dll from different locations can be a bad idea.
Everything crashs lot more often (I`ve tried that ).
sometimes when an exe extracts during runtime another exe
and runs that your solution is only one.
I hate this kind applications but one of them is a important progam in our firm
and our hardware was incompatible with M$-IE 4 /Win98 ,but my chief wanted that
program without buying new computer.
Sorry for that long post I want to give precise proof that
I know what I`m talking about.