文書番号: 317392 - 最終更新日: 2007年4月23日 - リビジョン: 5.1

Web フォームで ActiveX コントロールをホストする方法

お知らせお使いのオペレーティング システムには適用しない情報が含まれている場合があります。
この記事は、以前は次の ID で公開されていました: JP317392

目次

すべて展開する | すべて折りたたむ

概要

この資料では、ASP.NET ページの Web フォームで ActiveX コントロールをホストする方法について、手順を追って説明します。

ActiveX コントロールでは、Microsoft Visual Studio .NET ツールボックスのドラッグ アンド ドロップ機能を使用することができます。ドラッグ アンド ドロップ機能を使用すると、コントロールの ClassID を含む OBJECT タグが、Web フォームの基になる HTML (Hypertext Markup Language) コードに追加されます。

: この場合でも、Web フォームでホストする ActiveX コントロールは、クライアント側でダウンロード、インストール、および実行されます。これらのコントロールを、Web コントロールのようにサーバー側で実行することはできません。

必要条件

必要なハードウェア、ソフトウェア、ネットワーク インフラストラクチャ、および Service Pack は次のとおりです。
  • Microsoft Visual Studio .NET
この資料は、次のトピックについて詳しい知識のあるユーザーを対象としています。
  • ASP.NET
  • ActiveX コントロール

ASP.NET での ActiveX コントロールのホスト

[参照の追加] オプションを使用して ActiveX コントロールへの参照を追加する場合、コードで CreateObject メソッドを使用して、そのコントロール タイプのオブジェクトを作成することができます。そのオブジェクトはサーバー側で実行し、オブジェクトのメソッドを呼び出すことができます。たとえば、メソッドの戻り値の型がバイナリ データの場合、バイナリ データをクライアントに書き込むことができます。この場合、Response オブジェクトの BinaryWrite メソッドを使用します。

: BinaryWrite メソッドの呼び出しをクライアント側スクリプトから行うことはできません。

ActiveX コントロールをホストする場合に、クライアント側で ActiveX コントロールのプロパティおよびメソッドにアクセスするには、HTML コードを手動で変更する必要があります。HTML コードは ASPX ページの背後に置かれます (コード ビハインド)。

Visual Studio .NET 統合開発環境 (IDE) のデフォルトでは、ASPX ページがデザイン モードで表示されます。ページの HTML ソースを表示するには、[デザイン] ウィンドウの左下にある [HTML] をクリックします。

ActiveX コントロールを Web フォームに配置すると、HTML コードに OBJECT タグが生成されます。ページが読み込まれると、クライアント側 ActiveX コントロールが作成されます。この例は純粋なクライアント側コントロールであるため、このコントロールにサーバー側コードがアクセスすることはできません。サーバー側コードがアクセスできるのはサーバー コントロールのみです。これらはツールボックスの [Web フォーム] タブに表示されます。

コントロールがサーバー側コントロールかクライアント側コントロールかを判断するには、コントロールの左上隅を確認します。デフォルトでは、コントロールの左上隅に小さな緑の矢印が表示される場合、そのコントロールはサーバー側コントロールです。

ActiveX コントロールを ASP.NET ページでホストする完全なコード

次の例は、Microsoft Visual Basic .NET を使用して、MSChart コントロールを Web フォームでホストする方法を示しています。この例では、ページを読み込んだときグラフの幅を変更できます。ASPX ページを HTML ソースで表示し、以下のコードをコピーしてページに貼り付けます。これにより、元のコードが置き換えられます。これを行うには、以下の手順を実行します。
  1. Visual Basic .NET で以下の手順を実行して、新しい ASP.NET Web アプリケーション プロジェクトを作成します。
    1. [ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。
    2. [プロジェクトの種類] ボックスの一覧の [Visual Basic プロジェクト] をクリックします。
    3. [テンプレート] ボックスの一覧の [ASP.NET Web アプリケーション] をクリックし、[OK] をクリックします。
  2. 空白の Web フォームが作成されます。ページの HTML ソースを表示するには、[デザイン] ウィンドウの左下にある [HTML] をクリックします。
  3. 既存のコードを次のコードで置き換えます。
    <%@ Page SmartNavigation="true"  Language="vb" AutoEventWireup="false" 
    Codebehind="WebForm1.aspx.vb" Inherits="VBWebApp.WebForm1"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    	<HEAD>
    		<title>WebForm1</title>
    		<script language="javascript">
    		function changeWidth(x)
    	         { 
                        x.width = 300
                      }
    		</script>
    	</HEAD>
    	<body MS_POSITIONING="GridLayout">
    	<form id="Form1" method="post" runat="server">
    	        <OBJECT id="chart1" style="
                     Z-INDEX: 102; LEFT: 125px; WIDTH: 484px; 
                     POSITION: absolute; TOP: 85px; HEIGHT: 200px" 
                     onReadyStateChange = "changeWidth(this)"
                     classid="clsid:3A2B370C-BA0A-11D1-B137-0000F8753F5D" VIEWASTEXT>
    	        </OBJECT>
    	</form>
    	</body>
    </HTML>
または、以下の手順で、統合開発環境 (IDE) からコントロールを挿入することもできます。
  1. ツールボックスを開き、[コンポーネント] タブをクリックします。
  2. タブ内の任意の場所を右クリックし、[ツールボックスのカスタマイズ] をクリックします。
  3. [COM コンポーネント] タブで、下方向にスクロールし、[Microsoft Chart Control 6.0 (SP4) (OLEDB)] またはこれと類似のチェック ボックスをオンにします。
  4. 操作が完了すると、MSChart という新しいコンポーネントが [コンポーネント] タブに表示されます。このコントロールを Web フォームにドラッグします。
前述の手順を完了すると、コントロールの左上隅には緑の矢印が表示されません。緑の矢印は、そのコントロールがサーバー側にあり、サーバー側コードによりアクセス可能であることを意味します。

関連情報

ASP.NET サーバー コントロールの関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
306459? (http://support.microsoft.com/kb/306459/ ) ASP.NET サーバー コントロールの概要
Microsoft Internet Explorer 用の Web ベース ソリューションの開発の詳細については、以下のマイクロソフト Web サイトを参照してください。
http://www.microsoft.com/japan/msdn/ie/ (http://www.microsoft.com/japan/msdn/ie/)

http://support.microsoft.com/iep (http://support.microsoft.com/iep)

この資料は以下の製品について記述したものです。
  • Microsoft ASP.NET 1.0
  • Microsoft Internet Explorer 5.01
  • Microsoft Internet Explorer 5.5
  • Microsoft Internet Explorer (Programming) 6.0
キーワード:?
kbctrl kbhowtomaster kbinterop kbwebforms KB317392
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"
Retired KB Articleサポート期間が終了した「サポート技術情報」資料に関する免責事項
この資料は、マイクロソフトでサポートされていない製品について記述したものです。そのため、この資料は現状ベースで提供されており、今後更新されることはありません。