Konvertierung TBlobStream* nach IUnknown* nicht möglich



  • Hallo Forum-Leute,
    ich möchte die Datei (HPGL) die ich in einem BlobFeld gespeichert habe über den Stream in einem ActivexControl zeigen,
    wenn ich den DBNavigator1 clicke dann soll folgendes passieren:

    TBlobStream* theBStream = new TBlobStream((TBlobField*)Table1->FieldByName("caddatei"), bmRead);
    theBStream->Position = 0;
    ActiveX1->LoadFromStream(theBStream);
    delete theBStream;
    

    es kommt leider diese Fehlermeldung:
    Konvertierung TBlobStream* nach IUnknown* nicht möglich, weil diesen ActiveX1 nimmt nur IUnknown an und ich habe keine Erfahrung damit.
    Über den Stream kann ich meine Daten direkt von dem Datenbank lesen, speichern, und an sehen.
    diesen ActiveX1 ist ein externes Component, um CAD Daten zu zeigen, den habe ich in meinem BCB5 installiert.
    danke
    C++_Hoby

    Edit:
    Bitte die Code-Tags benutzen. Danke!



  • Hm ich denken mal stream is stream. Versuchs einfach mal mit casten. Wennss nich funzt hab ich nix gesagt.
    Also statt der Zeile

    ActiveX1->LoadFromStream(theBStream);
    

    machst du halt

    ActiveX1->LoadFromStream(( IUnknown*)theBStream);
    

    Das funzt aus erfahrung meistens 😉



  • Hallo mwoidt,

    ActiveX1->LoadFromStream(( IUnknown*)theBStream);
    

    hat leider nicht funkz. es kommt eine Fehler Meldung:
    Ungültiger Typumwandlung.
    Aber ich habe das problem anders gelöst, in dem ich aus dem ich den BlobFiled ind den Stream lade und von dem Stream in eine Datei speichere, und dass kann der Activex mit LoadFromFile einfach darstellen.

    Gruß
    C++_Hoby



  • Das is ja wirklich ein bissl umständlich. Ich hab aber noch nie mit Blobstreams gearbeitet. Aber solange es so funzt is ja gut 😃


Anmelden zum Antworten