Forum How do I...?

Fixing MsComCtl32.ocx and ComDlg32.ocx problems

StoneCypher
The PrinceXML installer does not correctly cope with some of the permissions changes required in Windows 7. As a result, the user interface libraries used are not correctly registered with the system. On load, you may be told either that
Component 'Mscomctl.ocx' or one of its dependencies not correctly registered
or
Component 'ComDlg32.ocx' or one of its dependencies not correctly registered


This is easy to fix, once you know how, but it requires knowing a bunch of secret mojo about Windows. So, I'm'a share some mojo. This looks long; it isn't. I spelled it out in painful detail for people who don't know about their computers. For people who know what they're doing, "administrator command prompt, go to the prince directory, type regsvr32 mscomctl.ocx, type regsvr comdlg32.ocx, done-sauce."

For people who aren't software ninja, here's what you do.
1) Open an administrator command prompt.
  • Go to your start menu
  • Type in the box at the bottom that says "search programs and files"
  • Type "cmd" but do not hit return
  • After a second or two, you'll see the menu change and "cmd.exe" will be the only thing listed.
  • Hold shift down, then right-click cmd.exe in the menu, and let go of shift. You'll get a context menu with a couple of uncommon things in it.
  • Left-click on "run as administrator". Agree to the boxes. You'll get a black box with gray text in it that starts something like "Microsoft Windows [Version 6.1.7600] Copyright (c) 2009 Microsoft Corporation. All rights reserved."
  • This is an administrator command prompt. You have defeated the first level end boss. Equip laser missile.

2) Try to change to the 64-bit thunk host PrinceXML directory.
  • This could be one of two standard locations, depending on whether you're running 32-bit or 64-bit windows. The split is about 50/50 these days, so we'll just check both places.
  • Slightly more common is 64-bit. Typing in your Administrator command prompt:
  • cd "\program files (x86)" and press return. The quotes are part of what you're typing; don't skip them.
  • If it says "no such file or directory", your system is 32-bit; move to step 3.
  • If not, then it'll say C:\Program Files (x86)> or something similar. You could still be either, but you're probably 64-bit.
  • Type cd prince. If that says "no such file or directory," move to step 3.
  • If that says C:\Program Files (x86)\Prince>, you found the PrinceXML directory; skip step 3 and move to step 4. Equip double-grenade armor.

3) If step 2 failed, change to the 32-bit native PrinceXML directory.
  • Typing in your Administrator command prompt:
  • cd "\program files\prince" and press return
  • It'll say C:\Program Files (x86)\Prince> or something similar. If it says "no such file or directory," you installed in an uncommon way, and you probably know enough about your system to know where you're supposed to be, so just go to step 4 and fill in the blanks.
  • Move to step 4. Equip plasma boomerang.

4) Register the two libraries by hand
  • Cake easy. Rly. Typing in that control prompt:
  • regsvr32 MsComCtl32.ocx and press return; you'll get a little window that says "I did eet!". Close it.
  • If it says that it tried and failed to load at the address 03195716359 or whatever, your command prompt isn't an administrator prompt. Start again at step 1, and be more careful about the shift right click menu.
  • regsvr32 MsComCtl32.ocx and press return; you'll get a little window that says "I did eet!". Close it.
  • Should be fixed. Equip Quantum Gemerald. Enjoy satisfying end of game chiptune. You can close the admin command prompt now.

If you don't get the NES jokes, don't worry, NES players don't either.

Hope that helps.

John Haugeland is http://fullof.bs/

PanhandleDave
Awesome. Thanks for the detail. I am comfortable working as administrator, but I can never remember these commands without lots of searching. Worked like a charm!
philsawa
Thanks to StoneCypher for the neat tutorial! One caveat for those who are not able to make it work: in the last step, try typing 'ComDlg32.ocx' instead of 'MsComCtl32.ocx'

Phil
http://m.youversion.com/users/philsawa/notes