Thanks for this great "fix" for Microsoft's inability to create useable
I have random crashes of the explorer shell (unfortunately unreproduceable; e.
g. happened last time when I clicked "updates available" in the tray). After
that explorer is immediately restarted by windows itself. But after the
restart I get many popups (approx 10x) from two programs, that tell me "The
ordinal 345 could not be located in the dynamic link library COMCTL32.dll".
The programs are 3RVX, a volume OSD program, and Catalyst Control Center used
for my graphics card. And as far as I can tell with Process Explorer they are
both (the only) .NET processes running. When I now click somewhere on the task
bar or tray (start menu, a window title, a shortcut) I get even more popups
with the same message. What I have seen is that for a short time those
programs have two versions of comctl32.dll loaded (6.10.7600 and 5.82.7600) at
the same time.
Restarting those programs does not help, the popups still appear. Restarting
explorer yields the same results. The only way to solve this problem (except
logout/restart) ist to kill ClassicStartMenu.exe, before restarting explorer
and the above mentioned programs. I then can start the classic startmenu again
and all works as it should until the next explorer crash (random, can happen
an hour later or not happen for days at all).
I assume at least CCC with it's millions installations has to get it right, so
I'll claim the bug lies somewhere in classic shell ;-)
OK, so what I understand is this: First Explorer crashes for some reason. When
it restarts, some .NET programs start complaining because they have the wrong
version of comctl32.dll loaded.
Can you answer these questions, please:
1) Which version of Classic Shell are you using?
2) What OS are you running? Win7, Vista, 32-bit, 64-bit
3) Are you running in Classic mode, Basic, or Aero?
4) Do you believe the initial crash is caused by Classic Shell (have you had
random unpredictable crashes before installing it)?
5) Do both .NET programs install a tray icon?
Maybe what's happening is that when Explorer restarts, the start menu is the
first one to hook into it and it tries to load the wrong version of the common
controls dll. I'll try to confirm that and fix it if so.
Oh, of course. That should have been in the original post.
Yes, correct. Maybe it is coincidence that both programs are the only .NET
programs (I don't have may resident programs installed though, because I try
only using what is essential).
1.) 0.9.8 (can't remember if it happened with 0.9.6, too, because I only had
it installed for a short time)
2.) Windows 7 Professional 64bit
3.) I'm using Aero for Windows, but using the <Default> skin for
4.) I don't remember crashes from before installing it. But on the other hand,
ClassicStartMenu was one of the first things I installed on win7. So I have
nearly no experience using win7 without it. I can't explain how the crashes
would be connected to CSM, but they all happened, when I clicked somewhere on
I remember the following occasions:
The symbol for new available updates was shown in the tray: a click on it
crashed explorer. Happened only once. Clicked on it many times for the daily
updates for windows defender, which make the symbol appear, without crash.
One crash happened when clicking the start button.
I had two or three crashes, when clicking a shortcut in quicklaunch (the
"real" one; added as toolbar to the taskbar). I actually have two of them one
for programs (showing the contents of the default quicklaunch folder), and a
second where I added shortcuts to my most often used folders. Crashes happened
for both of them.
The crash occured immediately after the respective clicks. No lag noticeable.
It simply showed the "windows explorer stopped functioning" and "search for
solution and restart" (free translation; I'm using the german version of
5.) 3RVX does (it is used to access audio settings, which just calls the mixer
installed by the audio driver). CCC would, too, but I disabled it from within
CCC, which means I'm not using the windows feature to hide the system tray
icon. So it does not even appear under the hidden icons.
I can at least reproduce the error by restarting explorer.exe through Process
Before the restart 3RVX does not even contain a reference to comctl32
according to Process Explorer. "MOM.exe", which is the program for the
graphics drivers, has a reference to comctl32 in version 6.10.7600. When I
restart explorer both of them create popups in random order. While the popup
is open, both programs have comctl32 in version 5.82.7600 in the dll list
(which means MOM.exe has 6.10 and 5.82 listed at the same time). After closing
all the popups, the reference to 5.82 vanishes.
But now some clicks trigger the popups (fired again by 3rvx.exe and mom.exe)
again. E. g. opening an explorer window, using 3RVX by clicking on it's tray
icon, or starting skype. I can launch most other programs (Thunderbird, VLC,
Winamp, Scite, 7zip, Putty,...) without problems through the still working
classic startmenu or the quicklaunch buttons though.
As soon as I stop ClassicStartMenu rightclick on startbutton -> close, the
popups stop and all programs work like they should without any restarts.
Starting CSM after that again, sometimes crashes explorer again, sometime
works (again, unfortunately I can't make out a reason). From there on I always
logged out an in again, so the system would be "clean". It can then run days
(with powersaving mode in between) without problems.
Thanks for the support! Hope this helps!
OK, I added a manifest to the start menu DLL that marks it to use version 6 of
the common controls. Most likely that will fix the "ordinal 345" error. If all
goes well I will publish the new version today. I am doing the final testing
and updating the documentation.
I don't know about the crash. The start menu does hook into the mouse-click
code for the taskbar, but it tries to do so in the least invasive way I could
find. I looked again at the code that handles mouse clicks but I really don't
see anything that will explain your problem. Also nobody else has reported
anything similar, so for now I will blame it on another software :)
The new version 0.9.9 is available. Please check if it gives you the "ordinal
345" error when you restart Explorer and share your findings here.
Nice. There's a new version, now that I've finally customized a skin the last
hour which in the end looked exactly like the new included Windows Vista Aero
with small icons and no caption... ;-)
The problem with the popups is gone, which fortunately make testing much
easier, because there's still an issue. If Explorer restarted while CSM was
running, CSM seems to be blocking other programs. I can restart explorer and
3RVX (the volume control thingy) as much as I want. VDeck.exe, which is the
mixer for VIA integrated audio and which is called by 3RVX, won't start until
I restart ClassicStartMenu.exe before. Without CSM running, restarting
explorer and/or 3RVX always works. 3RVX is also still working without restart
after explorer restarted, as long as CSM is not running.
So to sum it up:
CSM not running and Explorer restart: 3RVX/vdeck still works without restart
CSM not running and 3RVX restart: 3RVX/vdeck works
CSM running and 3RVX restart (while working): 3RVX/vdeck works
CSM running and Eplorer restart: 3RVX stops working as intended (mixer won't
appear; volume hotkeys and OSD - that's what 3RVX is for - still work)
CSM running and 3RVX restart (while not working): 3RVX/vdeck will still not
CSM stopped while 3RVX is not working: 3RVX/vdeck will work again without
CSM restart while 3RVX is not working: 3RVX/vdeck will work again without
ClassicStartMenu is somehow in a "dirty" state after explorer restarted.
What is the simplest case that doesn't work? Can you get that to happen with
just one of those 2 programs? And is it a free software, or at least with a
reasonable trial period?
3RVX is completely free and another small enhancement for something M$ can't
get done properly. But as I can tell after some observations, it is no longer
the problem (but it definitely was one that caused comctl errors).
The program that is somehow blocked now, is vdeck.exe which just displays a
typical audio mixer interface (volume, speaker config, equalizer, aso.). It is
unfortunately part of the onboard audio drivers of my mainboard. So as long as
you don't have an VIA audio chip, you won't be able to use it. There is one
instance that is started at computer login, which adds a tray icon (hmm, maybe
there's something to it) and stays resident. Another call to the exe, either
by click in explorer or, as in my case through 3RVX, would simply display the
mixer interface. This second vdeck.exe process will immediatly close by
itself, but the exe loaded at login will stay resident (it seems a second call
to the exe just sends a message to show the interface).
After an Explorer crash with CSM running the exe will start (as shown by
Process Explorer), but show no interface. The second vdeck.exe will also not
close. For every click another instance is added, but the mixer is never
shown. CSM has to be closed or restarted and then all vdeck.exe processes have
to be killed and everthing is fine again until the next explorer restart.
I stopped all non-windows-system programs except Avira (does not do any
runtime checks, it's configured for on demand scanning only), Explorer,
Process Explorer, CSM and vdeck. Still after an Explorer restart, CSM also HAS
to be restarted for vdeck to work again. Without CSM running, no matter what
other processes are there, vdeck always still works after a restart of
Sorry, I'm not experienced in windows programming, so the follwoing may sound
like gibberish. Do you know what Explorer does when restarting? Maybe the CSM
hook somehow interferes with Explorer before it is completely started, so it
keeps other programs from working properly? What is a restart of CSM doing?
Because after that everthing is back to normal. Are there some open
references? Some exclusive locks on something? Something to clean up?
Btw. I just had another crash an hour ago while I clicked the windows update
tray icon again. I'll try to run windows for a few days without CSM (I hope, I
can keep that up; I'm already annoyed by the win7 startmenu after a minute; I
NEED CSM!). I'll check, if I have any Explorer crashes during that time.
When Explorer restarts it broadcasts a message to all programs (for example to
re-register their tray icons). CSM uses the same message to hook the new
process. I can try and add a 3-400ms delay before the hooking to let explorer
finish its startup. But that will just mask the problem and not really solve
OK, I found the problem. The start menu tries to attach to the explorer
process too soon after it is restarted. In some cases it can attach to more
than one process by mistake. Those processes don't like this very much and may
This will be fixed in the next version, hopefully by the end of the week.
Version 0.9.10 is now available. It should fix the problem where some
unrelated applications fail after Explorer is restarted.
The root problem though (Explorer crashing and restarting in the first place)
is probably not related to Classic Shell.
Many thanks! The problem is gone now. An explorer restart doesn't bother these
programs any more. I will keep an eye open for the crashes. I didn't have any
while I had disabled CSM the last 4 days. But there weren't any windows
updates either, which somehow seemed to be around when there was a crash ;-)
Btw. because I installed two new versions of CSM during this thread: Would it
be easy for the installer to get the install path of a previous version of CSM
and use the same path?
Sorry, I don't think this is possible. I am using the Microsoft installer and
it is very limited in what it can do. I'm happy I was able to add 2 checkboxes
to pick if you want to install the Explorer and the Start Menu components :)
Log in to post a comment.