This requires adding definitions of the `IWeakReference` and `IWeakReferenceSource` interfaces, and maybe adding some nice wrapper types or `impl`s. See also https://kennykerr.ca/2018/03/15/cppwinrt-understanding-weak-references-dispose-pattern/