COM(コンポーネントオブジェクトモデル)
公開インターフェース、レジストリ登録、Apartment Modelなどを土台にした、Windowsのバイナリ互換コンポーネントモデル。
- 概念URI
https://comcomponent.com/knowledge/com/
- 別名・表記
- Component Object Model
- 下位概念
- ActiveX / CLSID(Class ID) / ProgID(Programmatic Identifier) / 型ライブラリ(TLB) / Reg-Free COM(登録不要COM) / COM LocalServer(別プロセスCOMサーバー) / COMアパートメントモデル(STA/MTA) / COMインターフェース / vtable(仮想関数テーブル) / IID(インターフェース識別子) / QueryInterface / OLEオブジェクト
- 最終確認日
- 2026-08-01
- 機械可読データ
- JSON-LD
この概念が関わる関係
- ActiveXはCOM(コンポーネントオブジェクトモデル)を利用します。ActiveXは実務では、COMベースのコントロールやその周辺資産をまとめて指す言葉として使われる。 / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- MFC(Microsoft Foundation Classes)はCOM(コンポーネントオブジェクトモデル)を利用します。ATLやMFCで作られたCOM LocalServer EXEは、慣例として`/regserver`と`/unregserver`引数で自己登録・解除に対応することが多い。 / 確度: 条件付きの関係 / 確認日: 2026-08-01 出典
- COM(コンポーネントオブジェクトモデル)は型ライブラリ(TLB)を利用します。本記事のように型付きの呼び出しを型ライブラリで共有する場合、COMはインターフェースの型情報をIDLで定義し型ライブラリとしてバイナリ化することで、呼び出し側とサーバー側が同じ契約を共有する(型ライブラリを持たないCOMインターフェースもある)。 / 確度: 条件付きの関係 / 確認日: 2026-08-01 出典
- COM(コンポーネントオブジェクトモデル)はHKEY_CURRENT_USER\Software\Classesを利用します。COMはHKEY_CURRENT_USER\Software\Classesを先に見てから、コンピューター全体の情報を扱う。 / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- COM(コンポーネントオブジェクトモデル)はCOMインターフェースを利用します。COMは一意なIIDを持つ不変のインターフェースを部品の公開契約として使う設計である / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- COM host(*.comhost.dll)はCOM(コンポーネントオブジェクトモデル)の実装を担います。*.comhost.dllは、.NETクラスライブラリをCOMとして起動するための入口の実装を担う。 / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- VBA(Visual Basic for Applications)はCOM(コンポーネントオブジェクトモデル)を利用します。VBAはCOM(Component Object Model)を経由して、外部の.NETコンポーネントを呼び出す。外部コンポーネントを呼び出す場合の話で、VBA単体で完結するコードには当てはまらない / 確度: 条件付きの関係 / 確認日: 2026-08-01 出典
- COM(コンポーネントオブジェクトモデル)はIID(インターフェース識別子)を前提とします。COMはインターフェイスをIID(Interface ID)で一意に識別することを前提とする契約である。 / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- COM(コンポーネントオブジェクトモデル)はCLSID(Class ID)を前提とします。COMはクラスをCLSIDで一意に識別することを前提とする契約である。 / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- COM(コンポーネントオブジェクトモデル)はHRESULTを利用します。COMはエラーをHRESULTで表し、.NET側で投げられた例外はVBAからはこのHRESULTを持つCOMエラーとして見える / 確度: 確立した関係 / 確認日: 2026-08-02 出典
- Media FoundationはCOM(コンポーネントオブジェクトモデル)を利用します。Media Foundationはsource/transform/sink/activation/attributes/callbackなど部品間の境界をCOMインターフェースで表現している / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- COM(コンポーネントオブジェクトモデル)はIUnknownを前提とします。COMのすべてのインターフェースは共通の基底であるIUnknownの実装を前提とする / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- COM(コンポーネントオブジェクトモデル)はHRESULTを利用します。COMのメソッド呼び出しは成否をHRESULTという戻り値の型で表す / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- IMFSourceReader(Source Reader)はCOM(コンポーネントオブジェクトモデル)を利用します。IMFSourceReaderはCOMインターフェースとして定義され、戻り値や設定オブジェクトの受け渡しにCOMの作法が使われる / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- IMFTransform(MFT)はCOM(コンポーネントオブジェクトモデル)を利用します。MFT(IMFTransform)もCOMインターフェースとして定義される / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- IMFAttributesはCOM(コンポーネントオブジェクトモデル)を利用します。IMFAttributesはGUIDをキーにした設定・型情報をCOMインターフェース越しに保持する / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- COMスマートポインタ(ComPtr/wil::com_ptr)はCOM(コンポーネントオブジェクトモデル)に対する本記事の推奨です。新規にCOMインターフェースを扱うC++コードでは、生ポインタでのAddRef/Release管理よりComPtrやwil::com_ptrのようなスマートポインタが推奨される / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- ActiveXはCOM(コンポーネントオブジェクトモデル)を前提とします。ActiveXコントロールはCOM(コンポーネントオブジェクトモデル)のコンポーネントとして実装されており、ホストはCOMの仕組みでそのクラスを生成する / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- COM(コンポーネントオブジェクトモデル)はCLSID(Class ID)を利用します。COMはCLSIDというGUIDでクラスを一意に識別し、レジストリ経由でアクティブ化する場合はレジストリのCLSIDキー配下からその値で実装を引く(side-by-sideマニフェストを使うregistration-free COMでは、レジストリではなくマニフェストから引く) / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- COM(コンポーネントオブジェクトモデル)はWOW6432Nodeに保存されます。32bit Officeを64bit Windows上で使う場合、COMの登録実体はWOW6432Node配下のCLSIDキーに保存される / 確度: 条件付きの関係 / 確認日: 2026-08-01 出典
- regsvr32はCOM(コンポーネントオブジェクトモデル)の実装を担います。regsvr32はネイティブのCOM/ActiveX DLLのレジストリ登録・登録解除を実装するコマンドラインツールである / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- Regasm.exeはCOM(コンポーネントオブジェクトモデル)の実装を担います。.NETアセンブリのCOM登録はregsvr32ではなくRegAsmで行う / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- COM(コンポーネントオブジェクトモデル)はbitness一致要件に対する本記事の推奨です。同一プロセス内でのビット一致要件を越える必要がある場合、プロセスを分離しCOMのアウトプロセスサーバーで橋を架けるのが選択肢になる / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- PowerShellはCOM(コンポーネントオブジェクトモデル)を利用します。PowerShellはNew-Object -ComObjectでCOMオブジェクトを作成し、Excelなどを操作できる / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- COM(コンポーネントオブジェクトモデル)はCOMアパートメントモデル(STA/MTA)を利用します。COMは、どのスレッドからコンポーネントを呼んでよいかを決めるApartment Modelを土台にする。 / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- Visual Basic 6.0(VB6)はCOM(コンポーネントオブジェクトモデル)を利用します。VB6はCOMコンポーネントを型付きで呼び出せる言語・開発環境であり、ActiveX/OCXコントロールを画面部品として抱えることが多い / 確度: 確立した関係 / 確認日: 2026-08-01 出典 出典
- COM(Component Object Model)はCOM(コンポーネントオブジェクトモデル)を前提とします。COM相互運用は、COM(コンポーネントオブジェクトモデル)の仕組みの上に成り立つ / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- ホストオブジェクト公開(AddHostObjectToScript)はCOM(コンポーネントオブジェクトモデル)を利用します。AddHostObjectToScriptによるホストオブジェクト公開は、内部的にCOMの仕組みで動く。 / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- ActiveXはCOM(コンポーネントオブジェクトモデル)を利用します。ActiveXは、COMを基盤にした再利用可能なソフトウェア部品、特にホストやコンテナに埋め込んで使うコントロールとして成り立つ。 / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- OLE/AutomationはCOM(コンポーネントオブジェクトモデル)を利用します。OLE/AutomationはCOMを基盤にした、埋め込みや自動化のための仕組みである。 / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- COM(コンポーネントオブジェクトモデル)はCLSID(Class ID)を利用します。COMはCLSIDというGUIDでクラス(部品)を一意に識別し、レジストリの登録もこの値で引く。 / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- COM(コンポーネントオブジェクトモデル)はCOMアパートメントモデル(STA/MTA)を利用します。COMはSTA/MTAというアパートメントモデルで、どのスレッドから部品を呼んでよいかを取り決める。 / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- regsvr32はCOM(コンポーネントオブジェクトモデル)を自動化します。regsvr32はCOMコンポーネント(DLL/OCX)のレジストリへの登録・登録解除を自動化するコマンドラインツールである。 / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- OLEオブジェクトはCOM(コンポーネントオブジェクトモデル)を前提とします。複合ドキュメントのオブジェクトは、文書に埋め込みまたはリンクできるCOMオブジェクトであり、IUnknownに加えIOleObject・IViewObject2などの複合ドキュメント固有インターフェースを公開する(リンクオブジェクトはさらにIOleLinkを実装する)。 / 確度: 確立した関係 / 確認日: 2026-08-28 出典
- Reg-Free COM(登録不要COM)はCOM(コンポーネントオブジェクトモデル)を利用します。Reg-Free COMは解決方法を変えるだけで、COMそのものが不要になるわけではない / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- VBA(Visual Basic for Applications)はCOM(コンポーネントオブジェクトモデル)を利用します。古いVBAコードは、COMコンポーネントへの依存を持つことがある / 確度: 条件付きの関係 / 確認日: 2026-08-01 出典
- COM(コンポーネントオブジェクトモデル)はIUnknownを利用します。すべてのCOMインターフェースはIUnknownを継承し、QueryInterface・AddRef・Releaseの3メソッドを備える契約になっている。 / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- COM(コンポーネントオブジェクトモデル)はQueryInterfaceを利用します。実行時に別のインターフェースへの対応を尋ねるQueryInterfaceが、実装を知らずに機能を確認する手段になっている。 / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- COM(コンポーネントオブジェクトモデル)はCOMの参照カウント(AddRef/Release)を利用します。AddRefで増え、Releaseで減って0になると破棄される参照カウントで、COMオブジェクトの寿命を管理する。 / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- COM(コンポーネントオブジェクトモデル)はCLSID(Class ID)を利用します。コンポーネントの実装はCLSIDという世界で一意なGUIDで識別される。 / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- COM(コンポーネントオブジェクトモデル)はIID(インターフェース識別子)を利用します。インターフェースの契約もIIDというGUIDで一意に識別され、名前の衝突を防ぐ。 / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- COM(コンポーネントオブジェクトモデル)はHRESULTを利用します。COMメソッドは例外ではなく整数のHRESULTで成否を返し、これが言語をまたいだ解釈を可能にする。 / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- COM(コンポーネントオブジェクトモデル)はCOMのバイナリ互換性の実装を担います。仮想関数テーブルの並び順だけを規約にすることで、言語やコンパイラを問わない再利用を実現している。 / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- COM(コンポーネントオブジェクトモデル)はCOMのバージョン共存の実装を担います。既存インターフェースを変えずに新しいインターフェースを追加していく設計が、後方互換を保ったバージョン共存を実現する。 / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- COM(コンポーネントオブジェクトモデル)はIn-proc COM(DLLサーバー)を利用します。コンポーネントをそう登録した場合、呼び出し側と同じプロセスにDLLとして読み込むIn-proc(DLLサーバー)という配置形態を持つ。 / 確度: 条件付きの関係 / 確認日: 2026-08-01 出典
- COM(コンポーネントオブジェクトモデル)はCOM LocalServer(別プロセスCOMサーバー)を利用します。コンポーネントをそう登録した場合、別プロセスのEXEとして起動するOut-of-proc(EXEサーバー、LocalServer)という配置形態も持つ。 / 確度: 条件付きの関係 / 確認日: 2026-08-01 出典
- COM(コンポーネントオブジェクトモデル)はProxy/Stubを利用します。別プロセスや別マシンの呼び出しでも、Proxy/Stubが引数の詰め直し(マーシャリング)とプロセス間通信を隠し、呼び出し側のコードの見た目を変えない。 / 確度: 条件付きの関係 / 確認日: 2026-08-01 出典
- COM(コンポーネントオブジェクトモデル)はIDL(インターフェース定義言語)を利用します。インターフェースという契約は通常IDLで先に定義し、そこから各言語向けのヘッダーを生成する。 / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- ActiveXはCOM(コンポーネントオブジェクトモデル)を前提とします。ActiveXは、実務ではCOMベースのコントロールやその周辺資産をまとめて指す言葉として使われる。 / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- 残す・包む・置き換える(段階移行方針)はCOM(コンポーネントオブジェクトモデル)に対する本記事の推奨です。COM/ActiveX/OCXが絡む既存資産では、まず用語を押さえたうえで部品ごとに残す・包む・置き換えるのどれにするかを決めるとよいとされる / 確度: 条件付きの関係 / 確認日: 2026-08-01 出典
- 既存Windows装置ソフト資産はCOM(コンポーネントオブジェクトモデル)を利用します。既存Windows装置ソフト資産にはCOMベースの部品が含まれることがある / 確度: 条件付きの関係 / 確認日: 2026-08-01 出典
- MSI(Windows Installer)はCOM(コンポーネントオブジェクトモデル)を利用します。アプリがCOMコンポーネントの登録を必要とする場合、MSIはそのCOM登録やfile association、machine-wideな設定を伴う導入に利用される。COM登録を伴わないアプリのMSIも多い / 確度: 条件付きの関係 / 確認日: 2026-08-01 出典
- サーバーサイドOffice COM自動化はCOM(コンポーネントオブジェクトモデル)を利用します。サーバーサイドOffice COM自動化はExcel.ApplicationなどをCOMコンポーネントとして操作する / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- COM(コンポーネントオブジェクトモデル)は32bit/64bitブリッジに対する本記事の推奨です。32bitアプリから64bitのDLLを使うような境界越えでは、COM基盤がマーシャリングを肩代わりするアウトプロセスCOMサーバーが今も実用的な選択肢である / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- COM(コンポーネントオブジェクトモデル)をプロセス間通信(IPC)に用いることは推奨されません。COM(アウトプロセス)は新規のアプリ間通信の第一候補にはもうしないが、VBA連携や32/64bitブリッジの文脈では今も現役の道具として温存される / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- COM(コンポーネントオブジェクトモデル)はWindowsの後方互換性を前提とします。現場で長く使われてきたCOMコンポーネントやExcel連携が今も動くのは、Windowsがそれらを動かし続けられるようにしているからである / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- COM(コンポーネントオブジェクトモデル)はbitness一致要件を前提とします。in-procのCOMコンポーネントは、ホストプロセスと32bit/64bitのビット構成が一致していないと読み込めない。 / 確度: 条件付きの関係 / 確認日: 2026-08-01 出典
- COM(コンポーネントオブジェクトモデル)はregsvr32で構成できます。COMコンポーネントは配置しただけでは動かず、regsvr32でレジストリに登録する必要がある。32bit版と64bit版のregsvr32を取り違えると登録に失敗する。 / 確度: 条件付きの関係 / 確認日: 2026-08-01 出典
- シェル拡張(エクスプローラー拡張)はCOM(コンポーネントオブジェクトモデル)を利用します。Shell拡張はExplorerなどのプロセスへ読み込まれて動作するCOMコンポーネントとして実装される / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- AppNotification(Windows App SDK)はCOM(コンポーネントオブジェクトモデル)を前提とします。非パッケージアプリでのAppNotificationManager.Register()は、COMサーバー登録やAUMID相当の処理を自動で行う / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- WinRT(Windows Runtime)はCOM(コンポーネントオブジェクトモデル)を前提とします。Windows RuntimeはCOMに基づく(based on COM)。COMコンポーネントとWinRTクラスはどちらもインターフェースを通じて機能を公開し、参照カウント・QueryInterface・HRESULTというCOMの約束ごとがそのまま使われる。 / 確度: 確立した関係 / 確認日: 2026-08-29 出典
この概念を扱う記事
一次資料
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。