IPortableDeviceValues 接口保存 PROPERTYKEY/PROPVARIANT 对的集合。 集合中的值不需要是相同的 VARTYPE。
值存储为键值对;每个键在集合中必须是唯一的。 客户端可以按 PROPERTYKEY 或从零开始的索引搜索项。 数据值存储为 PROPVARIANT 结构。 可以使用泛型方法 SetValue 和 GetValue 添加或检索任何类型的值,也可以使用特定于所添加数据类型的方法添加项。
Get... 方法要求调用方相应地释放任何检索到的值。 Set... 方法将值复制到集合中。
释放 IPortableDeviceValues 接口时,它会调用 Clear,这会相应地释放为其所有成员分配的内存。
可以从方法检索此接口,或者,如果需要新对象,请使用 CLSID_PortableDeviceValues 调用 CoCreate。
成员
IPortableDeviceValues 接口继承自 IUnknown 接口。 IPortableDeviceValues 还具有以下类型的成员:
方法
IPortableDeviceValues 接口包含以下方法。
| 方法 | 说明 |
|---|---|
| 清楚 | 从集合中删除所有项。 |
| CopyValuesFromPropertyStore | 将 IPropertyStore 的内容复制到集合中。 |
| CopyValuesToPropertyStore | 将集合中的所有值复制到 IPropertyStore 接口中。 |
| GetAt | 使用提供的从零开始的索引从集合中检索值。 |
| GetBoolValue | 检索由键指定的类型VT_BOOL) (BOOL 值。 |
| GetBufferValue | 检索 (类型VT_VECTOR的字节数组值 |VT_UI1) 由键指定。 |
| GetCount | 检索集合中的项数。 |
| GetErrorValue | 检索由键指定的类型VT_ERROR) (HRESULT 值。 |
| GetFloatValue | (键指定的类型VT_R4) 检索 FLOAT 值。 |
| GetGuidValue | 检索由键指定的类型VT_CLSID) (GUID 值。 |
| GetIPortableDeviceKeyCollectionValue | 检索由键指定的类型 (IPortableDeviceKeyCollection 值VT_UNKNOWN) 。 |
| GetIPortableDevicePropVariantCollectionValue | 检索由键指定的类型VT_UNKNOWN) (IPortableDevicePropVariantCollection 值。 |
| GetIPortableDeviceValuesCollectionValue | (键指定的类型VT_UNKNOWN) 检索 IPortableDeviceValuesCollection 值。 |
| GetIPortableDeviceValuesValue | 检索由键指定的类型VT_UNKNOWN) (IPortableDeviceValues 值。 |
| GetIUnknownValue | 检索由键指定的类型VT_UNKNOWN) (IUnknown 接口值。 |
| GetKeyValue | 检索由键指定的 PROPERTYKEY 值。 |
| GetSignedIntegerValue | 检索由键指定的类型VT_I4) (LONG 值。 |
| GetSignedLargeIntegerValue | 检索由键指定的类型VT_I8) (LONGLONG 值。 |
| GetStringValue | 检索键指定的类型VT_LPWSTR) (字符串值。 |
| GetUnsignedIntegerValue | (键指定的类型VT_UI4) 检索 ULONG 值。 |
| GetUnsignedLargeIntegerValue | (键指定的类型VT_UI8) 检索 ULONGLONG 值。 |
| GetValue | 检索由键指定的 PROPVARIANT 值。 |
| RemoveValue | 从集合中删除某一项。 |
| SetBoolValue | 将新的 布尔 值 (类型VT_BOOL) 或覆盖现有布尔值。 |
| SetBufferValue | (类型VT_VECTOR添加新 的 BYTE* 值 |VT_UI1) 或覆盖现有对象。 |
| SetErrorValue | (类型添加新 的 HRESULT 值VT_ERROR) 或覆盖现有值。 |
| SetFloatValue | 将新的 FLOAT 值 (类型VT_R4) 或覆盖现有 FLOAT 值。 |
| SetGuidValue | 将新的 GUID 值 (类型VT_CLSID) 或覆盖现有 GUID 值。 |
| SetIPortableDeviceKeyCollectionValue | 将新的 IPortableDeviceKeyCollectionValue 值 (类型VT_UNKNOWN) 或覆盖现有类型。 |
| SetIPortableDevicePropVariantCollectionValue | 将新的 IPortableDevicePropVariantCollection 值 (类型VT_UNKNOWN) 或覆盖现有类型。 |
| SetIPortableDeviceValuesCollectionValue | 将新的 IPortableDeviceValuesCollection 值 (类型VT_UNKNOWN) 或覆盖现有类型。 |
| SetIPortableDeviceValuesValue | 添加新的 IPortableDeviceValues 值 (类型VT_UNKNOWN) 或覆盖现有值。 |
| SetIUnknownValue | 将新的 IUnknown 值 (类型VT_UNKNOWN) 或覆盖现有值。 |
| SetKeyValue | 将新的 PROPERTYKEY (类型VT_UNKNOWN) 值或覆盖现有类型。 |
| SetSignedIntegerValue | 将新的 LONG 值 (类型VT_I4) 或覆盖现有类型。 |
| SetSignedLargeIntegerValue | 将新的 LONGLONG 值 (类型VT_I8) 或覆盖现有值。 |
| SetStringValue | (类型添加新的字符串值VT_LPWSTR) 或覆盖现有字符串值。 |
| SetUnsignedIntegerValue | 将新的 ULONG 值 (类型VT_UI4) 或覆盖现有的 ULONG 值。 |
| SetUnsignedLargeIntegerValue | 将新的 ULONGLONG 值 (类型VT_UI8) 或覆盖现有值。 |
| SetValue | 添加新 的 PROPVARIANT 值或覆盖现有值。 |
要求
| 要求 | 值 |
|---|---|
| 标头 |
|
| 库 |
|