コード例 #1
0
 public override int GetHashCode()
 {
     if (!hashValue.HasValue)
     {
         uint size = Shell32.ILGetSize(Pidl);
         if (size != 0)
         {
             byte[] pidlData = new byte[size];
             Marshal.Copy(Pidl, pidlData, 0, (int)size);
             byte[] hashData = ShellItem.hashProvider.ComputeHash(pidlData);
             hashValue = BitConverter.ToInt32(hashData, 0);
         }
         else
         {
             hashValue = 0;
         }
     }
     return(hashValue.Value);
 }