コンポーネント オブジェクト モデル (COM)

目的

COM は、対話できるバイナリ ソフトウェア コンポーネントを作成するための、プラットフォームに依存しない分散オブジェクト指向システムです。 COM は、Microsoft の OLE (複合ドキュメント) および ActiveX (インターネット対応コンポーネント) テクノロジの基盤テクノロジです。

Tip

最新の C++ と COM: COM インターフェイスを使用する新しい C++ コードを記述する場合は、生の AddRef/Release 呼び出しよりもスマート ポインター ラッパーを優先します。

Approach いつ使用するか Header
C++/WinRTwinrt::com_ptr<T> 新しい Windows ランタイム またはクラシック COM コード <winrt/base.h> (C++/WinRT プロジェクション)
WRLMicrosoft::WRL::ComPtr<T> 既存のコードベース、クラシック COM、C++/WinRT 依存関係なし <wrl/client.h>
RAW COM (AddRef/Release) 低レベル ライブラリ、ABI 境界、COM サーバーの実装 <unknwn.h>

スマート ポインターにより、最も一般的な COM のバグ (リーク参照、二重リリース、リリース後の使用) が排除されます。 詳細については、「 参照カウントによるオブジェクトの有効期間の管理 」を参照してください。

該当する場合

COM オブジェクトは、さまざまなプログラミング言語で作成できます。 C++ などのオブジェクト指向言語は、COM オブジェクトの実装を簡略化するプログラミング メカニズムを提供します。 これらのオブジェクトは、リモート コンピューター上であっても、他のプロセス内の 1 つのプロセス内に存在できます。

実行時の要件

特定のインターフェイスまたは機能を使用するために必要なオペレーティング システムについては、インターフェイスまたは関数のドキュメントの要件セクションを参照してください。

このセクションでは、次の操作を行います。

トピック 説明
COM の基礎
基本的な概念とプログラミング リファレンスについて説明します。
OLE とデータ転送
複合ドキュメントとデータ転送について説明します。
コントロールとプロパティ ページ
ActiveX コントロールとプロパティ ページについて説明します。
COM 言語翻訳
プログラミング言語の違いについて説明し、COM オブジェクト構文をある言語から別の言語に翻訳する方法について説明します。
トピック 説明
COM の基礎
基本的な概念とプログラミング リファレンスについて説明します。
OLE とデータ転送
複合ドキュメントとデータ転送について説明します。
コントロールとプロパティ ページ
ActiveX コントロールとプロパティ ページについて説明します。
COM 言語翻訳
プログラミング言語の違いについて説明し、COM オブジェクト構文をある言語から別の言語に翻訳する方法について説明します。
トピック 説明
コンポーネント オブジェクト モデル (COM)
COM は、対話できるバイナリ ソフトウェア コンポーネントを作成するための、プラットフォームに依存しない分散オブジェクト指向システムです。 COM は、Microsoft の OLE (複合ドキュメント) および ActiveX (インターネット対応コンポーネント) テクノロジの基盤テクノロジです。
Automation
自動化により、ソフトウェア パッケージはスクリプト ツールやその他のアプリケーションに固有の機能を公開できます。 オートメーションではコンポーネント オブジェクト モデル (COM) が使用されますが、インプレース アクティブ化など、他の OLE 機能とは別に実装できます。
Microsoft インターフェイス定義言語 (MIDL)
Microsoft インターフェイス定義言語 (MIDL) は、クライアント プログラムとサーバー プログラム間のインターフェイスを定義します。 Microsoft には、開発者がリモート プロシージャ コール (RPC) インターフェイスと COM/DCOM インターフェイスに必要なインターフェイス定義言語 (IDL) ファイルとアプリケーション構成ファイル (ACF) を作成できるようにするために、プラットフォーム ソフトウェア開発キット (SDK) を備えた MIDL コンパイラが含まれています。 MIDL では、OLE オートメーション用のタイプ ライブラリの生成もサポートされています。
構造化ストレージ
Structured Storage は、ストレージとストリームと呼ばれるオブジェクトの構造化コレクションとして 1 つのファイルを処理することで、COM でファイルとデータの永続化を提供します。
COM+
COM+ は、Microsoft コンポーネント オブジェクト モデル (COM) と Microsoft Transaction Server (MTS) の進化です。 COM+ は、COM、MTS、およびその他の COM ベースのテクノロジを使用して記述されたアプリケーションに基づいて構築され、拡張されます。