예제 #1
0
        /// <summary>Retrieves the full path associated with a <see cref="Shell32.KNOWNFOLDERID_Enum"/>.</summary>
        /// <param name="id">The known folder.</param>
        /// <returns>The path.</returns>
        public static string FullPath(this Shell32.KNOWNFOLDERID_Enum id)
        {
            SafeCoTaskMemHandle path;

            Shell32.SHGetKnownFolderPath(id.Guid(), stdGetFlags, AdvApi32.SafeTokenHandle.Null, out path);
            return(path.ToString(-1));
        }
예제 #2
0
 /// <summary>Retrieves the PIDL associated with a <see cref="Shell32.KNOWNFOLDERID_Enum"/>.</summary>
 /// <param name="id">The known folder.</param>
 /// <returns>The PIDL.</returns>
 public static Shell32.PIDL PIDL(this Shell32.KNOWNFOLDERID_Enum id)
 {
     Shell32.PIDL pidl;
     Shell32.SHGetKnownFolderIDList(id.Guid(), stdGetFlags, AdvApi32.SafeTokenHandle.Null, out pidl);
     return(pidl);
 }
예제 #3
0
 /// <summary>Gets a registry property associated with this known folder.</summary>
 /// <typeparam name="T">Return type.</typeparam>
 /// <param name="id">The known folder.</param>
 /// <param name="valueName">Name of the property (value under registry key).</param>
 /// <returns>Retrieved value or default(T) if no value exists.</returns>
 public static T GetRegistryProperty <T>(this Shell32.KNOWNFOLDERID_Enum id, string valueName) => (T)Microsoft.Win32.Registry.GetValue(RegPath + id.Guid().ToString("B"), valueName, default(T));