diff --git a/PInvoke/Shared/WinError/Win32Error.cs b/PInvoke/Shared/WinError/Win32Error.cs
index 7fe6959c..4279d79e 100644
--- a/PInvoke/Shared/WinError/Win32Error.cs
+++ b/PInvoke/Shared/WinError/Win32Error.cs
@@ -108,7 +108,7 @@ namespace Vanara.PInvoke
/// Throws the last error if the value is an invalid handle.
/// The SafeHandle to check.
/// The message.
- public static SafeHandle ThrowLastErrorIfInvalid(SafeHandle value, string message = null) => CheckPredicateOrThrow(value, v => v.IsInvalid, message);
+ public static T ThrowLastErrorIfInvalid(T value, string message = null) where T : SafeHandle => CheckPredicateOrThrow(value, v => v.IsInvalid, message);
/// Throws the last error if the value is a NULL pointer (IntPtr.Zero).
/// The pointer to check.