コード例 #1
0
ファイル: ShellItem.cs プロジェクト: kouweizhong/vanara
 private void Init(KNOWNFOLDERID_Enum knownFolder)
 {
     if (IsMin7)
     {
         object ppv;
         SHGetKnownFolderItem(knownFolder.Guid(), KNOWN_FOLDER_FLAG.KF_FLAG_DEFAULT, AdvApi32.SafeTokenHandle.Null, typeof(IShellItem).GUID, out ppv);
         Init((IShellItem)ppv);
     }
     else
     {
         var csidl = knownFolder.SpecialFolder();
         if (csidl == null)
         {
             throw new ArgumentOutOfRangeException(nameof(knownFolder), @"Cannot translate this known folder to a value understood by systems prior to Windows 7.");
         }
         var path = new StringBuilder(Kernel32.MAX_PATH);
         SHGetFolderPath(IntPtr.Zero, (int)csidl.Value, AdvApi32.SafeTokenHandle.Null, SHGFP.SHGFP_TYPE_CURRENT, path);
         Init(new Uri(path.ToString()));
     }
 }
コード例 #2
0
ファイル: ShellItem.cs プロジェクト: kouweizhong/vanara
 /// <summary>Initializes a new instance of the <see cref="ShellItem"/> class.</summary>
 /// <param name="knownFolder">A known folder.</param>
 public ShellItem(KNOWNFOLDERID_Enum knownFolder)
 {
     Init(knownFolder);
 }