EnumClipboardFormats

17/03/2009 - 14:20 von Sascha Trowitzsch | Report spam
Hallo,

Ich verwende VS2008 nur gelegentlich. Nun brauche ich eine Routine, die mir die
in der Zwischenablage verfügbaren Formate ausgibt. Im Framework gibt es offenbar
nichts adàqates.
Unter VB6 klappt's mit der API

Declare Function EnumClipboardFormats Lib "user32.dll" (ByVal wFormat As Long)
As Long

Man ruft das in einer Schleife mit initialem Wert 0 für wFormat solange auf, bis
die Funktion wieder 0 zurückgibt.
Der Anfangswert 0 führt dazu, dass die Funktion die erste verfügbare ID des
Formats ausgibt - z.B. 2 für Bitmap.

Unter .NET mit der Deklaration

Declare Function EnumClipboardFormats Lib "user32.dll" (ByVal wFormat As
Integer) As Integer

klappt's nicht. Die Schleife sieht so aus:

Dim intFormat As Integer
intFormat=0
Do
intFormat = EnumClipboardFormats(intFormat)
Debug.Print intFormat
Loop Until intFormat=0

Wie gesagt: intFormat bleibt immer 0.
Was mache ich falsch? Oder gibt's ne andere Lösung?
(BTW: Ich brauche das, um ein variables benutzerdefiniertes Format zu ermitteln,
um anschließend dessen Daten zu erhalten.)

Danke , Sascha
 

Lesen sie die antworten

#1 Thorsten Doerfler
17/03/2009 - 14:37 | Warnen spam
Sascha Trowitzsch schrieb:
Ich verwende VS2008 nur gelegentlich. Nun brauche ich eine Routine, die mir die
in der Zwischenablage verfügbaren Formate ausgibt. Im Framework gibt es offenbar
nichts adàqates.



Dim lData As IDataObject = Clipboard.GetDataObject()

If lData IsNot Nothing Then
For Each s As String In lData.GetFormats()
Debug.Print(s)
Next
End If

Thorsten Dörfler
Microsoft MVP Visual Basic

vb-hellfire visual basic faq | vb-hellfire - einfach anders
http://vb-faq.de/ | http://www.vb-hellfire.de/

Ähnliche fragen