-
Notifications
You must be signed in to change notification settings - Fork 4.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement new COM interop API for RCW/CCW creation/management #32091
Merged
AaronRobinsonMSFT
merged 83 commits into
dotnet:master
from
AaronRobinsonMSFT:winui_rcw_ccw_api
Mar 7, 2020
Merged
Implement new COM interop API for RCW/CCW creation/management #32091
AaronRobinsonMSFT
merged 83 commits into
dotnet:master
from
AaronRobinsonMSFT:winui_rcw_ccw_api
Mar 7, 2020
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
jkotas
reviewed
Feb 11, 2020
jkotas
reviewed
Feb 11, 2020
jkotas
reviewed
Feb 11, 2020
jkotas
reviewed
Feb 11, 2020
lpereira
reviewed
Feb 11, 2020
...clr/src/System.Private.CoreLib/src/System/Runtime/CompilerServices/RuntimeHelpers.CoreCLR.cs
Show resolved
Hide resolved
jkotas
reviewed
Feb 11, 2020
jkotas
reviewed
Feb 11, 2020
src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/ComWrappers.cs
Outdated
Show resolved
Hide resolved
AaronRobinsonMSFT
force-pushed
the
winui_rcw_ccw_api
branch
from
February 13, 2020 01:57
2e9513a
to
d6ea59a
Compare
jkotas
reviewed
Feb 13, 2020
jkotas
reviewed
Feb 14, 2020
AaronRobinsonMSFT
force-pushed
the
winui_rcw_ccw_api
branch
from
February 15, 2020 23:40
9767961
to
89b87b4
Compare
jkotas
reviewed
Feb 16, 2020
jkotas
reviewed
Feb 16, 2020
This was referenced Feb 17, 2020
AaronRobinsonMSFT
force-pushed
the
winui_rcw_ccw_api
branch
from
February 20, 2020 00:15
9b808da
to
7b9871b
Compare
All green - w00t! @jkotas and @jkoritzinsky Any more feedback or thoughts? Still waiting for API review, but this is a large PR and will take some time. Thanks. |
jkotas
reviewed
Feb 21, 2020
src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/ComWrappers.cs
Show resolved
Hide resolved
jkotas
reviewed
Feb 21, 2020
src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/ComWrappers.cs
Outdated
Show resolved
Hide resolved
jkotas
reviewed
Feb 21, 2020
src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/ComWrappers.cs
Outdated
Show resolved
Hide resolved
jkotas
reviewed
Feb 21, 2020
src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/ComWrappers.cs
Outdated
Show resolved
Hide resolved
jkotas
reviewed
Feb 21, 2020
src/coreclr/src/System.Private.CoreLib/src/System/Runtime/InteropServices/ComWrappers.cs
Show resolved
Hide resolved
This reverts commit d0f6a5b04adbaa8e53445e4474780a9182ff8bde.
defined wrapper. This will indicate to skip calling CallObject().
AaronRobinsonMSFT
force-pushed
the
winui_rcw_ccw_api
branch
from
March 7, 2020 02:30
27770f0
to
642ca9b
Compare
jkotas
reviewed
Mar 7, 2020
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Implementation of the proposed API found at #1845.
All new tests run and pass on Windows running under
COMPlus_GCStress=0xC
.In order to allow code generators to make performant RCW/CCW implementations, the
NativeCallableAttribute
should be made public and the C# function pointers proposal should be implemented.TODO:
Complete
Peg
/Unpeg
API implementation.Remove all new
TODO
s.Finish E2E testing provided by the Mock Tracker Runtime project.
Add testing for skip cache scenarios when creating managed wrappers.
Handle build issues on non-Windows platforms.
Remove shutdown logic once Remove unused COM shutdown logic. #32381 is merged in.
Add logging to the runtime side of the interoplib library.
Investigate how the following COM APIs work with this API.
- Properly handled.Marshal.ReleaseComObject()
- Properly handled.Marshal.FinalReleaseComObject()
- Calling this on a wrapper object created by this new API will passively create an old style CCW. Deferring any changes until customer reported.Marshal.GetIUnknownForObject()
Future issues to file:
Share additional code between existing RCW/CCW support and new API.Update
Marshal.GetIUnknownForObject()
andMarshal.GetObjectForIUnknown()
to check and possible use the globally registeredComWrappers
instance - see Implement new COM interop API for RCW/CCW creation/management #32091 (comment).Consider removing the existing built-in WinRT support - see Implement new COM interop API for RCW/CCW creation/management #32091 (comment).
/cc @jkotas @jkoritzinsky @Scottj1s @davidwrighton