Deklaration: Declare Function EnumClipboardFormats Lib "user32" ( _ ByVal wFormat As Long) As Long Beschreibung: Parameter:
Rückgabewert: Beispiel: Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function CloseClipboard Lib "user32" () As Long Private Declare Function EnumClipboardFormats Lib "user32" ( _ ByVal wFormat As Long) As Long Private Declare Function CountClipboardFormats Lib "user32" () As Long Private Declare Function GetClipboardData Lib "user32" ( _ ByVal wFormat As Long) As Long Private Declare Function GetClipboardFormatName Lib "user32" _ Alias "GetClipboardFormatNameA" ( _ ByVal wFormat As Long, _ ByVal lpString As String, _ ByVal nMaxCount As Long) As Long Private Declare Function lstrlen Lib "kernel32" _ Alias "lstrlenA" ( _ ByVal lpString As Any) As Long Private Declare Function lstrcpy Lib "kernel32" _ Alias "lstrcpyA" ( _ ByVal lpString1 As Any, _ ByVal lpString2 As Any) As Long Private Declare Function GlobalLock Lib "kernel32" (ByVal hMem As Long) As Long Private Declare Function GlobalUnlock Lib "kernel32" ( _ ByVal hMem As Long) As Long Private Declare Function SelectObject Lib "gdi32" ( _ ByVal hdc As Long, _ ByVal hObject As Long) As Long ' BitBlt dwRop-Konstante Private Const SRCCOPY = &HCC0020 ' Zwischenablage Format-Konstanten Private Const CF_BITMAP = 2 ' Das Objekt in der Zwischenablage ist ein Handle eines Bitmaps Private Const CF_DIB = 8 ' Das Objekt in der Zwischenablage ist ein Handle ' zu einer %BITMAPINFO%-Struktur Private Const CF_DIBV5 = 17 ' (Win 2000/XP) Das Objekt in der Zwischenablage ' ist ein Handle zu einer %BITMAPV5HEADER%-Struktur Private Const CF_DIF = 5 ' Das Objekt in der Zwischenablage ist ein ' "Software Arts' Data Interchange Format" Private Const CF_DSPBITMAP = &H82 ' Das Objekt in der Zwischenablage ist ein ' Handle zu einem Bitmap in einem privaten Format Private Const CF_DSPENHMETAFILE = &H8E ' Das Objekt in der Zwischenablage ist ein Handle ' zu einer Enhanced Metadatei in einem privaten Format Private Const CF_DSPMETAFILEPICT = &H83 ' Das Objekt in der Zwischenablage ist ein Handle ' zu einer Meta Grafik in einem privaten Format Private Const CF_DSPTEXT = &H81 ' Das Objekt in der Zwischenablage ist ein ' Handle zu einem String in einem privaten Format Private Const CF_ENHMETAFILE = 14 ' Das Objekt in der Zwischenablage ist ein ' Handle zu einer Enhanced Metadatei Private Const CF_GDIOBJFIRST = &H300 ' Das Objekt in der Zwischenablage ist ein GID-Object ' (wird beim Leeren der Zwischenablage nicht gelöscht) Private Const CF_GDIOBJLAST = &H3FF ' Das Objekt in der Zwischenablage ist ein GID-Object ' (wird beim Leeren der Zwischenablage nicht gelöscht) Private Const CF_HDROP = 15 ' Das Objekt in der Zwischenablage ist eine ' Liste von Dateihandles Private Const CF_LOCALE = 16 ' Das Objekt in der Zwischenablage ist eine Sprach-ID, ' die für Text-Strings in der Zwischenablage benutzt wurde Private Const CF_METAFILEPICT = 3 ' Das Objekt in der Zwischenablage ist ein ' Handle zu einem Metafile Bild Private Const CF_OEMTEXT = 7 ' Das Objekt in der Zwischenablage ist ein ' Handle zu einem OEM-String Private Const CF_OWNERDISPLAY = &H80 ' Das Objekt in der Zwischenablage ist ' ein benutzerdefinierter Anzeigetyp Private Const CF_PALETTE = 9 ' Das Objekt in der Zwischenablage ist ein ' Handle zu einer Palette Private Const CF_PENDATA = 10 ' Das Objekt der Zwischenablage sind Daten zu ' einem Microsoft Pen Extensions Private Const CF_PRIVATEFIRST = &H200 ' Das Objekt in der Zwischenablage ist ' ein privates Handle Private Const CF_PRIVATELAST = &H2FF ' Das Objekt in der Zwischenablage ist ' ein privates Handle Private Const CF_RIFF = 11 ' Das Objekt in der Zwischenablage ist ein Handle ' zu einer Audiodatei Private Const CF_SYLK = 4 ' Das Objekt in der Zwischenablage ist ein ' symbolischer Link Private Const CF_TEXT = 1 ' Das Objekt in der Zwischenablage ist ein Handle ' zu einem String Private Const CF_WAVE = 12 ' Das Objekt in der Zwischenablage ist ein Handle ' zu einer Wavedatei Private Const CF_TIFF = 6 ' Das Objekt in der Zwischenablage ist ein Handle ' zu einem Tiff-Bitmap Private Const CF_UNICODETEXT = 13 ' Das Objekt in der Zwischenablage ist ein ' Handle zu einem Unicode-String ' Zwischenablageinhalt ermitteln Private Sub Command1_Click() Dim Retval As Long, lngFormat As Long, strFormat As String * 256, i As Integer ' Liste leeren List1.Clear ' Zwischenablage öffnen Call OpenClipboard(Me.hwnd) ' Anzahl der verschiedenen Formate der Zwischenablage ermitteln Debug.Print "Anzahl verschiedender Clipboard-Formate: " & CountClipboardFormats() Do i = i + 1 ' Das nächste Format aus der Zwischenablage ermitteln lngFormat = EnumClipboardFormats(lngFormat) If lngFormat = 0 Then Exit Do ' Format auswerten Select Case lngFormat Case CF_TEXT strFormat = "Text" & vbNullChar Case CF_BITMAP strFormat = "Bitmap" & vbNullChar Case CF_WAVE strFormat = "Wavedatei" & vbNullChar ' case... für weitere Formattypen Case Else ' benutzerdefinierten Typ ermitteln If GetClipboardFormatName(lngFormat, strFormat, _ Len(strFormat)) = 0 Then strFormat = "Unbekannt" & vbNullChar End If End Select List1.AddItem Format$(i, "00") & ": " & Left$(strFormat, InStr(1, _ strFormat, vbNullChar) - 1) & " (" & CStr(lngFormat) & ")" List1.ItemData(List1.NewIndex) = lngFormat Loop ' Clipboard schließen Call CloseClipboard End Sub ' Selektierte CF_TEXT oder CF_BITMAP der Zwischenablage im Bildfeld anzeigen Private Sub List1_Click() Dim hBitmap As Long, TmpStr As String, StrLen As Long, hTmpStr As _ Long, pTmpStr As Long Select Case List1.ItemData(List1.ListIndex) Case CF_TEXT ' Text in das Bildfeld zeichnen ' Zwischenablage öffnen OpenClipboard Me.hwnd ' Handle zum String ermitteln hTmpStr = GetClipboardData(CF_TEXT) ' Pointer des Strings ermitteln pTmpStr = GlobalLock(hTmpStr) ' String in eine Variable kopieren TmpStr = Space(lstrlen(ByVal pTmpStr)) Call lstrcpy(TmpStr, ByVal pTmpStr) ' Pointer zerstören um Ressourcen zu sparen GlobalUnlock hTmpStr ' Zwischenablage schließen CloseClipboard ' String im Bildfeld anzeigen Picture1.Cls Picture1.Print TmpStr Case CF_BITMAP ' Bitmap aus der Zwischenablage in das Bildfeld kopieren ' Zwischenablage öffnen OpenClipboard Me.hwnd ' Bitmap dem Bildfeld zuweisen hBitmap = GetClipboardData(CF_BITMAP) SelectObject Picture1.hdc, hBitmap Picture1.Refresh ' Zwischenablage schließen CloseClipboard Case Else ' Bei einem nichtunterstützten Formt Bildfeld leeren Picture1.Cls End Select End Sub Diese Seite wurde bereits 10.178 mal aufgerufen. |
vb@rchiv CD Vol.6 Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! Online-Update-Funktion Entwickler-Vollversionen u.v.m. Buchempfehlung Tipp des Monats Oktober 2024 Heinz Prelle Firewall-Status unter WinXP/Vista prüfen Das Beispiel prüft, ob die Firewall unter Windows XP/Vista eingeschaltet ist oder nicht. Zudem wird eine Abfrage durchgeführt ob es sich bei dem zugrundeliegenden Betriebssystem um Windows XP/Vista handelt oder nicht. sevOutBar 4.0 Vertikale Menüleisten á la Outlook Erstellen von Outlook ähnlichen Benutzer- interfaces - mit beliebig vielen Gruppen und Symboleinträgen. Moderner OfficeXP-Style mit Farbverläufen, Balloon-Tips, u.v.m. |
||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |