Exemple #1
0
        /// <summary>
        ///     Create a new instance of the <see cref="ShellKnownFolder" /> class
        ///     to the specified known folder GUID.
        /// </summary>
        /// <param name="knownFolderId">Known folder GUID.</param>
        /// <returns><see cref="ShellKnownFolder" />.</returns>
        internal static ShellKnownFolder FromKnownFolderIdInternal(Guid knownFolderId)
        {
            IKnownFolder        knownFolderNative;
            IKnownFolderManager knownFolderManager = new KnownFolderManager();
            var hr = knownFolderManager.GetFolder(knownFolderId, out knownFolderNative);

            if (HRESULT.Failed(hr))
            {
                return(null);
            }
            return(CreateKnownFolder(knownFolderNative));
        }
Exemple #2
0
        /// <summary>
        ///     Create a new instance of the <see cref="ShellKnownFolder" /> class
        ///     to the specified known folder ID.
        /// </summary>
        /// <param name="knownFolderId">Known folder GUID.</param>
        /// <returns>
        ///     <see cref="ShellKnownFolder" />
        /// </returns>
        /// <exception cref="ArgumentException">A known folder matching the specified GUID could not be created.</exception>
        public static ShellKnownFolder FromKnownFolderId(Guid knownFolderId)
        {
            Contract.Ensures(Contract.Result <ShellKnownFolder>() != null);

            IKnownFolder knownFolderNative;
            var          knownFolderManager = new KnownFolderManager();
            var          hr = knownFolderManager.GetFolder(knownFolderId, out knownFolderNative);

            if (HRESULT.Failed(hr))
            {
                throw ShellException.FromHRESULT(hr);
            }

            var result = CreateKnownFolder(knownFolderNative);

            if (result == null)
            {
                throw new ArgumentException(ErrorMessages.KnownFolderInvalidGuid, nameof(knownFolderId));
            }
            return(result);
        }