How to know the current processor architecture from UWP app

Unfortunately, WinRT does not have such of API. We, in 2019,  need to use pinvoke.


You may noticed that this unfamiliar name "api-ms-win-core-sysinfo-l1-2-3.dll". This is a sort of "OneCore Umbrella library".

OneCore.lib umbrella library

I could not tell you how this works, but works. :) It's too difficult for me. For detail, this site may helps you.

Runtime DLL name resolution: ApiSetSchema - Quarkslab's blog

The API Set Schema - Geoff Chappell

Note - UWP Community toolkit have the System Helper API. By using this, you can get the propertry "SystemInformation.OperatingSystemArchitecture". The document tell that  this property is "Gets used processor architecture" but actually not. It just return the "target" architecture of the UWP app package.

SystemInformation - UWP Community Toolkit

UWP Multi Instance support - Part 2

I have a simple sample program 'DDLG.MultiInstanceTrial' on Microsoft Store and GitHub. Let me explain the hint & tips of UWP multi instance by using this sample.

DDLG.MultiInstanceTrial - Microsoft Store


This post is part 2 of the series - UWP Multi Instance Support.
UWP App の Multi Instance サポート その1(in japanese)


To enable the multi instance, just update your Package.appxmanifest. 1) Update the namespace at "Package" element,  and 2) Add attribute "SupportsMultipleInstances" to "Application" element.
Oh, at first, you need to use the Win10 1803 or later (and SDK).

- start - Package.appxmanifest
- end -

Behavior of Protocol Activation

If you register the app as protocol handler and the app is enabled as multi instance, the behavior is differ from the single instance. When the protocol activation happen, always new instance created. On single instance, same instance's OnActivate is called again.


It seems that each instances are running on same AppContainer. This means, each instances share the one LocalSettings/LocalFolder/Etc.
You can use my sample app to see the behavior. On the right side, you can show the image file. This file name is shared by LocalSettings, then each instances can use the same value.


In this trial, I'm using the most easiest way to share the event - ApplicationData.Current.DataChanged.


When you create or modify the applicationdata, the event signaled. You can also signal it manually.

Note - This event will be signaled with background thread. It's need to use dispatcher to use it with UI thread. You can see the sample on the source above.

Memory Mapped File

As of same app container, you can share the data by using memory mapped file. In my sample, the center pane use the one.

WinMR Environment - Desktop and MR

On WinMR enabled system, you can use both the windows desktop and WinMR 3D environment.
You can run your app on both. And, it seems that both share the same app container. By using this app, I could confirm that.


Building UWP Apps as ARM64 with Visual Studio 2017

Yes, we have toolings that support ARM64 UWP Apps but there are several caviets and pitfalls. I've attempt to describe my experiences to support ARM64 on my UWP app with this short post. I wish this helps you.

Updating your tools

As of Mar 2019,
  • Visual Studio 2017 15.9.7 or later
  • Windows SDK 17763 or later

Modifying your .csproj to add ARM64 build configuration

This step is described at blogs.windows.com.

But.. in my cases, it didn't work. I have to modify my .csproj manually. However it's easy.
  1. Make the ARM64 debug/release config by copy and paste the ARM config. then,
  2. Make ARM64 build config by VS IDE (as described on the blog post).
  3. Adding win10-arm64 and win10-arm64-aot to runtimeidentifier. It seems that not necessary
I've just paste the before/after of my .csproj on gist. To compare it, please download both and use your favorite diff tools :)

WWC csproj 17763 vs 17134

Updating Microsoft.NETCore.UniversalWindowsPlatform

In fact, 6.2.x or above support the ARM64. 6.1.x is NOT. You need to use it. But.. currently (as of the end of jan 2019), 6.2.2 have issues -  build may success locally, but you will see the 1201 error when you submit the appx package to Microsoft Store. You need to pick the 6.2.3 or above.


To use the 6.2.3, just edit your .csproj manually.

(Added 14 March 2019 - 6.2.8 released. I could confirm that it works and ok for store upload.)

Updating Microsoft.Advertising.XAML to 10.1811.22001

If you use the Microsoft Advertisement SDK, you need to update to 10.1811.x.
There are two type of deployments - one is VSIX , another one is NuGet package.

My recommendation is, if you're currently using the VSIX, you should use the VSIX for the next version. Same for the NuGet.

If you want to switch to the NuGet from VSIX(This is my case), you must uninstall the VSIX from Add/Remove the Programs. But this way may be painfull for you, because the uninstallation of VSIX may affect to all other your project that use the Microsoft Advertisement.
Even if you did it as above, you may see the some of build error. My advises are .. 1) Restart the system, 2) Clear the nuget cache, 3) check the reference settings, and 4) Take a cup of coffee.


Here is a my app that support Arm64. But... I have not tried yet with actual Arm64 system :) If you have a chance to try it, please let me know the result.

Wheel World Clock







Oct 2017 - Dec 2018


  • 階段を登ることができる
  • ズボンの股が半年で破れない(太ってると擦れて破れます)
  • 飛行機に乗る際、シートベルトの延長ベルトをCAに頼まなくていい(そういうものがあるんです)
  • ユニクロで服が買える(6L→XL)




F10 Recent updates - June 2018 / F10 最近の更新

(Updated - 20 Jun, 2018)
Updated version of Image bbs browser F10 available. Updates are deployed automatically, or you can install it from the Microsoft Store.

  • F10 v1.4.430
  • F10 v1.5.430
  • F10 v1.6.430

F10 Image bbs browser

This post summarize the recent updates.

Some 4chan and futaba boards are no longer listed on the favorites menu

Due of the store policy 11.7, we can't show several NSFW boards on favorites candidate list. If you want to browse these boards, please type the name of board manually to add as favorites.
Due of this change, NSFW switch also not available.

To add the boards that not listed, you can type the name of board manually.

Store policy 11.7 Adult Content


If you already added the boards as favorite, or already changed the setting to show the NSFW boards, you can see the boards yet.
But once if you unfav the boards or uninstall/reinstall the F10, the boards no longer listed.

Former versions of Windows 10 no longer supported

We removed the following versions from the store. As of the result, You can not install the F10 to Windows 10 1507, 1511 or 1607.

  • F10 v1.1 - Win10 TH1 / 1507 / Build 10240
  • F10 v1.2 - Win10 TH2 / 1511 / Build 10586
  • F10 v1.3 - Win10 RS1 / 1607 / Build 14393

Currently, v1.4, 1.5 and 1.6 are available.

  • F10 v1.4 - Win10 RS2 / 1703 / Build 15063  (Latest for Windows 10 Mobile - 15xxx)
  • F10 v1.5 - Win10 RS3 / 1709 / Build 16299
  • F10 v1.6 - Win10 RS4 / 1803 / Build 17134 or later


You can still continue to use the v1.1 - v1.3, but once if you uninstall it, you can't reinstall it.
Or, please consider to update your Windows 10.

Futaba - support mp4 upload

Recently, futaba supported the upload of MP4 video. F10 already support the MP4 playing, and we support the MP4 uploading from this new build.

Bug fix 

Recent build had an issue that if you click the quote link at the response, it makes app termination. We fixed this issue.

4chan・ふたば の幾つかのボードがお気に入り候補に表示されなくなりました

ストア ポリシー 11.3 により、幾つかのボードはF10 のお気に入り候補に表示されません。そういった板を追加するには、板の名前を入力してください。
この変更に伴い、NSFW スイッチも廃止としました。


ストア ポリシー 11.7 アダルト コンテンツ


これらのボードが既にお気に入りに追加済みの場合、又はNSFW スイッチが既にONになっている場合は候補リストに表示されます。ただし、一度お気に入りから外す・又はF10 を再インストールすると、それ以降これらの板は候補リストに表示されません。

旧バージョンのWindows 10 へのF10の提供を終了しました

F10の過去バージョンをストアから削除しました。結果として、以下の古いWindows 10 バージョンに対してF10 を新規にインストールすることはできません。

  • F10 v1.1 - Win10 TH1 / 1507 / Build 10240
  • F10 v1.2 - Win10 TH2 / 1511 / Build 10586
  • F10 v1.3 - Win10 RS1 / 1607 / Build 14393
現在、以下のv1.4, 1.5, 1.6 が利用可能です。
  • F10 v1.4 - Win10 RS2 / 1703 / Build 15063  (Windows 10 Mobile 向けはこちらが最新)
  • F10 v1.5 - Win10 RS3 / 1709 / Build 16299
  • F10 v1.6 - Win10 RS4 / 1803 / Build 17134 又はそれ以降


上記の古いWindows 10 にF10 が既にインストールされている場合、そのまま使い続ける事は可能です。しかし一度アンインストールすると再びインストールすることはできません。
Windows 10 の更新をご検討下さい。

MP4 サポート

最近、ふたばでMP4 動画がサポートされました。
F10では MP4 動画の再生はこれまでもサポートしていましたが、今回MP4 動画のアップロードをサポートしました。




UWP App の Multi Instance サポート その1

Windows 10 April 2018 Update (1803, RS4)からUWP App がMulti Instance、いわゆるアプリの複数起動をサポートするようになりました。実は今迄使えなかったんですね。

まずは実際動かして試してみましょう。拙作のUWP App Wheel World Clockが既にMulti Instance に対応しています。

UWP App を複数起動している様子

Microsoft からダウンロード
Wheel World Clock ダウンロードはこちらからどうぞ



  • 「アプリが同時起動」って当たり前なのでは?
  • 今迄なんでできなかったの?
  • 2018年になって今更?

という疑問が湧くのは当然…という気がします。そこで、Multi Instance をキーにしてApp Model発展の経緯を俯瞰し、なんとなく分かった気になってみようというのが今回の記事です。

  • その1 UWP App Model の経緯と今回のMulti Instance対応、今後の展望 (この記事)
  • その2 Multi Instance 実際の対応作業と注意点


StoreApp / UWP App Model の変遷

Win8 - Single Instance, Single View (2012)

現在のUWP App の源流となるWin8 StoreApp、またそれの元となったWindows Phone環境は別名「Immersive UI」、没入型UI等と言われていました。タブレットやPCの画面「全体」をアプリが占有するイメージです。この環境では所謂デスクトップそのものが存在せず、あるアプリが同時に起動できるのは一つだけになっていました。
また、Immersive UIではこの当時から画面分割、Splitをサポートしていましたが、Win8の頃は「別アプリ同士」で画面を分割する形でした。

Win8/8.1 用 StoreApp 拙作のfuta8 です。

Win8.1 - Single Instance, Multi View (2014)

"Multi View"がサポートされました。同時起動できるアプリのInstance
は引き続き一つだけですが、そこから複数の「View*1」を別スレッドで持つことが出来るというものです。画面分割に対し、一つのアプリが複数のViewを同時に表示できるようになりました。ただこの頃はStore AppでMulti Viewをサポートしたものは少なかったように記憶しています。

Win10 - Single Instance, Multi Window (2015)

「Immersive」の看板はそっと後ろに下げられ、Win10 UWP Appはデスクトップ上「でも」普通に使えるものとして再定義され、これまでの「View」が「Window」としてデスクトップ上に表示されるようになりました。Tablet / Phoneに軸足を置いたApp Modelから、デスクトップ / Win32 App と一緒に使える方向に大きく舵を切り直したのが Win10 UWP Appと言えると思います。

ただ、Win8.1 のSingle Instance なモデルは維持されました。プロセス自体の仕組みはそのままで、所謂Multi Window な動作を実現するためにはMulti Viewが引き続き使われていました。

Win10 UWP App F10 Image bbs browser
左の二つがスレ画像を表示する画像ウィンドウ、のMulti Viewを使っています。

MultiView を採用している、おそらく一番馴染みのあるUWP App は…Win10標準の「電卓」だろうと思います。一見複数起動しているように見えるのですが、実はプロセスとしては一つだけです。なお、電卓はRS4でもこの仕組みのままです。*2

UWP App「電卓」のMulti View動作

このように、対応すればそれなりに色々な事が出来るMulti Viewですが…過剰というかオーバーキルというか、マルチスレッドの実装が大袈裟過ぎるという弱点があります。
上の例のF10 image bbs browser のような、Window一枚がドキュメント一つに対応しているSDI / MDI的なアプリならば頑張る価値はあるのですが、

  • 電卓のように、単に複数起動したい → 素直にMulti Instanceでいいのでは?
  • メインウィンドウの脇にサブウィンドウを表示したい → 同一スレッドでポンとWindow出したい…マルチスレッドにするほどでも無い…

という具合で、実際 Win10 UWP App でもMulti View を使っているアプリは少ないです。*3

また、Win10 UWPでは「ContentDialog」が追加になりました。Desktop+Window化に伴い、「簡単に使える」Win32のモーダルダイアログ的な物を狙ったのかもしれません。しかし、これはこれでアプリ画面の真ん中に固定で表示されるだけでした。帯にも襷にも短すぎた感じです。

アプリ情報をContent Dialog で表示している様子
Win32 Appで良くある、入力用サブウィンドウやツールウィンドウをポンと自由な位置に出すというのが
実はUWP Appでは結構面倒なんですね。

このように、「一応」Desktop 上でWin32 App っぽく動く最初の一歩は踏み出したものの、Win32 Appで普通にやっていたようなMainWindow + ToolWindowものを気軽に書けるには至りませんでした。*4

今…RS4までのUWP Appでは書くのが大変

Win10 RS4 - Multi Instance, Multi Window (2018)

前のセクションで上げたうちの前者、「単に複数起動したい」…電卓系を叶えるのがRS4 で導入された Multi Instance、と考えると理解しやすいです。Opt-In 形式になっており、MultiInstance を使う!とAppxManifest で宣言したアプリのみがMulti Instanceになります。
実際の対応作業や注意点等詳しい所は次の記事にまとめる予定ですが、Multi Instance 対応が期待されるUWP Appを考えると…以下のような使い方に向いているかなと思います。

  • 電卓系、シンプルアプリ
  • 他のWin32 Appから起動して使うもの … 起動=新インスタンス生成、タスク終了でインスタンスも消える、でないとWin32ものと仲良くしづらい所があります。そしてこれはMultiViewで救える話でもありません。
  • Sets … Sets で複数タブ表示を行いたい場合、Multi Instance 対応が必要です。

Win10 RS5 以降

今後どうしていくつもりなのか、2018年5月の開発者会議 Build2018でチラ見せがありました。上の例で挙げた後者、「メインウィンドウの脇にサブウィンドウを表示したい」系のMultiWindow AppをMulti View無しで簡単に記述できるようになるのだそうです。



ただ、Win32のDesktop Window Modelをそのまま再発明しても仕方ないので
WindowingEnvironment でDevice Familyでの差を吸収する
今だと、Hololens / Windows MRが特にWindowingとして

"That new thing" … さて…


予定通りなら、左の「2018 Summer」がおそらくRS5でしょう。ただしあくまでも予定です。Buildでの発表後にスケジュール変わった例はこれまでも多いです。

次の記事では、Multi Instance 対応 を実際の作業に即して書いてみます。

*1) 元がImmersive UI だった経緯もあり、WinRT APIでは「Window」という単語はあまり使われないです。
*2) このあたり、Multi Viewの解説とサンプルコードを以前Stack Overflow に載せた事があるので興味があればどうぞ。…今回の記事は、この2015年当時の回答を現状に即して書き直したような所があります。

Multiple instances of a Windows Universal App (Windows 10)

*3) なおUWP Appとして扱われる事の多いEdge Browser ですが、アプリケーションとしての成り立ちは他のUWP Appとは全く異なっており、タブ毎に独立したプロセスが走っています。現在我々開発者が使う事の出来るUWP AppModelでこういうものを作る事はできません。出来るのは現在の所Microsoft だけです。また、Edge の仕組みをUWP App Genericに使えるように仕立て直したのが「Sets」と呼べるかもしれません。
*4) Win10の当初、2015年末まではWindows 10 Mobile がまだ…まだ生きていたため、そういう意味ではImmersive Deviceへの軸足を残していた…のかもしれないですね。その後2016年になるとWindows 10 Mobile への投資はパタリと途絶え、緩慢な死へと向かっていったのはご存知の通りです。

DDLG: Windows 10 Mobile について 


WinGo-Maps の紹介

イランのお兄ちゃん達が作っているGoogle Map のUWP Client です。


Reddit の/r/Windows Apps で紹介されていたので知ったのですが、


PC・HoloLens 等各Win10 Device Family で使えますが、主なターゲットはWindows 10 Mobile であるようです。


一方、PC で使う場合はStreet View や3D表示が不可能、検索が微妙等、Webブラウザでの表示に比べると劣る部分が目立ってしまう所はあります。PCで普段使いするかと言われると…うーんそれは無いかな…という。