Announcement

Collapse
No announcement yet.

Problem IDataObject.GetData

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem IDataObject.GetData

    Hallo,

    ich versuche aus einen OleContainer, der mit z.b. Photopaint oder Windows Image verbunden ist, den Containerinhalt als Bitmap auszulesen !
    Leider erhalte ich immer nur "ungültige FORMATETC-Struktur" als Fehlermeldung ! Über das Clipboard wird das CF_BITMAP-Format unterstützt.

    Was mache ich falsch ???

    OleContainer1.OLEObjectInterface.QueryInterface(ID ataObject, aDataObject);
    // IDataObject der Quelle ok ?
    if aDataObject = nil then Abort;
    // TFormatEtc-Struktur der zu holenden Daten initialisieren
    with aFormatEtc do begin
    cfFormat := CF_BITMAP;
    ptd := nil;
    dwAspect := DVASPECT_CONTENT;
    lIndex := -1;
    tymed := TYMED_GDI;
    end;
    // Daten über die IDataObject-Schnittstelle holen
    OleCheck(aDataObject.GetData(aFormatEtc, aMedium));
    // TBitmap-Instanz speichert in eine BMP-Datei
    Image1.Picture.Bitmap.LoadFromClipboardFormat(CF_B ITMAP, aMedium.hBitmap, 0);

  • #2
    Hallo,

    ich bin schon einen Schritt weiter !
    Aus EnumFormatEtc erhalte ich nur CF_METAFILEPICT als unterstütztes Format. DataObject.GetData liefert StgMedium.tymed=TYMED_MFPICT und einen Handle vom Typ HMetafile.
    Wie bekomme ich nun die Metafile über den Handle in eine TImage-Instanz

    Comment

    Working...
    X