知識マップ: COM / ActiveX / OCX とは何か - 違いと関係をまとめて解説
記事「COM / ActiveX / OCX とは何か - 違いと関係をまとめて解説」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。
COMはWindowsでコンポーネント同士がバイナリ契約でやり取りするための土台であり、ActiveXはCOMとOLE/Automationを基盤にした、ホストやコンテナへ埋め込んで使う再利用可能な部品の文脈である。OCXはそのActiveXコントロールの実装としてよく使われるファイル拡張子にすぎず、概念そのものではない。VB6やMFC、WinFormsからのCOMラッパー利用など、ActiveXはブラウザ専用ではなくWindowsアプリ側でも長く使われてきた。CLSIDとProgID、型ライブラリ、STA/MTAのアパートメントモデルがCOMの識別と呼び出しを支え、regsvr32による管理者権限での登録と32bit/64bitのビット一致がOCXの配置を左右する。ブラウザ側のActiveXは、後方互換の橋であるIEモードを前提に動き続けている。
flowchart LR
accTitle: COM・ActiveX・OCXの知識マップ
accDescr: COMを土台にOLE/AutomationとActiveXが積み重なりOCXという実装ファイルに至る関係、CLSID・ProgID・型ライブラリ・アパートメントモデルというCOMの識別と呼び出しの仕組み、regsvr32による管理者権限での登録とビット一致の制約、ブラウザ側ActiveXがIEモードに依存する構図を示す図です。
com["COM(コンポーネントオブジェクトモデル)"]
activex["ActiveX"]
ocx["OCX"]
ole_automation["OLE/Automation"]
clsid["CLSID(Class ID)"]
progid["ProgID(Programmatic Identifier)"]
vb6["Visual Basic 6.0(VB6)"]
type_library["型ライブラリ(TLB)"]
dotnet[".NET(Core以降)"]
com_apartment_model["COMアパートメントモデル(STA/MTA)"]
regsvr32["regsvr32"]
admin_rights["管理者権限"]
bitness_match_requirement["bitness一致要件"]
ie_mode["IEモード"]
mfc["MFC(Microsoft Foundation Classes)"]
windows_forms["Windows Forms"]
dumpbin["dumpbin"]
activex -->|"利用する"| com
ocx -->|"実装を担う"| activex
ole_automation -->|"利用する"| com
activex -->|"利用する"| ole_automation
com -->|"利用する"| clsid
progid -->|"利用する"| clsid
vb6 -.->|"利用する"| type_library
dotnet -.->|"利用する"| type_library
com -->|"利用する"| com_apartment_model
regsvr32 -->|"自動化する"| com
regsvr32 -.->|"前提とする"| admin_rights
ocx -->|"で構成できる"| regsvr32
ocx -->|"前提とする"| bitness_match_requirement
activex -.->|"前提とする"| ie_mode
vb6 -->|"利用する"| activex
mfc -.->|"利用する"| activex
windows_forms -.->|"利用する"| activex
ocx -->|"で確認できる"| dumpbin
概念間の関係(全18件)
図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。
- ActiveXはCOM(コンポーネントオブジェクトモデル)を利用します。
- OCXはActiveXの実装を担います。
- OLE/AutomationはCOM(コンポーネントオブジェクトモデル)を利用します。
- ActiveXはOLE/Automationを利用します。
- COM(コンポーネントオブジェクトモデル)はCLSID(Class ID)を利用します。
- ProgID(Programmatic Identifier)はCLSID(Class ID)を利用します。
- Visual Basic 6.0(VB6)は型ライブラリ(TLB)を利用します。
- .NET(Core以降)は型ライブラリ(TLB)を利用します。
- COM(コンポーネントオブジェクトモデル)はCOMアパートメントモデル(STA/MTA)を利用します。
- regsvr32はCOM(コンポーネントオブジェクトモデル)を自動化します。
- regsvr32は管理者権限を前提とします。
- OCXはregsvr32で構成できます。
- OCXはbitness一致要件を前提とします。
- ActiveXはIEモードを前提とします。
- Visual Basic 6.0(VB6)はActiveXを利用します。
- MFC(Microsoft Foundation Classes)はActiveXを利用します。
- Windows FormsはActiveXを利用します。
- OCXはdumpbinで確認できます。
主要概念の定義
機械可読データ
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。