Jump to content

Shell 95 Update Project (SH95UPD)


sp193

Recommended Posts

I intend to try SH95UPD with Windows 95. Looking forward to doing so. :)

In the future, would it be possible to implement the USER32.DLL function MonitorFromRect? Doing so would allow the wonderful Quintessential Media Player version 5 (latest) to work in Windows 95:

http://www.quinnware.com/

This function exists already in Windows 98. I realise that you are not focused on providing a Shell update for Windows 95, and I'm not sure about all the implications of what I'm asking for Windows 98/98 SE/ME, but like Advanced User I'd really love to see a KernelEx for Windows 95.

Link to comment
Share on other sites


I intend to try SH95UPD with Windows 95. Looking forward to doing so. :)

In the future, would it be possible to implement the USER32.DLL function MonitorFromRect? Doing so would allow the wonderful Quintessential Media Player version 5 (latest) to work in Windows 95:

http://www.quinnware.com/

This function exists already in Windows 98. I realise that you are not focused on providing a Shell update for Windows 95, and I'm not sure about all the implications of what I'm asking for Windows 98/98 SE/ME, but like Advanced User I'd really love to see a KernelEx for Windows 95.

I'm far from expert when it comes to Windows 95, but isn't this function included with the new shell that comes after installing Desktop Update (Internet Explorer 4)?

Link to comment
Share on other sites

Hi all, sorry for the long delay between replies, I was away from MSFN... =(

I'm far from expert when it comes to Windows 95, but isn't this function included with the new shell that comes after installing Desktop Update (Internet Explorer 4)?

Well, a lot of missing exports in the Win95 SHELL32.DLL were actually implemented in the IE4 desktop update, but installing the IE4 desktop update would bring disaster to a Win9x system (LOTS of potential instability, slowdowns, bugs and security loopholes...)

But no, as far as I can see (Someone correct me if I am wrong), the IE4 desktop update does not update USER32.DLL.

In the future, would it be possible to implement the USER32.DLL function MonitorFromRect? Doing so would allow the wonderful Quintessential Media Player version 5 (latest) to work in Windows 95

Well, I'd hate to tell you this but: There can't be a "complete" KernelEx for Win95 directly as Kernel32.dll of Win95 doesn't seem to be able to be patched with the KernelEx patcher (Ask those who tried installing pre-v0.03 versions of SH95UPD on Win95). However, I could write a custom patch to patch those other files(like USER32.DLL, if it can be patched) under the KernelEx 0.3x architecture if you would like.

However, whatever update it is, it can only come after October. Sorry guys, but my grades have fallen significantly during the past year.

However, thanks for all the support you guys have been giving to this project!! Keep the suggestions/comments coming.

Edited by sp193
Link to comment
Share on other sites

  • 1 month later...

Hi everyone, after a long while of being away from SH95UPD development, I need to inform all of you that Geocities Singapore (The website host for my project page) is going to shut down it's web hosting services on the 26th October 2009. :(

Therefore, I created a blog account for all of my programming projects, and SH95UPD would be moved there. It's still under construction, hence there are no release links there yet.

Until the 26th October 2009, my Geocities website would still be operational (Along with the downloads listed there), but please update your links.

Blog link:

My program development blog

Link to comment
Share on other sites

sp193, thanks for posting status.

Among the programs I have working thanks to SH95UPD:

Virtually all incompatible 98/ME stock programs; InfraRecorder; GTK+ 2.6.10; import function in Firefox 2.

Opera 10 milestone 1606 and Firefox 3 need to point to the 98 shell; I mention these

because I don't think it's from missing ExtractIconExW/Shell_NotifyIconW functions.

SHGetSettings is used by a few programs, notably Tihiy's RP9 setup.

Edited by Session
Link to comment
Share on other sites

Opera 10 milestone 1606 and Firefox 3 need to point to the 98 shell; I mention these

because I don't think it's from missing ExtractIconExW/Shell_NotifyIconW functions.

SHGetSettings is used by a few programs, notably Tihiy's RP9 setup.

No wonder Firefox 3 won't work for me....

I'll see what I can do.

Thanks for your feedback!

Edited by sp193
Link to comment
Share on other sites

  • 1 month later...

Thought that I would give a little surprise before my "all important examination".

I present to the MSFN community SH95UPD v0.0.7.

It is a major rewrite of SH95UPD v0.0.6, and now uses the KernelEx 0.3.6a architecture instead of the old KernelEx 0.3.2a architecture.

It has many of the missing exports implemented and fixed. However, that makes it a genuine "prototype" as it may have introduced many new bugs.

I didn't extensively test it though, but it hasn't caused any malfunctions on my system yet.

The sad thing is that Firefox 3.0 still doesn't run on my system. :(

Tested with KernelEx 0.4.0 Final installed on top.

Post here the issues you have encountered in v0.0.7, but were not present in v0.0.6. Also, post any new issues to SH95UPD here, but please mark them as being "fresh".

Visit the project site for a more complete update list.

Edit 2009/08/27:

I found a major issue with SH95UPD v0.0.7. I can't save web pages in SH95UPD due to a faulty SHGetSpecialFolderPathA implementation...

Therefore I have released SH95UPD v0.0.7A that should resolve the issue...

Edited by sp193
Link to comment
Share on other sites

  • 1 month later...

Well, earlier in the year I wrote that I hadn't tried SH95UPD, but I guess I was wrong -- when I try to install version 7a, it says I must remove version 0.0.3 first. I now remember trying it, it didn't add any exports I was missing, but I must have used the patched shell32 to build my system.

Is there anyway to remove v3? or should I just get a new copy of shell32.dll from W95? I seem to remember patching a lot of stuff in that shell32, so I would rather not start from scratch.

thanks,

snuz2

Link to comment
Share on other sites

Well, if you installed SH95UPD v0.0.3 properly there then there should be an entry in your "Add/Remove programs" control panel called "SH95UPD v0.0.3".

However, if it's missing then you could try the following in pure MS-DOS mode(Not the MS-DOS box in windows, but you MUST reboot into Windows 9x's MS-DOS):

1. Run the batch file SH95RECO.bat in your WINDOWS\COMMAND folder. (e.g. C:\WINDOWS\COMMAND\SH95RECO.bat)

2. SH95UPD backs up your system files as *.S95, so rename SHELL32.s95 as SHELL32.dll and you're fixed.

3. If that fails, then you have to restore a copy of SHELL32.DLL from your Windows 95 setup disc\diskettes.

Also, if your copy of SH95UPD was old to have been the version that modified KERNEL32.DLL, then you should also restore that. The last version I think that still did that was v0.0.2 so I think that you're safe.

If you use Windows 98 then you can use SFC for that; If you are using Windows 95 then you need to extract the files from your \Win95 folder on your setup disc/diskettes yourself.

4. Another way(But is highly unrecommended) is to run SH95UPD.exe with the --debug-reinstall parameter. I use this during development. But please, use this only when you really can't fix your installation with the above methods as this is risky! However, this would preserve all previous modifications in your SHELL32.DLL. It's almost the same as method 2, but "hot-patches".

All the best!

BTW: My Geocities page would be going off-line on the 26th October 2009 - the first day of my exams. Therefore I think that I would upload everything onto my Linkbucks blog... until I find another suitable host.

Edited by sp193
Link to comment
Share on other sites

Depending on how you wrote the detection routine for older versions, and if he made OTHER changes to his shell32.dll as he seems to have indicated, he may not have ever installed 0.0.3 and it may just be falsely detecting it due to similar or other changes.

(my completely-unfamiliar-with-this-situation 2 cents)

Oh and I can provide a mirror for your stuff on the Infotaxis Project:

http://sites.google.com/site/infotaxisproject (DNS is updating, but normally would be "projects.infotaxis.org")

Even if you've already found a new location or mirror I'd like to still do one for you, it fits my site's mission.

Edited by EyesOfARaven
Link to comment
Share on other sites

ok. i couldn't get any of your methods to work, bcuz no backup files. but i found 0.0.3 and it cleared the data file. then i put fresh 4.0.1111 W95 shell32 on and updated with 0.0.7a. Seems to be working. There really werent' any hacks in shell32, i was thinking of user32 maybe or explorer. so tomorrow I will try taking out references to my win98 shell from various applications and see how it goes.

thanks for ur speedy help! I will report my experiences!

Link to comment
Share on other sites

okay, tonight I unhacked all files referencing the W98 shell32.dll. This consisted of Acrobat Reader 6 and Y! Messenger 8. Happy to report that neither of these are now broken. The only other application I can remember hacking is eMachineShop which requires KernelEX to run, currently I don't have that installed.

Problems I did find:

Taskbar in Uberskin 8.3.13 has problems reporting its area to shell, must be unlocked to dock it and then relocked. Looks like it reports its unlocked size first with the resizing borders, but then fails to draw in them. This was never a problem before.

A more interesting problem is the url protocol monitor... the thing that takes mailto: and http: addresses and launches them in mail and browser. I use the following registry hack to send them to W98 shell32.dll

REGEDIT4

[HKEY_CLASSES_ROOT\CLSID\{AEB6717E-7E19-11d0-97EE-00C04FD91972}]

@="URL Exec Hook"

[HKEY_CLASSES_ROOT\CLSID\{AEB6717E-7E19-11d0-97EE-00C04FD91972}\InProcServer32]

@="shell32.ori"

"ThreadingModel"="Apartment"

But it looks like your update doesn't pick these up if I point it to W95 shell32.dll.

Is there another way to pass these references to the shell that I don't know of?

Or does everybody using Explorer95 just do without this?

This is the only thing really missing so far for me.

Any comments?

Link to comment
Share on other sites

Congrats on fixing your SHELL32.dll. I forgot to mention earlier, but the "incompatible version" you had might not have been SH95UPD, but a version of KernelEx\KUP. SH95UPD also reports them as "Incompatible versions" if detected(And the backup files of KEX are *.W01).

A more interesting problem is the url protocol monitor... the thing that takes mailto: and http: addresses and launches them in mail and browser. I use the following registry hack to send them to W98 shell32.dll

I've never encountered this problem personally(The programs I use do not use the mailto: and http: handler), but in theory this might happen as the Windows 95 SHELL32.dll is not very "integrated" with the rest of the Windows OS(And lacks certain functions) compared to the Windows 98 SHELL32.

Your solution is probably the best option, as the Windows 95 shell is missing the necessary code (And is not aware of URL.dll or any other IE related files).

However, to help solve this, could you please be more specific to list programs that malfunction because of this?

Other missing functions include the SHCreatePropSheetExtArrayEx, which is implemented in the Windows 98 SHELL32.dll as ordinal 194 (Hence the Desktop control panel crashes, as Ordinal 194 is RealShellExecuteExA in the Windows 95 SHELL32)

Taskbar in Uberskin 8.3.13 has problems reporting its area to shell, must be unlocked to dock it and then relocked. Looks like it reports its unlocked size first with the resizing borders, but then fails to draw in them. This was never a problem before.

You mean that the Taskbar actually goes off-screen or out of it's normal positions?

I'll look into that... might have been caused by a "broken" function... if any still exist. Uberskin runs on a normal Windows 98SE installation right? There are still unimplemented functions in SH95UPD v0.0.7A, so this might be a side effect.

Edited by sp193
Link to comment
Share on other sites

Taskbar

Attached here is supposed to be a picture of the taskbar problem.

The orange and brown is the wallpaper, note that the taskbar has a border around it where the "handles" for moving it would be if it wasn't Locked. This area is never updated by the taskbar ( because it isn't actually using it anyway) nor does it get wallpapered, even after refreshing the desktop. You can see that it has remnants of whatever window frames and other stuff that was last drawn in there. So, the desktop thinks it belongs to the taskbar and the taskbar thinks it belongs to the desktop :whistle: .

If I uninstall v007a, the taskbar behaves normally, reinstall, and back to the conflict.

It doesn't make any difference whether the taskbar is "Always on Top".

But, if I unlock ( therefore displaying the handles in the no-man's land) and then lock it again ( thereby getting the taskbar to inform the desktop that it no longer has handles) all will be well and they are then resync'ed.

Links

The place I usually test this is in Metapad, it will highlight and launch links like www.yahoo.com as well as many others. I vaguely remember that 95 had this ability but maybe handled it differently? I seem to remember that some programs really depended on this behavior as well but I have not been able to remember which ones...

It's annoying, because just that one use of W98 shell will cause it to load at startup. If I get more info, I will post...

thanks for your help again!

post-115884-1254977888_thumb.jpg

Link to comment
Share on other sites

If I uninstall v007a, the taskbar behaves normally, reinstall, and back to the conflict.

It doesn't make any difference whether the taskbar is "Always on Top".

But, if I unlock ( therefore displaying the handles in the no-man's land) and then lock it again ( thereby getting the taskbar to inform the desktop that it no longer has handles) all will be well and they are then resync'ed.

Wow...that problem shown in the Screenshot you posted looks bad...

After you uninstall v0.0.7A, the taskbar works properly? You didn't install\uninstall anything else?

Hmm... if you didn't alter your Windows installation other that uninstalling SH95UPD v0.0.7A then I can conclude that some function that I implemented in v0.0.7A isn't working properly.

If that was really the case, then I would suspect the dummy SHGetSettings() function. It supposing returns the current settings of the Windows shell, but I didn't fully program it yet, and it returns dummy settings (That are still valid, but may be not the same as your current setup). These setting include whether hidden files are shown, and whether to display a confirmation dialog on deleting files from the recycle bin etc.

About the links problem... I'll see if my Microsoft Word 97 has any problems. It also uses Hyperlinks and e-mail addresses.

I vaguely remember that 95 had this ability but maybe handled it differently?

Windows 95 had this ability, but certain extra components had to be installed; For example: Internet Explorer 4.x/5.x. The Pre-OSR2.5(Win95C) Windows 95 components were largely unaware of Internet Explorer's existance, or it's shared functions. Hence it's SHELL32.dll did not contain any internet access capabilities.

It's annoying, because just that one use of W98 shell will cause it to load at startup. If I get more info, I will post...

Agreed. In fact, I find it irritating to find any part of my Windows 98/95 hybrid not working properly. :D

Edited by sp193
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...