Pictures aus Access -DB in Dialog-Box
-
Hallo,
ich versuche ein in einer Access -DB gespeichertes Bild in einem Dialog anzuzeigen (mit Hilfe eines C++ - Programms).
Die Verbindung zur DB und das Lesen von Strings etc ist kein Problem, allerdings weiss ich nicht, wie ich den Typ "CLongBinary", mit dem das Bild im Programm definiert wird, umsetzen kann.
Kann jemand helfen/Tips geben?
Gruss
-
Probiers mal so:
::CoInitialize( NULL); CLongBinary bin; LPSTREAM pStm = NULL; HRESULT hr = CreateStreamOnHGlobal( bin.m_hData, FALSE, &pStm); LPPICTURE pPic = NULL; if( SUCCEEDED( hr)) { hr = OleLoadFromStream( pStm, IID_IPicture, &pPic); pStm->Release(); pStm = NULL; if( SUCCEEDED( hr)) { // mit pPic kann gezeichnet oder Handle auf Bitmap geholt werden // ... // wenn pPic nicht mehr benötigt wird: pPic->Release(); pPic = NULL; } }
-
Hallo,
ich habs versucht, allerdings scheint mit dem pPic-Pointer noch was nicht zu stimmen: Fehlermeldung des Compilers an der Source-zeile:
hr = OleLoadFromStream( pStm, IID_IPicture, &pPic);error C2664: 'OleLoadFromStream' : cannot convert parameter 3 from 'struct IPicture ** ' to 'void ** '
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style castWas mache ich noch falsch?!?
Gruss
-
hr = OleLoadFromStream( pStm, IID_IPicture, (void**)&pPic);Sorry, dass ich den Cast vergessen habe.
-
Das ging ja superschnell mit der Antwort....
Jetzt habe ich noch ne dumme Frage: pPic ist vom Typ LPPICTURE. In der MSDN taucht dieser Typ leider nicht auf. Wo kann ich nachschauen, wie man damit umgeht? (Ich möchte die Sachen schon gern selber rauskriegen, als immer nur zu fragen... )
Gruss
-
Hallo,
hatte in den letzten Tagen wenig Zeit, aber jetzt habe ich nochmal einen Blick in das programm geworfen und festgestellt, dass bereits bei der Anweisung
hr = OleLoadFromStream( pStm, IID_IPicture, (void**)&pPic);ein Fehler auftritt. Irgendwelche Ideen??
Gruss
Yeti
-
Versuch mal den Befehl
::OleLoadPicture(pStm, 0, FALSE, IID_IPicture, (LPVOID*)&pPic);Siehe auch
http://www.codeproject.com/wtl/oledb2.asp
-
Hallo René,
der Link in Deinem letzten beitrag war der Durchbruch - nochmal vielen Dank für Deine Hilfe!!
Gruss
Yeti