Sic.Framework-Nanjing-Baishi/MECF.Framework.Common/Hardcodet/Wpf/TaskbarNotification/Interop/NotifyIconData.cs

67 lines
1.7 KiB
C#

using System;
using System.Runtime.InteropServices;
namespace Hardcodet.Wpf.TaskbarNotification.Interop
{
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct NotifyIconData
{
public uint cbSize;
public IntPtr WindowHandle;
public uint TaskbarIconId;
public IconDataMembers ValidMembers;
public uint CallbackMessageId;
public IntPtr IconHandle;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
public string ToolTipText;
public IconState IconState;
public IconState StateMask;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
public string BalloonText;
public uint VersionOrTimeout;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)]
public string BalloonTitle;
public BalloonFlags BalloonFlags;
public Guid TaskbarIconGuid;
public IntPtr CustomBalloonIconHandle;
public static NotifyIconData CreateDefault(IntPtr handle)
{
NotifyIconData notifyIconData = default(NotifyIconData);
if (Environment.OSVersion.Version.Major >= 6)
{
notifyIconData.cbSize = (uint)Marshal.SizeOf(notifyIconData);
}
else
{
notifyIconData.cbSize = 952u;
notifyIconData.VersionOrTimeout = 10u;
}
notifyIconData.WindowHandle = handle;
notifyIconData.TaskbarIconId = 0u;
notifyIconData.CallbackMessageId = 1024u;
notifyIconData.VersionOrTimeout = 0u;
notifyIconData.IconHandle = IntPtr.Zero;
notifyIconData.IconState = IconState.Hidden;
notifyIconData.StateMask = IconState.Hidden;
notifyIconData.ValidMembers = IconDataMembers.Message | IconDataMembers.Icon | IconDataMembers.Tip;
notifyIconData.ToolTipText = (notifyIconData.BalloonText = (notifyIconData.BalloonTitle = string.Empty));
return notifyIconData;
}
}
}