Case of the Missing ActiveX Control (DHTML Edit Control)

A customer was upgrading from Windows XP to Windows 7 64-bit. During application testing phase the following issue was found with their Lotus iNotes webmail. The place to type your email was filled with nothing but a little red cross, the familiar sign of a missing ActiveX control:

image

To find the ActiveX control used in this page we have a few options:

  • Look at the HTML either through right-click View Source or logging with Fiddler and searching for <object or <app or <embed tags
  • On a working machine run ProcMon while loading/refreshing the page.

I had a ProcMon & Fiddler log already sent to me to look at … I started with a filter to include the following

  • Process Name is iexplore.exe
  • Operation is Load Image
  • Path ends with .ocx

image

Straight away millions of events are filtered down into one critical one:

image

Ok so we’re dealing with the infamous DHTML Edit control, which arrived with IE 4.5 and many years later removed with release of Windows Vista.

This control comes in 2 varieties:

  • Safe For Scripting (for web pages)
  • Not Safe For Scripting (for applications)

An update was made available for Windows Vista, however this update only accounts for applications, not web page version of the control.

That is available here Download- DHTML Editing Control for Applications Redistributable

We can also find a good article from MSDN on replacing the control here Replacing the DHTML Editing Control in Windows Vista and Beyond

None of these solutions help make the web page work though…

However here are 2 solutions (Note: The 1st one should be avoided….)

Solution #1 – Hack The Control Into Windows 7 (Not Recommended)

This can be done with the following method:

1. Copy contents of C:\Program Files\Common Files\Microsoft Shared\Triedit from a working XP machine to the same location in Windows 7. If Windows 7 is 64-bit remember to copy to C:\Program Files (x86) directory

2. From elevated command prompt within the Triedit directory run

regsvr32 dhtmled.ocx

regsvr32 triedit.dll

For each you should get DllRegister Succeeded message box.

If you see error The module “dhtmled.ocx” was loaded but the call to DllRegisterServer failed with error code 0x80020009 it means you are not running the command elevated.

3. Delete or rename HKLM\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{2D360201-FFF5-11d1-8D03-00A0C959BC0A} and on 64-bit Windows delete HKLM\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\ActiveX Compatibility\{2D360201-FFF5-11d1-8D03-00A0C959BC0A} The fact that you should have to do this should be a warning, you should not use this as a solution.

4. On 64-bit Windows make sure you use 32-bit Internet Explorer in “compatibility view”

5. If Internet Explorer was open, close all instances and re-load. (On Windows 8 Consumer Preview I’ve found just closing IE in desktop view may not be enough to close all instances so I use taskkill –im iexplore.exe –f)

The dates of files I found to work in 64-bit Windows 7 / Windows 8 are here:

image

My test page at http://www.tiange.com.au/testdhtml.htm  demonstrates this works (but may lack stability/security):

image

Solution #2 – Please Do This (Fix your Application)

In this case the affected application was Domino’s iNotes Web mail, IBM has instructions on how to replace the text editor:

http://www-304.ibm.com/support/docview.wss?uid=swg21303840

Similar issues can occur if you use Outlook Web Access and are not on the latest patches. (Details here in A Note about the DHTML Editing Control in IE7+ http://blogs.msdn.com/b/ie/archive/2006/06/27/648850.aspx)

Final Notes

To replicate the ActiveX in a test page, I took the Fiddler log (https://www.fiddler2.com ) Which had been generated with “Decrypt HTTPS” option enabled, to ensure we could view the HTTPS traffic.

Because the traffic was GZIP encoded I first selected all traffic (Ctrl+A) then right clicked and selected Decode Selected Sessions

image

I then used Ctrl+F and typed <OBJECT as the search criteria:

image

All pages containing this code are highlighted

image

Then in the right pain I could search the page for the code, and copy it out

image

Ready to use in my simple test code:

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”>
<html>
  <head>
  <meta http-equiv=”content-type” content=”text/html; charset=windows-1250″>
  <meta name=”generator” content=”chentiangemalc”>
  <title></title>
  </head>
  <body>
        <OBJECT id=”editor” width=”640″ height=”400″ classid=”clsid:2D360201-FFF5-11d1-8D03-00A0C959BC0A”/>
  </body>
</html>

The CLSID you find in the HTML will match up to the keys that get entered into registry when you register the control under HKCR\CLSID\{guid}

About chentiangemalc

specializes in end-user computing technologies. disclaimer 1) use at your own risk. test any solution in your environment. if you do not understand the impact/consequences of what you're doing please stop, and ask advice from somebody who does. 2) views are my own at the time of posting and do not necessarily represent my current view or the view of my employer and family members/relatives. 3) over the years Microsoft/Citrix/VMWare have given me a few free shirts, pens, paper notebooks/etc. despite these gifts i will try to remain unbiased.
This entry was posted in Fiddler, Internet Explorer, ProcMon and tagged . Bookmark the permalink.

2 Responses to Case of the Missing ActiveX Control (DHTML Edit Control)

  1. kctseng says:

    Is there any solution for Dhtml Edit Control on Windows 10 + IE11 ?
    Best regards
    kctseng

    • i haven’t tried it, but you will definitely at a minimum need to ensure that enhanced protected mode is not enabled for the zone the site is in…the first thing I would check that IE supposed to launch the control is a 32-bit process, then check with ProcMon a filter on path contains {2D360201-FFF5-11d1-8D03-00A0C959BC0A} to identify any keys needed to add or remove.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s