Add -public_exclusiveto flag to enable implementing exclusiveto interfaces in consuming projects #1670
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.
We have a pattern where runtimeclasses are defined in MIDL with the expectation that they'll be implemented by multiple other components. In this model the "exclusiveto" interfaces aren't so exclusive since they need to be implemented by other callers. When generating a consuming projection from such a component, we'll pass this new flag so that the exclusiveto interfaces are exposed the same as any other WinRT interface so that consumers can implement those interfaces too.
In this change I added the public_exclusiveto flag and used it in the couple of places that affect the generation of the public interface bits (i.e. helper class visibility and vtable).