public bool Contains(PropertyKey compareKey)
 {
     for (var i = 0; i < Count; i++)
     {
         var key = Get(i);
         if (key.fmtid == compareKey.fmtid && key.pid == compareKey.pid)
             return true;
     }
     return false;
 }
 public PropertyStoreProperty this[PropertyKey queryKey]
 {
     get
     {
         for (var i = 0; i < Count; i++)
         {
             var key = Get(i);
             if (key.fmtid == queryKey.fmtid && key.pid == queryKey.pid)
             {
                 PropVariant result;
                 Marshal.ThrowExceptionForHR(_Store.GetValue(ref key, out result));
                 return new PropertyStoreProperty(result);
             }
         }
         return null;
     }
 }