1

Actually we are running a x86 Windows Desktop C++ Qt application with HTMLHelpCtrl.ocx ActiveX control (all modules x86) in order to call the .chm HtmlHelp of the application. Now we want to port our application to x64. Unfortunately it is not possible to use the current x86 HTMLHelpCtrl.ocx directly. Is there a 64 bit version of HMTLHelpCtrl.ocx available? Or what is needed to be able to use the x86 ActiveX control in x64?

We already tried to do it this way: Using a 32-bit COM Object from a 64-bit Application. But this is not an option, because we have the requirement to make it work without administrative rights. Therefore we cannot change the registry values mentioned in the article.

1 Answers1

0

The solution is rather simple: you need to perform the steps that you refer to in your installer. That's where you will have the administrative rights needed, and that's where such things are meant to be handled.

If you can't, then you need to split your application into two processes: one that is 32 bit, and another that is 64 bit. Host the 32 bit object in the 32 bit process, and run the stuff that needs large memory in the 64 bit process.

Kuba hasn't forgotten Monica
  • 95,931
  • 16
  • 151
  • 313
  • The requirement is to be able to run the application (and install it) without administrative rights. It is a perUser installation. In this case we can access some branches in the registry (e.g. HKEY_CURRENT_USER and below) but not HKEY_CLASSES_ROOT and HKEY_LOCAL_MACHINE – Martin Pakula Apr 17 '15 at 07:52
  • @MartinPakula That requirement is at odds with what you're trying to do. Something has to give: either allow administrator installations, or don't use 32 bit COM objects from 64 bit apps. This doesn't mean that you can't do what you intend to do. See the edit. – Kuba hasn't forgotten Monica Apr 17 '15 at 12:51
  • @KubaOber Is it somehow possible to create an 64 bit COM object, like that ocx in this particular case? – Gannic Apr 17 '15 at 14:25