Получите и создайте ShellItemArray для метода IDesktopWallpaper::GetSlideshow. ⇐ C#
-
Anonymous
Получите и создайте ShellItemArray для метода IDesktopWallpaper::GetSlideshow.
Я провел большое исследование по этому вопросу, но не нашел того, что искал.
Я собираюсь использовать метод IDesktopWallpaper::GetSlideshow для получения ShellItemArray и хочу установить его с помощью IDesktopWallpaper::SetSlideshow MS ссылка
К сожалению, я не могу найти решение. Я научился использовать собственные методы, а также нашел собственные COM-интерфейсы для IShellItem и IShellItemArray и загрузил их в свой проект. Теперь я пытаюсь понять, как их использовать и как получить и установить массив из слайд-шоу обоев и в него. Я также узнал, что мне нужен метод Маршала для извлечения из памяти. Я заблудился.
Я хотел бы прочитать текущие элементы ShellItems в этом ShellItemArray из слайд-шоу и установить их с помощью класса-оболочки. Любая помощь приветствуется!
Это мой текущий код, творящий чудеса.
public void GetSlideShow() { IntPtr слайдшоу = iDesktopWallpaper.GetSlideshow(); NativeMethods.IShellItemArray ShellArray; var x = (NativeMethods.IShellItemArray)Marshal.PtrToStructure(слайд-шоу, typeof(NativeMethods.IShellItemArray)); } Это COM-класс для IDesktopWallpaper:
// на основе https://bitbucket.org/ciniml/desktopwallpaper использование системы; использование System.Runtime.InteropServices; /// /// IDesktopWallpaper Wallpaper = (IDesktopWallpaper)new DesktopWallpaper(); /// Listmonitors = new List(); /// uint MonitorCount = Wallpaper.GetMonitorDevicePathCount(); /// for (uint i = 0; i
Я провел большое исследование по этому вопросу, но не нашел того, что искал.
Я собираюсь использовать метод IDesktopWallpaper::GetSlideshow для получения ShellItemArray и хочу установить его с помощью IDesktopWallpaper::SetSlideshow MS ссылка
К сожалению, я не могу найти решение. Я научился использовать собственные методы, а также нашел собственные COM-интерфейсы для IShellItem и IShellItemArray и загрузил их в свой проект. Теперь я пытаюсь понять, как их использовать и как получить и установить массив из слайд-шоу обоев и в него. Я также узнал, что мне нужен метод Маршала для извлечения из памяти. Я заблудился.
Я хотел бы прочитать текущие элементы ShellItems в этом ShellItemArray из слайд-шоу и установить их с помощью класса-оболочки. Любая помощь приветствуется!
Это мой текущий код, творящий чудеса.
public void GetSlideShow() { IntPtr слайдшоу = iDesktopWallpaper.GetSlideshow(); NativeMethods.IShellItemArray ShellArray; var x = (NativeMethods.IShellItemArray)Marshal.PtrToStructure(слайд-шоу, typeof(NativeMethods.IShellItemArray)); } Это COM-класс для IDesktopWallpaper:
// на основе https://bitbucket.org/ciniml/desktopwallpaper использование системы; использование System.Runtime.InteropServices; /// /// IDesktopWallpaper Wallpaper = (IDesktopWallpaper)new DesktopWallpaper(); /// Listmonitors = new List(); /// uint MonitorCount = Wallpaper.GetMonitorDevicePathCount(); /// for (uint i = 0; i
Мобильная версия