// The AppBarManager calls this to return information regarding the location of the notification area. // With Explorer, the notification area is always in an AppBar, but we do not have that assumption. public void FillTrayHostSizeData(ref APPBARDATAV2 abd) { TrayHostSizeData msd = trayHostSizeData; abd.rc = msd.rc; abd.uEdge = (uint)msd.edge; }
internal void SetTrayHostSizeData(TrayHostSizeData data) { if (HwndTray != IntPtr.Zero) { SetWindowPos(HwndTray, IntPtr.Zero, data.rc.Left, data.rc.Top, data.rc.Width, data.rc.Height, (int)SetWindowPosFlags.SWP_NOACTIVATE | (int)SetWindowPosFlags.SWP_NOZORDER); } if (HwndNotify != IntPtr.Zero) { SetWindowPos(HwndNotify, IntPtr.Zero, data.rc.Left, data.rc.Top, data.rc.Width, data.rc.Height, (int)SetWindowPosFlags.SWP_NOACTIVATE | (int)SetWindowPosFlags.SWP_NOZORDER); } }
// The notification area control calls this when an icon is clicked to set the placement of its host (such as for ABM_GETTASKBARPOS usage) public void SetTrayHostSizeData(TrayHostSizeData data) { trayHostSizeData = data; _trayService?.SetTrayHostSizeData(trayHostSizeData); }