Win32 API 日本語リファレンス
ホームDevices.PortableDevices › IPortableDevicePropVariantCollection

IPortableDevicePropVariantCollection

COM
IID89b2e422-4f1b-4316-bcef-a44afea83eb3継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IPortableDevicePropVariantCollection インターフェースは、同一の VARTYPE を持つインデックス付き PROPVARIANT 値のコレクションを保持します。

解説(Remarks)

IPortableDevicePropVariantCollection インターフェースは、同一の VARTYPE を持つインデックス付き PROPVARIANT 値のコレクションを保持します。コレクションに最初に追加された項目の VARTYPE が、コレクションの VARTYPE を決定します。異なる VARTYPE の項目を追加しようとすると、その PROPVARIANT 値をコレクションの現在の VARTYPE に変換できない場合には失敗することがあります。コレクションの VARTYPE を変更するには、ChangeType を呼び出します。

このインターフェースはメソッドから取得できます。新しいオブジェクトが必要な場合は、CLSID_PortableDevicePropVariantCollection を指定して CoCreate を呼び出してください。

メソッド 7

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT GetCount(DWORD* pcElems)

このコレクション内の項目数を取得します。

pcElemsDWORD*inコレクション内の値の総数を受け取る出力先。
vtbl 4 HRESULT GetAt(DWORD dwIndex, PROPVARIANT* pValue)

0 から始まるインデックスによってコレクションから項目を取得します。

dwIndexDWORDin取得する値の0始まりのインデックス。
pValuePROPVARIANT*in指定位置のPROPVARIANT値を受け取る出力先。
vtbl 5 HRESULT Add(PROPVARIANT* pValue)

コレクションに項目を追加します。

pValuePROPVARIANT*inコレクションに追加するPROPVARIANT値へのポインタ。
vtbl 6 HRESULT GetType(WORD* pvt)

コレクション内の項目のデータ型を取得します。

pvtWORD*outコレクションが保持する要素のVARTYPE(値の型)を受け取る出力先。
vtbl 7 HRESULT ChangeType(WORD vt)

コレクション内のすべての項目を指定された VARTYPE に変換します。

vtWORDin全要素を変換する対象のVARTYPE(値の型)。
vtbl 8 HRESULT Clear()

コレクションからすべての項目を解放してから削除します。

vtbl 9 HRESULT RemoveAt(DWORD dwIndex)

指定されたインデックスで示される位置に格納されている要素を削除します。

dwIndexDWORDin削除する値の0始まりのインデックス。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IPortableDevicePropVariantCollection "{89B2E422-4F1B-4316-BCEF-A44AFEA83EB3}"
#usecom global IPortableDevicePropVariantCollection IID_IPortableDevicePropVariantCollection "{08A99E2F-6D6D-4B80-AF5A-BAF2BCBE4CB9}"
#comfunc global IPortableDevicePropVariantCollection_GetCount    3 var
#comfunc global IPortableDevicePropVariantCollection_GetAt       4 int,var
#comfunc global IPortableDevicePropVariantCollection_Add         5 var
#comfunc global IPortableDevicePropVariantCollection_GetType     6 var
#comfunc global IPortableDevicePropVariantCollection_ChangeType  7 int
#comfunc global IPortableDevicePropVariantCollection_Clear       8
#comfunc global IPortableDevicePropVariantCollection_RemoveAt    9 int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。