Release Notes - 4.2.0
Major changes
- Migrated solution to Central Package Management
- Added Vanara.PInvoke.TelephonyApi (TAPI) assembly with all 3.x interfaces
- Many additions, changes, and a few BREAKING CHANGES to Kernel32 as I did a full review after many years.
Additions
- Added bindlink.h to Kernel32
- Added ComConnectionPoint functionality to retrive the cookie for each supported IID.
- Added functions for hit lists to BitHelper
- Added generator that looks for MarshaledAlternativeAttribute and creates conversion code to process between original simple structure and new Marshaled structure
- Added GuidToStringMarshaler, an ICustomMarshaler to convert an object with a Guid value or a Guid string representation to a formatted string value.
- Added INVALID_HANDLE_VALUE fields to base handles
- Added missing MRU list and Flat scrollbar functions and types
- Added missing WinCrypt structures, updated IntPtr fields with stronger typed StructPointer and ArrayPointer types, added missing error constants.
- Added ModalDialog class to handle resource based dialogs
- Added multiple SendDlgItemMessage overloads (like SendMessage)
- Added ReadFile overloads
- Added SafeHANDLE null equality handler (false) and made ReleaseOwnership virtual
- Added some annotation attributes that will eventually feed generators: AddAsMember, Ignore, and SizeDef
- Added spuihelp.h methods and other minor fixes to SpeechApi
- Added support to VanaraMarshaler for Marshaled structures
- Added UnionHelper static class that has methods to make processing overlapping values easier without using ExplicitLayout
- Added Win32Error.GetExceptionForLastError
- Adds the two flags that were introduced after Windows 10 1709 but are still missing from Vanara’s CF_UPDATE_FLAGS enum.
- Add ed CF_UPDATE_FLAG_ALWAYS_FULL & CF_UPDATE_FLAG_ALLOW_PARTIAL to CF_UPDATE_FLAGS (#540)
Changes and Fixes
- BREAKING CHANGE: Changed SafeAllocatedMemoryHandle.CopyTo(SafeAllocatedMemoryHandle h, SizeT l) and removed second param to prevent ambigous calls. Moved DangerousSetSize to SafeAllocateMemoryHandleBase. Added param check to CopyTo(SizeT start, SizeT length, ISafeMemoryHandleBase dest, SizeT destOffset = default) to prevent buffer overreads and fixed dest checks.
- BREAKING CHANGES: Fixed MemoryApi MapUserPhysicalPagesScatter and GetMemoryErrorHandlingCapabilities parameters
- Changed all handles to derive from SafeHANDLE instead of SafeHandle and derivatives to get extra functionality and work better with new analyzer. Hopefully not a breaking change.
- Changed SafeEventHandle parameters to HEVENT for broader use.
- Created NUnit TestWhenElevated attribute to mark methods that shouldn't fail if run when not elevated.
- Exposed HINSTANCE of ModalDialog
- Extracted ISafeMemoryHandleBase from SafeAllocatedMemoryHandleBase and made ISafeMemoryHandle derive from it.
- Fixed bug how ModalDialog returned from WM_COMMAND
- Fixed bug in Library nuspec file
- Fixed bug in NativeMemoryStream.Read(byte[]) not handling null correctly.
- Fixed Clipboard.AnsiToUnicode after changes to MultibyteToWideChar function
- Fixed incomplete parameter declarations in CldApi.CfUpdatePlaceholder (#546)
- Fixed layout issues with Ole32.DVTARGETDEVICE (#550)
- Fixed layout of OPEN_VIRTUAL_DISK_PARAMETERS (#541)
- Fixed problem wtih WlanApi.DOT11_SSID not handling UTF-8 strings (#545)
- Fixed problems with GETTEXTEX fields
- Minor changes, but unresolved problems, with CSharpRunner under .NET 8
- More work on SpeechApi adding in alternative Marshaled structures and overloads
- Updated AdvApi32.EVENT_TRACE_PROPERTIES with ctors
- Updated NuGet packages for solution