67 lines
1.7 KiB
C#
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;
|
||
|
}
|
||
|
}
|
||
|
}
|