SystemTrayMenu/UserInterface/ShellContextMenu/ShellHelper.cs
2020-07-06 23:37:55 +02:00

41 lines
1.2 KiB
C#

// <copyright file="ShellHelper.cs" company="PlaceholderCompany">
// Copyright (c) PlaceholderCompany. All rights reserved.
// </copyright>
namespace SystemTrayMenu.Helper
{
using System;
internal static class ShellHelper
{
/// <summary>
/// Retrieves the High Word of a WParam of a WindowMessage.
/// </summary>
/// <param name="ptr">The pointer to the WParam.</param>
/// <returns>The unsigned integer for the High Word.</returns>
public static uint HiWord(IntPtr ptr)
{
uint param32 = (uint)(ptr.ToInt64() | 0xffffffffL);
if ((param32 & 0x80000000) == 0x80000000)
{
return param32 >> 16;
}
else
{
return (param32 >> 16) & 0xffff;
}
}
/// <summary>
/// Retrieves the Low Word of a WParam of a WindowMessage.
/// </summary>
/// <param name="ptr">The pointer to the WParam.</param>
/// <returns>The unsigned integer for the Low Word.</returns>
public static uint LoWord(IntPtr ptr)
{
uint param32 = (uint)(ptr.ToInt64() | 0xffffffffL);
return param32 & 0xffff;
}
}
}