SafeArrayAccessData - bekomme nicht die korrekten Daten zurück



  • Hallo,

    Ich will mit SafeArrayAccessData auf ein SafeArray zugreifen. SafeArrayGetElement funktioniert, ich will aber das gesamte Feld mit einmal auslesen.

    hier der Auszug aus meinem Quellcode, stimmt eigentlich mit den Beispielen die ich so gefunden habe überein, ich bekomme aber immer nur "0" zurück:

    char * tarray;
    CComVariant val(0);
    long index=5;

    //gibt immer "0" aus
    if (SafeArrayAccessData(val.parray,(void **)&tarray)==S_OK)
    printf("Var:%d", tarray[5]);

    //funktioniert
    SafeArrayGetElement( val.parray, &index, &value);
    printf("Var:%d", val.iVal);

    Kann mir jemand einen Tipp geben?



  • Erstens: Woher stammen denn die ganzen SafeArray... Funktionen?

    Zweitens: Versuch's doch mal mit einer Schleife, mit der du über dein Array drüberläufst.

    PS: sfds



  • Erstens:
    Die Safearray... Funktionen sind Standardfunktionen und gehören zur OLE Safearray API. Die Funktionen sind in der VC++ 6.0 Hilfe dokumentiert, der Prototyp befindet sind in der OLEAUTO.H

    Zweitens:
    Die anderen Werte im Array sind auch alle "0".

    PS: Danke für den Tipp! 😉


Log in to reply