Skip to content

CsWinRT v0.1.0.201006.1

Compare
Choose a tag to compare
@Scottj1s Scottj1s released this 06 Oct 18:29
73299a3

Release Notes

Refer to this list of breaking changes for .NET5 RC2.

Other known issues include:

  • MarshalInterface.FromAbi doesn't handle the case where ptr is not the default interface. (#360)
  • WinUI3 performance issues (#413)
  • ReadyToRun is not supported for applications using the .NET5 Windows 10 TFM. These applications should install the latest .NET5 SDK from the RTM branch to get the fix. (#442)
  • Projected XAML classes still require an explicit registration in the app startup path. This will be fixed in the RTM release. (#465)

Changes:

  • 73299a3 Angzhang/flattensample (#453)
  • b8b2ea7 Merge pull request #452 from microsoft/ujjwalchadha/optimize-noexcept
  • 4f86482 Add optimization for noexcept methods and test cases
  • 48fd923 User/jlarkin/fixasynctests (#450)
  • 1745600 adding sample files (#425)
  • 8334dc6 Merge pull request #448 from microsoft/ujjwalchadha/fix-redundant-checks-codewriters
  • cac5a23 Update testwinrt and clean up redundant code
  • 7a5eb27 add a lock around ComWrappers singleton accessors for thread safety (unit tests occasionally failed) (#447)
  • a2689f8 always create global.json and prerelease targets files on every build (#441)
  • 52fedba Fix XAML app break in protected constructor from Dynamic interface castable changes. (#445)
See More
  • 7b18250 Fixed broken tests, bad merge, regression in RC guid calculation (ProjectedRuntimeClass attrib), and made vector view GRCN more reliable (#444)
  • 17687ff Merge pull request #369 from microsoft/IDynamicInterfaceCastable
  • b06d2d3 Fix authoring
  • 1f35673 skip buffer and stream async tests (#440)
  • 94294d2 Fix build errors
  • 80ccff5 Merge branch 'master' into IDynamicInterfaceCastable
  • 4418c1b Merged Master into IDynamicInterfaceCastable
  • a7748a9 transform use of await to use Tasks and waits (#439)
  • 1cb8c01 Add tests for IDynamicInterfaceCastable
  • e57b67c Fix casing. (#435)
  • ba117da Code cleanup
  • 557df57 fixed build break (#434)
  • 2a947c4 IXamlServiceProvider projection (#433)
  • 2fe4e76 Upgrade Authoring source generator to use new Roslyn API. (#432)
  • 3831edd Update the Microsoft.NET.Compilers.Toolset package to have Roslyn respect UnmanagedCallersOnly (#427)
  • 73a30a6 Merge pull request #422 from microsoft/user/jlarkin/update-IBufferByteAccess
  • f7d3740 Merge branch 'master' into user/jlarkin/update-IBufferByteAccess
  • 8f673c2 add unit test covering issue 359, add attribute to IMarshal
  • 471979e Added manual type mappings for IDynamicInterfaceCastable
  • 3686f7d INotifyDataErrorInfo implementation (#419)
  • 224ee35 add support for non-void event delegates (#418)
  • 290e744 Fix build. (#423)
  • 3c9e700 move one of huo test out of net5 tests, fix repro test
  • 2d822d6 Merge branch 'master' into user/jlarkin/update-IBufferByteAccess
  • d177995 Authoring part 2 (#416)
  • fca2c7b Merge branch 'master' into user/jlarkin/update-IBufferByteAccess
  • b8a4d4a add contract to ibufferbyteaccess and a unittest based on repro from issue
  • 64f3e35 add key and key property (#420)
  • 2614a13 remove namespace rename (#414)
  • be45606 Register projections with module initializers (#404)
  • c38b4a2 Add field access optimization for default interfaces
  • 9190ef4 [DO NOT MERGE] Restore "Update to .NET 5 Preview 8 and update compiler toolset package" (#400) [ #388, #399 ]
  • 229fead Merge remote-tracking branch 'origin' into IDynamicInterfaceCastable
  • f8637d1 Update .gitignore
  • 1c5bdfa Adding source generator to nuget package. (#403)
  • 26b5f1c demonstrate iinspectable-based interop interface (#393)
  • 598ec08 Revert "Update to .NET 5 Preview 8 and update compiler toolset package (#388)" (#399)
  • 63abd75 Update to .NET 5 Preview 8 and update compiler toolset package (#388)
  • e9747d2 Various winmd writer fixes and adding more custom attributes (#391)
  • fde97d2 Initial WinRT.Host.dll implementation (#374)
  • 048a87a Update README.md (#392)
  • ac42ed4 Add diagnostics to winmd reference workarounds (#387)
  • efe1842 Project static As<> casting methods for access to factories for interops, etc (#385)
  • 0a22529 Adding WinMD generator (#383)
  • 6d6b3f0 a few gaps in authoring support (#386)
  • 95cc5ee track source metadata for authoring projections (#378)
  • 0076251 fixed buffer overrun with tpm switch help (#375)
  • bb87934 Changes to readme, additional md files/diagram (#368)
  • e86f00b Update README.md
  • 597a024 Add support for IDynamicInterfaceCastable-based interfaces in RCW creation
  • b5c3c31 Cache cast results in .NET 5 projection to regain some perf losses.
  • a02a72c Fix more collections so the Windows projection also builds.
  • b58f37d Get WinUI projection compiling with no new warnings.
  • 25e4e4b Use Spans instead of LINQ to improve perf in Guid generation (startup perf).
  • 1f4d869 Fix projected required interface implementations and handle default interfaces of runtime classes such that they can live in different projections and compile with only the public contract exposed.
  • 1f2efee Update to LangVersion preview
  • cc30448 Implement static interface support by using dynamic casting under the hood via an internal IInspectable instance.
  • bcaf88e Use equality functions instead of ThisPtr.
  • 6511ae6 Move activation/composition to work with IDynamicInterfaceCastable.
  • 89a83ee Use the QI cache when checking if an interface is implemented.
  • 4fd093b Move statics and factory caches to the IDynamicInterfaceCastable plan.
  • 686cead Add fallback for when an interface is kept alive but its Vftbl type was linked away since no members on the interface were called.
  • 6e455f3 Implement IDynamicInterfaceCastable for generated code excluding factories and FromAbi.
  • 58c590a Add IWinRTObject interface and continue implementing the updates to interfaces.
  • 7ad98c8 Start refactoring for implementing IDynamicInterfaceCastable.
  • 4be3620 Don't ship the netstandard2.0 projection support.
  • 11fcbd9 Don't directly use the underlying ObjectReference as the marshaler when marshalling ABI interface types. (#365)
  • 4819103 Merge pull request #350 from microsoft/fnptrs
  • 762e779 Update usage readme
  • b0cdf20 Simplify IUnknownVftbl creation. fixes WinUIDesktopSample startup.
  • 5063e20 Merge pull request #363 from microsoft/manodasanw/fnptrs-compilertools
  • e41cb2e Address PR feedback.
  • 05c4fb1 Updating compiler tools to support function ptrs without VS preview
  • a4c9dad Merge pull request #361 from microsoft/manodasanw/dotnetupgrade
  • c81f9a3 Upgrading dotnet version to released preview 7 and attempting new fix to winmd references as it regressed.
  • 86ac082 Merge pull request #353 from microsoft/ujjwalchadha/benchmarks
  • 7e2f90a Merge pull request #357 from microsoft/manodasanw/stringablefix
  • a497f97 Merge pull request #356 from microsoft/manodasanw/lazyinterfacesfix
  • 1f21ba0 Slim down native->managed vtable creation when the type is non-generic.
  • 631bb36 Fix IStringable array by ref scenarios and URI marshaling from non default interface.
  • 4b049bb Initializing _lazyInterfaces in the other constructors which were previously missed.
  • 8cb55a1 Fix usage docs.
  • 5d8ee53 Updated benchmark routine names
  • 88a9af6 Updated benchmark routine names and updated commit id in build file
  • 39899eb Revert extra change to App.xaml.cs.
  • fa9a7c9 Enable additions interfaces for function pointers support.
  • 6a09534 Added cached reflection scenarios for benchmarking
  • 1551b12 Fix .NET Standard tests.
  • 6cecf9b Fix bad init after pointer conversion.
  • a7d7faf Update all non-generic interfaces that we manually project in WinRT.Runtime.
  • a869203 Merge branch 'master' into ujjwalchadha/benchmarks
  • 3643b58 Update IPropertyValue to use function pointers.
  • 47e7b73 Added Reflection Performance Benchmarks
  • eb54353 Convert over a few more interfaces to the function pointers plan.
  • f440b79 More function pointers work with generics and delegates. Use pointers instead of byrefs when using UnmanagedCallersOnly as required.
  • 6315f97 Merge pull request #351 from microsoft/manodasanw/benchmarkbuildfix
  • 58c5dac Removing benchmark project from x86 builds to fix build.
  • b0c089d Clean up IUnknownVftbl initalization to avoid initalization ordering issues and fix VftblIUnknownUnsafe deferencing to work with generic types.
  • 59ba77e CCW code was mistakenly returning an IUnknown as an IInspectable (#349)
  • ec55b3c Fix delegate cache indexing.
  • cbe9b43 Move IInspectable to the function pointers plan.
  • 86f7559 Get function pointers building with original syntax.
  • 41b0fe1 Hook up tfm-specific codegen and get WinRT.Runtime building again.
  • fd1746f Merge branch 'master' of github.com:microsoft/cswinrt into fnptrs
  • 3e15a45 Add workaround for function pointer casting.
  • c5efd9f Merge pull request #343 from microsoft/manodasanw/benchmarks
  • 521b957 PR feedback.
  • e686b73 Fix typo.
  • f677bbb Update readme and comments.
  • 8d8c397 Fix absolute paths
  • 661a2da Updating to include benchmarkcomponent from testwinrt.
  • e300706 Fix PlatformVersion error when building benchmarks due to Window identifier set.
  • 669484c Remove unnecessary removals.
  • cd3b2f1 Building fixes.
  • 193c04f Adopting to changes to benchmarkcomponent
  • 4044839 Adding managed memory tracking.
  • 15ed71a Adding BenchmarkDotNet for benchmarking and adding bencmarking for cswinrt projection on .netcore 2.0, 3.1, 5 and benchmarking for winmd projection on net core 3.1.
  • 6bd8b9a added TargetPlatformIdentifier for unit test project (#340)
  • 8a3c027 Merge pull request #336 from microsoft/manodasanw/queryinterfacecaching
  • bd5f807 update to .net 5 sdk preview 7, and a few other dependencies (#339)
  • 824abec Improving performance of non default query interface calls by caching a lazy reference rather than constructing it each time.
  • 13a08cb Add ComImport casting support, subject to some constraints (#333)
  • 4808ed7 Update based on function pointer design changes.
  • fc3192c Update README.md
  • e15892a Replace INotify*-related IIDs with MUX versions, fix NRE crash on uninitialized CWT (#331)
  • 1ab913d do not register for ComWrappers marshaling support, but only reference tracking (#327)
  • 281e536 add ability to share debug/release generated files (#325)
  • 94e6db0 backing off to preview 5 due to WinUI concerns (#324)
  • 27e6689 updated to public winui nuget (#323)
  • cd01644 update testwinrt nuget and use latest public winui nuget (#322)
  • e6126c1 Address ComWrappers breaking change and add prerelease policy (#321)
  • 7d5a654 Update README.md
  • 9a46c36 Update README.md
  • ee6ef16 Project Reunion blurb (#319)
  • 37ae7f1 Multi-targeting DispatchToInnerBuilds doesn't play nicely with ResolveAssemblyReferences (see also dotnet/msbuild#2781). Since cswinrt.exe is moving to forked code gen based on TFM, will just adopt that now, and resolve build breaks. (#315)
  • d392a0d Update packages.config
  • ede4a47 Restructure solution for better validation of projections (#313)
  • 7659cde Fix error in README MSBuild sample (#305)
  • 4d1a144 Merge pull request #303 from microsoft/manodasanw/agileref
  • a13c31f Move git to static lazy reference and fix null case.
  • 0ff0203 Address PR feedback.
  • 1e33cad Switch to net5.0 TFM - requires VS 16.6 or updated nuget.exe (#234)
  • 0a5a609 Fallback for RoGetAgileReference when it isn't available.
  • e2fefd8 Adding comments
  • 08e8990 Support for agile references.
  • 5bfa7f1 update regex package due to security vuln (#300)
  • a332a80 Remove extra marshalling and casts now that we don't need to worry about delegates for IUnknown.
  • 91ec253 Local definitions of geometry types in Nullable don't work (#299)
  • 39a0817 tentative function pointers work
  • f7c160f fix build breaks (#298)
  • 48e5a74 Per community feedback, add float constructors and make backing float fields public. (#296)
  • ff6c799 Revert "flip geometry types from double to float, per community feedback (#258)" (#295)
  • bef0663 Add RID-specific runtime folder load fallback (#291)
  • 46da6c0 use local nuget.exe (#289)
  • 24343fd moved conditional compilation to fix DEBUG build break (#284)
  • 1dc85f4 Move MarshalInspectable from ABI FromAbi to projected FromAbi, to remove casts which can fail if assumptions don't line up with GetRuntimeClassName returns. (#281)
  • 5189a4c prep for winui nuget update, removing transitive winrt.runtime (#274)
  • e23f6e9 Add the ObjectReferenceWrapper attribute to enable unwrapping WinRT.IInspectable instances. (#273)
  • 2c569ef dynamic generated types -> Object (#268)
  • e9266ba build a label (#271)
  • 5974583 Specially-handle TimeSpan as a primitive type. (#261)
  • 9949ced Only unsubscribe from the native event when we transition from having subscribers to no subscribers. (#259)
  • 965844e flip geometry types from double to float, per community feedback (#258)
  • f3eb7cf semver versioning of binaries, nuget (#254)
  • 56a48bc Make sure Marshaler treats System.Type as a struct. (#253)
  • b2b8b5e Fix Type.GetGuidSignature to still point to WUX.Interop (#252)
  • 42b1636 Implement equals overrides or classes (#249)
  • 077d35d Generated string sources were generating clutter (#248)
  • 61492cf Add ExceptionHelpers.ReportUnhandledError (#247)
  • 26564b4 Fix array marshaling bugs for classes, delegates (#245)
  • 331fe06 Fixed a few missing keyword escapes, mostly return params (#246)
  • 5ef2e73 Create WinRT.WeakReference to enable defining weak references that live for the lifetime of the native object. (#241)
  • c2c91f0 Make storage extensions conditional (#239)
  • 3e68be0 Add missed null handling for FromAbi custom marshalers. (#238)
  • 0b5708a Add missing Guid for ICustomPropertyProvider. (#236)
  • 45f9d5b Remove out of date duplicate TryUnwrapObject implementation. (#235)
  • 312b730 Update CastExtensions.As implementation to support querying for hidden interfaces on composed types. (#230)
  • 58a5db0 Provide IReference for delegate types. (#229)
  • 6a77f2e Bail out of the CCW infra and fall back to the runtime implementation when the object is of a type that includes a runtime-implemented RCW. (#225)
  • b243fb2 Fix IBufferByteAccess GUID (#228)
  • 80297f5 Add missing MarshalInspectable methods (#224)
  • 21b81cf Fix unwrapping runtimeclasses (#215)
  • f9313a9 Implement fallbacks for empty, null, or nonexistent in managed runtime class names. (#218)
  • 230b31b IPropertyValue various fixes (#210)
  • e44df1b add same workaround as build pipeline to enable dotnet test with winui (#209)
  • 4bd4962 Update docs before going public (#197)
  • c6607e8 Add comprehensive null checks to support null parameters, etc (#205)
  • 9bdce3b Merge pull request #206 from microsoft/user/mawign/internalfix
  • 52006a7 Fixing internal visibility issue on function.
  • 104abe4 make TokenizerHelper public for use across Windows, WinUI interops (#200)
  • 11e62b8 Unwrap managed CCWs in marshalling. (#199)
  • f004b7e Fix test failures in CI. (#196)
  • 94de89d Don't look up obviously WinRT types in the .NET core runtime lib… (#194)
  • fb40cb4 Don't create vtable entries for WinRT generic interfaces constru… (#193)
  • e56d172 Make class ABI helpers public to support layered interops (#191)
  • 067fda1 Ensure that we don't get in a state of "two native pointers for the same RCW". We could get in this case with strings. Now we wrap the strings through adding them to the cache and unwrap them when giving them to the user. (#190)
  • 21d548b Update .gitignore
  • f86b8b5 download nuget in build script (#189)
  • f446988 Give IDictionary's Remove(key) precedence (#180)
  • 6c70f7e Fix fillarray code gen - should not pass by ref (#177)
  • ce2cedd Add AsAsyncOperation/AsAsyncAction (try 2) (#176)
  • 43ceaac remove wap project which is unnecessary and adds complexity (#174)
  • 952560f Fix typo on AsRandomAccessStream method. (#178)
  • cf83965 Revert "Add missing AsAsyncAction and AsAsyncOperation methods. (#169)" (#171)
  • a7de29e short-circuit out of RCW if object does not implement GetRuntimeClassName, etc (#170)
  • 630c45e Add missing AsAsyncAction and AsAsyncOperation methods. (#169)
  • a7ed6bc Emit protected composable constructors. (#168)
  • b3d1b29 Make projected types in W.F.C and WUX.Interop internal. (#156)
  • 3c6b86b Basic support for producing and consuming cswinrt interop assemblies (#160)
  • 19c66e4 Add explicit TPV to address build pipeline error (uap.props not found) (#161)
  • 2c7ce24 nuget foul up (#159)
  • f312cf5 Switch from wux to mux where possible (#157)
  • 23332fa Fix ICustomQueryInterface.GetInterface implementation to never delegate a QI for IInspectable to the inner. (#155)
  • 3c5ff48 Update WinUIProjection.csproj
  • 90d9954 special casing for IReference[String] and KeyValuePair (#153)
  • 9ebe644 Fix emitting Windows.Foundation.Metadata.DeprecatedAttribute. (#152) [ #137 ]
  • 037e63f Fix failing tests (#150)
  • 7b4c304 Non-Throwing QI implementation and context capture for activation (#151)
  • 9a8aa19 Implement ICustomQueryInterface to support aggregation and hidden interfaces (#128) [ #143 ]
  • 83ad781 Numerics type mappings (#145)
  • 492abf5 applied missing WindowsRuntimeTypeAttribute to mapped structs (#146)
  • 2c2ee91 remove nullable types (#142)
  • cd3ef82 type mappings for xaml structs (#141)
  • d2df429 Rect, Size, Color mappings (#138)
  • aa9d495 attributes, contracts, and their applications (#135)
  • 7b9de18 Implement all of the System.* public surface area from System.Runtime.WindowsRuntime (#134)
  • 4143fcc Update Projections.cs
  • bdd7950 Update build.cmd
  • 9c19083 Update build.cmd
  • a6ac5e3 Project WUX.INotifyCollectionChanged and family (#129)
  • c37a2aa Fixing build issues due to adding WinUI projection (#132)
  • 047d02a Delete msbuild.binlog
  • 9871382 Merge pull request #124 from microsoft/stevenbrix/winui-app
  • d6ab3bf moving winui projects to subfolder
  • ca80c53 fix wapproj build from command line
  • 45c2693 adding winui feed to nuget config
  • 3f57499 pr feedback
  • 0c369e9 fix whitespace
  • 1b06de0 renaming in case it mattered. spoiler: it doesn't

This list of changes was auto generated.