Discussion:
IE6 Installed Incorrectly?
(too old to reply)
Jeff
2004-02-17 10:50:00 UTC
Permalink
I am using HHCTRL.OCX to control a table of contents in a web application.

The setting up of the TOC object looks like this:

<OBJECT id=hh_toc type='application/x-oleobject'
classid='clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11'
class='hh_toc_css'
codebase='hhctrl.ocx'
width='100%'
height=350
<PARAM name='Command' value='Contents'>
<PARAM name='Item1' value='hh_toc.hhc'>
<PARAM name='Flags' value='0x0,0x37'>
</OBJECT>

As each page loads, I am synchronising the TOC using the syncURL method,
passing it the page reference - tocREF - like this

document.all.hh_toc.syncURL(tocREF);

This works fine on most testbeds. However, on some (but not all) IE6
installations, a JS error is generated:

"Object doesn't support this property or method"

I have confirmed that the "hh_toc" object is recognised on the bad PC's.

The IE6's that are OK were installed from a CD from a magazine. The ones
that don't work were installed by the IT department.

Does anyone know what IT have done wrong? Is there anything that can be done
in the code to correct it or at least check that the call to syncURL will
not produce the error before executing it?


Jeff
Pete Lees
2004-02-17 16:34:29 UTC
Permalink
Jeff,
Post by Jeff
I am using HHCTRL.OCX to control a table of contents in a web
application [...] As each page loads, I am synchronising the
TOC using the syncURL method, passing it the page reference
[...] on some (but not all) IE6 installations, a JS error is
"Object doesn't support this property or method"
Just a guess, but perhaps this is a problem with the HTML Help runtime
components rather than Internet Explorer. If the HTML Help ActiveX
control is incorrectly registered then certain commands and methods
don't work properly (or at all). A number of the security patches for
Internet Explorer that Microsoft released last year are known to cause
this problem, as is Service Pack 4 for Windows 2000.

On those machines on which the latest version of HTML Help is not
installed -- that is, they have a version of hhctrl.ocx earlier than
5.2.3735.x -- you could try upgrading the runtime components by
applying Critical Update 811630, which is available from:

http://support.microsoft.com/?kbid=811630

If the problem is occurring on Windows 2000 machines on which Service
Pack 4 has been installed then you could try unregistering and then
re-registering the HTML Help ActiveX control, by entering the
following two commands at an MS-DOS command prompt:

regsvr32 /u <drive>:\winnt\system32\hhctrl.ocx
regsvr32 <drive>:\winnt\system32\hhctrl.ocx

This should fix any broken registry entries and may help to get the
TOC synchronisation working properly.

--
Pete (Microsoft Help MVP)
Jeff
2004-02-17 21:17:00 UTC
Permalink
Thanks for that Pete.

I have been doing some tests on a Win98se PC. I can replicate the error by
renaming the registered copy of HHCTRL.OCX in the Windows folder.

Then, if I install HHCTRL.OCX in the web application folder, the line
"... codebase='hhctrl.ocx' ..." causes Windows to install the file in
"c:\windows\downloaded program files" and register it in
"HKEY_CLASSES_ROOT\CLSID\{ADB880A6-D8FF-11CF-9377-00AA003B7A11}
\InprocServer32".

If I then re-register the original "C:\Windows\System\hhctrl.ocx" and re-run
the application, it makes no such changes.

Is there any downside in my distributing the application like this?

As a rider to this, does it matter that I don't specify the #version number
in the codebase?

Jeff
Post by Pete Lees
Jeff,
Post by Jeff
I am using HHCTRL.OCX to control a table of contents in a web
application [...] As each page loads, I am synchronising the
TOC using the syncURL method, passing it the page reference
[...] on some (but not all) IE6 installations, a JS error is
"Object doesn't support this property or method"
Just a guess, but perhaps this is a problem with the HTML Help runtime
components rather than Internet Explorer. If the HTML Help ActiveX
control is incorrectly registered then certain commands and methods
don't work properly (or at all). A number of the security patches for
Internet Explorer that Microsoft released last year are known to cause
this problem, as is Service Pack 4 for Windows 2000.
On those machines on which the latest version of HTML Help is not
installed -- that is, they have a version of hhctrl.ocx earlier than
5.2.3735.x -- you could try upgrading the runtime components by
http://support.microsoft.com/?kbid=811630
If the problem is occurring on Windows 2000 machines on which Service
Pack 4 has been installed then you could try unregistering and then
re-registering the HTML Help ActiveX control, by entering the
regsvr32 /u <drive>:\winnt\system32\hhctrl.ocx
regsvr32 <drive>:\winnt\system32\hhctrl.ocx
This should fix any broken registry entries and may help to get the
TOC synchronisation working properly.
--
Pete (Microsoft Help MVP)
Pete Lees
2004-02-19 18:44:32 UTC
Permalink
Jeff,
Post by Jeff
Is there any downside in my distributing the application like this?
I'm not aware of any, and, in fact, I believe this used to be the
method recommended by Microsoft and others. For example, see Steve
Wexler's white paper "Distributing the HTML Help ActiveX Control" at:

http://www.wwwinnovations.com/resources/Doc-To-Help/DistributingHHCTRL.pdf

As you probably know, hhctrl.ocx is a protected system component in
Windows 2000 and later, so it can only be upgraded on these platforms
via a Microsoft service pack or critical update.
Post by Jeff
As a rider to this, does it matter that I don't specify the #version
number in the codebase?
I think it's usually advisable to omit the codebase number, as its
presence can break the object tag on machines that have an older
version of hhctrl.ocx than that specified in the tag.

--
Pete (Microsoft Help MVP)
Jeff
2004-02-21 19:10:00 UTC
Permalink
[Much later]

The problem is only occurring with IE6 on Win98 and WinXP machines where the
browser was installed and (centrally) configured by the IT dept.

On machines where the IE6 was installed from a PC Magazine copy of IE6, it
works fine.

The object is not being created correctly (<OBJECT id=hh_toc
type='application/x-oleobject'...>) - the TOC appears blank.

A JS error is generated by an event handler...

onLoad=hh_toc.syncURL("xxx.htm")

...it says Object does not support this method. I have tried to include the
hhctrl.ocx in the application folder (with codebase="./hhctrl.ocx") to force
the use of the control - it still fails. I have checked the browser
security settings for both working and failing PCs and they are the same:

Prompt Download signed ActiveX controls
Disable Download unsigned ActiveX controls
Disable Initialise & script ActiveX controls not marked as safe
Enable Run ActiveX controls and plugins
Enable Initialise & script ActiveX controls marked safe for scripting

I am beginning to think there may be a conflict with an installed browser
add-in, but I don't know how to test this out??

One possible "get out of jail" option is to switch to the MS HHCtrl Java
Applet on machines that are failing. The trouble is that I can't find a way
to test whether the default (hhctrl.ocx) object has failed to load. There
appears to be no onerror statement in JS and using

typeof hh_toc=="object"

does not help because the object is getting created even if the ocx cannot
be located.

ANY help would be much appreciated. We are facing having to abandon the
whole project (which has taken over two months to develop) because of this
error.

Jeff
Post by Pete Lees
Jeff,
Post by Jeff
I am using HHCTRL.OCX to control a table of contents in a web
application [...] As each page loads, I am synchronising the
TOC using the syncURL method, passing it the page reference
[...] on some (but not all) IE6 installations, a JS error is
"Object doesn't support this property or method"
Just a guess, but perhaps this is a problem with the HTML Help runtime
components rather than Internet Explorer. If the HTML Help ActiveX
control is incorrectly registered then certain commands and methods
don't work properly (or at all). A number of the security patches for
Internet Explorer that Microsoft released last year are known to cause
this problem, as is Service Pack 4 for Windows 2000.
On those machines on which the latest version of HTML Help is not
installed -- that is, they have a version of hhctrl.ocx earlier than
5.2.3735.x -- you could try upgrading the runtime components by
http://support.microsoft.com/?kbid=811630
If the problem is occurring on Windows 2000 machines on which Service
Pack 4 has been installed then you could try unregistering and then
re-registering the HTML Help ActiveX control, by entering the
regsvr32 /u <drive>:\winnt\system32\hhctrl.ocx
regsvr32 <drive>:\winnt\system32\hhctrl.ocx
This should fix any broken registry entries and may help to get the
TOC synchronisation working properly.
--
Pete (Microsoft Help MVP)
I am using HHCTRL.OCX to control a table of contents in a web application.
<OBJECT id=hh_toc type='application/x-oleobject'
classid='clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11'
class='hh_toc_css'
codebase='hhctrl.ocx'
width='100%'
height=350
<PARAM name='Command' value='Contents'>
<PARAM name='Item1' value='hh_toc.hhc'>
<PARAM name='Flags' value='0x0,0x37'>
</OBJECT>
As each page loads, I am synchronising the TOC using the syncURL method,
passing it the page reference - tocREF - like this
document.all.hh_toc.syncURL(tocREF);
This works fine on most testbeds. However, on some (but not all) IE6
"Object doesn't support this property or method"
I have confirmed that the "hh_toc" object is recognised on the bad PC's.
The IE6's that are OK were installed from a CD from a magazine. The ones
that don't work were installed by the IT department.
Does anyone know what IT have done wrong? Is there anything that can be
done in the code to correct it or at least check that the call to syncURL
will not produce the error before executing it?
Jeff
Pete Lees
2004-02-22 17:14:55 UTC
Permalink
Jeff,
Post by Jeff
[...]
ANY help would be much appreciated. We are facing having to abandon the
whole project (which has taken over two months to develop) because of this
error.
I've forwarded your problem to Microsoft and the other Help MVPs in
the hope that someone else can shed some light on this. In the
meantime, you may want to repost your question to either or both of
the following forums, which I suspect are populated by far more help
developers than this one is:

news://msnews.microsoft.com/microsoft.public.helpauthoring
http://groups.yahoo.com/group/HATT

For detailed information on the HTML Help Java applet, see:

http://www.mvps.org/htmlhelpcenter/oldjunque/hhjapplt.htm
http://www.wwwinnovations.com/resources/Doc-To-Help/DistributingMSJava.pdf

--
Pete (Microsoft Help MVP)
Pete Lees
2004-02-23 10:53:14 UTC
Permalink
Jeff,
Post by Pete Lees
I've forwarded your problem to Microsoft and the other Help MVPs in
the hope that someone else can shed some light on this.
First response from Microsoft is:

"It would be useful to know whether the version of hhctrl.ocx is
different in the different configurations. Use of the classid+codepage
to install hh should be avoided if at all possible. Make sure the latest
hh is installed on the machines and you shouldn't have a problem."

--
Pete (Microsoft Help MVP)
Jeff
2004-02-24 22:17:00 UTC
Permalink
Thanks for your help with this.

I have been off for a few days but I'm now planning a day on-site to gather
as much evidence as possible.

ISTM that one possibility is that HHCTRL.OCX may not be registered correctly
- however could this possibly happen on WinXP/IE6?

Jeff
Pete Lees
2004-02-26 12:37:35 UTC
Permalink
Jeff,
Post by Jeff
ISTM that one possibility is that HHCTRL.OCX may not be registered correctly
- however could this possibly happen on WinXP/IE6?
Yes, a number of the cumulative security patches for Internet Explorer
that Microsoft released last year are known to break the registry
entries for the control. See this Knowledge Base article for details
and the workaround:

http://support.microsoft.com/?kbid=822989

--
Pete (Miccrosoft Help MVP)
Jeff
2004-02-26 22:05:00 UTC
Permalink
I've been on site all day and i have to say I'm baffled.

The problem may limited to IE6 in WinXP Professional

IE6.0.2800.1106.xpspl.020828.1920IS
128 bit cypher
Updates: SP1; Q824145
Product ID 55724-OEM-0015582-99016

Browser settings were reset to "default" for
a) Security Internet Zone
b) Security Intranet Zone
c) Tools Options Advanced

I also reinstalled IE6 from CD - this took 5 seconds, so presumable it
decided nothing needed updating!
I ran the latest IE6 (SP1) update from MS Web site

Keytools reported that c:\windows\system32\hhctrl.ocx was registered
hhctrl.ocx version 5.2.3669.0
I ran "regsrv32 c:\windows\system32\hhctrl.ocx" again just to be sure

The HHCTRL TOC object is still not being created!

I can only think of two possible reasons:
1. The browser configuration is not defined locally, but may be coming
from a remote configurator. (Is that possible on Win XP?)
2. There may be some plug-in/add-in that is interfering with IE6.

This is a serious bummer!

Here is an uploaded example of the app that's failing
http://www.smartacus.co.uk/interviewing/files/indexframe.htm?part0

I can't leave it there for long.

Jeff
Post by Pete Lees
Jeff,
Post by Jeff
ISTM that one possibility is that HHCTRL.OCX may not be registered
correctly - however could this possibly happen on WinXP/IE6?
Yes, a number of the cumulative security patches for Internet Explorer
that Microsoft released last year are known to break the registry
entries for the control. See this Knowledge Base article for details
http://support.microsoft.com/?kbid=822989
--
Pete (Miccrosoft Help MVP)
Pete Lees
2004-02-27 12:16:26 UTC
Permalink
Jeff,
Post by Jeff
Keytools reported that c:\windows\system32\hhctrl.ocx was registered
hhctrl.ocx version 5.2.3669.0
I ran "regsrv32 c:\windows\system32\hhctrl.ocx" again just to be sure
The HHCTRL TOC object is still not being created!
I'd try upgrading hhctrl.ocx to 5.2.3735.0 -- i.e., install Critical
Update 811630 -- maybe that will fix the problem.

--
Pete (Microsoft Help MVP)
Jeff
2004-03-01 16:13:00 UTC
Permalink
You are right!! Critical Update 811630 has fixed the problem.

I think what's happened here is that the client has installed a later
Windows Critical Update that disables older versions of HHCTRL.OCX when used
in Web pages. AFAICT, the Windows HH subsystem still works on all the PC's
where the Web application is not working.

Although it is relatively easy to roll-out CU811630, I now intend to ship
version 5.2.3735.0 of hhctrl.ocx with the <OBJECT> parameter...

codebase="hhctrl.ocx#Version=5,2,3735,0"

Hopefully, this will download the new copy of the control where the
registered copy is and older version?

Jeff
Post by Pete Lees
Jeff,
Post by Jeff
Keytools reported that c:\windows\system32\hhctrl.ocx was registered
hhctrl.ocx version 5.2.3669.0
I ran "regsrv32 c:\windows\system32\hhctrl.ocx" again just to be sure
The HHCTRL TOC object is still not being created!
I'd try upgrading hhctrl.ocx to 5.2.3735.0 -- i.e., install Critical
Update 811630 -- maybe that will fix the problem.
--
Pete (Microsoft Help MVP)
Pete Lees
2004-03-02 10:39:34 UTC
Permalink
Jeff,
Post by Jeff
You are right!! Critical Update 811630 has fixed the problem.
I think what's happened here is that the client has installed a later
Windows Critical Update that disables older versions of HHCTRL.OCX when used
in Web pages. AFAICT, the Windows HH subsystem still works on all the PC's
where the Web application is not working.
My guess is that the user has installed one of the recent security
patches for Internet Explorer, and this has broken the registry
entries for the HTML Help ActiveX control. Chances are that the user
would have found broken hyperlinks in the help files as well --
notably those hyperlinks that use the ALink and Shortcut commands.
Installing the 811630 update fixes all these problems by correcting
the registry entries.
Post by Jeff
Although it is relatively easy to roll-out CU811630, I now intend to ship
version 5.2.3735.0 of hhctrl.ocx with the <OBJECT> parameter...
codebase="hhctrl.ocx#Version=5,2,3735,0"
Hopefully, this will download the new copy of the control where the
registered copy is and older version?
I think it's worth trying, and I can't say that it won't work.
However, my understanding is that hhctrl.ocx is a protected system
component in Windows 2000 and later, so it can only be upgraded by
installing a Microsoft critical update or service pack.

--
Pete (Microsoft Help MVP)

Loading...