Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważne
Zamiast tego użyj API czujników UWP.
Interfejs API czujnika oparty na modelu COM jest przestarzały i nie powinien być używany w nowych aplikacjach. Nie są planowane żadne dodatkowe funkcje ani ulepszenia, a pomoc techniczna będzie ograniczona.
Niektóre właściwości i pola danych zawierają tablice informacji. Na przykład właściwość SENSOR_PROPERTY_LIGHT_RESPONSE_CURVE zawiera tablicę 4-bajtowych liczb całkowitych bez znaku. Jednak po otrzymaniu takich tablic za pośrednictwem interfejsu API czujnika, są one zawsze reprezentowane jako typ VT_VECTOR|UI1, tablica znaków jednobajtowych, niezależnie od rzeczywistego typu danych w tablicy. W przypadku tych typów należy dokładnie sprawdzić, czy zmienne w tablicy są rzutowane na właściwy typ danych dla właściwości lub pola danych.
Aby uzyskać informacje o właściwościach, polach danych i ich typach, zobacz Stałe.
Poniższy przykładowy kod pokazuje, jak rzutować dane pobrane w SENSOR_PROPERTY_LIGHT_RESPONSE_CURVE do poprawnego typu.
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);