[INFO] OLE コントロールと ActiveX コントロールの相違点

文書翻訳 文書翻訳
文書番号: 159621 - 対象製品
この記事は、以前は次の ID で公開されていました: JP159621
すべて展開する | すべて折りたたむ

概要

ActiveX コントロールは、インターネットに適した軽くて処理が速いコントロールを簡単に開発できる仕様になっています。新しい OLE コントロールの仕様では、コンポーネント カテゴリを導入することにより、必須のインターフェイスを実装しなければならないという従来のルールを緩和し、コントロールに余分なサポート (インターフェイス) を組み込むことなく、特定の機能領域に効率的に絞り込むことが可能となりました。さらに、ウィンドウを持たないオブジェクト、URL モニカ、非同期モニカ、プログレッシブ ダウンローディング、および OLE ハイパーリンクのような新しい機能も追加されています。ここで最も重要なのは、データのダウンロードとスクリプティングの安全性を備えたコントロールをサポートできることです。

ActiveX コントロールは、"OLE オブジェクト" であり "COM オブジェクト" でもあることに注意してください。"COM オブジェクト" は、IUnknown インターフェイスをサポートする必要があります。また、ActiveX コントロールは自己登録できることも必要です。したがって、インプロセス コントロールは DllRegisterServer および DllUnregisterServer を実装し、エクスポートする必要があります。コネクション ポイントどうしのインターフェイスとして、NT 4.0 でサポートされているマーシャリングを使用すると、コントロールをローカル サーバーにすることができます。つまり、コントロールは、最初の起動時に、そのクラス ファクトリ オブジェクトを作成し、システムに登録します。また、IUnknown だけでは十分でないことから、インターフェイスを最低 1 つは追加することが必要になります。しかし、このように要件を最小限に抑えたことによって、コントロールをできるだけ軽くすることが可能となりました。

この OLE コントロールと ActiveX コントロールが混乱しているという問題について、Mike McKeown 氏が MIND (Microsoft Internet Developer) 誌米国版の 1996 年 10 月号に寄稿しています。

インターネット用のコントロール、および ActiveX コントロールがサポートするインターフェイスと機能の詳細については、ActiveX SDK オンライン ドキュメントの「ActiveX Controls」を参照してください。

詳細

  1. OLE コントロールと ActiveX コントロールは、どこが異なるのですか。

    両者に違いはありません。ActiveX コントロールとは OLE コントロール テクノロジが名前を変え、再構築されたものとお考えください。OLE という用語は、十分知られるようになったこともあり、マーケティング上の理由から、オブジェクトのリンクと埋め込みにのみ適用される OLE テクノロジという本来の意味で再び使用されるようになっています。コントロールとはほとんど関係のない従来のオブジェクトのリンクと埋め込みテクノロジが連想されることを防ぐために、"OLE コントロール" に代わって "ActiveX コントロール" を使用するようになりました。"OLE コントロール" という用語は今後使用しないでください。
  2. OCX は "ActiveX コントロール" ですか。

    いいえ。OCX は 1 つ以上の ActiveX コントロールが保存されているファイルです。このようなファイルは拡張子が常に .ocx である必要はないので (.dll ファイルである場合もあります)、すべてを "OCX" と呼ぶことはできません。このファイルが特定の拡張子と結び付けられる傾向もありますが、マイクロソフトのマニュアルではそのようなことを避けるようにしています。
  3. Visual Basic 4.0 に付属しているような OLE コントロールも ActiveX コントロールですか。

    はい。以前 "OLE コントロール" と呼んでいたものは、すべて ActiveX コントロールです。ただし、VBX および Windows カスタム コントロールは、もともと OLE をベースにしていないため、ActiveX コントロールではありません。
  4. MFC コントロールも ActiveX コントロールですか。

    はい、MFC コントロールはすべて ActiveX コントロールです。以前の Visual C++ 4.0 コントロールは ActiveX コントロールであり、Visual Basic 4.0 で作成されたコントロールも同様です。ActiveX コントロールという用語は、OLE コントロール テクノロジを改名して再構築し、さらに発展させたものとお考えください。

    インターネット上で効率よく動作するコントロールやデスクトップ上のコンテナ アプリケーションで機能するコントロールのほか、その両方の特性を持つコントロールも作成できます。ただし、コントロールによっては、サイズが大きく、プロパティの読み込みが同期的に行われるために、インターネットでの使用にはそれほど適さないものもありますが、それらも ActiveX コントロールであることに変わりはありません。これが混乱を生む最大の原因となっています。
  5. ActiveX コントロールにはいくつか種類があるのですか。

    はい、あります。実装できるオプション機能が『OLE Control and Control Container Guidelines version 2.0』に記載されています。コンテナ側に対応する機能がなければ正しく動作しないコントロールもあれば、逆にコントロール側に特定のオプション機能が実装されていなければコンテナが認識できないコントロールもあります

    以前のコンテナは通常、コントロールのうち、レジストリの Control キーに登録され、以前の OLE コントロール仕様を実装するもののみ認識します。ただし、そのようなコンテナは新しいコントロールをオートメーション オブジェクトとして使用できます。また、新しいコントロールやコンテナは、"コンポーネント カテゴリ" と呼ばれるものを使用することによって、エクスポートする機能に加え、設計時と実行時のいずれにおいても完全に正しく動作するために必要となるコンテナ サポートも定義することができます。

    『OLE Control and Control Container Guidelines』およびその他の関連仕様については、Internet Client SDK を参照してください。
  6. ActiveX コントロールは Visual Basic 4.0 で使用できますか。

    ほとんどの ActiveX コントロールは Visual Basic 5.0 で使用できます。
  7. ActiveX コントロールはすべて Internet Explorer 3.0 で使用できますか。

    Internet Explorer は、軽量 ActiveX コントロールをホストし、ウィンドウを持たないコントロールもサポートするように設計されています。

    Internet Explorer にはセキュリティ機能があるため、Internet Explorer 3.0 の設定によっては ActiveX コントロールを使用できないことがあります。この問題は以前のコントロールで多く発生します。アクティブ コンテンツのセキュリティが "高" (デフォルト) に設定されている Internet Explorer でコントロールが正しく動作するためには、コントロールを "初期化の安全性保持" または "スクリプト化の安全性保持" とマークする必要があります。コントロールを HTML ページ上で使用する場合、設定がコントロールの安全性の種類やユーザーの安全レベルと矛盾していると、コントロールのインスタンスは作成されません。詳細については、Internet Client SDK の「Component Development - Safe Initialization and Scripting for ActiveX controls」を参照してください。
  8. "軽量 ActiveX コントロール" とはどのようなものですか。

    通常この用語は、迅速なダウンロードを可能にするために、できるだけサイズを小さくしたコントロールという意味で使用されます。軽量コントロールは ActiveX コントロールではありますが、以前の OLE コントロールの仕様に定義されている必須の機能をすべて実装しているわけではありません。

    ATL (Active Template Library) を使用すると、インターネットまたはイントラネット用の軽量コントロールを作成することができます。

関連情報

特に Web ページの開発に関連した ActiveX コントロールの詳細については、Internet Client SDK Web ページの FAQ を参照してください。

ActiveX テクノロジの関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
154544 ActiveX テクノロジの概要
Internet Explorer 5 および 5.5 で削除された ActiveX コントロールの関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
190045 [INFO] Internet Explorer 5 から削除された ActiveX コントロール
Internet Explorer で ActiveX スクリプトおよび ActiveX コントロールに関する問題のトラブルシューティングを行う方法の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
154036 Internet Explorer のアクティブ コンテンツを無効にする方法
Microsoft Internet Explorer 用の Web ベース ソリューションの開発に関する詳細については、以下のマイクロソフト Web サイトを参照してください。
http://www.microsoft.com/japan/msdn/ie/

http://support.microsoft.com/iep

プロパティ

文書番号: 159621 - 最終更新日: 2006年8月8日 - リビジョン: 4.0
この資料は以下の製品について記述したものです。
  • Microsoft Internet Explorer 3.0
  • Microsoft Internet Explorer 4.0 128 ビット版
  • Microsoft Internet Explorer 4.01 Service Pack 2
  • Microsoft Internet Explorer 5.0
  • Microsoft Internet Explorer 5.01
  • Microsoft Internet Explorer 5.5
  • Microsoft Visual Basic 4.0 16-bit Enterprise Edition
  • Microsoft Visual Basic 4.0 32-Bit Enterprise Edition
  • Microsoft Visual FoxPro 3.0 Standard Edition
  • Microsoft Visual FoxPro 3.0b Standard Edition
  • Microsoft Visual FoxPro 5.0 Standard Edition
  • Microsoft Visual C++ 2.0 Professional Edition
  • Microsoft Visual C++ 2.1
  • Microsoft Visual C++ 2.2
  • Microsoft Visual C++ 4.0 Standard Edition
  • Microsoft Visual C++ 4.1 Subscription
  • Microsoft Visual C++ 4.2 Enterprise Edition
  • Microsoft Visual C++ 6.0 Enterprise Edition
  • Microsoft Visual C++ 4.2 Professional Edition
  • Microsoft Visual C++ 6.0 Professional Edition
キーワード:?
kbfaq kbinfo kbusage KB159621
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com