Пример #1
0
        public List <Menu> FindAllMenuItems()
        {
            List <Menu> subMenus = new List <Menu>();

            int menuItemCount = Win32Helpers.GetMenuItemCount(Handle);

            for (int i = 0; i < 5; i++)
            {
                var subMenuHandler = Win32Helpers.GetSubMenu(Handle, i);
                subMenus.Add(new Menu(Handle, subMenuHandler, MainWindowHandle));
            }

            var lastHandler = IntPtr.Zero;

            for (int i = 0; lastHandler != IntPtr.Zero; i++)
            {
                var subMenuHandler = Win32Helpers.GetSubMenu(Handle, i);
                var menuItem       = new Menu(Handle, subMenuHandler, MainWindowHandle);
                lastHandler = menuItem.Handle;
                if (lastHandler != IntPtr.Zero)
                {
                    subMenus.Add(menuItem);
                }
            }

            foreach (var subMenu in subMenus.ToList())
            {
                subMenus.AddRange(subMenu.GetAllSubMenus());
            }

            return(subMenus);
        }