IPortableDeviceValues
COM公式ドキュメント
IPortableDeviceValues インターフェースは、PROPERTYKEY/PROPVARIANT のペアのコレクションを保持します。
解説(Remarks)
IPortableDeviceValues インターフェースは、PROPERTYKEY/PROPVARIANT のペアのコレクションを保持します。コレクション内の値は、同じ VARTYPE である必要はありません。
値はキーと値のペアとして格納され、各キーはコレクション内で一意である必要があります。クライアントは、PROPERTYKEY または 0 から始まるインデックスによって項目を検索できます。データ値は PROPVARIANT 構造体として格納されます。任意の型の値は、汎用メソッド SetValue および GetValue を使用して追加または取得できます。また、追加するデータの型に固有のメソッドを使用して項目を追加することもできます。
Get... メソッドでは、取得した値を呼び出し側が適切に解放する必要があります。Set... メソッドは、値をコレクションにコピーします。
IPortableDeviceValues インターフェースが解放されると、Clear が呼び出され、すべてのメンバーに割り当てられていたメモリが適切に解放されます。
このインターフェースはメソッドから取得できます。新しいオブジェクトが必要な場合は、CLSID_PortableDeviceValues を指定して CoCreate を呼び出します。
メソッド 40
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
コレクション内の項目数を取得します。
| pcelt | DWORD* | in | 格納されている値(キー/値ペア)の総数を受け取る出力先。 |
指定された 0 から始まるインデックスを使用して、コレクションから値を取得します。
| index | DWORD | in | 取得する要素の0始まりのインデックス。 |
| pKey | PROPERTYKEY* | inout | 指定位置のキー(PROPERTYKEY)を受け取る出力先。NULL可。 |
| pValue | PROPVARIANT* | inout | 指定位置の値(PROPVARIANT)を受け取る出力先。NULL可。 |
新しい PROPVARIANT 値を追加するか、既存の値を上書きします。
| key | PROPERTYKEY* | in | 設定する値のキーを指すPROPERTYKEYへのポインタ。 |
| pValue | PROPVARIANT* | in | 設定するPROPVARIANT値へのポインタ。 |
キーで指定された PROPVARIANT 値を取得します。
| key | PROPERTYKEY* | in | 取得する値のキーを指すPROPERTYKEYへのポインタ。 |
| pValue | PROPVARIANT* | out | 取得したPROPVARIANT値を受け取る出力先。 |
新しい文字列値(型 VT_LPWSTR)を追加するか、既存の値を上書きします。
| key | PROPERTYKEY* | in | 設定する文字列値のキーを指すPROPERTYKEYへのポインタ。 |
| Value | LPWSTR | in | 設定する文字列(ワイド文字)。 |
キーで指定された文字列値(型 VT_LPWSTR)を取得します。
| key | PROPERTYKEY* | in | 取得する文字列値のキーを指すPROPERTYKEYへのポインタ。 |
| pValue | LPWSTR* | out | 取得した文字列を受け取る出力先。呼び出し側が解放する。 |
新しい ULONG 値(型 VT_UI4)を追加するか、既存の値を上書きします。
| key | PROPERTYKEY* | in | 設定する符号なし整数値のキーを指すPROPERTYKEYへのポインタ。 |
| Value | DWORD | in | 設定する符号なし32ビット整数値。 |
キーで指定された ULONG 値(型 VT_UI4)を取得します。
| key | PROPERTYKEY* | in | 取得する符号なし整数値のキーを指すPROPERTYKEYへのポインタ。 |
| pValue | DWORD* | out | 取得した符号なし32ビット整数値を受け取る出力先。 |
新しい LONG 値(型 VT_I4)を追加するか、既存の値を上書きします。
| key | PROPERTYKEY* | in | 設定する符号付き整数値のキーを指すPROPERTYKEYへのポインタ。 |
| Value | INT | in | 設定する符号付き32ビット整数値。 |
キーで指定された LONG 値(型 VT_I4)を取得します。
| key | PROPERTYKEY* | in | 取得する符号付き整数値のキーを指すPROPERTYKEYへのポインタ。 |
| pValue | INT* | out | 取得した符号付き32ビット整数値を受け取る出力先。 |
新しい ULONGLONG 値(型 VT_UI8)を追加するか、既存の値を上書きします。
| key | PROPERTYKEY* | in | 設定する符号なし64ビット整数値のキーを指すPROPERTYKEYへのポインタ。 |
| Value | ULONGLONG | in | 設定する符号なし64ビット整数値。 |
キーで指定された ULONGLONG 値(型 VT_UI8)を取得します。
| key | PROPERTYKEY* | in | 取得する符号なし64ビット整数値のキーを指すPROPERTYKEYへのポインタ。 |
| pValue | ULONGLONG* | out | 取得した符号なし64ビット整数値を受け取る出力先。 |
新しい LONGLONG 値(型 VT_I8)を追加するか、既存の値を上書きします。
| key | PROPERTYKEY* | in | 設定する符号付き64ビット整数値のキーを指すPROPERTYKEYへのポインタ。 |
| Value | LONGLONG | in | 設定する符号付き64ビット整数値。 |
キーで指定された LONGLONG 値(型 VT_I8)を取得します。
| key | PROPERTYKEY* | in | 取得する符号付き64ビット整数値のキーを指すPROPERTYKEYへのポインタ。 |
| pValue | LONGLONG* | out | 取得した符号付き64ビット整数値を受け取る出力先。 |
新しい FLOAT 値(型 VT_R4)を追加するか、既存の値を上書きします。
| key | PROPERTYKEY* | in | 設定する浮動小数点値のキーを指すPROPERTYKEYへのポインタ。 |
| Value | FLOAT | in | 設定する単精度浮動小数点値。 |
キーで指定された FLOAT 値(型 VT_R4)を取得します。
| key | PROPERTYKEY* | in | 取得する浮動小数点値のキーを指すPROPERTYKEYへのポインタ。 |
| pValue | FLOAT* | out | 取得した単精度浮動小数点値を受け取る出力先。 |
新しい HRESULT 値(型 VT_ERROR)を追加するか、既存の値を上書きします。
| key | PROPERTYKEY* | in | 設定するエラー値のキーを指すPROPERTYKEYへのポインタ。 |
| Value | HRESULT | in | 設定するHRESULTエラーコード値。 |
キーで指定された HRESULT 値(型 VT_ERROR)を取得します。
| key | PROPERTYKEY* | in | 取得するエラー値のキーを指すPROPERTYKEYへのポインタ。 |
| pValue | HRESULT* | out | 取得したHRESULTエラーコード値を受け取る出力先。 |
新しい PROPERTYKEY 値(型 VT_UNKNOWN)を追加するか、既存の値を上書きします。
| key | PROPERTYKEY* | in | 設定先のキーを指すPROPERTYKEYへのポインタ。 |
| Value | PROPERTYKEY* | in | 値として格納するPROPERTYKEYへのポインタ。 |
キーで指定された PROPERTYKEY 値を取得します。
| key | PROPERTYKEY* | in | 取得対象のキーを指すPROPERTYKEYへのポインタ。 |
| pValue | PROPERTYKEY* | out | 値として格納されたPROPERTYKEYを受け取る出力先。 |
新しいブール値(型 VT_BOOL)を追加するか、既存の値を上書きします。
| key | PROPERTYKEY* | in | 設定する真偽値のキーを指すPROPERTYKEYへのポインタ。 |
| Value | BOOL | in | 設定するBOOL値(TRUE/FALSE)。 |
キーで指定された BOOL 値(型 VT_BOOL)を取得します。
| key | PROPERTYKEY* | in | 取得する真偽値のキーを指すPROPERTYKEYへのポインタ。 |
| pValue | BOOL* | out | 取得したBOOL値を受け取る出力先。 |
新しい IUnknown 値(型 VT_UNKNOWN)を追加するか、既存の値を上書きします。
| key | PROPERTYKEY* | in | 設定先のキーを指すPROPERTYKEYへのポインタ。 |
| pValue | IUnknown* | in | 値として格納するIUnknownインターフェイスポインタ。参照カウントが加算される。 |
キーで指定された IUnknown インターフェース値(型 VT_UNKNOWN)を取得します。
| key | PROPERTYKEY* | in | 取得対象のキーを指すPROPERTYKEYへのポインタ。 |
| ppValue | IUnknown** | out | 格納されたIUnknownインターフェイスを受け取る出力先。呼び出し側がReleaseする。 |
新しい GUID 値(型 VT_CLSID)を追加するか、既存の値を上書きします。
| key | PROPERTYKEY* | in | 設定するGUID値のキーを指すPROPERTYKEYへのポインタ。 |
| Value | GUID* | in | 設定するGUIDへのポインタ。 |
キーで指定された GUID 値(型 VT_CLSID)を取得します。
| key | PROPERTYKEY* | in | 取得するGUID値のキーを指すPROPERTYKEYへのポインタ。 |
| pValue | GUID* | out | 取得したGUIDを受け取る出力先。 |
| key | PROPERTYKEY* | in | 設定するバイナリ値のキーを指すPROPERTYKEYへのポインタ。 |
| pValue | BYTE* | in | 格納するバイナリデータへのポインタ。 |
| cbValue | DWORD | in | 格納するバイナリデータのバイト数。 |
| key | PROPERTYKEY* | in | 取得するバイナリ値のキーを指すPROPERTYKEYへのポインタ。 |
| ppValue | BYTE** | out | 取得したバイナリデータを受け取る出力先。呼び出し側が解放する。 |
| pcbValue | DWORD* | out | 取得したバイナリデータのバイト数を受け取る出力先。 |
新しい IPortableDeviceValues 値(型 VT_UNKNOWN)を追加するか、既存の値を上書きします。
| key | PROPERTYKEY* | in | 設定先のキーを指すPROPERTYKEYへのポインタ。 |
| pValue | IPortableDeviceValues* | in | 値として格納するIPortableDeviceValuesへのポインタ(入れ子のコレクション)。 |
キーで指定された IPortableDeviceValues 値(型 VT_UNKNOWN)を取得します。
| key | PROPERTYKEY* | in | 取得対象のキーを指すPROPERTYKEYへのポインタ。 |
| ppValue | IPortableDeviceValues** | out | 格納されたIPortableDeviceValuesを受け取る出力先。 |
新しい IPortableDevicePropVariantCollection 値(型 VT_UNKNOWN)を追加するか、既存の値を上書きします。
| key | PROPERTYKEY* | in | 設定先のキーを指すPROPERTYKEYへのポインタ。 |
| pValue | IPortableDevicePropVariantCollection* | in | 値として格納するIPortableDevicePropVariantCollectionへのポインタ。 |
キーで指定された IPortableDevicePropVariantCollection 値(型 VT_UNKNOWN)を取得します。
| key | PROPERTYKEY* | in | 取得対象のキーを指すPROPERTYKEYへのポインタ。 |
| ppValue | IPortableDevicePropVariantCollection** | out | 格納されたIPortableDevicePropVariantCollectionを受け取る出力先。 |
新しい IPortableDeviceKeyCollectionValue 値(型 VT_UNKNOWN)を追加するか、既存の値を上書きします。
| key | PROPERTYKEY* | in | 設定先のキーを指すPROPERTYKEYへのポインタ。 |
| pValue | IPortableDeviceKeyCollection* | in | 値として格納するIPortableDeviceKeyCollectionへのポインタ。 |
キーで指定された IPortableDeviceKeyCollection 値(型 VT_UNKNOWN)を取得します。
| key | PROPERTYKEY* | in | 取得対象のキーを指すPROPERTYKEYへのポインタ。 |
| ppValue | IPortableDeviceKeyCollection** | out | 格納されたIPortableDeviceKeyCollectionを受け取る出力先。 |
新しい IPortableDeviceValuesCollection 値(型 VT_UNKNOWN)を追加するか、既存の値を上書きします。
| key | PROPERTYKEY* | in | 設定先のキーを指すPROPERTYKEYへのポインタ。 |
| pValue | IPortableDeviceValuesCollection* | in | 値として格納するIPortableDeviceValuesCollectionへのポインタ。 |
キーで指定された IPortableDeviceValuesCollection 値(型 VT_UNKNOWN)を取得します。
| key | PROPERTYKEY* | in | 取得対象のキーを指すPROPERTYKEYへのポインタ。 |
| ppValue | IPortableDeviceValuesCollection** | out | 格納されたIPortableDeviceValuesCollectionを受け取る出力先。 |
コレクションから項目を削除します。
| key | PROPERTYKEY* | in | コレクションから削除する値のキーを指すPROPERTYKEYへのポインタ。 |
IPropertyStore の内容をコレクションにコピーします。
| pStore | IPropertyStore* | in | 値の複製元となるIPropertyStoreへのポインタ。全プロパティが取り込まれる。 |
コレクションからすべての値を IPropertyStore インターフェースにコピーします。
| pStore | IPropertyStore* | in | 値の複製先となるIPropertyStoreへのポインタ。 |
コレクションからすべての項目を削除します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IPortableDeviceValues "{6848F6F2-3155-4F86-B6F5-263EEEAB3143}" #usecom global IPortableDeviceValues IID_IPortableDeviceValues "{0C15D503-D017-47CE-9016-7B3F978721CC}" #comfunc global IPortableDeviceValues_GetCount 3 var #comfunc global IPortableDeviceValues_GetAt 4 int,var,var #comfunc global IPortableDeviceValues_SetValue 5 var,var #comfunc global IPortableDeviceValues_GetValue 6 var,var #comfunc global IPortableDeviceValues_SetStringValue 7 var,wstr #comfunc global IPortableDeviceValues_GetStringValue 8 var,var #comfunc global IPortableDeviceValues_SetUnsignedIntegerValue 9 var,int #comfunc global IPortableDeviceValues_GetUnsignedIntegerValue 10 var,var #comfunc global IPortableDeviceValues_SetSignedIntegerValue 11 var,int #comfunc global IPortableDeviceValues_GetSignedIntegerValue 12 var,var #comfunc global IPortableDeviceValues_SetUnsignedLargeIntegerValue 13 var,int64 #comfunc global IPortableDeviceValues_GetUnsignedLargeIntegerValue 14 var,var #comfunc global IPortableDeviceValues_SetSignedLargeIntegerValue 15 var,int64 #comfunc global IPortableDeviceValues_GetSignedLargeIntegerValue 16 var,var #comfunc global IPortableDeviceValues_SetFloatValue 17 var,float #comfunc global IPortableDeviceValues_GetFloatValue 18 var,var #comfunc global IPortableDeviceValues_SetErrorValue 19 var,int #comfunc global IPortableDeviceValues_GetErrorValue 20 var,var #comfunc global IPortableDeviceValues_SetKeyValue 21 var,var #comfunc global IPortableDeviceValues_GetKeyValue 22 var,var #comfunc global IPortableDeviceValues_SetBoolValue 23 var,int #comfunc global IPortableDeviceValues_GetBoolValue 24 var,var #comfunc global IPortableDeviceValues_SetIUnknownValue 25 var,sptr #comfunc global IPortableDeviceValues_GetIUnknownValue 26 var,sptr #comfunc global IPortableDeviceValues_SetGuidValue 27 var,var #comfunc global IPortableDeviceValues_GetGuidValue 28 var,var #comfunc global IPortableDeviceValues_SetBufferValue 29 var,var,int #comfunc global IPortableDeviceValues_GetBufferValue 30 var,var,var #comfunc global IPortableDeviceValues_SetIPortableDeviceValuesValue 31 var,sptr #comfunc global IPortableDeviceValues_GetIPortableDeviceValuesValue 32 var,sptr #comfunc global IPortableDeviceValues_SetIPortableDevicePropVariantCollectionValue 33 var,sptr #comfunc global IPortableDeviceValues_GetIPortableDevicePropVariantCollectionValue 34 var,sptr #comfunc global IPortableDeviceValues_SetIPortableDeviceKeyCollectionValue 35 var,sptr #comfunc global IPortableDeviceValues_GetIPortableDeviceKeyCollectionValue 36 var,sptr #comfunc global IPortableDeviceValues_SetIPortableDeviceValuesCollectionValue 37 var,sptr #comfunc global IPortableDeviceValues_GetIPortableDeviceValuesCollectionValue 38 var,sptr #comfunc global IPortableDeviceValues_RemoveValue 39 var #comfunc global IPortableDeviceValues_CopyValuesFromPropertyStore 40 sptr #comfunc global IPortableDeviceValues_CopyValuesToPropertyStore 41 sptr #comfunc global IPortableDeviceValues_Clear 42 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IPortableDeviceValues "{6848F6F2-3155-4F86-B6F5-263EEEAB3143}" #usecom global IPortableDeviceValues IID_IPortableDeviceValues "{0C15D503-D017-47CE-9016-7B3F978721CC}" #comfunc global IPortableDeviceValues_GetCount 3 sptr #comfunc global IPortableDeviceValues_GetAt 4 int,sptr,sptr #comfunc global IPortableDeviceValues_SetValue 5 sptr,sptr #comfunc global IPortableDeviceValues_GetValue 6 sptr,sptr #comfunc global IPortableDeviceValues_SetStringValue 7 sptr,wstr #comfunc global IPortableDeviceValues_GetStringValue 8 sptr,sptr #comfunc global IPortableDeviceValues_SetUnsignedIntegerValue 9 sptr,int #comfunc global IPortableDeviceValues_GetUnsignedIntegerValue 10 sptr,sptr #comfunc global IPortableDeviceValues_SetSignedIntegerValue 11 sptr,int #comfunc global IPortableDeviceValues_GetSignedIntegerValue 12 sptr,sptr #comfunc global IPortableDeviceValues_SetUnsignedLargeIntegerValue 13 sptr,int64 #comfunc global IPortableDeviceValues_GetUnsignedLargeIntegerValue 14 sptr,sptr #comfunc global IPortableDeviceValues_SetSignedLargeIntegerValue 15 sptr,int64 #comfunc global IPortableDeviceValues_GetSignedLargeIntegerValue 16 sptr,sptr #comfunc global IPortableDeviceValues_SetFloatValue 17 sptr,float #comfunc global IPortableDeviceValues_GetFloatValue 18 sptr,sptr #comfunc global IPortableDeviceValues_SetErrorValue 19 sptr,int #comfunc global IPortableDeviceValues_GetErrorValue 20 sptr,sptr #comfunc global IPortableDeviceValues_SetKeyValue 21 sptr,sptr #comfunc global IPortableDeviceValues_GetKeyValue 22 sptr,sptr #comfunc global IPortableDeviceValues_SetBoolValue 23 sptr,int #comfunc global IPortableDeviceValues_GetBoolValue 24 sptr,sptr #comfunc global IPortableDeviceValues_SetIUnknownValue 25 sptr,sptr #comfunc global IPortableDeviceValues_GetIUnknownValue 26 sptr,sptr #comfunc global IPortableDeviceValues_SetGuidValue 27 sptr,sptr #comfunc global IPortableDeviceValues_GetGuidValue 28 sptr,sptr #comfunc global IPortableDeviceValues_SetBufferValue 29 sptr,sptr,int #comfunc global IPortableDeviceValues_GetBufferValue 30 sptr,sptr,sptr #comfunc global IPortableDeviceValues_SetIPortableDeviceValuesValue 31 sptr,sptr #comfunc global IPortableDeviceValues_GetIPortableDeviceValuesValue 32 sptr,sptr #comfunc global IPortableDeviceValues_SetIPortableDevicePropVariantCollectionValue 33 sptr,sptr #comfunc global IPortableDeviceValues_GetIPortableDevicePropVariantCollectionValue 34 sptr,sptr #comfunc global IPortableDeviceValues_SetIPortableDeviceKeyCollectionValue 35 sptr,sptr #comfunc global IPortableDeviceValues_GetIPortableDeviceKeyCollectionValue 36 sptr,sptr #comfunc global IPortableDeviceValues_SetIPortableDeviceValuesCollectionValue 37 sptr,sptr #comfunc global IPortableDeviceValues_GetIPortableDeviceValuesCollectionValue 38 sptr,sptr #comfunc global IPortableDeviceValues_RemoveValue 39 sptr #comfunc global IPortableDeviceValues_CopyValuesFromPropertyStore 40 sptr #comfunc global IPortableDeviceValues_CopyValuesToPropertyStore 41 sptr #comfunc global IPortableDeviceValues_Clear 42 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。