Release Notes - 5.0.3
Additions
- Added tests for analyzer and fixed some issues.
- Finished work on analyzer to check for using 'null' or 'default' on a SafeHANDLE variable or argument and another to check to see if there is a PInvoke overload that is more optimized than a current call.
- Added VARIANT_BOOL struct to Core to wrap a 2-byte OLE boolean value
- Added Type.IsComInterface() extension method
- Added unit tests for BOOL, BOOLEAN, and VARIANT_BOOL
Fixes
- BIG BREAKING CHANGE: Rewrote PROPVARIANT to use a fully native struct, PROPVARIANT_UNMGD, and changed every related method to use the struct. All this to prevent issues with methods like IPropertyStore::GetValue that cannot be overwritten if using the class. #602 highlighted this initial problems.
- Fixed Shell problems related to PROPVARIANT changes
- Fixed bug in SafeNetApiBuffer.ToIEnum (#598)
- Fixed problem with generated version of GetWindowText (#599)
- Fixed bug in new DATE struct
- Removed all disposal instances of Marshal.ReleaseComObject per #603 and https://devblogs.microsoft.com/visualstudio/marshal-releasecomobject-considered-dangerous/ and https://stackoverflow.com/questions/37904483/as-of-today-what-is-the-right-way-to-work-with-com-objects/38170605#38170605
- Added specific SDK version to VssApi to prevent build issues when using "latest".
- Added back missing true/false/! operators to BOOL and added to VARIANT_BOOL
- Fixed bug in generated TypeDef IConvertible.ToType method
Full Changelog: v5.0.1...v5.0.3