public WindowsTrayIcon(string iconFile) { messageSink = new WindowMessageSink(); // init icon data structure iconData = NotifyIconData.CreateDefault(messageSink.MessageWindowHandle, iconFile); //IntPtr hIcon = PInvoke.User32.LoadImage(IntPtr.Zero, "dotnetbot.ico", // PInvoke.User32.ImageType.IMAGE_ICON, 16, 16, PInvoke.User32.LoadImageFlags.LR_LOADFROMFILE); //PInvoke.User32.SendMessage(iconData.WindowHandle, PInvoke.User32.WindowMessage.WM_SETICON, (IntPtr)0, hIcon); // create the taskbar icon CreateTaskbarIcon(); // register event listeners messageSink.MouseEventReceived += MessageSink_MouseEventReceived; messageSink.TaskbarCreated += MessageSink_TaskbarCreated; //messageSink.ChangeToolTipStateRequest += OnToolTipChange; }
/// <summary> /// Inits the taskbar icon and registers a message listener /// in order to receive events from the taskbar area. /// </summary> public TaskbarIcon() { //using dummy sink in design mode messageSink = Util.IsDesignMode ? WindowMessageSink.CreateEmpty() : new WindowMessageSink(NotifyIconVersion.Win95); //init icon data structure iconData = NotifyIconData.CreateDefault(messageSink.MessageWindowHandle); //create the taskbar icon CreateTaskbarIcon(); //register event listeners messageSink.MouseEventReceived += OnMouseEvent; messageSink.TaskbarCreated += OnTaskbarCreated; messageSink.ChangeToolTipStateRequest += OnToolTipChange; messageSink.BalloonToolTipChanged += OnBalloonToolTipChanged; //init single click / balloon timers singleClickTimer = new Timer(DoSingleClickAction); balloonCloseTimer = new Timer(CloseBalloonCallback); //register listener in order to get notified when the application closes if (Application.Current != null) Application.Current.Exit += OnExit; }