vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: Windows/System22.03.05
CountClipboardFormats-Funktion

Diese Funktion ermittelt die verschiedenen Format-Typen, die in der Zwischenablage vorhanden sind.

Betriebssystem:  Win95, Win98, WinNT 3.1, Win2000, WinMEViews:  8.206 

Deklaration:

Declare Function CountClipboardFormats Lib "user32" () As Long

Beschreibung:
Diese Funktion ermittelt die verschiedenen Format-Typen, die in der Zwischenablage vorhanden sind.

Parameter:
keine

Rückgabewert:
Ist die Funktion erfolgreich, so liefert sie die Anzahl der verschiedenen Formattypen in der Zwischenablage, andernfallshat die Rückgabe den Wert "0". Für erweiterte Fehlerinformationen rufenSie die GetLastError-Funktion auf.

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 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-Objekt (wird beim Leeren der Zwischenablage nicht gelöscht)
Private Const CF_GDIOBJLAST = &H3FF 
' Das Objekt in der Zwischenablage ist ein GID-Objekt (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 ein Sprach-ID, der 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 Extension
Private Const CF_PRIVATEFIRST = &H200 
' Das Objekt in der Zwischenablage ist ein privater Handle
Private Const CF_PRIVATELAST = &H2FF 
' Das Objekt in der Zwischenablage ist ein privater 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
' Zwischenablage Inhalt 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 Format Bildfeld leeren
    Picture1.Cls
  End Select
End Sub

Diese Seite wurde bereits 8.206 mal aufgerufen.

nach obenzurück
 
   

Druckansicht Druckansicht Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
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.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel