OleLoadPicture Problem



  • Hallo zusammen,

    ich versuche ein jpg Bild mittels OleLoadPicture zu laden. Auf Windowas 2000 läuft alles bestens. Nur bei Windows XP löppt's net :(.

    Das Programm bricht unmittelbar nach OleLoadPicture mit einer Access Violation ab. Aber nur bei zu "großen" Bildern. "Kleinere" kann ich laden und anzeigen.

    Gelegentlich kommt auch keine Access Violation sondern nur E_FAIL (also undefinierter Fehler) als Returnwert von OleLoadPicture.

    HRESULT hResult = OleLoadPicture(
    		pIStream,		// Pointer auf durch ::CreateStreamOnHGlobal(...) erzeugten IStream
    		0,
    		FALSE,
    		IID_IPicture,
    		(void**)&m_pIPicture	// IPicture* m_pIPicture; Auch als smart Pointer CComQIPtr gehts nicht
    	);
    

    Habt Ihr ne Idee?

    Gruß,
    mathi



  • benutz gdi+ 😉



  • :idee: schrieb:

    benutz gdi+ 😉

    😋 i got an answere *freu* But more tips would be nice 😉

    Ok, spass bei seite: Habe mir nochmal das sample zu gemüte geführt
    Ich lade das file byteweitweise auf den Heap und Lade dann daraus den IStream, den ich an die Ole Funktion übergebe.

    Das Sample Programm macht im Prinzip ähnliches nur: Es läd das File in ein CFile object, Läd dann daraus die daten in ein CArchive object, läd dann daraus alles in ein CArchiveStream object und übergibt dann den Pointer (als cast auf IStream*) an die Ole funktion und damit funzt es. 😕

    Das einzige worüber ich gestolpert bin ist dieses CArchiveStream, dazu finde ich irgendwie nix in der MSDN bzw. SDK Doku, Ist das schon GDI+?

    Falls nicht, gib mal bitte ein bischen mehr Infos.

    THX soweit!
    Gruß,
    mathi


Anmelden zum Antworten