diff --git a/PInvoke/Shared/Vanara.PInvoke.Shared.csproj b/PInvoke/Shared/Vanara.PInvoke.Shared.csproj index 3733e314..e0b6c602 100644 --- a/PInvoke/Shared/Vanara.PInvoke.Shared.csproj +++ b/PInvoke/Shared/Vanara.PInvoke.Shared.csproj @@ -31,6 +31,11 @@ CharacterSet, CM_RESOURCE, CM_SHARE_DISPOSITION, CmResourceType, DMCOLLATE, DMCO + + + 3.1.0 + + 4.6.0 diff --git a/PInvoke/Shared/WinUser/Macros.cs b/PInvoke/Shared/WinUser/Macros.cs index 746ddec4..b7ff243e 100644 --- a/PInvoke/Shared/WinUser/Macros.cs +++ b/PInvoke/Shared/WinUser/Macros.cs @@ -26,6 +26,11 @@ namespace Vanara.PInvoke /// The return value is the high-order byte of the specified value. public static byte HIBYTE(ushort wValue) => (byte)((wValue >> 8) & 0xff); + /// Gets the high 8-bytes from a value. + /// The value. + /// The high 8-bytes as a . + public static int HighPart(this long lValue) => unchecked((int)(lValue >> 32)); + /// Retrieves the high-order word from the specified 32-bit value. /// The value to be converted. /// The return value is the high-order word of the specified value. @@ -52,6 +57,11 @@ namespace Vanara.PInvoke /// The return value is the low-order byte of the specified value. public static byte LOBYTE(ushort wValue) => (byte)(wValue & 0xff); + /// Gets the lower 8-bytes from a value. + /// The value. + /// The lower 8-bytes as a . + public static uint LowPart(this long lValue) => (uint)(lValue & 0xffffffff); + /// Retrieves the low-order word from the specified 32-bit value. /// The value to be converted. /// The return value is the low-order word of the specified value. @@ -88,6 +98,12 @@ namespace Vanara.PInvoke /// The return value is a LONG64 value. public static ulong MAKELONG64(uint dwLow, uint dwHigh) => ((ulong)dwHigh << 32) | ((ulong)dwLow & 0xffffffff); + /// Creates a LONG64 value by concatenating the specified values. + /// The low-order double word of the new value. + /// The high-order double word of the new value. + /// The return value is a LONG64 value. + public static long MAKELONG64(uint dwLow, int dwHigh) => ((long)dwHigh << 32) | ((long)dwLow & 0xffffffff); + /// Creates a value for use as an lParam parameter in a message. The macro concatenates the specified values. /// The low-order word of the new value. /// The high-order word of the new value.