public virtual extern void GetGuidValue([In] ref _tagpropertykey key, out Guid pValue);
 public virtual extern void GetIPortableDevicePropVariantCollectionValue([In] ref _tagpropertykey key, [MarshalAs(UnmanagedType.Interface)] out PortableDevicePropVariantCollection ppValue);
 public virtual extern void GetErrorValue([In] ref _tagpropertykey key, [MarshalAs(UnmanagedType.Error)] out int pValue);
 public virtual extern void GetFloatValue([In] ref _tagpropertykey key, out float pValue);
 public virtual extern void GetBufferValue([In] ref _tagpropertykey key, [Out] IntPtr ppValue, out uint pcbValue);
 public virtual extern void GetBoolValue([In] ref _tagpropertykey key, out int pValue);
 public virtual extern void GetAt([In] uint index, [In, Out] ref _tagpropertykey pKey, [In, Out] ref tag_inner_PROPVARIANT pValue);
 public virtual extern void GetAt([In] uint dwIndex, [In] ref _tagpropertykey pKey);
 public virtual extern void Add([In] ref _tagpropertykey key);