Release Notes - 3.2.18
Additions
- Added missing constants and macros related to SID size.
- Added SafePSID.FromToken and PSID.GetDomainSid methods
- Added SafeDRT_DATA to DRT
- Added Null fields to SafeHCRYPTHASH, SafeHCRYPTPROV and SafePCCERT_CONTEXT
- Added missing Crypt32 constants
- Added CERT_RDN_ATTR and CRYPT_BIT_BLOB
- Added predefined values to SafeOID
- Added methods to assist with memory alignment.
- Added NativeMemoryStream.ReadToPtr and WriteFromPtr methods to interact with allocated memory.
- Added methods to convert from IN_ADDR to IN6_ADDR
- Added SIZEOF_SOCKET_ADDRESS_LIST macro.
- Extended SOCKADDR explicit cast to SOCKADDR_IN6 so that if represented by a v4 IP address, it will convert it to IPV6 before casting.
- Added LsaOpenPolicy test for remote machine (#169)
- Added DISPID constants to ShlDisp and updated dependent interfaces
- Added overload for ConnectToConnectionPoint for optional last param and fixed attributes.
- Added missing EnumeratorToEnumVariantMarshaler for .NET Core
- Initial implementation of FirewallApi.dll. Yes, it is in VB instaead of C#. Ony VB support parameterized properties and the underlying COM objects have these. Plus, it was a fun experiment.
- Added
Vanara.Collections.History
class - Added standard HWND constants as static fields in HWND
- Added PID constants for property ID values in a PROPERTYKEY
- Added explicit ReadConsoleA and WriteConsoleA for UTF-8 operations (#171)
- Added IsUserCetAvailableInEnvironment and SetProcessDynamicEHContinuationTargets functions to Kernel32
- Added Get*Profile** function overloads to replace StringBuilder with allocated memory for multistring results (#172)
- Added Vanara.Configuration.InitializationFile wrapper class for all PrivateProfile functions.
- Added equality operators to PIDL
- Added shell::: URI handling to ShellUtil.GetShellItemForPath
- For ShellItem, added TypeConverter for strings, DataObject property, multiple Open method overloads, and ToUri method.
Fixes
- BREAKING CHANGE: Modified interfaces IOleWindow and IShellBrowser and all derived interfaces so they use PreserveSigAttribute. All these interfaces can be client implemented and needed that capability.
- BREAKING CHANGE: Fixed return value of TrackPopupMenuEx so command identifiers could be returned.
- BREAKING CHANGE: Reconfigured PROPSPEC structure so it works on both X86 and X64 and added constructors to help.
- BREAKING CHANGES: Fixed all the profile functions for ease of use and proper function.
- Fixed signature on CryptSignAndEncodeCertificate and CryptSignCertificate and added Null field on SafeHCRYPTKEY
- Fixed field types in CERT_INFO and CERT_PUBLIC_KEY_INFO
- Addressed #168 by adding protected virtual GetDialogFlags and GetPreVistaDialogFlags methods that return the flags used by SDK functions.
- Changed SOCKET_ADDRESS_LIST[] references to IntPtr or void**.
- Fixed condition in HRESULT.FormatMessage that fails when MUI file couldn't be found.
- Fixed bug in marshaler for LSA_UNICODE_STRING under X64 that caused alignment error and failure on all calls. Thanks @ryannewington for identifying the problem and where to fix it (#169).
- Fixed attributes on IShellView.GetItemObject
- Fixed bug in IContextMenu3.HandleMenuMsg2 declaration
- Fixed bug in IPropertySetStorage::Create definition …
- Fixed problems with IPropertyStorage::Read/WriteMultiple definitions and provided overload to simplify. Fixed param on Commit method.