知識マップ: ActiveX / OCX を今どう扱うか - 残す・包む・置き換える判断表
記事「ActiveX / OCX を今どう扱うか - 残す・包む・置き換える判断表」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。
ActiveXは実務ではCOMベースのコントロールやその周辺資産を指す言葉として使われ、OCXはその実体を持つファイルである。in-procで動くOCXはホストプロセスとビット構成(32bit/64bit)を揃える必要があり、この制約を越えるにはCOM LocalServerのような別プロセス化でbitnessの壁を回避する。ブラウザ側ではMicrosoft Edge本体がActiveXを持たず、WebView2もActiveX依存やIE DOM前提のスクリプトをそのまま引き継げないため、IEモードが延命策として位置づけられる。包むための手段としては、AxHostとAximpによるWindows Formsホスト化、Reg-Free COMによるレジストリ登録なしの解決、regsvr32によるOCX登録があり、いずれもCLSID・ProgID・型ライブラリという識別子や型情報を前提にしている。
flowchart LR
accTitle: ActiveX/OCXを残す・包む・置き換える判断の知識マップ
accDescr: ActiveXとOCXがCOMを土台にすること、bitness不一致という制約と別プロセス化による回避、ブラウザ依存(Edge・IEモード・WebBrowser・WebView2)の非互換関係、包む手段(AxHost/Aximp/Reg-Free COM/LocalServer)がCLSIDやProgID、型ライブラリとどう結びつくかを示す図。
activex["ActiveX"]
ocx["OCX"]
com["COM(コンポーネントオブジェクトモデル)"]
com_apartment_model["COMアパートメントモデル(STA/MTA)"]
bitness_match_requirement["bitness一致要件"]
com_localserver["COM LocalServer(別プロセスCOMサーバー)"]
aximp["AxImp(ActiveX Control Importer)"]
axhost["AxHost"]
windows_forms["Windows Forms"]
clsid["CLSID(Class ID)"]
progid["ProgID(Programmatic Identifier)"]
vb6["Visual Basic 6.0(VB6)"]
type_library["型ライブラリ(TLB)"]
ie_mode["IEモード"]
microsoft_edge["Microsoft Edge"]
webbrowser_control["WebBrowserコントロール"]
webview2["Microsoft Edge WebView2"]
reg_free_com["Reg-Free COM(登録不要COM)"]
regsvr32["regsvr32"]
mfc["MFC(Microsoft Foundation Classes)"]
webview2_runtime["WebView2 Runtime"]
activex -->|"利用する"| com
ocx -->|"実装を担う"| activex
ocx -.->|"前提とする"| com_apartment_model
ocx -->|"前提とする"| bitness_match_requirement
com_localserver -->|"軽減する"| bitness_match_requirement
aximp -->|"利用する"| ocx
aximp -->|"利用する"| axhost
axhost -->|"実装を担う"| activex
axhost -->|"前提とする"| windows_forms
com_localserver -->|"前提とする"| clsid
progid -->|"前提とする"| clsid
vb6 -->|"前提とする"| type_library
aximp -->|"前提とする"| type_library
ie_mode -->|"前提とする"| microsoft_edge
microsoft_edge -.->|"両立しない"| activex
ie_mode -->|"利用する"| activex
webbrowser_control -.->|"利用する"| activex
webview2 -->|"両立しない"| activex
webview2 -.->|"の後継"| webbrowser_control
reg_free_com -->|"前提とする"| clsid
reg_free_com -.->|"前提とする"| progid
ocx -->|"で構成できる"| regsvr32
mfc -.->|"利用する"| com
webview2 -->|"前提とする"| webview2_runtime
概念間の関係(全24件)
図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。
- ActiveXはCOM(コンポーネントオブジェクトモデル)を利用します。
- OCXはActiveXの実装を担います。
- OCXはCOMアパートメントモデル(STA/MTA)を前提とします。
- OCXはbitness一致要件を前提とします。
- COM LocalServer(別プロセスCOMサーバー)はbitness一致要件を軽減します。
- AxImp(ActiveX Control Importer)はOCXを利用します。
- AxImp(ActiveX Control Importer)はAxHostを利用します。
- AxHostはActiveXの実装を担います。
- AxHostはWindows Formsを前提とします。
- COM LocalServer(別プロセスCOMサーバー)はCLSID(Class ID)を前提とします。
- ProgID(Programmatic Identifier)はCLSID(Class ID)を前提とします。
- Visual Basic 6.0(VB6)は型ライブラリ(TLB)を前提とします。
- AxImp(ActiveX Control Importer)は型ライブラリ(TLB)を前提とします。
- IEモードはMicrosoft Edgeを前提とします。
- Microsoft EdgeはActiveXと両立しません。
- IEモードはActiveXを利用します。
- WebBrowserコントロールはActiveXを利用します。
- Microsoft Edge WebView2はActiveXと両立しません。
- Microsoft Edge WebView2はWebBrowserコントロールの後継に当たります。
- Reg-Free COM(登録不要COM)はCLSID(Class ID)を前提とします。
- Reg-Free COM(登録不要COM)はProgID(Programmatic Identifier)を前提とします。
- OCXはregsvr32で構成できます。
- MFC(Microsoft Foundation Classes)はCOM(コンポーネントオブジェクトモデル)を利用します。
- Microsoft Edge WebView2はWebView2 Runtimeを前提とします。
主要概念の定義
機械可読データ
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。