Release Notes - 3.2.9
Additions
- Added support for Span and ReadOnlySpan
- Added AsSpan and AsBytes methods to SafeAllocatedMemoryHandle for frameworks supporting Span.
- Added SafeAllocatedMemoryHandle.AsReadOnlySpan extension method and changed Span methods to use IntPtr extensions.
- Added SafeMemoryHandleExt.AsRef method for getting a Span of a structure from the memory.
- Added IntPtr.AsSpan and IntPtr.AsReadOnlySpan extension
- Added new SafeMemStruct class that wraps a structure into memory with Span support. Added assoc. unit test.
- Added SafeCoTaskMemStruct and SafeHGlobalStruct derivations of SafeMemStruct
- Add NO_ERROR constant. (#119)
- Added DirectWrite, DXGI and WIC references to Vanara.PInvoke.Graphics
- Added remaining, supported interfaces from shobjidl.h
- Added DnsGetCacheDataTable w/ unit test (#121)
- Added IPersistSerializedPropStorage and IPropertyStoreCapabilities COM interfaces
- Added IPropertyBag2 and supporting elements
- Added SafeMibEntryBase.TableAsSpan property and SafeMibTableHandle AsReadOnlySpan method (for supported platforms)
- Added MemoryPropertyStore with stream r/w support representing a property store that lives separate from a ShellItem
- Added PROPVARIANT_IMMUTABLE as a pure structure that can be used in arrays where the class equivalent breaks marshaling.
- Added PowerBroadcastType enum and POWERBROADCAST_SETTING struct for WM_POWERBROADCAST messages
- Added ReadOnlyPropertyStore as the base object wrapping IPropertyStore.
- Added SafeGuidPtr for instances where GUID is optional.
- To ShellItemChangeWatcher, added attributes to properties, added Path property tied to Item property for use in designer (#124).
- Added UNICODE_STRING.ToString() overload
- Added NtQueryInformationProcess (#123) and supporting constants and structures along with unit test.
- Added classes to enumerate on pointer elements (NativeMemoryEnumerator and UntypedNativeMemoryEnumerator).
- Added missing HRESULT Facility enum values
Fixes
- BREAKING CHANGE: Changed default behavior of ShellItem.Properties so that it is read-only. It was failing for all shell items that didn't have their own properties. To get previous behavior, simply set "shellItem.Properties.ReadOnly = false" before setting properties.
- BREAKING CHANGE: FIxed UNICODE_STRING so it would work across process boundries (thanks @Enigmatrix) and tested. Now #123 is implemented.
- BREAKING CHANGE: Changed ShellItemPropertyStore.Descriptions to get a dictionary of PropertyDescription items rather than the PropertyDescriptionList that was already available from ShellItem. Added improved execption when IPropertyStore instance cannot be created due to a shell item with no r/w support.
- To ShellItemChangeWatcher, fixed bug with PIDLs and memory reads (#124).
- Fixed bugs in DeviceNotifyCallbackRoutine and PowerSettingRegisterNotification declarations (#122)
- Fixed crashes on ShellItemChangeWatcher with unrecognized events.
- Fixed incorrect parameters for file mapping functions and added HSECTION and SafeHSECTION handles.
- Fixed packing of SHQUERYRBINFO (#127)
- Moved SafeAllocatedMemoryHandle.Dump back under DEBUG only build.
- Fixed multiple problems with TrackBarEx in designer and runtime.