Implement new COM interop API for RCW/CCW creation/management (#32091)
authorAaron Robinson <arobins@microsoft.com>
Sat, 7 Mar 2020 07:37:47 +0000 (23:37 -0800)
committerGitHub <noreply@github.com>
Sat, 7 Mar 2020 07:37:47 +0000 (23:37 -0800)
commitb41296a37f4bfead66db234e9d14b81fff302567
tree713098487f0c68411745fda2b28897700084a924
parent031904774a77281fac4a24f9e601cba1a09e596f
Implement new COM interop API for RCW/CCW creation/management (#32091)

* Implement RuntimeHelpers.AllocateTypeAssociatedMemory().

* Add tests for RuntimeHelpers.AllocateTypeAssociatedMemory().

* Implement ComWrappers API.

* Add tests for ComWrappers API.

* Add a FEATURE_COMWRAPPERS feature flag.
54 files changed:
src/coreclr/clr.featuredefines.props
src/coreclr/clrdefinitions.cmake
src/coreclr/src/CMakeLists.txt
src/coreclr/src/System.Private.CoreLib/System.Private.CoreLib.csproj
src/coreclr/src/System.Private.CoreLib/src/System/Runtime/CompilerServices/RuntimeHelpers.CoreCLR.cs
src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/ComWrappers.cs [new file with mode: 0644]
src/coreclr/src/dlls/mscoree/coreclr/CMakeLists.txt
src/coreclr/src/inc/CrstTypes.def
src/coreclr/src/inc/crsttypes.h
src/coreclr/src/interop/CMakeLists.txt [new file with mode: 0644]
src/coreclr/src/interop/comwrappers.cpp [new file with mode: 0644]
src/coreclr/src/interop/comwrappers.hpp [new file with mode: 0644]
src/coreclr/src/interop/inc/interoplib.h [new file with mode: 0644]
src/coreclr/src/interop/inc/interoplibimports.h [new file with mode: 0644]
src/coreclr/src/interop/interoplib.cpp [new file with mode: 0644]
src/coreclr/src/interop/platform.h [new file with mode: 0644]
src/coreclr/src/interop/referencetrackertypes.hpp [new file with mode: 0644]
src/coreclr/src/interop/trackerobjectmanager.cpp [new file with mode: 0644]
src/coreclr/src/vm/CMakeLists.txt
src/coreclr/src/vm/ceemain.cpp
src/coreclr/src/vm/ecalllist.h
src/coreclr/src/vm/gcenv.ee.cpp
src/coreclr/src/vm/gcenv.ee.standalone.cpp
src/coreclr/src/vm/gcenv.ee.static.cpp
src/coreclr/src/vm/interoplibinterface.cpp [new file with mode: 0644]
src/coreclr/src/vm/interoplibinterface.h [new file with mode: 0644]
src/coreclr/src/vm/interoputil.cpp
src/coreclr/src/vm/metasig.h
src/coreclr/src/vm/mscorlib.cpp
src/coreclr/src/vm/mscorlib.h
src/coreclr/src/vm/rcwrefcache.cpp
src/coreclr/src/vm/rcwrefcache.h
src/coreclr/src/vm/rcwwalker.h
src/coreclr/src/vm/runtimehandles.cpp
src/coreclr/src/vm/runtimehandles.h
src/coreclr/src/vm/syncblk.h
src/coreclr/tests/src/Interop/CMakeLists.txt
src/coreclr/tests/src/Interop/COM/ComWrappers/ComWrappersTests.csproj [new file with mode: 0644]
src/coreclr/tests/src/Interop/COM/ComWrappers/MockReferenceTrackerRuntime/CMakeLists.txt [new file with mode: 0644]
src/coreclr/tests/src/Interop/COM/ComWrappers/MockReferenceTrackerRuntime/ReferenceTrackerRuntime.cpp [new file with mode: 0644]
src/coreclr/tests/src/Interop/COM/ComWrappers/Program.cs [new file with mode: 0644]
src/coreclr/tests/src/Interop/COM/NativeServer/Servers.h
src/coreclr/tests/src/Interop/common/ComHelpers.h
src/coreclr/tests/src/baseservices/compilerservices/RuntimeHelpers/ExecuteCodeWithGuaranteedCleanup.cs
src/coreclr/tests/src/baseservices/compilerservices/RuntimeHelpers/ExecuteCodeWithGuaranteedCleanup.csproj [deleted file]
src/coreclr/tests/src/baseservices/compilerservices/RuntimeHelpers/RuntimeHelpersTests.cs [new file with mode: 0644]
src/coreclr/tests/src/baseservices/compilerservices/RuntimeHelpers/RuntimeHelpersTests.csproj [new file with mode: 0644]
src/libraries/System.Private.CoreLib/src/Resources/Strings.resx
src/libraries/System.Private.CoreLib/src/System.Private.CoreLib.Shared.projitems
src/libraries/System.Private.CoreLib/src/System/Runtime/InteropServices/ComWrappers.PlatformNotSupported.cs [new file with mode: 0644]
src/libraries/System.Runtime.InteropServices/ref/System.Runtime.InteropServices.cs
src/libraries/System.Runtime/ref/System.Runtime.cs
src/libraries/System.Runtime/tests/System/Runtime/CompilerServices/RuntimeHelpersTests.cs
src/mono/netcore/System.Private.CoreLib/src/System/Runtime/CompilerServices/RuntimeHelpers.Mono.cs