Runtime support for upcoming .NET Core WinRT Host (dotnet/coreclr#23402)
authorJeremy Koritzinsky <jkoritzinsky@gmail.com>
Thu, 4 Apr 2019 18:04:13 +0000 (11:04 -0700)
committerGitHub <noreply@github.com>
Thu, 4 Apr 2019 18:04:13 +0000 (11:04 -0700)
commit01e9284e55f8d3b6f2b7fb138dbdc3f4811e0922
treea90f328dc994175496fff8428c9f38da5805859a
parent77bf776543323cce204a73902e165aa70011e057
Runtime support for upcoming .NET Core WinRT Host (dotnet/coreclr#23402)

* First pass at adding winrt host entry-point.

* There's no way to specify HResult-swapping on a function called via hosted-interop so just return the HResult instead.

* Use the WindowsRuntimeMarshal class to create the activation factory and initialize it.

* Implement loading the dependent assemblies of a WinRT assembly into an isolated load context.

* PR Feedback.

* Fail to get the activation factory if the found type is not a managed type exported from a winmd.

* Rearrange parameters based on PR feedback.

* Remove unneeded include.

* Make ActivationFactoryLoader internal.

* Fix null-ref in WinRT-dependent-assembly loading

* Remove extraneous "System."

Commit migrated from https://github.com/dotnet/coreclr/commit/fdc9998609263d9f531079e2cbe0f3f31eba3382
22 files changed:
src/coreclr/src/System.Private.CoreLib/ILLinkTrim.xml
src/coreclr/src/System.Private.CoreLib/System.Private.CoreLib.csproj
src/coreclr/src/System.Private.CoreLib/src/Internal/Runtime/InteropServices/WindowsRuntime/ActivationFactoryLoader.cs [new file with mode: 0644]
src/coreclr/src/System.Private.CoreLib/src/System/RtType.cs
src/coreclr/src/System.Private.CoreLib/src/System/Runtime/Loader/AssemblyLoadContext.CoreCLR.cs
src/coreclr/src/vm/appdomain.cpp
src/coreclr/src/vm/assemblynative.cpp
src/coreclr/src/vm/assemblynative.hpp
src/coreclr/src/vm/assemblyspec.cpp
src/coreclr/src/vm/clrprivbinderwinrt.cpp
src/coreclr/src/vm/clrprivbinderwinrt.h
src/coreclr/src/vm/corhost.cpp
src/coreclr/src/vm/ecalllist.h
src/coreclr/src/vm/interoputil.cpp
src/coreclr/src/vm/interoputil.h
src/coreclr/src/vm/runtimecallablewrapper.cpp
src/coreclr/src/vm/runtimehandles.cpp
src/coreclr/src/vm/runtimehandles.h
src/coreclr/src/vm/stdinterfaces.cpp
src/coreclr/src/vm/stubhelpers.cpp
src/coreclr/src/vm/winrttypenameconverter.cpp
src/coreclr/src/vm/winrttypenameconverter.h