/// <summary> /// Constructs a new Shell object from IDList pointer /// </summary> /// <param name="idListPtr"></param> /// <param name="parent"></param> /// <returns></returns> internal static ShellObject Create(IntPtr idListPtr, ShellContainer parent) { IShellItem nativeShellItem; int retCode = ShellNativeMethods.SHCreateShellItem( IntPtr.Zero, parent.NativeShellFolder, idListPtr, out nativeShellItem); if (!CoreErrorHelper.Succeeded(retCode)) { return(null); } return(ShellObjectFactory.Create(nativeShellItem)); }
internal ShellFolderItems(ShellContainer nativeShellFolder) { this.nativeShellFolder = nativeShellFolder; HResult hr = nativeShellFolder.NativeShellFolder.EnumObjects( IntPtr.Zero, ShellNativeMethods.ShellFolderEnumerationOptions.Folders | ShellNativeMethods.ShellFolderEnumerationOptions.NonFolders, out nativeEnumIdList); if (!CoreErrorHelper.Succeeded(hr)) { if (hr == HResult.Canceled) { throw new System.IO.FileNotFoundException(); } else { throw new ShellException(hr); } } }