Hämtar vektortyper

Viktigt!

Använd UWP-sensor-API :et i stället.

COM-baserade sensor-API:et är inaktuellt och bör inte användas i nya program. Inga ytterligare funktioner eller förbättringar planeras och stödet begränsas.

Vissa egenskaper och datafält innehåller informationsmatriser. Egenskapen SENSOR_PROPERTY_LIGHT_RESPONSE_CURVE innehåller till exempel en matris med osignerade heltal med 4 byte. Men när du tar emot sådana matriser via sensor-API:et representeras de alltid som typ VT_VECTOR|UI1, en matris med en byte-tecken, oavsett den faktiska typen av data i matrisen. För dessa typer måste du vara noga med att omvandla matrisvariabler till rätt datatyp för egenskapen eller datafältet.

Information om egenskaper, datafält och deras typer finns i Konstanter.

Följande exempelkod visar hur du omvandlar data som hämtats i SENSOR_PROPERTY_LIGHT_RESPONSE_CURVE till rätt typ.

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);