@prefix schema: <https://schema.org/> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix ks: <https://comcomponent.com/vocab/> .

<https://comcomponent.com/blog/2026/03/13/000-what-is-com-activex-ocx/#article>
    schema:about <https://comcomponent.com/knowledge/com/>, <https://comcomponent.com/knowledge/activex/>, <https://comcomponent.com/knowledge/ocx/> ;
    schema:mentions <https://comcomponent.com/knowledge/vb6/>, <https://comcomponent.com/knowledge/mfc/>, <https://comcomponent.com/knowledge/windows-forms/>, <https://comcomponent.com/knowledge/regsvr32/>, <https://comcomponent.com/knowledge/bitness-match-requirement/>, <https://comcomponent.com/knowledge/clsid/>, <https://comcomponent.com/knowledge/progid/>, <https://comcomponent.com/knowledge/type-library/>, <https://comcomponent.com/knowledge/com-apartment-model/>, <https://comcomponent.com/knowledge/admin-rights/>, <https://comcomponent.com/knowledge/ie-mode/>, <https://comcomponent.com/knowledge/dotnet/>, <https://comcomponent.com/knowledge/ole-automation/>, <https://comcomponent.com/knowledge/dumpbin/> .

<https://comcomponent.com/knowledge/com/> a skos:Concept ;
    skos:prefLabel "COM(コンポーネントオブジェクトモデル)"@ja ;
    skos:definition "公開インターフェース、レジストリ登録、Apartment Modelなどを土台にした、Windowsのバイナリ互換コンポーネントモデル。"@ja ;
    skos:altLabel "Component Object Model" ;
    ks:uses <https://comcomponent.com/knowledge/clsid/> ;
    ks:uses <https://comcomponent.com/knowledge/com-apartment-model/> .

<https://comcomponent.com/knowledge/activex/> a skos:Concept ;
    skos:prefLabel "ActiveX"@ja ;
    skos:definition "実務ではCOMベースのコントロールやその周辺資産をまとめて指す言葉として使われる技術群。特に.ocx形式のUIコントロールやIE/コンテナへ埋め込む部品を含むことが多い。"@ja ;
    skos:altLabel "ActiveXコントロール"@ja ;
    skos:broader <https://comcomponent.com/knowledge/com/> ;
    ks:uses <https://comcomponent.com/knowledge/com/> ;
    ks:uses <https://comcomponent.com/knowledge/ole-automation/> .

<https://comcomponent.com/knowledge/ocx/> a skos:Concept ;
    skos:prefLabel "OCX"@ja ;
    skos:definition "ActiveXコントロールの実体を持つ.ocx形式のファイル。in-procの形態でホストプロセスに読み込まれる。"@ja ;
    skos:altLabel ".ocxファイル"@ja ;
    skos:altLabel "OLEカスタムコントロール"@ja ;
    skos:broader <https://comcomponent.com/knowledge/activex/> ;
    ks:implements <https://comcomponent.com/knowledge/activex/> ;
    ks:configuredBy <https://comcomponent.com/knowledge/regsvr32/> ;
    ks:requires <https://comcomponent.com/knowledge/bitness-match-requirement/> ;
    ks:verifiedBy <https://comcomponent.com/knowledge/dumpbin/> .

<https://comcomponent.com/knowledge/ole-automation/> a skos:Concept ;
    skos:prefLabel "OLE/Automation"@ja ;
    skos:definition "COMを基盤に、アプリケーション間の埋め込みや自動化操作を実現する仕組み。ActiveXの前段に位置づけられる。"@ja ;
    ks:uses <https://comcomponent.com/knowledge/com/> .

<https://comcomponent.com/knowledge/clsid/> a skos:Concept ;
    skos:prefLabel "CLSID(Class ID)"@ja ;
    skos:definition "COMコンポーネントの実装(クラス)を一意に指すGUID。レジストリ上の登録の鍵になる識別子。"@ja ;
    skos:altLabel "Class ID" ;
    skos:broader <https://comcomponent.com/knowledge/com/> .

<https://comcomponent.com/knowledge/progid/> a skos:Concept ;
    skos:prefLabel "ProgID(Programmatic Identifier)"@ja ;
    skos:definition "CLSIDに付けた、人が読める文字列の名前。`Excel.Application`のような形でCLSIDに対応付けられる。"@ja ;
    skos:altLabel "Programmatic Identifier" ;
    skos:broader <https://comcomponent.com/knowledge/com/> ;
    ks:uses <https://comcomponent.com/knowledge/clsid/> .

<https://comcomponent.com/knowledge/vb6/> a skos:Concept ;
    skos:prefLabel "Visual Basic 6.0(VB6)"@ja ;
    skos:definition "COMコンポーネントを型付きで呼び出せる、レガシーなVisual Basicの開発環境・言語。"@ja ;
    skos:altLabel "VB6" ;
    ks:uses <https://comcomponent.com/knowledge/activex/> .

<https://comcomponent.com/knowledge/type-library/> a skos:Concept ;
    skos:prefLabel "型ライブラリ(TLB)"@ja ;
    skos:definition "インターフェース、メソッド、引数の型といった型情報をバイナリで持つファイル。VB6や.NETから型付きでCOMを呼び出す際の情報源になる。"@ja ;
    skos:altLabel "Type Library" ;
    skos:altLabel "TLB" ;
    skos:broader <https://comcomponent.com/knowledge/com/> .

<https://comcomponent.com/knowledge/dotnet/> a skos:Concept ;
    skos:prefLabel ".NET(Core以降)"@ja ;
    skos:definition ".NET Frameworkの後継となる、クロスプラットフォーム対応の.NETランタイム(.NET 5以降)。"@ja ;
    skos:altLabel ".NET Core" ;
    skos:altLabel "モダンな.NET"@ja .

<https://comcomponent.com/knowledge/com-apartment-model/> a skos:Concept ;
    skos:prefLabel "COMアパートメントモデル(STA/MTA)"@ja ;
    skos:definition "どのスレッドからCOMコンポーネントを呼んでよいかを決める、COMのスレッドモデルの約束。"@ja ;
    skos:altLabel "STA" ;
    skos:altLabel "MTA" ;
    skos:altLabel "Single/Multi Threaded Apartment" ;
    skos:broader <https://comcomponent.com/knowledge/com/> .

<https://comcomponent.com/knowledge/regsvr32/> a skos:Concept ;
    skos:prefLabel "regsvr32"@ja ;
    skos:definition "DLLやOCXなどのCOMコンポーネントをレジストリへ登録・登録解除するコマンドラインツール。"@ja ;
    skos:altLabel "regsvr32.exe" ;
    ks:automates <https://comcomponent.com/knowledge/com/> .

<https://comcomponent.com/knowledge/admin-rights/> a skos:Concept ;
    skos:prefLabel "管理者権限"@ja ;
    skos:definition "コンピューター全体の設定を変更できる権限。"@ja ;
    skos:altLabel "昇格"@ja .

<https://comcomponent.com/knowledge/bitness-match-requirement/> a skos:Concept ;
    skos:prefLabel "bitness一致要件"@ja ;
    skos:definition "ネイティブモジュール(in-procのCOMコンポーネント、P/Invokeで呼ぶDLL、ベンダー提供SDKのDLLなど)を読み込むホストプロセスと、そのモジュールのビット構成(32bit/64bit)が一致していなければならないという制約。"@ja ;
    skos:altLabel "32bit/64bitの一致"@ja ;
    skos:altLabel "bitness match" .

<https://comcomponent.com/knowledge/ie-mode/> a skos:Concept ;
    skos:prefLabel "IEモード"@ja ;
    skos:definition "設定されたサイトに対してMicrosoft Edgeが IE系のエンジンを使い、ActiveXを含む一部のIE機能を動かすための互換レイヤー。延命策として位置づけられる。"@ja ;
    skos:altLabel "Internet Explorer mode" ;
    skos:broader <https://comcomponent.com/knowledge/microsoft-edge/> .

<https://comcomponent.com/knowledge/mfc/> a skos:Concept ;
    skos:prefLabel "MFC(Microsoft Foundation Classes)"@ja ;
    skos:definition "C++でWindowsデスクトップアプリやCOMサーバーを作るためのマイクロソフト製クラスライブラリ。"@ja ;
    skos:altLabel "Microsoft Foundation Class Library" .

<https://comcomponent.com/knowledge/windows-forms/> a skos:Concept ;
    skos:prefLabel "Windows Forms"@ja ;
    skos:definition "デスクトップGUIアプリケーションを構築するための.NET/.NET FrameworkのUIフレームワーク。"@ja ;
    skos:altLabel "WinForms" .

<https://comcomponent.com/knowledge/dumpbin/> a skos:Concept ;
    skos:prefLabel "dumpbin"@ja ;
    skos:definition "DLLやライブラリのエクスポート・インポート情報を表示できる、Visual Studio付属のコマンドラインツール。"@ja ;
    skos:altLabel "DUMPBIN /EXPORTS" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/activex/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/com/> ;
    schema:description "ActiveXは、COMを基盤にした再利用可能なソフトウェア部品、特にホストやコンテナに埋め込んで使うコントロールとして成り立つ。"@ja ;
    ks:evidence <https://learn.microsoft.com/ja-jp/windows/win32/com/component-object-model--com--portal> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/ocx/> ;
    rdf:predicate ks:implements ;
    rdf:object <https://comcomponent.com/knowledge/activex/> ;
    schema:description "OCXはActiveXコントロールの実装でよく使われるファイル拡張子で、実務では埋め込みコントロール系のCOM部品を指す。"@ja ;
    ks:evidence <https://learn.microsoft.com/ja-jp/windows/win32/com/activex-controls> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/ole-automation/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/com/> ;
    schema:description "OLE/AutomationはCOMを基盤にした、埋め込みや自動化のための仕組みである。"@ja ;
    ks:evidence <https://learn.microsoft.com/ja-jp/windows/win32/com/component-object-model--com--portal> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/activex/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/ole-automation/> ;
    schema:description "ActiveXはCOMそのものというよりOLE/Automationの上で使われるコントロール文脈として位置づけられる。"@ja ;
    ks:evidence <https://learn.microsoft.com/ja-jp/windows/win32/com/component-object-model--com--portal> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/com/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/clsid/> ;
    schema:description "COMはCLSIDというGUIDでクラス(部品)を一意に識別し、レジストリの登録もこの値で引く。"@ja ;
    ks:evidence <https://learn.microsoft.com/ja-jp/windows/win32/com/clsid-key-hklm> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/progid/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/clsid/> ;
    schema:description "ProgIDはCLSIDに付けた人間向けの別名で、Excel.Applicationのような文字列でCLSIDに対応付けられる。"@ja ;
    ks:evidence <https://learn.microsoft.com/ja-jp/windows/win32/com/clsid-key-hklm> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/vb6/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/type-library/> ;
    schema:description "参照設定で早期バインディングする場合、VB6は型ライブラリを読み込み、COM部品を型付きで呼び出す。CreateObjectによる遅延バインディングでは型ライブラリを読まない。"@ja ;
    ks:evidence <https://learn.microsoft.com/ja-jp/windows/win32/com/component-object-model--com--portal> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/dotnet/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/type-library/> ;
    schema:description "Interopアセンブリを生成する早期バインディングの場合、.NETは型ライブラリを参照してCOM部品を型付きで扱う。dynamicによる遅延バインディングでは型ライブラリを必要としない。"@ja ;
    ks:evidence <https://learn.microsoft.com/ja-jp/windows/win32/com/component-object-model--com--portal> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/com/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/com-apartment-model/> ;
    schema:description "COMはSTA/MTAというアパートメントモデルで、どのスレッドから部品を呼んでよいかを取り決める。"@ja ;
    ks:evidence <https://learn.microsoft.com/ja-jp/windows/win32/com/component-object-model--com--portal> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/regsvr32/> ;
    rdf:predicate ks:automates ;
    rdf:object <https://comcomponent.com/knowledge/com/> ;
    schema:description "regsvr32はCOMコンポーネント(DLL/OCX)のレジストリへの登録・登録解除を自動化するコマンドラインツールである。"@ja ;
    ks:evidence <https://learn.microsoft.com/ja-jp/windows-server/administration/windows-commands/regsvr32> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/regsvr32/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/admin-rights/> ;
    schema:description "HKEY_CLASSES_ROOT配下へマシン全体に登録するコンポーネントの場合、regsvr32による登録・登録解除には管理者権限が必要である。DllRegisterServerがHKCU配下だけに書くコンポーネントであれば、ユーザー単位の登録は管理者権限なしで行える"@ja ;
    ks:evidence <https://learn.microsoft.com/ja-jp/windows-server/administration/windows-commands/regsvr32> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/ocx/> ;
    rdf:predicate ks:configuredBy ;
    rdf:object <https://comcomponent.com/knowledge/regsvr32/> ;
    schema:description "OCXはregsvr32で登録・登録解除して構成する。64bit Windowsでは部品のbitnessに応じてSystem32/SysWOW64のregsvr32を使い分ける。"@ja ;
    ks:evidence <https://learn.microsoft.com/ja-jp/windows-server/administration/windows-commands/regsvr32> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/ocx/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/bitness-match-requirement/> ;
    schema:description "in-procのOCXは読み込むホストプロセスとビット構成(32bit/64bit)が一致していなければならず、32bit OCXは64bitプロセスへ直接読み込めない。"@ja ;
    ks:evidence <https://learn.microsoft.com/ja-jp/windows/win32/winprog64/registry-redirector> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/activex/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/ie-mode/> ;
    schema:description "ブラウザーで動くActiveXは、IE11デスクトップアプリが退役した現在、後方互換の橋であるMicrosoft EdgeのIEモードを前提に動き続けている。"@ja ;
    ks:evidence <https://learn.microsoft.com/ja-jp/lifecycle/faq/internet-explorer-microsoft-edge> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/vb6/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/activex/> ;
    schema:description "VB6アプリケーションはActiveXコントロールを配置してCOM部品を型付きで呼び出すホストの一つである。"@ja ;
    ks:evidence <https://learn.microsoft.com/ja-jp/windows/win32/com/activex-controls> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/mfc/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/activex/> ;
    schema:description "MFCのコンテナはActiveXコントロールをホストできる。ホストするかどうかはアプリの作りによる"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/cpp/mfc/activex-controls?view=msvc-170> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/windows-forms/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/activex/> ;
    schema:description "WinFormsはCOMラッパーを介して既存のActiveXコントロールを利用できる。利用するかどうかはアプリの作りによる"@ja ;
    ks:evidence <https://learn.microsoft.com/ja-jp/windows/win32/com/activex-controls> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/ocx/> ;
    rdf:predicate ks:verifiedBy ;
    rdf:object <https://comcomponent.com/knowledge/dumpbin/> ;
    schema:description "OCXが自己登録型のCOMサーバーかどうかは、dumpbin /exportsでDllRegisterServerがエクスポートされているかを確認して判定できる。"@ja ;
    ks:evidence <https://learn.microsoft.com/en-us/cpp/build/reference/dash-exports> ;
    ks:verifiedAt "2026-08-01" ;
    ks:certainty "established" .
