COM / OLE / ActiveX / IDispatchの混乱
質問
これらの用語の違いについて頭をかき回すことはできません。
COMとActiveXの同義語ですか?
ActiveXオブジェクトは、IDispatchを公開するCOMオブジェクトにすぎませんか?
古いMSDNページの多くは、COMコンテキストのないIDispatchに言及しています。別の履歴があり、ライフサイクルの後半でCOMの「傘」の下に導入されたばかりですか?
OLEはどこに収まりますか? MFCの名前付けとMSDN全般に(かなり)存在しているのですか?すべてがレガシーですか?
ウィキペディアは、ある程度の洞察を提供しますが、あまり重要ではありません。詳細なリファレンスが見つかりませんでした。
解決
すぐに見つかる別のこと COMは、マーケティングがフィールドトリップであったことです 用語のある日。むしろその後 理解を促進するのに役立ち、 ほとんどの場合、それは促進します 神秘。 ... OLE、ActiveX、リモート可能 オブジェクト-これは何を意味します 週間? ...
COMは、 特定の問題-単語を許可する方法 スプレッドシートを編集するプロセッサ ユーザーが終了する必要のないレター それを行うワープロ。この ソリューションはOLEと呼ばれていました。 ... しかしながら、 OLEの2番目のリリース(OLE2)では、 作成者はOLE32.DLLを次のように変更しました より多くの基本機能を公開する APIを使用できるようにOLEの アプリケーションがアクセスできるようにする 別の機能。このAPI、 1993年以来あまり変わっていませんが、 COMと見なされるものです API。 ...
COM APIが公開されると、 マイクロソフトはそれを使用して、 次に、OLEコントロールを呼び出して許可します 洗練されたコントロール(例:ボタン そのスパイラル、再生するリストボックス 音楽)Visual C ++で記述された Visual Basicにアクセス可能 アプリケーション。最終的にこれと同じ 技術は制御を可能にするために使用されました ダウンロードしてWebで使用する ブラウザ。この時点で、名前 ActiveXコントロールまたは単に変更 純粋にマーケティング用のActiveX 理由。パッケージ化できますが ActiveXコントロールの機能、 その要件は ユーザーのサポートに特化 インターフェース制御。
私はまだ最後の文に興味があります-COMオブジェクトは、ActiveXコントロールとしての資格を得るためにいくつかの追加要件を満たす必要がありますか? -しかし、それを手放すには十分です。
ご回答ありがとうございます。
他のヒント
ActiveXはCOM向けにマーケティングされていますが、ActiveXは通常「ActiveXコントロール」のコンテキストで使用されます。これはGUIオブジェクトです。
IDispatchは、すべてのメソッドと引数の型を事前に知っておく必要があるコンパイル時ではなく、クライアントプログラムが実行時に動的にメソッドを呼び出すことができるように、COMオブジェクトによって実装されるインターフェイスです。 。
OLEは、以前のバージョンのCOMです。
OLEについて:COMのルーツはOLEにあります。しかし、今日、OLEはCOMの上に構築されていると考えられ、その名前が示すもの、つまりドキュメントのリンクと埋め込みに主に使用されています。 COM自体はいくつかのインターフェイス(IUnknown、IClassFactory、IMallocなど)のみを定義しますが、OLEはIMoniker、IOleItemComtainerなどの追加のインターフェイスを追加します。
要約すると、COMは基盤であり、ActiveXとOLEはCOM上のレイヤーです。