/// <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;
}