Mengambil Jenis Vektor
Beberapa properti dan bidang data berisi array informasi. Misalnya, properti SENSOR_PROPERTY_LIGHT_RESPONSE_CURVE berisi array bilangan bulat 4 byte yang tidak bertanda. Namun, ketika Anda menerima array tersebut melalui SENSOR API, array tersebut selalu direpresentasikan sebagai jenis VT_VECTOR|UI1, array karakter byte tunggal, terlepas dari jenis data aktual dalam array. Untuk jenis ini, Anda harus berhati-hati mengonversi variabel array ke tipe data yang benar untuk properti atau bidang data.
Untuk informasi tentang properti, bidang data, dan jenisnya, lihat Konstan.
Contoh kode berikut menunjukkan cara mentransmisikan data yang diambil dalam SENSOR_PROPERTY_LIGHT_RESPONSE_CURVE ke jenis yang benar.
PROPVARIANT pvCurve;
PropVariantInit(&pvCurve);
// Retrieve the property value.
hr = pSensor->GetProperty(SENSOR_PROPERTY_LIGHT_RESPONSE_CURVE, &pvCurve);
if (SUCCEEDED(hr))
{
if ((VT_UI1|VT_VECTOR) == V_VT(pvCurve)) // Note actual type of UI1
{
// Cast the array to UINT, a 4-byte unsigned integer.
// Item count for the array.
UINT cElement = pvCurve.caub.cElems/sizeof(UINT);
// Array pointer.
UINT* pElement = (UINT*)(pvCurve.caub.pElems);
// Use the array.
}
}
// Remember to free the PROPVARIANT when done.
PropVariantClear(&pvCurve);