[メモ、途中]winformsアプリケーションでUWPのAPIを使用する
winformsアプリケーションでUWPのAPIを使用する方法の覚書(WPFアプリケーションでも使用できるらしいです)。
開発環境、言語
WIndows10 Home 1903 Visual Studio 2019、VB.NET(導入まではC#も同様のはず)
導入方法
1.プロジェクトを作成
Windows formsアプリケーション(VB.NET or C#)を指定。
2.NuGetからMicrosoft.Windows.SDK.Contractsをインストール
インストールするバージョンはWindows10のバージョンに合わせましょう。普通にアップデートしていれば1903がインストールされていると思います(2020-03-06現在)。
- 1903: 10.0.18362
- 1809: 10.0.17763
- 1803: 10.0.17134
3.packages.configをPackageReferenceに移行
Microsoft.Windows.SDK.Contractsをインストールして直ぐにビルドしようとすると、「Must use PackageReference」というエラーが発生します。
ソリューションエクスプローラ内に存在するpackage.configを右クリックし、「packages.configをPackageReferenceに移行する」を選択してください(プロジェクト名は気にしないで)。
依存関係に関するダイアログが表示されます。問題が見つかっていないことを確認してOKしてください。詳細やロールバックについては以下ページに詳細が書かれてあります。
https://docs.microsoft.com/ja-jp/nuget/consume-packages/migrate-packages-config-to-package-reference
以上。
あとはMicrosoftのドキュメントとにらめっこしながらコーディングするのみです(現在ここで苦しみ中)。
公式ブログに緯度/経度を取得するサンプルコードがあります。 https://blogs.windows.com/windowsdeveloper/2019/09/30/windows-10-winrt-api-packs-released/
使用可能なAPI
使用可能なAPIは2通りあります。
1.パッケージIDを持たないアプリケーションの場合は、以下ページから使用したいAPIを検索し、ClassやInterfaceのAttributeにDualApiPartitionAttributeと書かれていれば使用できます。
https://docs.microsoft.com/en-us/uwp/api/例)画面キャプチャに関するAPI「Windows.Graphics.Capture」のクラスの一つ、「Direct3D11CaptureFrame」クラスの場合。