Search code examples
qtcomactivexvariantsafearray

SAFEARRAY* to QByteArray


I'm get through c++ invoke(...) method result at type VARIANT * var. var is .bmp image.

qDebug() << var.vt; //8209 ~ VT_ARRAY|VT_UI1 ~ SAFEARRAY(BYTE)

How convert it from SAFEARRAY(BYTE) to QByteArray? Or how get QImage (QPixmap, QBitmap)? Thanks/.


Solution

  • Igor, great thanks!!!

    long iLBound, iUBound;
    char * data;
    SafeArrayGetLBound(AFingerImage.parray, AFingerImage.parray->cDims, &iLBound);
    SafeArrayGetUBound(AFingerImage.parray, AFingerImage.parray->cDims, &iUBound);
    SafeArrayAccessData(AFingerImage.parray,(void**)(&data));
    long sz = iUBound - iLBound + 1;
    QByteArray ba = QByteArray::fromRawData(data,sz);
    FPImage.loadFromData(ba);
    SafeArrayUnaccessData(AFingerImage.parray);