初めに
Win32やWPFなどで出来ていたボリュームや輝度変更が、UWPでは基本的には出来ないという制約があります。
また、逆にWPFで作っているが一部のUIはUWPを使用したいという場合も(あるかな?)。
今回はその解決策の一つであるExtend Appを説明します。
Extend Appとは
Extend Appの正式名称はExtend your desktop application with modern UWP componentsで、
UWPとWin32やWPFなどを1つのパッケージに纏めることで、出来ることを拡張します(ざっくり)。
実装方法はかずきさん記載のこことここを見てもらうとして、
このページとしては実装の際に自分が躓いた箇所を記載しようかと。
エントリーポイントとスタートアップ
かずきさん説明ページにしっかりと記載されていますが、スタートアップはLanchAppプロジェクトで、
エントリーポイントはLaunchAppプロジェクトの"アプリケーション"の下に追加されているLaunchApp.UWPです。
何故か私は、LaunchApp.UWPという名前のプロジェクトをスタートアップとしたことで、全く動かずに1時間ぐらい無駄にしました...
参照の追加
かずきさんが公開しているGithubのコードを単純にコピーしただけでは、コンパイルに失敗します。
NugetでUwpDesktopを追加するか、参照の追加で必要なDLLを追加する必要があります。
NugetでUwpDesktopを追加するのが一番簡単です。
詳細は以下を参照。
https://blog.okazuki.jp/entry/2015/11/07/223455
https://blogs.msdn.microsoft.com/lucian/2015/10/23/how-to-call-uwp-apis-from-a-desktop-vbc-app/
https://blogs.windows.com/buildingapps/2017/01/25/calling-windows-10-apis-desktop-application/#MOgHxP6xfT7ocrpH.97
参考リンク
https://docs.microsoft.com/en-us/windows/uwp/porting/desktop-to-uwp-extend
https://blog.okazuki.jp/entry/2018/02/09/204909
https://blog.okazuki.jp/entry/2018/02/10/174735
https://blog.okazuki.jp/entry/2015/11/07/223455
https://blogs.msdn.microsoft.com/lucian/2015/10/23/how-to-call-uwp-apis-from-a-desktop-vbc-app/
https://blogs.windows.com/buildingapps/2017/01/25/calling-windows-10-apis-desktop-application/#MOgHxP6xfT7ocrpH.97