共用方式為


擷取向量類型

某些屬性和資料欄位包含資訊的陣列。 例如,SENSOR_PROPERTY_LIGHT_RESPONSE_CURVE 屬性包含 4 位元組不帶正負號的整數的陣列。 不過,當您透過感應器 API 接收這類陣列時,它們一律會以類型表示VT_VECTOR|UI1 是單一位元組字元的陣列,不論陣列中資料的實際類型為何。 對於這些類型,您必須小心將陣列變數轉換成屬性或資料欄位的正確資料類型。

如需屬性、資料欄位及其類型的相關資訊,請參閱 常數

下列範例程式碼示範如何將SENSOR_PROPERTY_LIGHT_RESPONSE_CURVE中擷取的資料轉換成正確的類型。

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