diff options
author | Jeremy Koritzinsky <jkoritzinsky@gmail.com> | 2019-03-22 17:09:21 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-22 17:09:21 -0700 |
commit | acd1164c8c89582f13163e309a0183c72bc13924 (patch) | |
tree | 831ab704ef87ed1a5b9e1a32be0c4df24b7af736 /src/vm/ecalllist.h | |
parent | 017ded3c6acd653b875f4ef12c232617855dea09 (diff) | |
download | coreclr-acd1164c8c89582f13163e309a0183c72bc13924.tar.gz coreclr-acd1164c8c89582f13163e309a0183c72bc13924.tar.bz2 coreclr-acd1164c8c89582f13163e309a0183c72bc13924.zip |
Fix WinRT marshalling for NotifyPropertyChangedEventArgs and NotifyCollectionChangedEventArgs (CoreCLR side) (#23401)
* Enable marshalling IntPtr and UIntPtr in WinRT scenarios to support our marshalling infrastructure.
* Enable getting an RCW for a native COM object while ignoring WinRT projections.
* Rename to Marshal.GetUniqueObjectForIUnknownWithoutUnboxing
* Clean up contract.
* Move GetUniqueObjectForIUnknownWithoutUnboxing to WindowsRuntimeMarshal.
* Move WinRT-specific FCalls to WindowsRuntimeMarshal.
Diffstat (limited to 'src/vm/ecalllist.h')
-rw-r--r-- | src/vm/ecalllist.h | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/src/vm/ecalllist.h b/src/vm/ecalllist.h index c184633221..ae98cff196 100644 --- a/src/vm/ecalllist.h +++ b/src/vm/ecalllist.h @@ -818,7 +818,6 @@ FCFuncStart(gInteropMarshalFuncs) #ifdef FEATURE_COMINTEROP FCFuncElement("GetHRForException", MarshalNative::GetHRForException) - FCFuncElement("GetHRForException_WinRT", MarshalNative::GetHRForException_WinRT) FCFuncElement("GetRawIUnknownForComObjectNoAddRef", MarshalNative::GetRawIUnknownForComObjectNoAddRef) FCFuncElement("IsComObject", MarshalNative::IsComObject) FCFuncElement("GetObjectForIUnknown", MarshalNative::GetObjectForIUnknown) @@ -835,21 +834,26 @@ FCFuncStart(gInteropMarshalFuncs) FCFuncElement("GetObjectsForNativeVariants", MarshalNative::GetObjectsForNativeVariants) FCFuncElement("GetStartComSlot", MarshalNative::GetStartComSlot) FCFuncElement("GetEndComSlot", MarshalNative::GetEndComSlot) - - FCFuncElement("InitializeManagedWinRTFactoryObject", MarshalNative::InitializeManagedWinRTFactoryObject) - - FCFuncElement("GetNativeActivationFactory", MarshalNative::GetNativeActivationFactory) FCFuncElement("GetIUnknownForObjectNative", MarshalNative::GetIUnknownForObjectNative) FCFuncElement("GetComInterfaceForObjectNative", MarshalNative::GetComInterfaceForObjectNative) FCFuncElement("InternalReleaseComObject", MarshalNative::ReleaseComObject) FCFuncElement("Release", MarshalNative::Release) - FCFuncElement("InitializeWrapperForWinRT", MarshalNative::InitializeWrapperForWinRT) FCFuncElement("GetTypedObjectForIUnknown", MarshalNative::GetTypedObjectForIUnknown) FCFuncElement("ChangeWrapperHandleStrength", MarshalNative::ChangeWrapperHandleStrength) FCFuncElement("CleanupUnusedObjectsInCurrentContext", MarshalNative::CleanupUnusedObjectsInCurrentContext) #endif // FEATURE_COMINTEROP FCFuncEnd() +#ifdef FEATURE_COMINTEROP +FCFuncStart(gWindowsRuntimeMarshalFuncs) + FCFuncElement("GetNativeActivationFactory", MarshalNative::GetNativeActivationFactory) + FCFuncElement("GetHRForException", MarshalNative::GetHRForException_WinRT) + FCFuncElement("GetUniqueObjectForIUnknownWithoutUnboxing", MarshalNative::GetUniqueObjectForIUnknownWithoutUnboxing) + FCFuncElement("InitializeManagedWinRTFactoryObject", MarshalNative::InitializeManagedWinRTFactoryObject) + FCFuncElement("InitializeWrapper", MarshalNative::InitializeWrapperForWinRT) +FCFuncEnd() +#endif + FCFuncStart(gInteropNativeLibraryFuncs) QCFuncElement("LoadFromPath", NativeLibraryNative::LoadFromPath) QCFuncElement("LoadByName", NativeLibraryNative::LoadByName) @@ -1300,6 +1304,7 @@ FCClassElement("WeakReference`1", "System", gWeakReferenceOfTFuncs) #ifdef FEATURE_COMINTEROP FCClassElement("WinRTTypeNameConverter", "System.StubHelpers", gWinRTTypeNameConverterFuncs) +FCClassElement("WindowsRuntimeMarshal", "System.Runtime.InteropServices.WindowsRuntime", gWindowsRuntimeMarshalFuncs) #endif // FEATURE_COMINTEROP |