Internet ExplorerのActiveX更新プログラムの影響

4月11日に公開されたInternet Explorer 6 Service Pack 1 用セキュリティ更新プログラム (KB912812) を適用すると、Webページ上のActiveXコントロールをアクティブ化するために、マウスクリックやEnterキーなどの操作が必要になります。
具体的な対応策は、http://www.microsoft.com/japan/msdn/workshop/author/dhtml/overview/activating_activex.aspxに記載されています。
だいぶ遅い反応ではありますが、現在でもいくつかのお問い合わせをいただいていますので、実際にPowerTools製品で対応する場合の具体例をここに書きたいと思います。

まず、影響のあるPowerTools製品は、下記のページに記載されていますのでご確認ください。

ナレッジベース - サポート&サービス | Developer Tools - グレープシティ株式会社

ActiveReports for .NETActiveXビューワを使用した具体例
対応方法はいくつかありますが、ここではdocument.createElementを使用した方法を紹介します。
ActiveReportsのActiveXビューワを使用した場合、.aspxの記述は下記のようになっています。

<OBJECT id="arv" codeBase="arview2.cab#Version=2,4,1,1280" height="70%" width="100%" classid="clsid:8569D715-FF88-44BA-8D1D-AD3E59543DDE">
				<PARAM NAME="_ExtentX" VALUE="17198">
				<PARAM NAME="_ExtentY" VALUE="7726">
			</OBJECT>

この記述のまま事項すると、下記のようにクリックをうながすツールチップが表示され、アクティブな状態とはなっていません。

まず、この記述を下記のように変更します。

<div id="ARCAB">
<script language="JScript" src="external_script.js"></script>
</div>

次に、新しい項目の追加からJScriptファイルを選択し、external_script.jsというファイル名で追加します。
追加したファイルに以下の内容を記述します。
Cabファイルのバージョン番号(ここでは2,4,1,1280)は、使用するものに合わせて適宜変更してください。

// JScript ファイル
var myObject = document.createElement('object');
ARCAB.appendChild(myObject);
myObject.codeBase= "arview2.cab#version=2,4,1,1280"
myObject.width = "100%";
myObject.height = "70%";
myObject.classid= "clsid:8569D715-FF88-44BA-8D1D-AD3E59543DDE";
myObject.id = "arv";

これで対応完了です。実行すると、表示された時点でActiveXビューワがアクティブになっていることを確認できるかと思います。

なお、一時的な対応策としましては、Internet Explorer 用互換性修正プログラム(KB917425)を適用してIEを以前の状態に戻す方法があります。
ただし、この方法の場合、6月に提供予定のIE向け累積修正プログラムを適用することで無効となってしまいますので、あくまで一時的な時間稼ぎの方法となります。