Inheritance: IKnownFolderManager
コード例 #1
0
        /// <summary>
        /// Returns the native known folder (IKnownFolderNative) given a PID list
        /// </summary>
        /// <param name="pidl"></param>
        /// <returns></returns>
        internal static IKnownFolderNative FromPIDL(IntPtr pidl)
        {
            KnownFolderManagerClass knownFolderManager = new KnownFolderManagerClass();

            IKnownFolderNative knownFolder;
            HResult hr = knownFolderManager.FindFolderFromIDList(pidl, out knownFolder);

            return (hr == HResult.S_OK) ? knownFolder : null;
        }
コード例 #2
0
        /// <summary>
        /// Returns a known folder given a globally unique identifier.
        /// </summary>
        /// <param name="knownFolderId">A GUID for the requested known folder.</param>
        /// <returns>A known folder representing the specified name.</returns>
        /// <exception cref="System.ArgumentException">Thrown if the given Known Folder ID is invalid.</exception>
        public static IKnownFolder FromKnownFolderId(Guid knownFolderId)
        {
            IKnownFolderNative knownFolderNative;
            KnownFolderManagerClass knownFolderManager = new KnownFolderManagerClass();

            HResult hr = knownFolderManager.GetFolder(knownFolderId, out knownFolderNative);
            if (hr != HResult.S_OK) { throw new Exception(hr.ToString()); }

            IKnownFolder kf = GetKnownFolder(knownFolderNative);
            if (kf == null)
                throw new ArgumentException("Invalid GUID", "knownFolderId");
            else
                return kf;
        }
コード例 #3
0
        /*
		/// <summary>
		/// Returns a known folder given its shell path, such as <c>C:\users\public\documents</c> or 
		/// <c>::{645FF040-5081-101B-9F08-00AA002F954E}</c> for the Recycle Bin.
		/// </summary>
		/// <param name="path">The path for the requested known folder; either a physical path or a virtual path.</param>
		/// <returns>A known folder representing the specified name.</returns>
		public static IKnownFolder FromPath(string path) {
			return KnownFolderHelper.FromParsingName(path);
		}
		*/

        /// <summary>
        /// Returns a known folder given its shell namespace parsing name, such as 
        /// <c>::{645FF040-5081-101B-9F08-00AA002F954E}</c> for the Recycle Bin.
        /// </summary>
        /// <param name="parsingName">The parsing name (or path) for the requested known folder.</param>
        /// <returns>A known folder representing the specified name.</returns>
        /// <exception cref="System.ArgumentException">Thrown if the given parsing name is invalid.</exception>
        /// 
        public static IKnownFolder FromParsingNameOnly(string parsingName)
        {
            var k = new KnownFolderManagerClass();
            IKnownFolderNative folder = null;
            k.FindFolderFromPath(parsingName, 0, out folder);
            return (IKnownFolder)folder;
        }