Added ACE_TYPE with full set of enums for AceType value in AdvApi32.ACE_HEADER and all associated structures. Added IAccessControlEntry interface to identify all ACE structures. Fixed SafePACL.Size and added SafePACL.Clone.
Added AdvApi32.AddAce overload with simplified params
Added EnumExtensions.ToEnum(byte[]) method to convert a byte array to an enum.
Added IDisposable back to AmsiStream
Added IEqualityComparer for PACE values
Added IObjectAccessControlEntry to identify object ACEs. Many enhancements to SafePACL to treat as IList and handle smarter ACE inserts.
Added PACE.GetAceStruct extension to get correct structure from pointer to an ACE. Updated other extension methods to use AsRef rather than ToStructure for efficiency.
Added SafeMemoryHandle.DangerousOverrideSize to let programs set the size, usually after default ctor is used as out param.
Added SequenceCompare extension method similar to SequenceEqual in Linq
Added ShellFolder.EnumerateChildIds to get PIDLs from folder
Added ShellLibrary internal ctor with IShellLibrary param
Added VisibleWindow.Children and AddChild operations and fixed Run methods to not be ambiguous and to only call CreateWindow when needed.
Added implementation for SecurityInfoImpl for ISecurityInformation2 but it crashes, so kept code but commented out interface inheritance.
Added missing PowrProf.GUID_ENERGY_SAVER_STATUS value
Added missing SI_OBJECT_INFO_Flags values. Changed parameter types in ISecurityInformation from IntPtr to GuidPtr for better type safety and updated parameter names to match those in the MIDL definitions. Changed BOOL values to BOOLEAN in EFFPERM_RESULT_LIST and SECURITY_OBJECT. Changed to PSID field in SID_INFO.
Added type hints to AMSI_ATTRIBUTE
Fixes
Adjust VisibleWindow test to use new Run signature
Adjusted SafeMemoryHandle.Size setter so that it only fills in zeros if AllocZeros is true.
BREAKING CHANGE: Made IShellLibrary.LoadLibraryFromItem and LoadLibraryFromKnownFolder return HRESULT to avoid exceptions when using those functions to test IShellLibrary
Changed User32.EnumChildWindows overload to return IReadOnlyList instead of IList
FIxed first param of ISecurityObjectTypeInfo.GetInheritSource
Fixed alignment bug in DLGITEMTEMPLATEEX serialization
Fixed bug in AdvApi32.ConvertStringSecurityDescriptorToSecurityDescriptor override
Fixed bug in PACL.CompareTo(PACL)
Fixed bug introduced by removal of DEVICE_NOTIFY
Fixed bugs in SensorsApi interface definitions and added a few extension methods
Fixed bugs in User32.GetDialogBaseUnits and MapDialogRect definitions
Fixed many nullability errors in SensorsApi interfaces
Fixed structure bug in FwpUClnt.FWP_VALUE0 that caused #475 and added a GetValue method to easier extract the value.
Hopefully not a breaking change, but SafeMemoryHandle.Write overloads now return the number of bytes written.
In AdvApi32, added comparison and equality functions for PACE and PACL, improved accuracy of PACE.GetMask, PACE.GetSid methods, added PACE.IsAlarmAce and PACL.Revision extension methods.
Lots of fixes and enhancements to User32 Dialog box methods and structures.
Revamped AnsiStream implementation to handle streams rather than allocated memory.
Updated Kernel32.LocalMemoryMethods with locking methods and logic for using non-lockable memory in alloc.
Updated SafePSECURITY_DESCRIPTOR string ctor to be more efficient
Updated ShellItem.Open so that it doesn't throw exceptions and is a little more efficient. Should help #474
Updated User32.SIZES structure with ctor and conversion operators.
Updated declaration of ISecurityInformation2 and added SID_INFO_LIST struct to AclUI
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps Vanara.PInvoke.User32 from 4.0.2 to 4.0.3.
Release notes
Sourced from Vanara.PInvoke.User32's releases.
Commits
3b0d447
Corrected misspellings in docs #477e2aa7e4
Split IDataObject extension methods out of Clipboard.cs into DataObjExt.cs8193b61
Merge branch temp7e54d0f
Restore duplicated clipboard.csf3ee8d8
Duplicate clipboard.cs to dataobjext.cs43c739a
Revert "Splitting out IDO extensions from Clipboard"5ba590f
Revert "Splitting out IDO extensions from Clipboard"bd2395e
Splitting out IDO extensions from Clipboard2ee15cf
Splitting out IDO extensions from Clipboard05c4b81
Updated AclUI test to show effective rights tabDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show