public bool Contains(PropertyKey compareKey)
 {
     for (int i = 0; i < Count; i++)
     {
         PropertyKey key = Get(i);
         if (key.fmtid == compareKey.fmtid && key.pid == compareKey.pid)
             return true;
     }
     return false;
 }
 internal PropertyStoreProperty(PropertyKey key, PropVariant value)
 {
     _PropertyKey = key;
     _PropValue = value;
 }
 public PropertyStoreProperty this[PropertyKey queryKey]
 {
     get
     {
         PropVariant result;
         for (int i = 0; i < Count; i++)
         {
             PropertyKey key = Get(i);
             if (key.fmtid == queryKey.fmtid && key.pid == queryKey.pid)
             {
                 Marshal.ThrowExceptionForHR(_Store.GetValue(ref key, out result));
                 return new PropertyStoreProperty(key, result);
             }
         }
         return null;
     }
 }
 internal PropertyStoreProperty(PropertyKey key, PropVariant value)
 {
     _PropertyKey = key;
     _PropValue   = value;
 }
 public int OnPropertyValueChanged(string DeviceId, PropertyKey key)
 {
     PropertyValueChangedEventArgs arg = new PropertyValueChangedEventArgs(DeviceId, key);
     _DeviceEnumerator.FirePropertyValueChangedEvent(arg);
     return 0;
 }
 public PropertyValueChangedEventArgs(string deviceId, PropertyKey propertyKey)
 {
     DeviceId = deviceId;
     PropertyKey = propertyKey;
 }
 public PropertyValueChangedEventArgs(string deviceId, PropertyKey propertyKey)
 {
     DeviceId    = deviceId;
     PropertyKey = propertyKey;
 }