UWPウインドウからパッケージ名を取りたい

UWPアプリはApplicationFrameWindowクラスウインドウの子供にWindows.UI.Core.CoreWindowクラスウインドウが別プロセスでいるのでそこからプロセスIDを取得してよしなに。って感じの説明がぐぐるとヒットしますが、UWPウインドウがアクティブの場合、Windows.UI.Core.CoreWindowクラスウインドウが何故か存在しません。そこでApplicationFrameWindowクラスウインドウから情報を取得ってことになりますなるなった。

SHGetPropertyStoreForWindowを呼び出してIID_IPropertyStoreからPKEY_AppUserModel_IDを取得することでパッケージを取得できます。

IPropertyStore store;
Guid IID_IPropertyStore = new Guid("886d8eeb-8cf2-4446-8d02-cdba1dbdcf99");
SHGetPropertyStoreForWindow(window.Handle, ref IID_IPropertyStore, out store);
PropertyKey PKEY_AppUserModel_ID = new PropertyKey(
    new Guid("9F4C2855-9F79-4B39-A8D0-E1D42DE1D5F3"),
    5);
store.GetValue(ref PKEY_AppUserModel_ID, out PROPVARIANT v);
appName = Marshal.PtrToStringUni(v.value);

twitter公式で9E2F88E3.Twitter_wgeqdkkx372wm!x554f661dyd360y462cy8743yf8a99b7d41dbxが取れたら成功。