Einzelnen Beitrag anzeigen

Wapiti

Registriert seit: 26. Jan 2007
15 Beiträge
 
Delphi 2005 Personal
 
#1

Clipboard und GlobalLock ergibt Fehler

  Alt 18. Jul 2008, 14:58
Ich habe mit
Delphi-Quellcode:
Image1.Picture.Bitmap.SaveToClipboardFormat(myFormat, hData, aPalette);
Clipboard.SetAsHandle(myFormat, hData);
ein Bitmap in der Zwischenablage gespeichert.

Ein Zugriff auf
Delphi-Quellcode:
hData // direkt z.B. vor Clipboard.SetAsHandle

  bzw.

hData := Clipboard.GetAsHandle(CF_BITMAP)
  
  bzw.

hData := Clipboard.GetAsHandle(myFormat)
führt ordnungsgemäß zu einem gültigen DIB-Handle, was anderweitig auch korrekt weiterverarbeitet werden kann. Jetzt soll man eigentlich (lt. diversen Webseiten) per
GlobalLock(hData) auf den Speicherbereich (DIB-Stream) zugreifen können, um beispielsweise an den BITMAPINFOHEADER heranzukommen.

Dies führt aber stets zu einem Fehler "Das Handle ist ungültig." / "The handle is invalid."

Bei allem Suchen bin ich nur auf folgende Seite gestoßen, wo dieser Fehler auch beschrieben wird, was mir aber nicht direkt weiterhilft.

Warum das alles: Ich möchte in den Zwischenablagedaten die Auflösung der DIBs einfügen (biXPelsPerMeter und biYPelsPerMeter) um beim Einfügen die richtigen Abmaße auch bei Auflösungen ungleich 72 dpi zu bekommen. IrfanView kann die Auflösung setzen. Beim Import ins Office wird dann die richtige Größe verwendet. Vieleicht gibt es auch eine andere Lösung.
Ralf
  Mit Zitat antworten Zitat