@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/winrt-is-com/#article>
    schema:about <https://comcomponent.com/knowledge/winrt/> ;
    schema:mentions <https://comcomponent.com/knowledge/com/>, <https://comcomponent.com/knowledge/iunknown/>, <https://comcomponent.com/knowledge/queryinterface/>, <https://comcomponent.com/knowledge/iinspectable/>, <https://comcomponent.com/knowledge/winmd/>, <https://comcomponent.com/knowledge/ecma-335/>, <https://comcomponent.com/knowledge/language-projection/>, <https://comcomponent.com/knowledge/cpp-winrt/>, <https://comcomponent.com/knowledge/cs-winrt/>, <https://comcomponent.com/knowledge/dotnet-builtin-winrt-support/>, <https://comcomponent.com/knowledge/winui/>, <https://comcomponent.com/knowledge/windows-app-sdk/>, <https://comcomponent.com/knowledge/core-window-dependent-ui/>, <https://comcomponent.com/knowledge/initialize-with-window/>, <https://comcomponent.com/knowledge/hwnd/>, <https://comcomponent.com/knowledge/package-identity/>, <https://comcomponent.com/knowledge/package-identity-required-winrt-api/>, <https://comcomponent.com/knowledge/msix-packaging/>, <https://comcomponent.com/knowledge/sparse-package/>, <https://comcomponent.com/knowledge/ro-initialize/>, <https://comcomponent.com/knowledge/com-apartment-model/>, <https://comcomponent.com/knowledge/gradual-winui-migration/>, <https://comcomponent.com/knowledge/xaml-islands/>, <https://comcomponent.com/knowledge/data-transfer-manager-interop/> .

<https://comcomponent.com/knowledge/winrt/> a skos:Concept ;
    skos:prefLabel "WinRT(Windows Runtime)"@ja ;
    skos:definition "Windows 8で導入された、COMを土台にしたストアアプリ向けの新しいAPI基盤。"@ja ;
    skos:altLabel "Windows Runtime" ;
    ks:requires <https://comcomponent.com/knowledge/com/> ;
    ks:requires <https://comcomponent.com/knowledge/iinspectable/> ;
    ks:uses <https://comcomponent.com/knowledge/winmd/> .

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

<https://comcomponent.com/knowledge/iinspectable/> a skos:Concept ;
    skos:prefLabel "IInspectable"@ja ;
    skos:definition "すべてのWinRTクラスが実装する基底インターフェース。IUnknownを継承し、GetIids・GetRuntimeClassName・GetTrustLevelの3メソッドを追加する。"@ja ;
    skos:altLabel "IInspectable interface" ;
    skos:broader <https://comcomponent.com/knowledge/winrt/> ;
    ks:requires <https://comcomponent.com/knowledge/iunknown/> .

<https://comcomponent.com/knowledge/iunknown/> a skos:Concept ;
    skos:prefLabel "IUnknown"@ja ;
    skos:definition "COMのすべてのインターフェースが実装しなければならない基底インターフェースで、QueryInterface・AddRef・Releaseの3メソッドを持つ。"@ja ;
    skos:altLabel "IUnknown interface" .

<https://comcomponent.com/knowledge/winmd/> a skos:Concept ;
    skos:prefLabel "Windows Metadata(.winmd)"@ja ;
    skos:definition "WinRT APIを記述する機械可読メタデータファイル。ツールと言語プロジェクションがこれを読んで投影を生成する。"@ja ;
    skos:altLabel "WinMD" ;
    skos:altLabel ".winmd" ;
    skos:broader <https://comcomponent.com/knowledge/winrt/> ;
    ks:uses <https://comcomponent.com/knowledge/ecma-335/> .

<https://comcomponent.com/knowledge/ecma-335/> a skos:Concept ;
    skos:prefLabel "ECMA-335"@ja ;
    skos:definition "共通言語基盤(CLI)を定める標準仕様。CLRアセンブリの物理ファイル形式を規定し、.winmdも同じ形式を使う。"@ja ;
    skos:altLabel "ECMA-335仕様"@ja .

<https://comcomponent.com/knowledge/language-projection/> a skos:Concept ;
    skos:prefLabel "言語プロジェクション"@ja ;
    skos:definition "WinRT APIを特定のプログラミング言語の慣用に沿って公開する仕組み。COMの詳細を隠し、その言語にとって自然なプログラミング体験を提供する。"@ja ;
    skos:altLabel "language projection" ;
    skos:altLabel "投影"@ja ;
    skos:broader <https://comcomponent.com/knowledge/winrt/> ;
    ks:uses <https://comcomponent.com/knowledge/winmd/> .

<https://comcomponent.com/knowledge/cpp-winrt/> a skos:Concept ;
    skos:prefLabel "C++/WinRT"@ja ;
    skos:definition "標準C++17で実装されたヘッダーファイルベースのWinRT言語プロジェクション。cppwinrt.exeが.winmdから投影ヘッダーを生成する。"@ja ;
    skos:altLabel "CppWinRT" ;
    ks:implements <https://comcomponent.com/knowledge/language-projection/> .

<https://comcomponent.com/knowledge/cs-winrt/> a skos:Concept ;
    skos:prefLabel "C#/WinRT(CsWinRT)"@ja ;
    skos:definition ".NET向けのWinRT言語プロジェクション。cswinrt.exeが.winmdを処理してC#の相互運用アセンブリを生成する。"@ja ;
    skos:altLabel "CsWinRT" ;
    skos:altLabel "C#/WinRT" ;
    ks:implements <https://comcomponent.com/knowledge/language-projection/> ;
    ks:succeeds <https://comcomponent.com/knowledge/dotnet-builtin-winrt-support/> .

<https://comcomponent.com/knowledge/dotnet-builtin-winrt-support/> a skos:Concept ;
    skos:prefLabel ".NET組み込みWinRTサポート"@ja ;
    skos:definition ".NET Core 3.x以前の.NETが持っていたWinRT/WinMD消費の組み込みサポート。.NET 5で削除された。"@ja .

<https://comcomponent.com/knowledge/winui/> a skos:Concept ;
    skos:prefLabel "WinUI(Windows App SDK)"@ja ;
    skos:definition "Windows App SDKベースのUIフレームワーク。Windows 11のモダンなUIに沿った外観と、Microsoft Store/MSIXとの親和性を持つ。動作対象はWindows 10 バージョン1809(ビルド17763)以降で、Windows 11専用ではない。"@ja ;
    skos:altLabel "WinUI 3" ;
    skos:altLabel "Windows App SDK" ;
    ks:requires <https://comcomponent.com/knowledge/windows-app-sdk/> ;
    ks:requires <https://comcomponent.com/knowledge/winrt/> .

<https://comcomponent.com/knowledge/windows-app-sdk/> a skos:Concept ;
    skos:prefLabel "Windows App SDK"@ja ;
    skos:definition "WinUIを含む、今のWindows向け開発ライブラリ群。UI以外の機能もあり、WPF・WinForms・Win32の既存アプリにも追加できる。"@ja ;
    skos:altLabel "WinAppSDK" .

<https://comcomponent.com/knowledge/core-window-dependent-ui/> a skos:Concept ;
    skos:prefLabel "CoreWindow依存のWinRT UI"@ja ;
    skos:definition "ピッカーやダイアログなど、表示にUWPのCoreWindowを前提とするWinRTクラス群。デスクトップアプリでは追加の相互運用が必要になる。"@ja .

<https://comcomponent.com/knowledge/initialize-with-window/> a skos:Concept ;
    skos:prefLabel "IInitializeWithWindow"@ja ;
    skos:definition "デスクトップアプリで使われるWinRTオブジェクトにオーナーウィンドウ(HWND)を渡すためのCOMインターフェース。"@ja ;
    skos:altLabel "InitializeWithWindow" ;
    ks:uses <https://comcomponent.com/knowledge/hwnd/> .

<https://comcomponent.com/knowledge/hwnd/> a skos:Concept ;
    skos:prefLabel "HWND(ウィンドウハンドル)"@ja ;
    skos:definition "Windowsがウィンドウ1枚ごとに割り当てる識別子で、WPFはトップレベルのウィンドウにだけこれを持ち、HWNDを持ち込む要素だけがWPFの描画の外側になる。"@ja ;
    skos:altLabel "ウィンドウハンドル"@ja .

<https://comcomponent.com/knowledge/data-transfer-manager-interop/> a skos:Concept ;
    skos:prefLabel "IDataTransferManagerInterop"@ja ;
    skos:definition "共有UI(DataTransferManager)にオーナーウィンドウ(HWND)を渡してShowShareUIForWindowを呼ぶための専用COMインターフェース。IInitializeWithWindowと同じ役割を担う別経路。"@ja ;
    skos:altLabel "DataTransferManagerInterop" ;
    ks:uses <https://comcomponent.com/knowledge/hwnd/> .

<https://comcomponent.com/knowledge/package-identity-required-winrt-api/> a skos:Concept ;
    skos:prefLabel "package identity必須のWinRT API"@ja ;
    skos:definition "通知履歴やジャンプリストなど、package identityを持つパッケージ化されたアプリでのみ動作するWinRT API群。"@ja ;
    ks:requires <https://comcomponent.com/knowledge/package-identity/> .

<https://comcomponent.com/knowledge/package-identity/> a skos:Concept ;
    skos:prefLabel "package identity"@ja ;
    skos:definition "MSIXなどのパッケージが持つ、Windowsが認識する一意の識別子。名前、バージョン、アーキテクチャ、ResourceId、発行元という5つの組で構成される。"@ja ;
    skos:altLabel "パッケージID"@ja ;
    ks:configuredBy <https://comcomponent.com/knowledge/msix-packaging/> ;
    ks:configuredBy <https://comcomponent.com/knowledge/sparse-package/> .

<https://comcomponent.com/knowledge/msix-packaging/> a skos:Concept ;
    skos:prefLabel "MSIXパッケージング(packaged)"@ja ;
    skos:definition "package identityを持たせてアプリを配布するWindowsのパッケージング形式。"@ja ;
    skos:altLabel "MSIX" ;
    skos:altLabel "packaged" .

<https://comcomponent.com/knowledge/sparse-package/> a skos:Concept ;
    skos:prefLabel "外部の場所を指すpackaged(sparse package)"@ja ;
    skos:definition "既存のインストーラーをそのまま使いながら、実行ファイルにpackage identityだけを付与できるpackagingモデル。"@ja ;
    skos:altLabel "Sparse Package" .

<https://comcomponent.com/knowledge/ro-initialize/> a skos:Concept ;
    skos:prefLabel "RoInitialize"@ja ;
    skos:definition "現在のスレッドを指定した並行性モデル(STA/MTA)でWinRT用に初期化するAPI。"@ja ;
    ks:uses <https://comcomponent.com/knowledge/com-apartment-model/> .

<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/gradual-winui-migration/> a skos:Concept ;
    skos:prefLabel "既存WPF/WinFormsへのWinUI段階移行"@ja ;
    skos:definition "既存のWPF/WinFormsアプリに、XAML IslandsなどでWinUI系のコントロールを少しずつ混ぜていく移行構想。"@ja ;
    skos:altLabel "段階移行"@ja .

<https://comcomponent.com/knowledge/xaml-islands/> a skos:Concept ;
    skos:prefLabel "XAML Islands"@ja ;
    skos:definition "既存のWPF・WinForms・Win32アプリの一部分に、新しいXAML(WinUI系)のコントロールを埋め込むための仕組み。"@ja .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/winrt/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/com/> ;
    schema:description "Windows RuntimeはCOMに基づく(based on COM)。COMコンポーネントとWinRTクラスはどちらもインターフェースを通じて機能を公開し、参照カウント・QueryInterface・HRESULTというCOMの約束ごとがそのまま使われる。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/apps/develop/cpp-winrt/author-coclasses> ;
    ks:verifiedAt "2026-08-29" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/winrt/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/iinspectable/> ;
    schema:description "すべてのWinRTインターフェースは暗黙にIInspectableを要求する。WinRTのオブジェクトはIUnknownの3メソッドの上にIInspectableの3メソッドを積み、その上に個々のAPIが乗る。"@ja ;
    ks:evidence <https://learn.microsoft.com/uwp/winrt-cref/winrt-type-system> ;
    ks:verifiedAt "2026-08-29" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/iinspectable/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/iunknown/> ;
    schema:description "IInspectableはIUnknownを要求(継承)する。IUnknownは従来のCOMの用法どおりQueryInterface・AddRef・Releaseの3メソッドを定義し、IInspectableはGetIids・GetRuntimeClassName・GetTrustLevelを追加する。"@ja ;
    ks:evidence <https://learn.microsoft.com/uwp/winrt-cref/winrt-type-system>, <https://learn.microsoft.com/windows/win32/api/inspectable/nn-inspectable-iinspectable> ;
    ks:verifiedAt "2026-08-29" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/winrt/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/winmd/> ;
    schema:description "WinRT APIは.winmdという機械可読メタデータファイルで記述される。Windowsはシステム提供の全WinRT APIのメタデータを同梱し、サードパーティも同形式で言語プロジェクションに参加できる。"@ja ;
    ks:evidence <https://learn.microsoft.com/uwp/winrt-cref/winmd-files> ;
    ks:verifiedAt "2026-08-29" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/winmd/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/ecma-335/> ;
    schema:description ".winmdの物理形式はECMA-335仕様(CLRアセンブリと同じ)を使う。ただし有効なデータの組み合わせの規則はCLRアセンブリと異なり、システム提供の.winmdは実行コードを含まない純粋なメタデータである。"@ja ;
    ks:evidence <https://learn.microsoft.com/uwp/winrt-cref/winmd-files> ;
    ks:verifiedAt "2026-08-29" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/language-projection/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/winmd/> ;
    schema:description "言語プロジェクションは.winmdのメタデータを読んで、WinRT APIを各プログラミング言語の慣用に沿った形で公開する。GetRuntimeClassNameが返す型名をメタデータで解決できることが投影を可能にしている。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/apps/develop/platform/>, <https://learn.microsoft.com/uwp/winrt-cref/winrt-type-system> ;
    ks:verifiedAt "2026-08-29" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/cpp-winrt/> ;
    rdf:predicate ks:implements ;
    rdf:object <https://comcomponent.com/knowledge/language-projection/> ;
    schema:description "C++/WinRTは標準C++17で実装されたヘッダーファイルベースの言語プロジェクションで、cppwinrt.exeが.winmdから投影ヘッダーを生成する。C++/CXとWRLの推奨後継である。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/apps/develop/cpp-winrt/intro-to-using-cpp-with-winrt> ;
    ks:verifiedAt "2026-08-29" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/cs-winrt/> ;
    rdf:predicate ks:implements ;
    rdf:object <https://comcomponent.com/knowledge/language-projection/> ;
    schema:description "C#/WinRT(CsWinRT)は.NET向けの言語プロジェクションで、cswinrt.exeが.winmdを処理してC#の相互運用アセンブリを生成する。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/apps/develop/platform/csharp-winrt/> ;
    ks:verifiedAt "2026-08-29" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/cs-winrt/> ;
    rdf:predicate ks:succeeds ;
    rdf:object <https://comcomponent.com/knowledge/dotnet-builtin-winrt-support/> ;
    schema:description ".NET 5でWinRTの組み込みサポートが.NET本体から削除され、C#の投影はランタイムから独立したCsWinRTツールチェーンに移行した。"@ja ;
    ks:evidence <https://learn.microsoft.com/dotnet/core/compatibility/interop/5.0/built-in-support-for-winrt-removed> ;
    ks:verifiedAt "2026-08-29" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/winui/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/windows-app-sdk/> ;
    schema:description "WinUIはWindows App SDKの一部として提供される。単独では配布されず、Windows App SDKなしでWinUIを使うことはできない。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/apps/winui/winui3/> ;
    ks:verifiedAt "2026-08-29" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/winui/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/winrt/> ;
    schema:description "WinUIはWinRTのABIの上に建つUIフレームワークである。WinUIアプリの実体は、HWNDのウィンドウの上でIInspectableの契約に従うオブジェクトツリーが動くWin32アプリであり、UIフレームワークの世代交代の下でこの足元の契約は変わっていない。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/apps/winui/winui3/>, <https://learn.microsoft.com/windows/apps/winui/winui3/desktop-winui3-app-with-basic-interop> ;
    ks:verifiedAt "2026-08-29" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/core-window-dependent-ui/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/initialize-with-window/> ;
    schema:description "ピッカー・ダイアログなどCoreWindow前提のWinRT UIクラスのうちIInitializeWithWindowを実装するものをデスクトップアプリで表示するには、表示前にこのインターフェースでオーナーウィンドウを設定する必要がある。設定しないと例外になるか黙って失敗する。共有UIのDataTransferManagerは専用のIDataTransferManagerInteropを使う別経路で、新しいWindows App SDKのピッカーはWindowIdを受け取る設計でこのパターンが不要。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/apps/develop/ui/display-ui-objects>, <https://learn.microsoft.com/windows/apps/develop/files/using-file-folder-pickers> ;
    ks:verifiedAt "2026-08-29" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/initialize-with-window/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/hwnd/> ;
    schema:description "IInitializeWithWindow::Initializeは、オーナーウィンドウとして使うウィンドウのハンドル(HWND)を受け取る。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/api/shobjidl_core/nn-shobjidl_core-iinitializewithwindow> ;
    ks:verifiedAt "2026-08-29" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/core-window-dependent-ui/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/data-transfer-manager-interop/> ;
    schema:description "共有UIのDataTransferManagerはIInitializeWithWindowを実装せず、デスクトップアプリからの表示には専用のIDataTransferManagerInteropでオーナーウィンドウ(HWND)を渡してShowShareUIForWindowを呼ぶ必要がある。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/apps/develop/ui/display-ui-objects> ;
    ks:verifiedAt "2026-08-29" ;
    ks:certainty "context-dependent" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/data-transfer-manager-interop/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/hwnd/> ;
    schema:description "IDataTransferManagerInteropは、共有UIのオーナーウィンドウとして使うウィンドウのハンドル(HWND)を受け取る(ShowShareUIForWindow)。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/apps/develop/ui/display-ui-objects> ;
    ks:verifiedAt "2026-08-29" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/package-identity-required-winrt-api/> ;
    rdf:predicate ks:requires ;
    rdf:object <https://comcomponent.com/knowledge/package-identity/> ;
    schema:description "通知履歴・ジャンプリストなど一部のWinRT APIは、実行時にpackage identityを持つ(パッケージ化された)アプリでのみ動作する。unpackagedなアプリから呼ぶと失敗する。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/apps/desktop/modernize/winrt-api-desktop-app-support> ;
    ks:verifiedAt "2026-08-29" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/package-identity/> ;
    rdf:predicate ks:configuredBy ;
    rdf:object <https://comcomponent.com/knowledge/msix-packaging/> ;
    schema:description "MSIXでパッケージ化して配布したアプリは実行時にpackage identityを持つ。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/apps/desktop/modernize/modernize-packaged-apps> ;
    ks:verifiedAt "2026-08-29" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/package-identity/> ;
    rdf:predicate ks:configuredBy ;
    rdf:object <https://comcomponent.com/knowledge/sparse-package/> ;
    schema:description "既存インストーラーを維持したまま、外部の場所を指すパッケージ(packaged with external location、いわゆるsparse package)で識別子だけを付与してpackage identityを得ることもできる。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/apps/desktop/modernize/modernize-packaged-apps> ;
    ks:verifiedAt "2026-08-29" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/ro-initialize/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/com-apartment-model/> ;
    schema:description "RoInitializeはスレッドをWinRT用に初期化する際にSTA/MTAという並行性モデルを指定する。CoInitializeのドキュメントもWinRT利用時はRoInitializeを呼ぶよう案内しており、COMのアパートメントの考え方がWinRTでもそのまま使われている。"@ja ;
    ks:evidence <https://learn.microsoft.com/windows/win32/api/roapi/nf-roapi-roinitialize>, <https://learn.microsoft.com/windows/win32/api/objbase/nf-objbase-coinitialize> ;
    ks:verifiedAt "2026-08-29" ;
    ks:certainty "established" .

[] a rdf:Statement ;
    rdf:subject <https://comcomponent.com/knowledge/gradual-winui-migration/> ;
    rdf:predicate ks:uses ;
    rdf:object <https://comcomponent.com/knowledge/xaml-islands/> ;
    schema:description "既存WPF/WinForms画面へWinUI系コントロールを部分混在させる段階移行はXAML Islandsを使う。ただし世代の区別が必要で、UWP世代のIslandsはWPF/WinForms対応が.NET Core 3.x世代に限定され、WinUI 3世代はWindows App SDKのXAMLホスティングAPI(DesktopWindowXamlSource)としてWPF・WinForms・Win32から使えるが、ラッパーコントロールが無く実装負担が大きい。"@ja ;
    ks:evidence <https://learn.microsoft.com/uwp/xaml-islands/xaml-islands>, <https://learn.microsoft.com/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.hosting.desktopwindowxamlsource> ;
    ks:verifiedAt "2026-08-29" ;
    ks:certainty "context-dependent" .
