IconHandle.cs 699 B

1234567891011121314151617181920212223242526272829303132
  1. using System;
  2. using System.Runtime.ConstrainedExecution;
  3. using System.Security;
  4. namespace HandyControl.Tools.Interop;
  5. internal sealed class IconHandle : WpfSafeHandle
  6. {
  7. [SecurityCritical]
  8. private IconHandle() : base(true, CommonHandles.Icon)
  9. {
  10. }
  11. [SecurityCritical]
  12. [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
  13. protected override bool ReleaseHandle()
  14. {
  15. return InteropMethods.DestroyIcon(handle);
  16. }
  17. [SecurityCritical, SecuritySafeCritical]
  18. internal static IconHandle GetInvalidIcon()
  19. {
  20. return new();
  21. }
  22. [SecurityCritical]
  23. internal IntPtr CriticalGetHandle()
  24. {
  25. return handle;
  26. }
  27. }