A customer is upgrading the virtual Windows workstations (VDIs) from Windows 7 to Windows 10 x64. They are using an older application, a workflow product with web client, which runs in Internet Explorer and still uses the "Microsoft Data and Time Picker Control 6.0 (SP6)" (32bit ActiveX control).
The mscomct2.ocx has been copied to the C:\Windows\SysWOW64 directory and registered with "regsvr32 mscomct2.ocx".
The problem is that this control does not show itself in Internet Explorer (x86) on the new Windows 10 x64 image; in fact, the control shows a placeholder and is blocked (IE in In compatibility view).
Tools / Manage Add-ons does show the control name in the list. Double clicking the item shows "More information" in which a "Block count" of 17 shows and "Use count": 0.
Okay, the control is somehow blocked. See below for more details on the test setup.
Now why not replace the control with an HTML native something, I hear you thinking? Well, Replacing the control would need to republish the workflow template and change all the workflow instances...
Okay, in an VM copy of the customer's Windows 10 image, this is the web page to try and get the picker control to show.
<html>
<head>
<title>DTPicker_Test</title>
</head>
<body bgcolor="#FFFFFF">
function DocWrite(strHTML)
{
document.write(strHTML);
}
</script>
<b>clsid:20DD1B9E-87C4-11D1-8BE3-0000F8754DA1</b>
<script language="javascript">
DocWrite("<object classid=\"clsid:20DD1B9E-87C4-11D1-8BE3-0000F8754DA1\" name=\"DTPicker\" ID=\"DTPicker\" tabindex=\"1\" accesskey=\"\" mayscript=\"true\" onload=\"DTPicker_InitProps()\" style=\" position:absolute; left:10; top:100; width:300; height:100; z-index:0; color:#000000; font-family:Arial; font-style:normal; font-weight:bold; font-size:10pt; \"> <param name=\"MousePointer\" value=\"0\"> <param name=\"Enabled\" value=\"1\"> <param name=\"OLEDropMode\" value=\"0\"> <param name=\"CalendarBackColor\" value=\"-2147483643\"> <param name=\"CalendarForeColor\" value=\"-2147483630\"> <param name=\"CalendarTitleBackColor\" value=\"-2147483633\"> <param name=\"CalendarTitleForeColor\" value=\"-2147483630\"> <param name=\"CalendarTrailingForeColor\" value=\"-2147483631\"> <param name=\"CheckBox\" value=\"0\"> <param name=\"CustomFormat\" value=\"\"> <param name=\"Format\" value=\"1\"> <param name=\"UpDown\" value=\"0\"> <param name=\"MaxDate\" value=\"2958465\"> <param name=\"MinDate\" value=\"41640\"></object>");
</script>
<script language="javascript">
function DTPicker_InitProps()
{
alert("init");
}
</script>
</body>
</html>
On my own Windows 10 x64 laptop, when I copy the OCX to C:\Windows\SysWOW64, register it and open the exact same page in Internet Explorer, the control DOES show itself.
Now why is the Internet Explorer in the customer's Windows 10 image blocking this control? The page zone is Internet; in the Zone's custom security level, I have changed all "ActiveX controls and plug-ins" related items to:
- if the item has "enable" and "disable" option, then I set "Enable"
- If the item has "enable", "disable" and "prompt", then I set "Prompt"
- "Allow ActiveX Filtering" is set to "Disable"
- "Run antimalware software on ActiveX controls" is set to "Disable"
When I load the page in Internet Explorer, it asks "Do you want to allow sofware such as ActiveX controls and plug-ins to run?", answered with Yes. But the control still does NOT show itself. The control is blocked.
- I come across several similar questions and answers, but none that solve the blocking issue. For example How to stop Internet Explorer from blocking ActiveX controls on local files
- I have compared IE settings and policies between my Windows 10 laptop and the Windows 10 image, but to no avail.
Anyone has ideas of things to check on the Win10 image or a solution?
Colleague Tim: I'm working with my esteemed colleague Victor on this issue. And one extra important finding is that this particular ActiveX control "mscomct2.ocx" is working perfectly in MS Office 365 (x86) (can be initiated thru 'Developer tab' --> 'Controls' section --> 'ActiveX Controls' --> 'More controls' --> 'Microsoft Data and Time Picker Control 6.0 (SP6)') on the same machine where it is blocked in IE x86. Strange right?
We've also enabled the VersionAuditLog for ActiveX components in IE, but it says that it is NOT blocking the control.
Thanks for any suggestions on how to troubleshoot this any further, because we are kind of stuck here.
Edit Added colleague Tim's contribution.
<head>
section:<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE10">
. Try also the ActiveX test (if it's still working). Is the website trusted?