コード例 #1
0
ファイル: native.cs プロジェクト: aduros/ikvm-monotouch
        public static Object getEnumObjects(Object pIShellFolder, Boolean isDesktop, Boolean includeHiddenFiles)
        {
            if (pIShellFolder == null)
            {
                return(null);
            }
            ShellApi.IShellFolder folder = (ShellApi.IShellFolder)pIShellFolder;
            ShellApi.SHCONTF      flags  = ShellApi.SHCONTF.SHCONTF_FOLDERS | ShellApi.SHCONTF.SHCONTF_NONFOLDERS;
            if (includeHiddenFiles)
            {
                flags |= ShellApi.SHCONTF.SHCONTF_INCLUDEHIDDEN;
            }

            ShellApi.IEnumIDList list = null;
            folder.EnumObjects(IntPtr.Zero, flags, out list);
            return(list);
        }
コード例 #2
0
ファイル: native.cs プロジェクト: aduros/ikvm-monotouch
        /// <summary>
        /// Returns the next pIDL in an IEnumIDList
        /// </summary>
        /// <param name="pEnumObjects">The IEnumIDList to get the next element of</param>
        /// <returns>a pIDL or IntPtr.Zero in case the end of the enum is reached</returns>
        public static IntPtr getNextChild(Object pEnumObjects)
        {
            if (pEnumObjects == null)
            {
                return(IntPtr.Zero);
            }
            ShellApi.IEnumIDList list = (ShellApi.IEnumIDList)pEnumObjects;
            IntPtr pIDL = new IntPtr();
            int    pceltFetched; // can be ignored, if celt = 1
            uint   hRes = list.Next(1, out pIDL, out pceltFetched);

            if (hRes != 0 || pceltFetched == 0)
            {
                return(IntPtr.Zero);
            }
            else
            {
                return(pIDL);
            }
        }