"ordinal 345 could not be located ...

Help
Lupin III.
2010-01-18
2012-10-29
  • Lupin III.

    Lupin III. - 2010-01-18

    Thanks for this great "fix" for Microsoft's inability to create useable
    programs!

    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 ;-)
    Thanks anyways!

     
  • Ivo Beltchev

    Ivo Beltchev - 2010-01-18

    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.

     
  • Lupin III.

    Lupin III. - 2010-01-18

    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
    ClassicStartMenu.

    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
    the taskbar/tray/startbutton.
    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
    windows).

    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
    Explorer.
    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!

     
  • Ivo Beltchev

    Ivo Beltchev - 2010-01-18

    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 :)

     
  • Ivo Beltchev

    Ivo Beltchev - 2010-01-18

    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.

     
  • Lupin III.

    Lupin III. - 2010-01-18

    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
    work
    CSM stopped while 3RVX is not working: 3RVX/vdeck will work again without
    restart
    CSM restart while 3RVX is not working: 3RVX/vdeck will work again without
    restart

    ClassicStartMenu is somehow in a "dirty" state after explorer restarted.

     
  • Ivo Beltchev

    Ivo Beltchev - 2010-01-18

    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?

     
  • Lupin III.

    Lupin III. - 2010-01-21

    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
    Explorer.

    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.

     
  • Ivo Beltchev

    Ivo Beltchev - 2010-01-21

    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
    it.

     
  • Ivo Beltchev

    Ivo Beltchev - 2010-01-22

    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
    crash.

    This will be fixed in the next version, hopefully by the end of the week.

     
  • Ivo Beltchev

    Ivo Beltchev - 2010-01-25

    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.

     
  • Lupin III.

    Lupin III. - 2010-01-25

    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?

     
  • Ivo Beltchev

    Ivo Beltchev - 2010-01-25

    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.