現在オフラインです。再接続するためにインターネットの接続を待っています

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

この記事は、以前は次の 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 サイトを参照してください。
プロパティ

文書番号:159621 - 最終更新日: 08/08/2006 06:29:23 - リビジョン: 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
フィードバック